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 + -
显示快捷键?