// 下列 ifdef 块是创建使从 DLL 导出更简单的
// 宏的标准方法。此 DLL 中的所有文件都是用命令行上定义的 {0}_EXPORTS
// 符号编译的。在使用此 DLL 的
// 任何项目上不应定义此符号。这样，源文件中包含此文件的任何其他项目都会将
// {0}_API 函数视为是从 DLL 导入的，而此 DLL 则将用此宏定义的
// 符号视为是被导出的。
#ifdef CHROMA22293_EXPORTS
#define CHROMA22293_API __declspec(dllexport)
#else
#define CHROMA22293_API __declspec(dllimport)
#endif


// 打开串口设备;
extern "C" CHROMA22293_API BOOL OpenDevice(
	BYTE byCommPort, 
	DWORD dwBaudRate, 
	BYTE bySize, 
	BYTE byParity, 
	BYTE byStopBits);
// 关闭串口设备;
extern "C" CHROMA22293_API void CloseDevice();
// 发送功能指令，并解析结果;
extern "C" CHROMA22293_API BOOL GetBufStatus();
extern "C" CHROMA22293_API LPCTSTR GetDeviceSoft();
extern "C" CHROMA22293_API LPCTSTR GetDeviceName();
extern "C" CHROMA22293_API BOOL SetPattern(int param);
extern "C" CHROMA22293_API BOOL SetTiming(int param);
extern "C" CHROMA22293_API BOOL SetTimingPattern(int param1, int param2);
extern "C" CHROMA22293_API BOOL SetBlueOFF();
extern "C" CHROMA22293_API BOOL SetBlueON();
extern "C" CHROMA22293_API BOOL SetGreenOFF();
extern "C" CHROMA22293_API BOOL SetGreenON();
extern "C" CHROMA22293_API BOOL SetRedOFF();
extern "C" CHROMA22293_API BOOL SetRedON();
extern "C" CHROMA22293_API BOOL SetKeyBoardLock();
extern "C" CHROMA22293_API BOOL SetKeyBoardUnLock();
// 设置异常回调函数
// 参数：设备串口号、设备类型、异常发生时间、异常信息描述;
typedef void (CALLBACK * DoException)(LPCTSTR lpDevicePort, DWORD dwDeviceType, LPCTSTR lpGenDateTime, LPCTSTR lpExceptionDes);
extern "C" CHROMA22293_API void SetExceptionCallBack(DoException funExp);
