GLOBALS.H
资源名称:MSDN_VC98.zip [点击查看]
上传用户:bangxh
上传日期:2007-01-31
资源大小:42235k
文件大小:12k
源码类别:
Windows编程
开发平台:
Visual C++
- // THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
- // ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
- // THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
- // PARTICULAR PURPOSE.
- //
- // Copyright (C) 1993-1997 Microsoft Corporation. All Rights Reserved.
- //
- // PURPOSE:
- // Contains declarations for all globally scoped names in the program.
- //
- //-------------------------------------------------------------------------
- // Product identifier string defines
- #define APPNAME GlobCl
- //-------------------------------------------------------------------------
- // Functions for handling main window messages. The message-dispatching
- // mechanism expects all message-handling functions to have the following
- // prototype:
- //
- // LRESULT FunctionName(HWND, UINT, WPARAM, LPARAM);
- LRESULT MsgCreate(HWND, UINT, WPARAM, LPARAM);
- LRESULT MsgSize(HWND, UINT, WPARAM, LPARAM);
- LRESULT MsgSetfocus(HWND, UINT, WPARAM, LPARAM);
- LRESULT MsgCommand(HWND, UINT, WPARAM, LPARAM);
- LRESULT MsgDataready(HWND, UINT, WPARAM, LPARAM);
- LRESULT MsgRefreshdisplay(HWND, UINT, WPARAM, LPARAM);
- LRESULT MsgDisconnected(HWND, UINT, WPARAM, LPARAM);
- LRESULT MsgDestroy(HWND, UINT, WPARAM, LPARAM);
- //-------------------------------------------------------------------------
- // Functions for handling main window commands--ie. functions for
- // processing WM_COMMAND messages based on the wParam value.
- // The message-dispatching mechanism expects all command-handling
- // functions to have the following prototype:
- //
- // LRESULT FunctionName(HWND, WORD, WORD, HWND);
- LRESULT CmdConnect(HWND, WORD, WORD, HWND);
- LRESULT CmdSelect(HWND, WORD, WORD, HWND);
- LRESULT CmdExit(HWND, WORD, WORD, HWND);
- LRESULT CmdAbout(HWND, WORD, WORD, HWND);
- LRESULT CmdOutbox(HWND, WORD, WORD, HWND);
- LRESULT CmdDisconnect(HWND, WORD, WORD, HWND);
- LRESULT CmdEndChat(HWND, WORD, WORD, HWND);
- //
- // Socket Data transfer Message definitions
- //
- typedef struct _MSGHDR // Message Header
- {
- BYTE signature; // Identifies start of a message
- WORD length; // size of message
- BYTE command; // message command
- } MSGHDR, *LPMSGHDR;
- typedef struct _DATAMSG // Message--contains header + data
- {
- MSGHDR hdr;
- BYTE data[0x8000]; // data
- } DATAMSG, *LPDATAMSG;
- DATAMSG xferbuf;
- // Message constants
- #define HDRSIZE sizeof(MSGHDR) // Size of Message header
- #define REALLEN(x) lstrlen(x) + 1 // REALLEN will now count terminating NULL of x
- // Globchat socket data structure to hold all necessary socket information
- //
- typedef struct _SOCKDATA
- {
- SOCKET sock; // socket handle
- int status; // Socket's status
- struct sockaddr addr; // Address structure
- char reserved[10]; // Generic sockaddr struct is not big enough for all
- // addresses (namely netbios addresses) so adding some
- // space at the end.
- int addrlen; // Address length
- int type; // Socket type (from socket() call)
- int protocol; // protocol (from socket() call)
- int currconnects; // Number of current connections on this socket
- SOCKET peer; // Handle of server's peer socket we are connected to
- char name[16]; // Our name
- } SOCKDATA, *LPSOCKDATA;
- SOCKDATA MySock;
- // SOCKDATA structure status options
- #define SOCKSTAT_INIT 1
- #define SOCKSTAT_LISTENING 2
- #define SOCKSTAT_ACCEPTING 3
- #define SOCKSTAT_CLOSED 4
- #define SOCKSTAT_CONNECTED 5
- #define SOCKSTAT_AVAILABLE 6
- #define SOCKSTAT_INSESSION 7
- #define SOCKSTAT_REQSESSION 8
- //-------------------------------------------------------------------------
- // Global function prototypes.
- BOOL InitApplication(HINSTANCE, int);
- BOOL CenterWindow(HWND, HWND);
- BOOL ReceiveInBox(HWND, WPARAM, LPARAM, char *, int);
- void SendOutBox(char *, int);
- void AtoH(char *, char *, int);
- unsigned char BtoH(char);
- void CleanUp(void);
- void GetAddrString(PSOCKADDR_IPX, char *);
- void HtoA(char *, char *, int);
- char HtoB(UCHAR);
- BOOL senddatamessage (SOCKET, LPDATAMSG);
- BOOL recvdatamessage (LPSOCKDATA, LPDATAMSG);
- LPTSTR GetStringRes (int id);
- // Callback functions. These are called by Windows.
- LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
- //-------------------------------------------------------------------------
- // Command ID definitions. These definitions are used to associate menu
- // items with commands.
- // Options menu
- #define IDM_CONNECT 1000
- #define IDM_SELECT 1001
- #define IDM_END_CHAT 1002
- #define IDM_DISCONNECT_SERVER 1003
- #define IDM_EXIT 1004
- // Help menu
- #define IDM_ABOUT 1100
- //-------------------------------------------------------------------------
- // User Defined Messages. These definitions are used for indicating
- // network events.
- #define MW_DATAREADY 501
- #define MW_DISPLAYREFRESH 502
- #define MW_DISCONNECTED 503
- #define LDM_CONNECTED 504
- //-------------------------------------------------------------------------
- // String Table ID definitions.
- #define IDS_APPNAME 1
- #define IDS_DESCRIPTION 2
- #define IDS_FILEINFOLANG 3
- #define IDS_CHAT_AVAIL 4
- #define IDS_ERR_SERVER_NOT_FOUND 5
- #define IDS_ERR_NAMESPACE_NOT_SUPPORTED 6
- #define IDS_ERR_SOCKET_FAILED 7
- #define IDS_ERR_CONNECT_FAILED 8
- #define IDS_ERR_WSAASYNCSELECT 9
- #define IDS_ERR_UNSUPPORTED_PROTOCOL 10
- #define IDS_ERR_CONNECTION_DROPPED 11
- #define IDS_CALLING_SOCKET 12
- #define IDS_CALLING_CONNECT 13
- #define IDS_WAITING_FOR_ACCEPT 14
- #define IDS_SELECT_PROTOCOL 15
- #define IDS_ENTER_NAME 16
- #define IDS_ENTER_MACHINE_NAME 17
- #define IDS_CONNECTION_STOPPED 18
- #define IDS_CHAT_DLG_STOPPED 19
- #define IDS_CHAT_AVAILABLE 20
- #define IDS_CHATTING_REMOTE 21
- #define IDS_REQUESTS_CHAT 22
- #define IDS_SESSION_REQUEST 23
- //-------------------------------------------------------------------------
- // Main Window Edit Control defines.
- #define ID_OUTBOX 601
- #define ID_INBOX 602
- //-------------------------------------------------------------------------
- // About dialog defines.
- #define IDD_VERFIRST 100
- #define IDD_VERLAST 104
- //-------------------------------------------------------------------------
- // Connect dialog defines.
- #define CD_NAME 200
- #define CD_PROTOCOL 201
- #define CD_SERVER 202
- #define CD_SERVER_TEXT 203
- #define CD_HELP 204
- //-------------------------------------------------------------------------
- // Select dialog defines.
- #define SD_LIST 300
- //-------------------------------------------------------------------------
- // Globchat socket message commands
- #define REGISTER_NAME 1
- #define XFER_DATA 2
- #define REQUEST_SESSION 3
- #define SESSION_REQUEST_RESPONSE 4
- #define SESSION_CLOSE 5
- #define DEREGISTER_NAME 6
- //-------------------------------------------------------------------------
- // Socket constants
- #define MYSIGNATURE 0xCC // Starts every globchat socket message header
- #define NWCHATID 0x0756 // 0x0756 (network order) was assigned by Novell
- // for this specific application
- #define DNSCHATID 0x555 // Well known socket for DNS GUID generation
- //-------------------------------------------------------------------------
- // Global variable declarations.
- extern HINSTANCE hInst; // The current instance handle
- extern char szAppName[]; // The name of this application
- extern char szTitle[]; // The title bar text
- SOCKET sock, SrvSock;
- SOCKADDR_IPX RemAddr;
- PSOCKADDR_IPX pSockAddr, pRemAddr;
- struct sockaddr addr;
- int addrlen;
- HWND hOutWnd, hInWnd;
- char szRcvBuf[0x8000];
- char szSndBuf[0x8000];
- extern char szConnectName[];
- extern char szConnectServer[];
- CSADDR_INFO CSAInfo[10];
- CSADDR_INFO CSABuf[20];
- DWORD dwCSABufsize;
- char peername[16];
- LPPROTOCOL_INFO lpProtBuf;
- int goodprots[30];
- char lpServName[256];
- SOCKADDR_NB NBAddr;
- SOCKADDR_IPX IPXAddr;
- #define hwndMDIGlobCl NULL /* Stub for NON-MDI applications. */
- //-------------------------------------------------------------------------
- // Message and command dispatch infrastructure. The following type
- // definitions and functions are used by the message and command dispatching
- // mechanism and do not need to be changed.
- // Function pointer prototype for message handling functions.
- typedef LRESULT (*PFNMSG)(HWND,UINT,WPARAM,LPARAM);
- // Function pointer prototype for command handling functions.
- typedef LRESULT (*PFNCMD)(HWND,WORD,WORD,HWND);
- // Enumerated type used to determine which default window procedure
- // should be called by the message- and command-dispatching mechanism
- // if a message or command is not handled explicitly.
- typedef enum
- {
- edwpNone, // Do not call any default procedure.
- edwpWindow, // Call DefWindowProc.
- edwpDialog, // Call DefDlgProc (This should be used only for
- // custom dialogs - standard dialog use edwpNone).
- edwpMDIChild, // Call DefMDIChildProc.
- edwpMDIFrame // Call DefFrameProc.
- } EDWP; // Enumeration for Default Window Procedures
- // This structure maps messages to message handling functions.
- typedef struct _MSD
- {
- UINT uMessage;
- PFNMSG pfnmsg;
- } MSD; // MeSsage Dispatch structure
- // This structure contains all of the information that a window
- // procedure passes to DispMessage in order to define the message
- // dispatching behavior for the window.
- typedef struct _MSDI
- {
- int cmsd; // Number of message dispatch structs in rgmsd
- MSD *rgmsd; // Table of message dispatch structures
- EDWP edwp; // Type of default window handler needed.
- } MSDI, FAR *LPMSDI; // MeSsage Dipatch Information
- // This structure maps command IDs to command handling functions.
- typedef struct _CMD
- {
- WORD wCommand;
- PFNCMD pfncmd;
- } CMD; // CoMmand Dispatch structure
- // This structure contains all of the information that a command
- // message procedure passes to DispCommand in order to define the
- // command dispatching behavior for the window.
- typedef struct _CMDI
- {
- int ccmd; // Number of command dispatch structs in rgcmd
- CMD *rgcmd; // Table of command dispatch structures
- EDWP edwp; // Type of default window handler needed.
- } CMDI, FAR *LPCMDI; // CoMmand Dispatch Information
- // Message and command dispatching functions. They look up messages
- // and commands in the dispatch tables and call the appropriate handler
- // function.
- LRESULT DispMessage(LPMSDI, HWND, UINT, WPARAM, LPARAM);
- LRESULT DispCommand(LPCMDI, HWND, WPARAM, LPARAM);
- // Message dispatch information for the main window
- extern MSDI msdiMain;
- // Command dispatch information for the main window
- extern CMDI cmdiMain;
- //-------------------------------------------------------------------------
- // Version string definitions--Leave these alone.
- #define SZRCOMPANYNAME "CompanyName"
- #define SZRDESCRIPTION "FileDescription"
- #define SZRVERSION "FileVersion"
- #define SZRAPPNAME "InternalName"
- #define SZRCOPYRIGHT "LegalCopyright"
- #define SZRTRADEMARK "LegalTrademarks"
- #define SZRPRODNAME "ProductName"
- #define SZRPRODVER "ProuctVersion"