#ifndef _IVC120LIB_API_H_
#define _IVC120LIB_API_H_

//#ifndef SDK_STATIC_LINK

#define DLL_API __declspec(dllexport)

#ifdef WIN32
#define CALLCONVENTION __stdcall
#else // WIN32
#define CALLCONVENTION
#endif // WIN32

/*
#else
#define DLL_API
#define CALLCONVENTION
#endif
*/

#ifdef __cplusplus
extern "C" {  // only need to export C interface if
              // used by C++ source code
#endif

// API....
DLL_API HRESULT CALLCONVENTION GetDevice(HWND hWnd, HANDLE *phDevice);
DLL_API void CALLCONVENTION DestroyDevice(HANDLE hDev);

DLL_API void CALLCONVENTION SetGPIO(HANDLE hDev);
DLL_API void CALLCONVENTION SetVPD2(HANDLE hDev);
DLL_API void CALLCONVENTION CaptureFilterProperty(HANDLE hDev);

DLL_API BOOL CALLCONVENTION OcxToWnd(HANDLE hDev);
DLL_API BOOL CALLCONVENTION WndToOcx(HANDLE hDev);
DLL_API BOOL CALLCONVENTION StartPreview(HANDLE hDev);
DLL_API BOOL CALLCONVENTION Stop(HANDLE hDev);
DLL_API BOOL CALLCONVENTION StartCapture(HANDLE hDev);
DLL_API BOOL CALLCONVENTION SnapShot(HANDLE hDev);
DLL_API BOOL CALLCONVENTION SetPath(HANDLE hDev);
DLL_API BOOL CALLCONVENTION SelectChannel(HANDLE hDev, int Channel);
DLL_API BOOL CALLCONVENTION SelectOutChannel(HANDLE hDev, int Channel);

DLL_API int CALLCONVENTION GetStatus(HANDLE hDev);
DLL_API int CALLCONVENTION GetCurChannel(HANDLE hDev);
DLL_API int CALLCONVENTION GetCurOutChannel(HANDLE hDev);
#ifdef __cplusplus
}
#endif

#endif // _IVC4200LIB_API_H_