00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #if !defined(AFX_DDESERVER_H__3C8F46D7_D308_414A_BCC4_5F68389331C5__INCLUDED_)
00023 #define AFX_DDESERVER_H__3C8F46D7_D308_414A_BCC4_5F68389331C5__INCLUDED_
00024
00025 #pragma once
00026
00027
00028 class CDDEServer
00029 {
00030
00031 public:
00032 CDDEServer(LPCTSTR pszService);
00033 virtual ~CDDEServer();
00034
00035
00036 protected:
00037 static CDDEServer* m_pServer;
00038 protected:
00039 DWORD m_hInstance;
00040 HSZ m_hszService;
00041 CString m_sService;
00042
00043
00044 public:
00045 BOOL Create();
00046 void Close();
00047 protected:
00048 CString StringFromHsz(HSZ hsz);
00049 static CString ReadArgument(LPCTSTR& pszMessage);
00050 static HDDEDATA CALLBACK DDECallback(UINT wType, UINT wFmt, HCONV hConv, HSZ hsz1, HSZ hsz2, HDDEDATA hData, DWORD dwData1, DWORD dwData2);
00051 protected:
00052 virtual BOOL CheckAccept(LPCTSTR pszTopic);
00053 virtual BOOL Execute(LPCTSTR pszTopic, HDDEDATA hData, HDDEDATA* phResult);
00054 virtual BOOL Execute(LPCTSTR pszTopic, LPCVOID pData, DWORD nLength);
00055 virtual BOOL Execute(LPCTSTR pszTopic, LPCTSTR pszMessage);
00056
00057 };
00058
00059 extern CDDEServer DDEServer;
00060
00061 #endif // !defined(AFX_DDESERVER_H__3C8F46D7_D308_414A_BCC4_5F68389331C5__INCLUDED_)