#pragma once #include "ResDataObject.h" #ifdef DRIVERAPI_EXPORTS #define DRIVERAPI_API __declspec(dllexport) #else #define DRIVERAPI_API __declspec(dllimport) #endif class DRIVERAPI_API DeviceDriver; //CMD INTO DRIVER typedef bool (*Driver_Open)(DeviceDriver *pDevice,ResDataObject &Connection,ResDataObject &Resource); typedef bool (*Driver_Read)(DeviceDriver *pDevice,ResDataObject &Req,ResDataObject &Res,ResDataObject &Status); typedef bool (*Driver_Write)(DeviceDriver *pDevice,ResDataObject &Req,ResDataObject &Res,ResDataObject &Status); typedef bool (*Driver_Close)(DeviceDriver *pDevice); typedef bool (*Driver_Notify)(DeviceDriver *pDevice,ResDataObject &Notify); typedef bool (*Driver_Action)(DeviceDriver *pDevice,ResDataObject &Action); typedef bool (*Driver_Action_Response)(DeviceDriver *pDevice,ResDataObject &ActionRes); //CMD OUT FROM DRIVER typedef bool (*Driver_Read_Event)(DeviceDriver *pDevice,ResDataObject &Notify); class DRIVERAPI_API DriverObject { public: DriverObject(void); virtual ~DriverObject(void); void Clear(); bool LoadDriver(const wchar_t *pFilePath); //CMD INTO DRIVER (MUST EXIST) Driver_Open m_OpenMethod; Driver_Read m_ReadMethod; Driver_Write m_WriteMethod; Driver_Close m_CloseMethod; //CMD OUT FROM DRIVER Driver_Read_Event m_OutEventMethod;//Get Notify and Action from Driver //CMD INTO DRIVER (OPTIONAL) Driver_Notify m_NotifyMethod; Driver_Action m_ActionMethod; Driver_Action_Response m_ActionResponseMethod; //Dll File Handle HMODULE m_DriverDllHandle; };