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

Windows编程

开发平台:

Visual C++

  1. // THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
  2. // ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
  3. // THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
  4. // PARTICULAR PURPOSE.
  5. //
  6. // Copyright (C) 1993-1997  Microsoft Corporation.  All Rights Reserved.
  7. //
  8. // PURPOSE:
  9. //    Contains declarations for all globally scoped names in the program.
  10. //
  11. //-------------------------------------------------------------------------
  12. // Product identifier string defines
  13. // #define APPNAME       IPXChat
  14. // #define SZVERSION     "Version 4.0"
  15. //-------------------------------------------------------------------------
  16. // Functions for handling main window messages.  The message-dispatching
  17. // mechanism expects all message-handling functions to have the following
  18. // prototype:
  19. //
  20. //     LRESULT FunctionName(HWND, UINT, WPARAM, LPARAM);
  21. LRESULT MsgCreate(HWND, UINT, WPARAM, LPARAM);
  22. LRESULT MsgSize(HWND, UINT, WPARAM, LPARAM);
  23. LRESULT MsgSetfocus(HWND, UINT, WPARAM, LPARAM);
  24. LRESULT MsgCommand(HWND, UINT, WPARAM, LPARAM);
  25. LRESULT MsgDataready(HWND, UINT, WPARAM, LPARAM);
  26. LRESULT MsgRefreshdisplay(HWND, UINT, WPARAM, LPARAM);
  27. LRESULT MsgDisconnected(HWND, UINT, WPARAM, LPARAM);
  28. LRESULT MsgDestroy(HWND, UINT, WPARAM, LPARAM);
  29. //-------------------------------------------------------------------------
  30. // Functions for handling main window commands--ie. functions for
  31. // processing WM_COMMAND messages based on the wParam value.
  32. // The message-dispatching mechanism expects all command-handling
  33. // functions to have the following prototype:
  34. //
  35. //     LRESULT FunctionName(HWND, WORD, WORD, HWND);
  36. LRESULT CmdConnect(HWND, WORD, WORD, HWND);
  37. LRESULT CmdListen(HWND, WORD, WORD, HWND);
  38. LRESULT CmdExit(HWND, WORD, WORD, HWND);
  39. LRESULT CmdAbout(HWND, WORD, WORD, HWND);
  40. LRESULT CmdOutbox(HWND, WORD, WORD, HWND);
  41. LRESULT CmdDisconnect(HWND, WORD, WORD, HWND);
  42. //-------------------------------------------------------------------------
  43. // Global function prototypes.
  44. BOOL InitApplication(HINSTANCE, int);
  45. BOOL CenterWindow(HWND, HWND);
  46. BOOL ReceiveInBox(HWND, WPARAM, LPARAM, char *, int);
  47. void SendOutBox(char *, int);
  48. void AtoH(char *, char *, int);
  49. unsigned char BtoH(char);
  50. void CleanUp(void);
  51. void GetAddrString(PSOCKADDR_IPX, char *);
  52. void HtoA(char *, char *, int);
  53. char HtoB(UCHAR);
  54. LPTSTR GetStringRes (int id);
  55. // Callback functions.  These are called by Windows.
  56. // **TODO**  Add new callback function prototypes here.
  57. LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
  58. //-------------------------------------------------------------------------
  59. // Command ID definitions.  These definitions are used to associate menu
  60. // items with commands.
  61. // Options menu
  62. #define IDM_CONNECT    1000
  63. #define IDM_LISTEN     1001
  64. #define IDM_DISCONNECT 1002
  65. #define IDM_EXIT       1003
  66. // Help menu
  67. #define IDM_ABOUT      1100
  68. //-------------------------------------------------------------------------
  69. // User Defined Messages.  These definitions are used for indicating 
  70. // network events.
  71. #define MW_DATAREADY       501
  72. #define MW_DISPLAYREFRESH  502
  73. #define MW_DISCONNECTED    503
  74. #define LDM_CONNECTED      504
  75. //-------------------------------------------------------------------------
  76. // String Table ID definitions.
  77. #define IDS_APPNAME     1
  78. #define IDS_DESCRIPTION 2
  79. //-------------------------------------------------------------------------
  80. //  Main Window Edit Control defines.
  81. #define ID_OUTBOX          601
  82. #define ID_INBOX           602
  83. //-------------------------------------------------------------------------
  84. //  About dialog defines.
  85. #define IDD_VERFIRST    100
  86. #define IDD_VERLAST     104
  87. //-------------------------------------------------------------------------
  88. //  Connect dialog defines.
  89. #define CD_STATUS       200
  90. #define CD_NETWORK      201
  91. #define CD_NODE         202
  92. #define CD_SOCKET       203
  93. //-------------------------------------------------------------------------
  94. //  Listen dialog defines.
  95. #define LD_SOCKET       300
  96. #define LD_STATUS       301
  97. //-------------------------------------------------------------------------
  98. // Global variable declarations.
  99. extern HINSTANCE hInst;          // The current instance handle
  100. extern char      szAppName[];    // The name of this application
  101. extern char      szTitle[];      // The title bar text
  102. SOCKET sock, SrvSock;
  103. SOCKADDR_IPX RemAddr;
  104. PSOCKADDR_IPX pSockAddr, pRemAddr;
  105. struct sockaddr addr;
  106. int addrlen;
  107. HWND hOutWnd, hInWnd;
  108. char szRcvBuf[0x8000];
  109. char szSndBuf[0x8000];
  110. extern char szConnectNetwork[];
  111. extern char szConnectNode[];
  112. extern char szConnectSocket[];
  113. extern char szListenSocket[];
  114. extern BOOL i_should_sleep;
  115. // For NON-MDI applications, uncomment line 1 below and comment
  116. // line 2.  For MDI applications, uncomment line 2 below, comment
  117. // line 1, and then define hwndMDIIPXChat as a global variable in
  118. // INIT.C
  119. #define hwndMDIIPXChat NULL        /* (1) Stub for NON-MDI applications. */
  120. // extern HWND hwndMDIIPXChat;     /* (2) For MDI applications.          */
  121. //-------------------------------------------------------------------------
  122. // Message and command dispatch infrastructure.  The following type
  123. // definitions and functions are used by the message and command dispatching
  124. // mechanism and do not need to be changed.
  125.     // Function pointer prototype for message handling functions.
  126. typedef LRESULT (*PFNMSG)(HWND,UINT,WPARAM,LPARAM);
  127.     // Function pointer prototype for command handling functions.
  128. typedef LRESULT (*PFNCMD)(HWND,WORD,WORD,HWND);
  129.     // Enumerated type used to determine which default window procedure
  130.     // should be called by the message- and command-dispatching mechanism
  131.     // if a message or command is not handled explicitly.
  132. typedef enum
  133. {
  134.    edwpNone,            // Do not call any default procedure.
  135.    edwpWindow,          // Call DefWindowProc.
  136.    edwpDialog,          // Call DefDlgProc (This should be used only for
  137.                         // custom dialogs - standard dialog use edwpNone).
  138.    edwpMDIChild,        // Call DefMDIChildProc.
  139.    edwpMDIFrame         // Call DefFrameProc.
  140. } EDWP;                // Enumeration for Default Window Procedures
  141.     // This structure maps messages to message handling functions.
  142. typedef struct _MSD
  143. {
  144.     UINT   uMessage;
  145.     PFNMSG pfnmsg;
  146. } MSD;                 // MeSsage Dispatch structure
  147.     // This structure contains all of the information that a window
  148.     // procedure passes to DispMessage in order to define the message
  149.     // dispatching behavior for the window.
  150. typedef struct _MSDI
  151. {
  152.     int  cmsd;          // Number of message dispatch structs in rgmsd
  153.     MSD *rgmsd;         // Table of message dispatch structures
  154.     EDWP edwp;          // Type of default window handler needed.
  155. } MSDI, FAR *LPMSDI;   // MeSsage Dipatch Information
  156.     // This structure maps command IDs to command handling functions.
  157. typedef struct _CMD
  158. {
  159.     WORD   wCommand;
  160.     PFNCMD pfncmd;
  161. } CMD;                 // CoMmand Dispatch structure
  162.     // This structure contains all of the information that a command
  163.     // message procedure passes to DispCommand in order to define the
  164.     // command dispatching behavior for the window.
  165. typedef struct _CMDI
  166. {
  167.     int  ccmd;          // Number of command dispatch structs in rgcmd
  168.     CMD *rgcmd;         // Table of command dispatch structures
  169.     EDWP edwp;          // Type of default window handler needed.
  170. } CMDI, FAR *LPCMDI;   // CoMmand Dispatch Information
  171.     // Message and command dispatching functions.  They look up messages
  172.     // and commands in the dispatch tables and call the appropriate handler
  173.     // function.
  174. LRESULT DispMessage(LPMSDI, HWND, UINT, WPARAM, LPARAM);
  175. LRESULT DispCommand(LPCMDI, HWND, WPARAM, LPARAM);
  176.     // Message dispatch information for the main window
  177. extern MSDI msdiMain;
  178.     // Command dispatch information for the main window
  179. extern CMDI cmdiMain;
  180. //-------------------------------------------------------------------------
  181. // Version string definitions--Leave these alone.
  182. #define SZRCOMPANYNAME "CompanyName"
  183. #define SZRDESCRIPTION "FileDescription"
  184. #define SZRVERSION     "FileVersion"
  185. #define SZRAPPNAME     "InternalName"
  186. #define SZRCOPYRIGHT   "LegalCopyright"
  187. #define SZRTRADEMARK   "LegalTrademarks"
  188. #define SZRPRODNAME    "ProductName"
  189. #define SZRPRODVER     "ProuctVersion"