DDESPY.H
上传用户:bangxh
上传日期:2007-01-31
资源大小:42235k
文件大小:13k
源码类别:

Windows编程

开发平台:

Visual C++

  1. /******************************************************************************
  2. *       This is a part of the Microsoft Source Code Samples. 
  3. *       Copyright (C) 1993-1997 Microsoft Corporation.
  4. *       All rights reserved. 
  5. *       This source code is only intended as a supplement to 
  6. *       Microsoft Development Tools and/or WinHelp documentation.
  7. *       See these sources for detailed information regarding the 
  8. *       Microsoft samples programs.
  9. ******************************************************************************/
  10. /*
  11.  * DDESPY.H
  12.  *
  13.  * Header file for DDESPY Symbols
  14.  */
  15. #define DDEMLDB
  16. #include <ddeml.h>
  17. #include "dialog.h"
  18. #define MH_INTCREATE                5
  19. #define MH_INTKEEP                  6
  20. #define MH_INTDELETE                7
  21. #define IDD_MSGFILTERS              300
  22. #define IDRB_WM_DDE_INITIATE        305
  23. #define IDRB_WM_DDE_TERMINATE       306
  24. #define IDRB_WM_DDE_ADVISE          307
  25. #define IDRB_WM_DDE_UNADVISE        308
  26. #define IDRB_WM_DDE_ACK             309
  27. #define IDRB_WM_DDE_DATA            310
  28. #define IDRB_WM_DDE_REQUEST         311
  29. #define IDRB_WM_DDE_POKE            312
  30. #define IDRB_WM_DDE_EXECUTE         313
  31. #define IDRB_XTYP_ERROR             314
  32. #define IDRB_XTYP_ADVDATA           315
  33. #define IDRB_XTYP_ADVREQ            316
  34. #define IDRB_XTYP_ADVSTART          317
  35. #define IDRB_XTYP_ADVSTOP           318
  36. #define IDRB_XTYP_EXECUTE           319
  37. #define IDRB_XTYP_CONNECT           320
  38. #define IDRB_XTYP_CONNECT_CONFIRM   321
  39. #define IDRB_XACT_COMPLETE          322
  40. #define IDRB_XTYP_POKE              323
  41. #define IDRB_XTYP_REGISTER          324
  42. #define IDRB_XTYP_REQUEST           325
  43. #define IDRB_XTYP_DISCONNECT        326
  44. #define IDRB_XTYP_UNREGISTER        327
  45. #define IDRB_XTYP_WILDCONNECT       328
  46. #define IDRB_TERSE                  329
  47. #define IDR_ACCEL                   30
  48. #define IDR_MENU                    31
  49. #define IDD_VALUEENTRY              50
  50. #define IDD_ABOUTBOX                51
  51. #define IDD_OPEN                    52
  52. #define IDM_OUTPUT_FIRST            100
  53. #define IDM_OUTPUT_FILE             100
  54. #define IDM_OUTPUT_DEBUG            101
  55. #define IDM_OUTPUT_SCREEN           102
  56. #define IDM_CLEARSCREEN             103
  57. #define IDM_MARK                    104
  58. #define IDM_FILTER_FIRST            200
  59. #define IDM_FILTER_HSZINFO          200
  60. #define IDM_FILTER_INIT_TERM        201
  61. #define IDM_FILTER_DDEMSGS          202
  62. #define IDM_FILTER_CALLBACKS        203
  63. #define IDM_FILTER_ERRORS           204
  64. #define IDM_FILTER_DIALOG           205
  65. #define IDM_TRACK_FIRST             301
  66. #define IDM_TRACK_HSZS              301
  67. #define IDM_TRACK_CONVS             302
  68. #define IDM_TRACK_LINKS             303
  69. #define IDM_TRACK_SVRS              304
  70. #define IDM_TRACK_LAST              304
  71. #define IDM_ABOUT                   401
  72. #define IDM_TEST                    402
  73. #define IDM_MSGF_0                  500
  74. #define IDM_MSGF_1                  501
  75. #define IDM_MSGF_2                  502
  76. #define IDM_MSGF_3                  503
  77. #define IDM_MSGF_4                  504
  78. #define IDM_MSGF_5                  505
  79. #define IDM_MSGF_6                  506
  80. #define IDM_MSGF_7                  507
  81. #define IDM_MSGF_8                  508
  82. #define IDM_CBF_0                   600
  83. #define IDM_CBF_1                   601
  84. #define IDM_CBF_2                   602
  85. #define IDM_CBF_3                   603
  86. #define IDM_CBF_4                   604
  87. #define IDM_CBF_5                   605
  88. #define IDM_CBF_6                   606
  89. #define IDM_CBF_7                   607
  90. #define IDM_CBF_8                   608
  91. #define IDM_CBF_9                   609
  92. #define IDM_CBF_10                  610
  93. #define IDM_CBF_11                  611
  94. #define IDM_CBF_12                  612
  95. #define IDM_CBF_13                  613
  96. #define IDM_CBF_14                  614
  97. #define IDS_TITLE                   0
  98. #define IDS_DEFAULT_OUTPUT_FNAME    1
  99. #define IDS_INIFNAME                2
  100. #define IDS_CLASS                   3
  101. #define IDS_HUH                     4
  102. #define IDS_ZERO                    5
  103. #define IDS_CRLF                    6
  104. #define IDS_TRACKTITLE_1            7
  105. #define IDS_TRACKTITLE_2            8
  106. #define IDS_TRACKTITLE_3            9
  107. #define IDS_TRACKTITLE_4            10
  108. #define IDS_TRACKHEADING_1          11
  109. #define IDS_TRACKHEADING_2          12
  110. #define IDS_TRACKHEADING_3          13
  111. #define IDS_TRACKHEADING_4          14
  112. #define IDS_QCLOSEFILE_TEXT         15
  113. #define IDS_QCLOSEFILE_CAPTION      16
  114. #define IDS_ACTION_CLEANEDUP        17
  115. #define IDS_ACTION_DESTROYED        18
  116. #define IDS_ACTION_INCREMENTED      19
  117. #define IDS_ACTION_CREATED          20
  118. #define IDS_SENT                    21
  119. #define IDS_POSTED                  22
  120. #define IDS_INPUT_DATA              23
  121. #define IDS_TABDDD                  24
  122. #define IDS_OUTPUT_DATA             25
  123. #define IDS_WARM                    26
  124. #define IDS_HOT                     27
  125. #define IDS_UNKNOWN_CALLBACK        28
  126. #define IDS_APPIS                   29
  127. #define IDS_TOPICIS                 30
  128. #define IDS_ITEMIS                  31
  129. #define IDS_OR                      32
  130. #define IDS_FACKREQ                 33
  131. #define IDS_DEFERUPD                34
  132. #define IDS_FACK                    35
  133. #define IDS_FBUSY                   36
  134. #define IDS_FRELEASE                37
  135. #define IDS_FREQUESTED              38
  136. #define IDS_ERRST0                  39
  137. #define IDS_ERRST1                  40
  138. #define IDS_ERRST2                  41
  139. #define IDS_ERRST3                  42
  140. #define IDS_ERRST4                  43
  141. #define IDS_ERRST5                  44
  142. #define IDS_ERRST6                  45
  143. #define IDS_ERRST7                  46
  144. #define IDS_ERRST8                  47
  145. #define IDS_ERRST9                  48
  146. #define IDS_ERRST10                 49
  147. #define IDS_ERRST11                 50
  148. #define IDS_ERRST12                 51
  149. #define IDS_ERRST13                 52
  150. #define IDS_ERRST14                 53
  151. #define IDS_ERRST15                 54
  152. #define IDS_ERRST16                 55
  153. #define IDS_ERRST17                 56
  154. #define IDS_MSG0                    57
  155. #define IDS_MSG1                    58
  156. #define IDS_MSG2                    59
  157. #define IDS_MSG3                    60
  158. #define IDS_MSG4                    61
  159. #define IDS_MSG5                    62
  160. #define IDS_MSG6                    63
  161. #define IDS_MSG7                    64
  162. #define IDS_MSG8                    65
  163. #define IDS_TYPE0                   66
  164. #define IDS_TYPE1                   67
  165. #define IDS_TYPE2                   68
  166. #define IDS_TYPE3                   69
  167. #define IDS_TYPE4                   70
  168. #define IDS_TYPE5                   71
  169. #define IDS_TYPE6                   72
  170. #define IDS_TYPE7                   73
  171. #define IDS_TYPE8                   74
  172. #define IDS_TYPE9                   75
  173. #define IDS_TYPE10                  76
  174. #define IDS_TYPE11                  77
  175. #define IDS_TYPE12                  78
  176. #define IDS_TYPE13                  79
  177. #define IDS_TYPE14                  80
  178. #define IDS_TYPE15                  81
  179. #define IDS_INVALID_FNAME           82
  180. #define IDS_PROF_OUT_FILE           83
  181. #define IDS_PROF_OUT_DEBUG          84
  182. #define IDS_PROF_OUT_SCREEN         85
  183. #define IDS_PROF_MONITOR_STRINGHANDLES   86
  184. #define IDS_PROF_MONITOR_INITIATES       87
  185. #define IDS_PROF_MONITOR_DDE_MESSAGES    88
  186. #define IDS_PROF_MONITOR_CALLBACKS       89
  187. #define IDS_PROF_MONITOR_ERRORS          90
  188. #define IDS_PROF_TRACK_STRINGHANDLES     91
  189. #define IDS_PROF_TRACK_LINKS             92
  190. #define IDS_PROF_TRACK_CONVERSATIONS     93
  191. #define IDS_PROF_TRACK_SERVICES          94
  192. #define IDS_PROF_TERSE              95
  193. #define IDS_YES                     96
  194. #define IDS_NO                      97
  195. #define IDS_MARKDLGTITLE            98
  196. #define IDS_SEPERATOR               99
  197. #define IDS_MARKTEXT                100
  198. #define IDS_LISTCLASS               101
  199. #define IDS_LBOX                    102
  200. #define IDS_WILD                    103
  201. #define IDS_STRINGCLASS             104
  202. #define IDS_FMT_CB1                 105
  203. #define IDS_FMT_CB2                 106
  204. #define IDS_FMT_CTXT1               107
  205. #define IDS_FMT_DATAIS1             108
  206. #define IDS_FMT_ER1                 109
  207. #define IDS_FMT_EXEC1               110
  208. #define IDS_FMT_MSG1                111
  209. #define IDS_FMT_MSG2                112
  210. #define IDS_FMT_STATUSIS            113
  211. #define IDS_FMT_TRS_CB1             114
  212. #define IDS_FMT_TRS_CB2             115
  213. #define IDS_FMT_TRS_CTXT1           116
  214. #define IDS_FMT_TRS_DATAIS1         117
  215. #define IDS_FMT_TRS_ER1             118
  216. #define IDS_FMT_TRS_EXEC1           119
  217. #define IDS_FMT_TRS_MSG1            120
  218. #define IDS_FMT_TRS_MSG2            121
  219. #define IDS_FMT_TRS_STATUSIS        122
  220. #define IDS_FMT_SH_MSG1             123
  221. #define IDS_FMT_BADATOM     124
  222. #define IDS_LAST                    124
  223. // IDS_LAST marks the last string ID that is used.
  224. #define T_ATOM                      0x0001
  225. #define T_OPTIONHANDLE              0x0002
  226. #define T_FORMAT                    0x0004
  227. #define T_STATUS                    0x0008
  228. #define T_DATAHANDLE                0x0010
  229. #define T_STRINGHANDLE              0x0020
  230. #define T_VALUE                     0x0040
  231. #define T_APP                       0x0080
  232. #define T_TOPIC                     0x0100
  233. #define T_ITEM                      0x0200
  234. #define T_OR                        0x0400
  235. #define IO_FILE                     0
  236. #define IO_DEBUG                    1
  237. #define IO_SCREEN                   2
  238. #define IO_COUNT                    3
  239. #define IF_HSZ                      0
  240. #define IF_SEND                     1
  241. #define IF_POST                     2
  242. #define IF_CB                       3
  243. #define IF_ERR                      4
  244. #define IF_COUNT                    5
  245. #define IT_HSZS                     0
  246. #define IT_CONVS                    1
  247. #define IT_LINKS                    2
  248. #define IT_SVRS                     3
  249. #define IT_COUNT                    4
  250. #define MAX_FNAME                   MAX_PATH
  251. #define BUFFER_SIZE                 400
  252. #define MAX_MARK                    32
  253. #define MAX_DISPDATA                48      // max bytes of non-text data to dump
  254. #define CLINES                      100
  255. #define CCHARS                      200
  256. extern HINSTANCE hInst;
  257. /* macro definitions */
  258. #define MyAlloc(cb)         (LPTSTR)LocalAlloc(LPTR, (cb))
  259. #define MyFree(p)           (LocalUnlock((HANDLE)(p)), LocalFree((HANDLE)(p)))
  260. #define RefString(id)       (LPTSTR)apszResources[id]
  261. #define Type2String(type)   apszResources[IDS_TYPE0 + ((type & XTYP_MASK) >> XTYP_SHIFT)]
  262. #define MPRT(b)             (isprint(b) ? (b) : '.')
  263. /* prototype definitions */
  264. BOOL InitApplication(HANDLE);
  265. BOOL InitInstance(HANDLE, INT);
  266. VOID CloseApp(VOID);
  267. LONG CALLBACK MainWndProc(HWND, UINT, WPARAM, LPARAM);
  268. BOOL CALLBACK About(HWND, UINT, WPARAM, LPARAM);
  269. BOOL SetFilters(VOID);
  270. BOOL CALLBACK OpenDlg(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
  271. BOOL CALLBACK FilterDlgProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
  272. LPTSTR DisectMsgLP(UINT msg, MONMSGSTRUCT *pmms, LPTSTR pszBuf);
  273. LPTSTR DisectWord(UINT type, UINT data, DDEML_MSG_HOOK_DATA *pdmhd, LPTSTR pstr);
  274. LPTSTR pdf(UINT fmt);
  275. LPTSTR DumpFormat(UINT fmt, LPTSTR pstr);
  276. LPTSTR DdeMsg2String(UINT msg);
  277. LPTSTR Error2String(UINT error);
  278. LPTSTR DumpData(LPBYTE pData, UINT cb, TCHAR *szBuf, UINT fmt);
  279. LPTSTR GetHszName(HSZ hsz);
  280. VOID OutputString(LPTSTR pstr);
  281. VOID GetProfile(VOID);
  282. VOID SaveProfile(VOID);
  283. BOOL GetProfileBoolean(LPTSTR pszKey, BOOL fDefault);
  284. VOID SetProfileBoolean(LPTSTR pszKey, BOOL fSet);
  285. HDDEDATA CALLBACK DdeCallback(UINT wType, UINT wFmt, HCONV hConv, HSZ hsz1,
  286.       HSZ hsz2, HDDEDATA hData, UINT lData1, UINT lData2);
  287. INT FAR DoDialog(LPTSTR lpTemplateName, DLGPROC lpDlgProc, UINT param,
  288.       BOOL fRememberFocus, HWND hwndParent, HANDLE hInst);
  289. BOOL  CALLBACK MarkDlgProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
  290. /* testsubs.c prototypes */
  291. /* StringWindow structure */
  292. typedef struct {
  293.     INT cchLine;
  294.     INT cLine;
  295.     INT offBuffer;
  296.     INT offBufferMax;
  297.     INT offBottomLine;
  298.     INT offOutput;
  299.     INT cBottomLine;
  300.     INT cLeftChar;
  301. } STRWND;
  302. BOOL InitTestSubs(VOID);
  303. VOID CloseTestSubs(HANDLE hInst);
  304. VOID NextLine(STRWND *psw);
  305. VOID DrawString(HWND hwnd, TCHAR *sz);
  306. VOID ClearScreen(STRWND *psw);
  307. LONG CALLBACK StrWndProc(HWND hwnd, UINT msg, WPARAM wParam, UINT lParam);
  308. VOID scroll(HWND hwnd, UINT msg, UINT sliderpos, UINT style);
  309. BOOL StrWndCreate(HWND hwnd, INT cchLine, INT cLine);
  310. VOID PaintStrWnd(HWND hwnd, LPPAINTSTRUCT pps);
  311. #define strchr      My_mbschr
  312. #ifdef stricmp
  313. #undef stricmp
  314. #endif
  315. #define stricmp     lstrcmpi
  316. LPTSTR _CRTAPI1 My_mbschr(LPTSTR, unsigned short);