winsock2.h

来自「MinGW+MSYS开发必用的api参考」· C头文件 代码 · 共 1,304 行 · 第 1/4 页

H
1,304
字号
typedef struct linger *LPLINGER;typedef struct in_addr IN_ADDR;typedef struct in_addr *PIN_ADDR;typedef struct in_addr *LPIN_ADDR;typedef struct fd_set FD_SET;typedef struct fd_set *PFD_SET;typedef struct fd_set *LPFD_SET;typedef struct hostent HOSTENT;typedef struct hostent *PHOSTENT;typedef struct hostent *LPHOSTENT;typedef struct servent SERVENT;typedef struct servent *PSERVENT;typedef struct servent *LPSERVENT;typedef struct protoent PROTOENT;typedef struct protoent *PPROTOENT;typedef struct protoent *LPPROTOENT;typedef struct timeval TIMEVAL;typedef struct timeval *PTIMEVAL;typedef struct timeval *LPTIMEVAL;/* winsock2 additions */#define ADDR_ANY	INADDR_ANY#define	IN_CLASSD(i)	(((long)(i) & 0xf0000000) == 0xe0000000)#define	IN_CLASSD_NET	0xf0000000#define	IN_CLASSD_NSHIFT	28#define	IN_CLASSD_HOST	0x0fffffff#define	IN_MULTICAST(i)	IN_CLASSD(i)#define	FROM_PROTOCOL_INFO	(-1)#define SO_DONTLINGER	(u_int)(~SO_LINGER)#define SO_GROUP_ID	0x2001#define SO_GROUP_PRIORITY	0x2002#define SO_MAX_MSG_SIZE	0x2003#define SO_PROTOCOL_INFOA	0x2004#define SO_PROTOCOL_INFOW	0x2005#ifdef UNICODE#define SO_PROTOCOL_INFO	SO_PROTOCOL_INFOW#else#define SO_PROTOCOL_INFO	SO_PROTOCOL_INFOA#endif#define PVD_CONFIG        0x3001#define	MSG_INTERRUPT	0x10#define	MSG_MAXIOVLEN	16#define	WSAAPI	WINAPI#define WSAEVENT	HANDLE#define	LPWSAEVENT	LPHANDLE#define	WSAOVERLAPPED	OVERLAPPEDtypedef	struct _OVERLAPPED	*LPWSAOVERLAPPED;#define	WSA_IO_PENDING	(ERROR_IO_PENDING)#define	WSA_IO_INCOMPLETE	(ERROR_IO_INCOMPLETE)#define	WSA_INVALID_HANDLE	(ERROR_INVALID_HANDLE)#define	WSA_INVALID_PARAMETER	(ERROR_INVALID_PARAMETER)#define	WSA_NOT_ENOUGH_MEMORY	(ERROR_NOT_ENOUGH_MEMORY)#define	WSA_OPERATION_ABORTED	(ERROR_OPERATION_ABORTED)#define	WSA_INVALID_EVENT	((WSAEVENT)NULL)#define	WSA_MAXIMUM_WAIT_EVENTS	(MAXIMUM_WAIT_OBJECTS)#define	WSA_WAIT_FAILED	((DWORD)-1L)#define	WSA_WAIT_EVENT_0	(WAIT_OBJECT_0)#define	WSA_WAIT_IO_COMPLETION	(WAIT_IO_COMPLETION)#define	WSA_WAIT_TIMEOUT	(WAIT_TIMEOUT)#define	WSA_INFINITE	(INFINITE)typedef struct _WSABUF {	unsigned long len;	char *buf;} WSABUF, *LPWSABUF;typedef enum{	BestEffortService,	ControlledLoadService,	PredictiveService,	GuaranteedDelayService,	GuaranteedService} GUARANTEE;/* TODO: FLOWSPEC and related definitions belong in qos.h *//*   Windows Sockets 2 Application Programming Interface,   revision 2.2.2 (1997) uses the type uint32 for SERVICETYPE   and the elements of _flowspec, but the type uint32 is not defined   or used anywhere else in the w32api. For now, just use   unsigned int, which is 32 bits on _WIN32 and _WIN64.*/typedef unsigned int	SERVICETYPE;typedef struct _flowspec{	unsigned int	TokenRate;	unsigned int	TokenBucketSize;	unsigned int	PeakBandwidth;	unsigned int	Latency;	unsigned int	DelayVariation;	SERVICETYPE	ServiceType;	unsigned int	MaxSduSize;	unsigned int	MinimumPolicedSize;   } FLOWSPEC, *PFLOWSPEC, *LPFLOWSPEC;typedef struct _QualityOfService{	FLOWSPEC	SendingFlowspec;	FLOWSPEC	ReceivingFlowspec;	WSABUF	ProviderSpecific;} QOS, *LPQOS;#define	CF_ACCEPT	0x0000#define	CF_REJECT	0x0001#define	CF_DEFER	0x0002#define	SD_RECEIVE	0x00#define	SD_SEND	0x01#define	SD_BOTH	0x02typedef unsigned int	GROUP;#define SG_UNCONSTRAINED_GROUP	0x01#define SG_CONSTRAINED_GROUP	0x02typedef struct _WSANETWORKEVENTS {	long	lNetworkEvents;	int	iErrorCode[FD_MAX_EVENTS];} WSANETWORKEVENTS, *LPWSANETWORKEVENTS;#define	MAX_PROTOCOL_CHAIN 7#define	BASE_PROTOCOL      1#define	LAYERED_PROTOCOL   0typedef enum _WSAESETSERVICEOP{	RNRSERVICE_REGISTER=0,	RNRSERVICE_DEREGISTER,	RNRSERVICE_DELETE} WSAESETSERVICEOP, *PWSAESETSERVICEOP, *LPWSAESETSERVICEOP;typedef struct _AFPROTOCOLS {	INT iAddressFamily;	INT iProtocol;} AFPROTOCOLS, *PAFPROTOCOLS, *LPAFPROTOCOLS;typedef enum _WSAEcomparator{	COMP_EQUAL = 0,	COMP_NOTLESS} WSAECOMPARATOR, *PWSAECOMPARATOR, *LPWSAECOMPARATOR;typedef struct _WSAVersion{	DWORD	dwVersion;	WSAECOMPARATOR	ecHow;} WSAVERSION, *PWSAVERSION, *LPWSAVERSION;#ifndef __CSADDR_T_DEFINED /* also in nspapi.h */#define __CSADDR_T_DEFINEDtypedef struct _SOCKET_ADDRESS {	LPSOCKADDR lpSockaddr;	INT iSockaddrLength;} SOCKET_ADDRESS,*PSOCKET_ADDRESS,*LPSOCKET_ADDRESS;typedef struct _CSADDR_INFO {	SOCKET_ADDRESS LocalAddr;	SOCKET_ADDRESS RemoteAddr;	INT iSocketType;	INT iProtocol;} CSADDR_INFO,*PCSADDR_INFO,*LPCSADDR_INFO;#endiftypedef struct _SOCKET_ADDRESS_LIST {    INT             iAddressCount;    SOCKET_ADDRESS  Address[1];} SOCKET_ADDRESS_LIST, * LPSOCKET_ADDRESS_LIST;#ifndef __BLOB_T_DEFINED /* also in wtypes.h and nspapi.h */#define __BLOB_T_DEFINEDtypedef struct _BLOB {	ULONG	cbSize;	BYTE	*pBlobData;} BLOB,*PBLOB,*LPBLOB;#endiftypedef struct _WSAQuerySetA{	DWORD	dwSize;	LPSTR	lpszServiceInstanceName;	LPGUID	lpServiceClassId;	LPWSAVERSION	lpVersion;	LPSTR	lpszComment;	DWORD	dwNameSpace;	LPGUID	lpNSProviderId;	LPSTR	lpszContext;	DWORD	dwNumberOfProtocols;	LPAFPROTOCOLS	lpafpProtocols;	LPSTR	lpszQueryString;	DWORD	dwNumberOfCsAddrs;	LPCSADDR_INFO	lpcsaBuffer;	DWORD	dwOutputFlags;	LPBLOB	lpBlob;} WSAQUERYSETA, *PWSAQUERYSETA, *LPWSAQUERYSETA;typedef struct _WSAQuerySetW{	DWORD	dwSize;	LPWSTR	lpszServiceInstanceName;	LPGUID	lpServiceClassId;	LPWSAVERSION	lpVersion;	LPWSTR	lpszComment;	DWORD	dwNameSpace;	LPGUID	lpNSProviderId;	LPWSTR	lpszContext;	DWORD	dwNumberOfProtocols;	LPAFPROTOCOLS	lpafpProtocols;	LPWSTR	lpszQueryString;	DWORD	dwNumberOfCsAddrs;	LPCSADDR_INFO	lpcsaBuffer;	DWORD	dwOutputFlags;	LPBLOB	lpBlob;} WSAQUERYSETW, *PWSAQUERYSETW, *LPWSAQUERYSETW;#ifdef UNICODEtypedef WSAQUERYSETW WSAQUERYSET;typedef PWSAQUERYSETW PWSAQUERYSET;typedef LPWSAQUERYSETW LPWSAQUERYSET;#elsetypedef WSAQUERYSETA WSAQUERYSET;typedef PWSAQUERYSETA PWSAQUERYSET;typedef LPWSAQUERYSETA LPWSAQUERYSET;#endif#define LUP_DEEP                0x0001#define LUP_CONTAINERS          0x0002#define LUP_NOCONTAINERS        0x0004#define LUP_NEAREST             0x0008#define LUP_RETURN_NAME         0x0010#define LUP_RETURN_TYPE         0x0020#define LUP_RETURN_VERSION      0x0040#define LUP_RETURN_COMMENT      0x0080#define LUP_RETURN_ADDR         0x0100#define LUP_RETURN_BLOB         0x0200#define LUP_RETURN_ALIASES      0x0400#define LUP_RETURN_QUERY_STRING 0x0800#define LUP_RETURN_ALL          0x0FF0#define LUP_RES_SERVICE         0x8000#define LUP_FLUSHCACHE          0x1000#define LUP_FLUSHPREVIOUS       0x2000typedef struct _WSANSClassInfoA{	LPSTR	lpszName;	DWORD	dwNameSpace;	DWORD	dwValueType;	DWORD	dwValueSize;	LPVOID	lpValue;} WSANSCLASSINFOA, *PWSANSCLASSINFOA, *LPWSANSCLASSINFOA;typedef struct _WSANSClassInfoW{	LPWSTR	lpszName;	DWORD	dwNameSpace;	DWORD	dwValueType;	DWORD	dwValueSize;	LPVOID	lpValue;} WSANSCLASSINFOW, *PWSANSCLASSINFOW, *LPWSANSCLASSINFOW;#ifdef UNICODEtypedef WSANSCLASSINFOW WSANSCLASSINFO;typedef PWSANSCLASSINFOW PWSANSCLASSINFO;typedef LPWSANSCLASSINFOW LPWSANSCLASSINFO;#elsetypedef WSANSCLASSINFOA WSANSCLASSINFO;typedef PWSANSCLASSINFOA PWSANSCLASSINFO;typedef LPWSANSCLASSINFOA LPWSANSCLASSINFO;#endiftypedef struct _WSAServiceClassInfoA{	LPGUID	lpServiceClassId;	LPSTR	lpszServiceClassName;	DWORD	dwCount;	LPWSANSCLASSINFOA	lpClassInfos;} WSASERVICECLASSINFOA, *PWSASERVICECLASSINFOA, *LPWSASERVICECLASSINFOA;typedef struct _WSAServiceClassInfoW{	LPGUID	lpServiceClassId;	LPWSTR	lpszServiceClassName;	DWORD	dwCount;	LPWSANSCLASSINFOW	lpClassInfos;} WSASERVICECLASSINFOW, *PWSASERVICECLASSINFOW, *LPWSASERVICECLASSINFOW;#ifdef UNICODEtypedef WSASERVICECLASSINFOW WSASERVICECLASSINFO;typedef PWSASERVICECLASSINFOW PWSASERVICECLASSINFO;typedef LPWSASERVICECLASSINFOW LPWSASERVICECLASSINFO;#elsetypedef WSASERVICECLASSINFOA WSASERVICECLASSINFO;typedef PWSASERVICECLASSINFOA PWSASERVICECLASSINFO;typedef LPWSASERVICECLASSINFOA LPWSASERVICECLASSINFO;#endiftypedef struct _WSANAMESPACE_INFOA {	GUID	NSProviderId;	DWORD	dwNameSpace;	BOOL	fActive;	DWORD	dwVersion;	LPSTR	lpszIdentifier;} WSANAMESPACE_INFOA, *PWSANAMESPACE_INFOA, *LPWSANAMESPACE_INFOA;typedef struct _WSANAMESPACE_INFOW {	GUID	NSProviderId;	DWORD	dwNameSpace;	BOOL	fActive;	DWORD	dwVersion;	LPWSTR	lpszIdentifier;} WSANAMESPACE_INFOW, *PWSANAMESPACE_INFOW, *LPWSANAMESPACE_INFOW;#ifdef UNICODEtypedef WSANAMESPACE_INFOW WSANAMESPACE_INFO;typedef PWSANAMESPACE_INFOW PWSANAMESPACE_INFO;typedef LPWSANAMESPACE_INFOW LPWSANAMESPACE_INFO;#elsetypedef WSANAMESPACE_INFOA WSANAMESPACE_INFO;typedef PWSANAMESPACE_INFOA PWSANAMESPACE_INFO;typedef LPWSANAMESPACE_INFOA LPWSANAMESPACE_INFO;

⌨️ 快捷键说明

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