TrixellDRDetector.h 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. #pragma once
  2. // 下列 ifdef 块是创建使从 DLL 导出更简单的
  3. // 宏的标准方法。此 DLL 中的所有文件都是用命令行上定义的 TRIXELLDRDETECTOR_EXPORTS
  4. // 符号编译的。在使用此 DLL 的
  5. // 任何其他项目上不应定义此符号。这样,源文件中包含此文件的任何其他项目都会将
  6. // TRIXELLDRDETECTOR_API 函数视为是从 DLL 导入的,而此 DLL 则将用此宏定义的
  7. // 符号视为是被导出的。
  8. #ifdef TRIXELLDRDETECTOR_EXPORTS
  9. #define TRIXELLDRDETECTOR_API __declspec(dllexport)
  10. #define TRIXELLDRDETECTOR_C_API extern "C" __declspec(dllexport)
  11. #else
  12. #define TRIXELLDRDETECTOR_API __declspec(dllimport)
  13. #define TRIXELLDRDETECTOR_C_API __declspec(dllimport)
  14. #endif
  15. #ifndef TRIXELLDRDETECTOR_EXPORTS
  16. #ifdef _WIN64
  17. #ifdef _DEBUG
  18. #pragma comment(lib, "TrixellDRDetectorX64D.lib")
  19. #else
  20. #pragma comment(lib, "TrixellDRDetectorX64.lib")
  21. #endif
  22. #else
  23. #ifdef _DEBUG
  24. #pragma comment(lib, "TrixellDRDetectorD.lib")
  25. #else
  26. #pragma comment(lib, "TrixellDRDetector.lib")
  27. #endif
  28. #endif
  29. #endif
  30. #include "LogicDevice.h"
  31. #include "ResDataObject.h"
  32. #include "MultiDPC.h"
  33. TRIXELLDRDETECTOR_C_API DriverDPC* GetDriverDPC();
  34. TRIXELLDRDETECTOR_C_API void ReleaseDriverDPC(DriverDPC *p);
  35. // 此类是从 MDPCFPDDemo.dll 导出的
  36. class TRIXELLDRDETECTOR_API CTrixellDRDetector : public MultiDPC
  37. {
  38. ResDataObject m_DPCs_Config;
  39. ResDataObject m_FullDriverConfig;
  40. std::string *m_pWorkpath;
  41. std::string *m_strConfigPath; //配置文件路径
  42. //GUID->KEY->Driver
  43. map<string, map<string, LogicDriver*>> *m_pDriverDPCs;
  44. bool LoadExistDPCs();
  45. bool AddExistDPC(const char *pszIdentifystr);
  46. public:
  47. CTrixellDRDetector(void);
  48. ~CTrixellDRDetector(void);
  49. //正常调入
  50. virtual bool DriverEntry(ResDataObject &Configuration);
  51. //正常调入
  52. virtual bool Driver_Probe(ResDataObject &HardwareInfo);
  53. //正常调入
  54. virtual bool SYSTEM_CALL SetDriverWorkPath(const char * PARAM_IN pWorkPath);
  55. //正常调入
  56. virtual void SYSTEM_CALL UnloadDriver();
  57. //正常调入
  58. virtual bool Connect();
  59. virtual void DisConnect();
  60. //正常调入
  61. virtual DWORD SYSTEM_CALL OnNotify(HANDLE evtList[], DWORD count);
  62. virtual RET_STATUS DATA_ACTION AddDPC(const char *pGUID, const char *pszIdentifystr);
  63. virtual RET_STATUS DATA_ACTION DelDPC(const char *pGUID, const char *pszIdentifystr);
  64. virtual void DATA_ACTION FirstAction();
  65. virtual RET_STATUS DATA_ACTION ResetError();
  66. };