wsock.h

来自「wince下的源代码集合打包」· C头文件 代码 · 共 198 行

H
198
字号
/**********************************************************************//**                        Microsoft Windows                         **//**Copyright (c) 1993-2000 Microsoft Corporation.  All rights reserved.**//**********************************************************************//*    wsock.h    WSOCK.386 VxD service definitions.*/#ifndef _WSOCK_H_#define _WSOCK_H_////  Version numbers.//#define WSOCK_Ver_Major         1#define WSOCK_Ver_Minor         0////  The current provider interface version number.  Increment//  this constant after any change that effects the provider//  interface.//#define WSOCK_INTERFACE_VERSION 0x80000001////  All FD_* events.//#define FD_ALL  (FD_READ | FD_WRITE | FD_OOB | FD_ACCEPT | FD_CONNECT | FD_CLOSE)// moved the following from DLL#define READ_EVENTS     (FD_READ | FD_CLOSE | FD_ACCEPT)#define WRITE_EVENTS    (FD_WRITE | FD_CONNECT)#define EXCEPT_EVENTS   (FD_OOB | FD_FAILED_CONNECT)////  This "special" FD_ event is used in select so that we may//  synthesize proper exceptfds for failed connection attempts.//#define FD_FAILED_CONNECT   0x0100////  Infinite wait time for send/recv timeout.//#define SOCK_IO_TIME            (DWORD)-1L////  A list of socket/event mask pairs.  A pointer to an array//  of these structures is passed to WsCreateMultipleNotify to//  create multiple notification objects.//typedef struct _SOCK_LIST {	DWORD			hSocket;			// handle to socket passed in from dll layer    struct _SOCK_INFO	*Socket;             // the target socket    DWORD   	    EventMask;          // events the client is interested in    DWORD	      	Context;            // user-defined context value (handle?)				// no need to confuse people Context is just a SOCKET} SOCK_LIST, *LPSOCK_LIST, *PSOCK_LIST;// added for select funtionalitytypedef struct _PEGNOTIFY {	LIST_ENTRY			PerSocketList;	LIST_ENTRY			GlobalList;		// we may need this later for WSAClose	struct _SOCK_INFO	*pSocket;	DWORD				EventMask;	HANDLE				hEvent;} PEGNOTIFY, * PPEGNOTIFY;#ifndef SOCKHAND_DEFINEDDECLARE_HANDLE(SOCKHAND);typedef SOCKHAND *PSOCKHAND;#define SOCKHAND_DEFINED#endif// Include the AFD functions.#include "afdfunc.h"//// Socket Handle API calls//#define WINSOCK_CALL(type, api, args)	(*(type (*) args)IMPLICIT_CALL(HT_SOCKET, api))#define 	AFDCloseSocket WINSOCK_CALL (DWORD, 0, 			\					(SOCKHAND     Socket))#define 	AFDAccept WINSOCK_CALL (DWORD, 2, 				\					 (SOCKHAND   ListeningSocket, 			\					  PSOCKHAND  ConnectedSocket,			\					  LPSOCKADDR Address,					\					  LPDWORD	 AddrLen,					\					  CRITICAL_SECTION	*pDllCS))#define 	AFDBind WINSOCK_CALL (DWORD, 3, \					(SOCKHAND     Socket, \					 LPSOCKADDR   Address, \					 DWORD        AddressLength, \					 CRITICAL_SECTION	*pDllCS))#define 	AFDConnect WINSOCK_CALL (DWORD, 4, \					(SOCKHAND     Socket, \					 LPSOCKADDR   Address, \					 DWORD        AddressLength, \					 CRITICAL_SECTION	*pDllCS))							 #define 	AFDIoctl WINSOCK_CALL (DWORD, 5, \					(SOCKHAND      Socket, \					 DWORD         Command, \					 LPDWORD       Param, \					 CRITICAL_SECTION	*pDllCS))#define 	AFDListen WINSOCK_CALL (DWORD, 6, \					(SOCKHAND      Socket, \					 DWORD         Backlog,	\					 CRITICAL_SECTION	*pDllCS))		 #define 	AFDRecv WINSOCK_CALL (DWORD, 7, \					(SOCKHAND      Socket, \					 LPBYTE        Buffer, \					 DWORD         BufferLength, \					 DWORD         Flags, \					 LPSOCKADDR    Address, \					 LPDWORD       AddressLength, \					 LPDWORD       BytesReceived, \					 CRITICAL_SECTION	*pDllCS))#define 	AFDSend WINSOCK_CALL (DWORD, 8, \					(SOCKHAND      Socket, \					 LPBYTE        Buffer, \					 DWORD         BufferLength, \					 DWORD         Flags, \					 LPSOCKADDR    Address, \					 DWORD         AddressLength, \					 LPDWORD       BytesSent, \					 CRITICAL_SECTION	*pDllCS))							 #define 	AFDShutdown WINSOCK_CALL (DWORD, 9,				\					(SOCKHAND      Socket,					\					 DWORD         How,						\					 CRITICAL_SECTION	*pDllCS))					 #define 	AFDGetsockname WINSOCK_CALL (DWORD, 10,			\					(SOCKHAND      Socket,					\					 LPSOCKADDR    Address,					\					 LPDWORD       AddressLength,			\					 CRITICAL_SECTION	*pDllCS))#define 	AFDGetpeername WINSOCK_CALL (DWORD, 11,			\					(SOCKHAND      Socket,					\					 LPSOCKADDR    Address,					\					 LPDWORD       AddressLength,			\					 CRITICAL_SECTION	*pDllCS))#define		AFDGetSockOpt WINSOCK_CALL (DWORD, 12,			\					(SOCKHAND     Socket,					\					 DWORD		  Level,					\					 DWORD		  OptionName,				\					 LPVOID		  Buffer,					\					 LPDWORD	  BufferLength,				\					 CRITICAL_SECTION	*pDllCS))#define		AFDSetSockOpt WINSOCK_CALL (DWORD, 13,			\					(SOCKHAND     Socket,					\					 DWORD		  Level,					\					 DWORD		  OptionName,				\					 LPVOID		  Buffer,					\					 DWORD		  BufferLength,				\					 CRITICAL_SECTION	*pDllCS))					 #define		AFDWakeup WINSOCK_CALL (DWORD, 14, \					(SOCKHAND		Socket, \					DWORD			Event, \					DWORD			Status, \					CRITICAL_SECTION	*pDllCS))#endif  // _WSOCK_H_

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?