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

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. #include <windows.h>
  11. #include <ddeml.h>
  12. #include <tchar.h>
  13. #define IDM_ABOUT 100
  14. #define IDM_BLOCKALLCBS 200
  15. #define IDM_ENABLEONECB 201
  16. #define IDM_BLOCKNEXTCB 202
  17. #define IDM_TERMNEXTCB  203
  18. #define IDM_RUNAWAY     204
  19. #define IDM_CHANGEDATA  205
  20. #define IDM_RENDERDELAY 206
  21. #define IDM_SETTOPIC    207
  22. #define IDM_SETSERVER   208
  23. #define IDM_UNBLOCKALLCBS 209
  24. #define IDM_HELP        210
  25. #define IDM_CONTEXT     211
  26. #define IDM_APPOWNED    212
  27. #define IDS_BADLENGTH   1
  28. #define MAX_TOPIC       20
  29. #define MAX_COMMENT     40
  30. #define MAX_EXEC        40
  31. #define CCHARS          80
  32. #define CLINES          40
  33. #define UM_CHGDATA      (WM_USER + 435)
  34. #define CSYSTEMITEMS 4
  35. #define CTESTITEMS  4
  36. #define CTOPICS     2
  37. #include "dialog.h"
  38. /****** Structrues ******/
  39. // predefined format list item
  40. typedef struct {
  41.     ATOM atom;
  42.     PTSTR sz;
  43. } FORMATINFO;
  44. #define CFORMATS 3
  45. extern FORMATINFO aFormats[];
  46. typedef struct _XFERINFO {
  47.     UINT wType;
  48.     UINT wFmt;
  49.     HCONV hConv;
  50.     HSZ hszTopic;
  51.     HSZ hszItem;
  52.     HDDEDATA hData;
  53.     DWORD lData1;
  54.     DWORD lData2;
  55. } XFERINFO;
  56. typedef XFERINFO *PXFERINFO;
  57. typedef struct _ITEMLIST {
  58.     HSZ hszItem;
  59.     HDDEDATA (*npfnCallback)(PXFERINFO, WORD);
  60.     PTSTR pszItem;
  61. } ITEMLIST;
  62. typedef struct _TOPICLIST {
  63.     HSZ hszTopic;
  64.     ITEMLIST *pItemList;
  65.     UINT cItems;
  66.     PTSTR pszTopic;
  67. } TOPICLIST;
  68. typedef struct {    // used to passinfo to/from TextDataEntryDlgProc and
  69.     HDDEDATA hDdeData;
  70.     UINT wFmt;
  71.     HSZ hszItem;
  72. } XACT;
  73. // GLOBALS
  74. extern DWORD idInst;
  75. extern CONVCONTEXT CCFilter;
  76. extern HANDLE hInst;
  77. extern HWND hwndServer;
  78. extern RECT rcRand;
  79. extern RECT rcCount;
  80. extern RECT rcComment;
  81. extern RECT rcExec;
  82. extern RECT rcConnCount;
  83. extern RECT rcRndrDelay;
  84. extern RECT rcRunaway;
  85. extern RECT rcAllBlock;
  86. extern RECT rcNextAction;
  87. extern RECT rcHugeSize;
  88. extern RECT rcAppowned;
  89. extern BOOL fAllBlocked;
  90. extern BOOL fAllEnabled;
  91. extern BOOL fEnableOneCB;
  92. extern BOOL fBlockNextCB;
  93. extern BOOL fTermNextCB;
  94. extern BOOL fAppowned;
  95. extern WORD cRunaway;
  96. extern WORD RenderDelay;
  97. extern DWORD count;
  98. extern HSZ hszAppName;
  99. extern TCHAR szClass[];
  100. extern TCHAR szTopic[MAX_TOPIC];
  101. extern TCHAR szServer[MAX_TOPIC];
  102. extern TCHAR szComment[MAX_COMMENT];
  103. extern TCHAR szExec[MAX_EXEC];
  104. extern TCHAR *pszComment;
  105. extern WORD seed;
  106. extern WORD cyText;
  107. extern WORD cServers;
  108. extern HDDEDATA hDataHelp[CFORMATS];
  109. extern HDDEDATA hDataCount[CFORMATS];
  110. extern HDDEDATA hDataRand[CFORMATS];
  111. extern HDDEDATA hDataHuge[CFORMATS];
  112. extern DWORD cbHuge;
  113. extern TCHAR szDdeHelp[];
  114. extern FORMATINFO aFormats[CFORMATS];
  115. extern ITEMLIST SystemTopicItemList[CSYSTEMITEMS];
  116. extern ITEMLIST TestTopicItemList[CTESTITEMS];
  117. extern TOPICLIST topicList[CTOPICS];
  118. // FUNCTIONS
  119. BOOL InitApplication(HANDLE);
  120. BOOL InitInstance(HANDLE, INT);
  121. INT FAR DoDialog(LPTSTR lpTemplateName, DLGPROC lpDlgProc, LPARAM param, BOOL fRememberFocus);
  122. LONG  APIENTRY MainWndProc(HWND, UINT, WPARAM, LONG);
  123. BOOL  APIENTRY About(HWND, UINT, WPARAM, LONG);
  124. BOOL  APIENTRY RenderDelayDlgProc(HWND, UINT, WPARAM, LONG);
  125. BOOL  APIENTRY SetTopicDlgProc(HWND, UINT, WPARAM, LONG);
  126. BOOL  APIENTRY SetServerDlgProc(HWND, UINT, WPARAM, LONG);
  127. BOOL  APIENTRY ContextDlgProc(HWND, UINT, WPARAM, LONG);
  128. VOID PaintServer(HWND hwnd);
  129. VOID DrawTextLine(HDC hdc, RECT *prcClip, RECT *prcText, PTSTR psz);
  130. HDDEDATA CALLBACK DdeCallback(UINT wType, UINT wFmt, HCONV hConv, HSZ hszTopic,
  131.         HSZ hszItem, HDDEDATA hData, DWORD lData1, DWORD lData2);
  132. HDDEDATA TopicListXfer(PXFERINFO pXferInfo, WORD iFmt);
  133. HDDEDATA ItemListXfer(PXFERINFO pXferInfo, WORD iFmt);
  134. HDDEDATA sysFormatsXfer(PXFERINFO pXferInfo, WORD iFmt);
  135. HDDEDATA TestRandomXfer(PXFERINFO pXferInfo, WORD iFmt);
  136. HDDEDATA TestCountXfer(PXFERINFO pXferInfo, WORD iFmt);
  137. HDDEDATA TestHugeXfer(PXFERINFO pXferInfo, WORD iFmt);
  138. HDDEDATA HelpXfer(PXFERINFO pXferInfo, WORD iFmt);
  139. VOID Hszize(VOID);
  140. VOID UnHszize(VOID);
  141. VOID Delay(DWORD delay, BOOL fModal);