#ifndef FINGERPRINT_SP_H #define FINGERPRINT_SP_H #include "OcxBase.h" #include "GwiLogFile.h" #define RET_SUCCESS 0 #define LAYER ("ThermalPrint") #define LogARG(A,B,format, ...) if(A!=NULL) A->B(LAYER,__FILE__,__LINE__,(format),##__VA_ARGS__) struct WFSAsyncExecuteInfo { long lhResult; unsigned long ulReqID; unsigned char Info[2048]; int m_infolen; }; #ifndef _WINDOWS #define WINAPI #endif typedef LPVOID (WINAPI *CreateInstance)(LPVOID attatchparam,LPVOID reServed,LPVOID tools,LPVOID spInter); typedef void (WINAPI* FreeInstance)(LPVOID p); class CLogFile; class CThermalPrintSP : public CEventCallBack { public: CThermalPrintSP(CLogFile *plogFile); ~CThermalPrintSP(void); virtual long EventCallBack(long EventType,void* lpResult); WFSAsyncExecuteInfo m_Image2Feature; long ThermalPrint_OpenDevice(void); long ThermalPrint_CloseDevice(void); long ThermalPrint_Reset(void); long ThermalPrint_GetStatus(int &status,char * DRVVersion); long ThermalPrint_GetPaperStatus(int &status); long ThermalPrint_ControlMedia(int dwControl); long ThermalPrint_Printform(DWORD dwMediaControl, LPSTR lpszFormName, LPSTR lpszMediaName,LPSTR lpszFields); long ThermalPrint_CancelWait(); long ThermalPrint_PrintRawData(LPBYTE lpbData,ULONG ulSize); long ThermalPrint_PrintRawFile(LPSTR lpszFileName); private: void ReadConf(void); bool LoadDll(void); bool InitSP(void); int GetExtendedStatusField(LPSTR lpszExtra,LPSTR ExtraFileName,std::string& pszParam); OcxBase *m_pThermalPrintOcxBase; /// 设备对象指针 char m_ThermalPrintLogicName[260]; bool m_bThermalPrintOpen; char m_OCXDllPath[260]; CLogFile *m_plogFile; unsigned long m_ulReqID; CreateInstance m_pCallCreateInstance; FreeInstance m_pCallFreeInstance; #if (defined _WIN32) || (defined __WINDOWS__) || (defined __WXMSW__) HMODULE m_hOCXHandle; #else void* m_hOCXHandle; #endif }; #endif