#ifndef _IVC100LIB_API_H_
#define _IVC100LIB_API_H_

//#ifndef SDK_STATIC_LINK

#ifdef IVC100LIB_EXPORTS
#define DLL_API __declspec(dllexport)
#else									//	0605
#define DLL_API __declspec(dllexport)	//__declspec(dllimport)
#endif

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

#ifdef __cplusplus
}
#endif

#endif // _IVC4200LIB_API_H_