![](smile.gif)
![](sad.gif)
Not many can claim 25 years on the Internet! Join us in celebrating this milestone. Learn more about our history, and thank you for being a part of our community!
class CSrv{public: HRESULT Init();private: IDirectPlay8Serer *m_pDpSrv;protected: static HRESULT WINAPI SMsgHandler(PVOID pvThis, DWORD dwMsgType, PVOID pvMsg); virtual HRESULT OnReceive(PDPNMSG_RECEIVE pdpMsg); HRESULT SysHandler(DWORD dwMsgType, PVOID pvMsg);};HRESULT CSrv::Init(){ CoInitialize(m_pDpSrv); return m_pDpSrv->Initialize(this, SMsgHandler, 0);}HRESULT WINAPI CSrv::SMsgHandler(PVOID pvThis, DWORD dwMsgType, PVOID pvMsg){ CSrv *pSrv = (CSrv*)pvThis; if(dwMsgType == DPN_MSGID_RECEIVE){ //USER MESSAGES return pSrv->OnReceive((PDPNMSG_RECEIVE)pvMsg); }else{ //SYSTEM MESSAGES return pSrv->SysHandler(dwMsgType, pvMsg); }}HRESULT CSrv::SysHandler(DWORD dwMsgType, PVOID pvMsg){ //DETERMINE SYSTEM MESSAGE TYPE AND HANDLE ACCORDINGLY}