#ifndef _IVC100LIB_API_H_
#define _IVC100LIB_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, int Channel, int nCardID=-1);
DLL_API void CALLCONVENTION DestroyDevice(HANDLE hDev);

DLL_API BOOL CALLCONVENTION SetGPIO(HANDLE hDev);
DLL_API BOOL CALLCONVENTION SetVPD2(HANDLE hDev);
DLL_API BOOL CALLCONVENTION CaptureFilterProperty(HANDLE hDev);
DLL_API BOOL CALLCONVENTION CapturePinProperty(HANDLE hDev);
DLL_API BOOL CALLCONVENTION PreviewPinProperty(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 int CALLCONVENTION GetStatus(HANDLE hDev);
DLL_API int CALLCONVENTION GetCurChannel(HANDLE hDev);

#ifdef __cplusplus
}
#endif

#endif // _IVC4200LIB_API_H_