#ifndef _CCEX_PIPE_LIB_H__ #define _CCEX_PIPE_LIB_H__ #ifdef CEX_PIPE_DLL #define CEX_PIPE_API __declspec(dllexport) #else #define CEX_PIPE_API __declspec(dllimport) #ifdef _DEBUG #pragma comment(lib, "CCEXPipeD.lib") #else #pragma comment(lib, "CCEXPipe.lib") #endif #endif typedef void(*CEXPipeCallFunType)(void*, int lMsgId, WPARAM,LPARAM); //网络回调消息 #define CEXPIPE_NEW_CLIENT (1) #define CEXPIPE_DIS_CLIENT (2) #define CEXPIPE_NEW_DATA (3) #define CEXPIPE_CONNECT_OK (4) #define MAX_PIP_BUF (1024*1024) ////////////////////////////////////////////////////////////////////////// //具体业务通讯相关定义,框架和模块通讯共同使用,放在这个通讯库中方便同步更新。 //msgid字段:WCS发送给WMS数据时,按url不同暂定两种类型 typedef enum { WCS_2_WMS_ABNORMAL = 1000, WCS_2_WMS_DATA = 1001, MAIN_2_MODULE_WMS = 2000, //主框架转发WMS消息给子模块 MAIN_2_MODULE_SHOWWINDOW = 2001 //主框架通知模块显示窗口 }WCS_2_WMS_TYPE; ////////////////////////////////////////////////////////////////////////// typedef struct PIPE_DATA_STRUCT { int lMsgId; int lDataLen; char acData[4];//数据--保证四字节对齐,实际数据长度动态变化 }*pPIPE_DATA_STRUCT; class CEX_PIPE_API CCEXPipeServerBase { public: static CCEXPipeServerBase* CreateObj(); CCEXPipeServerBase() { m_pCallBackObj = NULL; m_pCallBackFun = NULL; }; virtual ~CCEXPipeServerBase(){}; //注册管道消息回调函数 void RegisterCall(CEXPipeCallFunType pCallBack, void* pObj){m_pCallBackFun = pCallBack; m_pCallBackObj = pObj;} //发送数据到管道 virtual BOOL SendeData(const char* pData, int lLen) = 0; virtual BOOL SendeMsg(int lMsgId, const char* pData, int lLen) = 0; virtual BOOL Start(const char* pPipeName) = 0; virtual BOOL Stop() = 0; virtual BOOL IsAcitve() = 0; virtual BOOL IsConnect() = 0; protected: void* m_pCallBackObj; CEXPipeCallFunType m_pCallBackFun; }; class CEX_PIPE_API CCEXPipeClientBase { public: static CCEXPipeClientBase* CreateObj(); CCEXPipeClientBase() { m_pCallBackObj = NULL; m_pCallBackFun = NULL; }; virtual ~CCEXPipeClientBase(){}; //注册管道消息回调函数 void RegisterCall(CEXPipeCallFunType pCallBack, void* pObj){m_pCallBackFun = pCallBack; m_pCallBackObj = pObj;} //发送数据到管道 virtual BOOL SendeData(const char* pData, int lLen) = 0; virtual BOOL SendeMsg(int lMsgId, const char* pData, int lLen) = 0; virtual BOOL Connect(const char* pPipeName) = 0; virtual BOOL DisConnect() = 0; protected: void* m_pCallBackObj; CEXPipeCallFunType m_pCallBackFun; }; #endif