📄 winsock2.h
字号:
#endiftypedef struct _WSAPROTOCOLCHAIN { int ChainLen; DWORD ChainEntries[MAX_PROTOCOL_CHAIN];} WSAPROTOCOLCHAIN, *LPWSAPROTOCOLCHAIN;#define WSAPROTOCOL_LEN 255typedef struct _WSAPROTOCOL_INFOA { DWORD dwServiceFlags1; DWORD dwServiceFlags2; DWORD dwServiceFlags3; DWORD dwServiceFlags4; DWORD dwProviderFlags; GUID ProviderId; DWORD dwCatalogEntryId; WSAPROTOCOLCHAIN ProtocolChain; int iVersion; int iAddressFamily; int iMaxSockAddr; int iMinSockAddr; int iSocketType; int iProtocol; int iProtocolMaxOffset; int iNetworkByteOrder; int iSecurityScheme; DWORD dwMessageSize; DWORD dwProviderReserved; CHAR szProtocol[WSAPROTOCOL_LEN+1];} WSAPROTOCOL_INFOA, *LPWSAPROTOCOL_INFOA;typedef struct _WSAPROTOCOL_INFOW { DWORD dwServiceFlags1; DWORD dwServiceFlags2; DWORD dwServiceFlags3; DWORD dwServiceFlags4; DWORD dwProviderFlags; GUID ProviderId; DWORD dwCatalogEntryId; WSAPROTOCOLCHAIN ProtocolChain; int iVersion; int iAddressFamily; int iMaxSockAddr; int iMinSockAddr; int iSocketType; int iProtocol; int iProtocolMaxOffset; int iNetworkByteOrder; int iSecurityScheme; DWORD dwMessageSize; DWORD dwProviderReserved; WCHAR szProtocol[WSAPROTOCOL_LEN+1];} WSAPROTOCOL_INFOW, * LPWSAPROTOCOL_INFOW;typedef int (CALLBACK *LPCONDITIONPROC)(LPWSABUF, LPWSABUF, LPQOS, LPQOS, LPWSABUF, LPWSABUF, GROUP *, DWORD);typedef void (WINAPI *LPWSAOVERLAPPED_COMPLETION_ROUTINE)(DWORD, DWORD, LPWSAOVERLAPPED, DWORD);#ifdef UNICODEtypedef WSAPROTOCOL_INFOW WSAPROTOCOL_INFO;typedef LPWSAPROTOCOL_INFOW LPWSAPROTOCOL_INFO;#elsetypedef WSAPROTOCOL_INFOA WSAPROTOCOL_INFO;typedef LPWSAPROTOCOL_INFOA LPWSAPROTOCOL_INFO;#endif/* Needed for XP & .NET Server function WSANSPIoctl. */typedef enum _WSACOMPLETIONTYPE { NSP_NOTIFY_IMMEDIATELY = 0, NSP_NOTIFY_HWND, NSP_NOTIFY_EVENT, NSP_NOTIFY_PORT, NSP_NOTIFY_APC} WSACOMPLETIONTYPE, * PWSACOMPLETIONTYPE, * LPWSACOMPLETIONTYPE;typedef struct _WSACOMPLETION { WSACOMPLETIONTYPE Type; union { struct { HWND hWnd; UINT uMsg; WPARAM context; } WindowMessage; struct { LPWSAOVERLAPPED lpOverlapped; } Event; struct { LPWSAOVERLAPPED lpOverlapped; LPWSAOVERLAPPED_COMPLETION_ROUTINE lpfnCompletionProc; } Apc; struct { LPWSAOVERLAPPED lpOverlapped; HANDLE hPort; ULONG_PTR Key; } Port; } Parameters;} WSACOMPLETION, *PWSACOMPLETION, *LPWSACOMPLETION;#define PFL_MULTIPLE_PROTO_ENTRIES 0x00000001#define PFL_RECOMMENDED_PROTO_ENTRY 0x00000002#define PFL_HIDDEN 0x00000004#define PFL_MATCHES_PROTOCOL_ZERO 0x00000008#define XP1_CONNECTIONLESS 0x00000001#define XP1_GUARANTEED_DELIVERY 0x00000002#define XP1_GUARANTEED_ORDER 0x00000004#define XP1_MESSAGE_ORIENTED 0x00000008#define XP1_PSEUDO_STREAM 0x00000010#define XP1_GRACEFUL_CLOSE 0x00000020#define XP1_EXPEDITED_DATA 0x00000040#define XP1_CONNECT_DATA 0x00000080#define XP1_DISCONNECT_DATA 0x00000100#define XP1_SUPPORT_BROADCAST 0x00000200#define XP1_SUPPORT_MULTIPOINT 0x00000400#define XP1_MULTIPOINT_CONTROL_PLANE 0x00000800#define XP1_MULTIPOINT_DATA_PLANE 0x00001000#define XP1_QOS_SUPPORTED 0x00002000#define XP1_INTERRUPT 0x00004000#define XP1_UNI_SEND 0x00008000#define XP1_UNI_RECV 0x00010000#define XP1_IFS_HANDLES 0x00020000#define XP1_PARTIAL_MESSAGE 0x00040000#define BIGENDIAN 0x0000#define LITTLEENDIAN 0x0001#define SECURITY_PROTOCOL_NONE 0x0000#define JL_SENDER_ONLY 0x01#define JL_RECEIVER_ONLY 0x02#define JL_BOTH 0x04#define WSA_FLAG_OVERLAPPED 0x01#define WSA_FLAG_MULTIPOINT_C_ROOT 0x02#define WSA_FLAG_MULTIPOINT_C_LEAF 0x04#define WSA_FLAG_MULTIPOINT_D_ROOT 0x08#define WSA_FLAG_MULTIPOINT_D_LEAF 0x10#define IOC_UNIX 0x00000000#define IOC_WS2 0x08000000#define IOC_PROTOCOL 0x10000000#define IOC_VENDOR 0x18000000#define _WSAIO(x,y) (IOC_VOID|(x)|(y))#define _WSAIOR(x,y) (IOC_OUT|(x)|(y))#define _WSAIOW(x,y) (IOC_IN|(x)|(y))#define _WSAIORW(x,y) (IOC_INOUT|(x)|(y))#define SIO_ASSOCIATE_HANDLE _WSAIOW(IOC_WS2,1)#define SIO_ENABLE_CIRCULAR_QUEUEING _WSAIO(IOC_WS2,2)#define SIO_FIND_ROUTE _WSAIOR(IOC_WS2,3)#define SIO_FLUSH _WSAIO(IOC_WS2,4)#define SIO_GET_BROADCAST_ADDRESS _WSAIOR(IOC_WS2,5)#define SIO_GET_EXTENSION_FUNCTION_POINTER _WSAIORW(IOC_WS2,6)#define SIO_GET_QOS _WSAIORW(IOC_WS2,7)#define SIO_GET_GROUP_QOS _WSAIORW(IOC_WS2,8)#define SIO_MULTIPOINT_LOOPBACK _WSAIOW(IOC_WS2,9)#define SIO_MULTICAST_SCOPE _WSAIOW(IOC_WS2,10)#define SIO_SET_QOS _WSAIOW(IOC_WS2,11)#define SIO_SET_GROUP_QOS _WSAIOW(IOC_WS2,12)#define SIO_TRANSLATE_HANDLE _WSAIORW(IOC_WS2,13)#define SIO_ROUTING_INTERFACE_QUERY _WSAIORW(IOC_WS2,20)#define SIO_ROUTING_INTERFACE_CHANGE _WSAIOW(IOC_WS2,21)#define SIO_ADDRESS_LIST_QUERY _WSAIOR(IOC_WS2,22)#define SIO_ADDRESS_LIST_CHANGE _WSAIO(IOC_WS2,23)#define SIO_QUERY_TARGET_PNP_HANDLE _WSAIOR(IOC_WS2,24)#define SIO_NSP_NOTIFY_CHANGE _WSAIOW(IOC_WS2,25)#define TH_NETDEV 0x00000001#define TH_TAPI 0x00000002WINSOCK_API_LINKAGE SOCKET WINAPI WSAAccept(SOCKET, struct sockaddr *, LPINT, LPCONDITIONPROC, DWORD);WINSOCK_API_LINKAGE INT WINAPI WSAAddressToStringA(LPSOCKADDR, DWORD, LPWSAPROTOCOL_INFOA, LPSTR, LPDWORD);WINSOCK_API_LINKAGE INT WINAPI WSAAddressToStringW(LPSOCKADDR, DWORD, LPWSAPROTOCOL_INFOW, LPWSTR, LPDWORD);WINSOCK_API_LINKAGE BOOL WINAPI WSACloseEvent(WSAEVENT);WINSOCK_API_LINKAGE int WINAPI WSAConnect(SOCKET, const struct sockaddr *, int, LPWSABUF, LPWSABUF, LPQOS, LPQOS);WINSOCK_API_LINKAGE WSAEVENT WINAPI WSACreateEvent(void);WINSOCK_API_LINKAGE int WINAPI WSADuplicateSocketA(SOCKET, DWORD, LPWSAPROTOCOL_INFOA);WINSOCK_API_LINKAGE int WINAPI WSADuplicateSocketW(SOCKET, DWORD, LPWSAPROTOCOL_INFOW);WINSOCK_API_LINKAGE INT WINAPI WSAEnumNameSpaceProvidersA(LPDWORD, LPWSANAMESPACE_INFOA);WINSOCK_API_LINKAGE INT WINAPI WSAEnumNameSpaceProvidersW(LPDWORD, LPWSANAMESPACE_INFOW);WINSOCK_API_LINKAGE int WINAPI WSAEnumNetworkEvents(SOCKET, WSAEVENT, LPWSANETWORKEVENTS);WINSOCK_API_LINKAGE int WINAPI WSAEnumProtocolsA(LPINT, LPWSAPROTOCOL_INFOA, LPDWORD);WINSOCK_API_LINKAGE int WINAPI WSAEnumProtocolsW(LPINT, LPWSAPROTOCOL_INFOW, LPDWORD);WINSOCK_API_LINKAGE int WINAPI WSAEventSelect(SOCKET, WSAEVENT, long);WINSOCK_API_LINKAGE BOOL WINAPI WSAGetOverlappedResult(SOCKET, LPWSAOVERLAPPED, LPDWORD, BOOL, LPDWORD);WINSOCK_API_LINKAGE BOOL WINAPI WSAGetQOSByName(SOCKET, LPWSABUF, LPQOS);WINSOCK_API_LINKAGE INT WINAPI WSAGetServiceClassInfoA(LPGUID, LPGUID, LPDWORD, LPWSASERVICECLASSINFOA);WINSOCK_API_LINKAGE INT WINAPI WSAGetServiceClassInfoW(LPGUID, LPGUID, LPDWORD, LPWSASERVICECLASSINFOW);WINSOCK_API_LINKAGE INT WINAPI WSAGetServiceClassNameByClassIdA(LPGUID, LPSTR, LPDWORD);WINSOCK_API_LINKAGE INT WINAPI WSAGetServiceClassNameByClassIdW(LPGUID, LPWSTR, LPDWORD);WINSOCK_API_LINKAGE int WINAPI WSAHtonl(SOCKET, unsigned long, unsigned long *);WINSOCK_API_LINKAGE int WINAPI WSAHtons(SOCKET, unsigned short, unsigned short *);WINSOCK_API_LINKAGE INT WINAPI WSAInstallServiceClassA(LPWSASERVICECLASSINFOA);WINSOCK_API_LINKAGE INT WINAPI WSAInstallServiceClassW(LPWSASERVICECLASSINFOW);WINSOCK_API_LINKAGE int WINAPI WSAIoctl(SOCKET, DWORD, LPVOID, DWORD, LPVOID, DWORD, LPDWORD, LPWSAOVERLAPPED, LPWSAOVERLAPPED_COMPLETION_ROUTINE);WINSOCK_API_LINKAGE SOCKET WINAPI WSAJoinLeaf(SOCKET, const struct sockaddr *, int, LPWSABUF, LPWSABUF, LPQOS, LPQOS, DWORD);WINSOCK_API_LINKAGE INT WINAPI WSALookupServiceBeginA(LPWSAQUERYSETA, DWORD, LPHANDLE);WINSOCK_API_LINKAGE INT WINAPI WSALookupServiceBeginW(LPWSAQUERYSETW lpqsRestrictions, DWORD, LPHANDLE);WINSOCK_API_LINKAGE INT WINAPI WSALookupServiceNextA(HANDLE, DWORD, LPDWORD, LPWSAQUERYSETA);WINSOCK_API_LINKAGE INT WINAPI WSALookupServiceNextW(HANDLE, DWORD, LPDWORD, LPWSAQUERYSETW);WINSOCK_API_LINKAGE INT WINAPI WSALookupServiceEnd(HANDLE);WINSOCK_API_LINKAGE int WINAPI WSANSPIoctl(HANDLE,DWORD,LPVOID,DWORD,LPVOID,DWORD,LPDWORD,LPWSACOMPLETION); /* XP or .NET Server */WINSOCK_API_LINKAGE int WINAPI WSANtohl(SOCKET, unsigned long, unsigned long *);WINSOCK_API_LINKAGE int WINAPI WSANtohs(SOCKET, unsigned short, unsigned short *);WINSOCK_API_LINKAGE int WINAPI WSARecv(SOCKET, LPWSABUF, DWORD, LPDWORD, LPDWORD, LPWSAOVERLAPPED, LPWSAOVERLAPPED_COMPLETION_ROUTINE);WINSOCK_API_LINKAGE int WINAPI WSARecvDisconnect(SOCKET, LPWSABUF);WINSOCK_API_LINKAGE int WINAPI WSARecvFrom(SOCKET, LPWSABUF, DWORD, LPDWORD, LPDWORD, struct sockaddr *, LPINT, LPWSAOVERLAPPED, LPWSAOVERLAPPED_COMPLETION_ROUTINE);WINSOCK_API_LINKAGE INT WINAPI WSARemoveServiceClass(LPGUID);WINSOCK_API_LINKAGE BOOL WINAPI WSAResetEvent(WSAEVENT);WINSOCK_API_LINKAGE int WINAPI WSASend(SOCKET, LPWSABUF, DWORD, LPDWORD, DWORD, LPWSAOVERLAPPED, LPWSAOVERLAPPED_COMPLETION_ROUTINE);WINSOCK_API_LINKAGE int WINAPI WSASendDisconnect(SOCKET, LPWSABUF);WINSOCK_API_LINKAGE int WINAPI WSASendTo(SOCKET, LPWSABUF, DWORD, LPDWORD, DWORD, const struct sockaddr *, int, LPWSAOVERLAPPED, LPWSAOVERLAPPED_COMPLETION_ROUTINE);WINSOCK_API_LINKAGE BOOL WINAPI WSASetEvent(WSAEVENT);WINSOCK_API_LINKAGE INT WSAAPI WSASetServiceA(LPWSAQUERYSETA, WSAESETSERVICEOP, DWORD);WINSOCK_API_LINKAGE INT WINAPI WSASetServiceW(LPWSAQUERYSETW, WSAESETSERVICEOP, DWORD);WINSOCK_API_LINKAGE SOCKET WINAPI WSASocketA(int, int, int, LPWSAPROTOCOL_INFOA, GROUP, DWORD);WINSOCK_API_LINKAGE SOCKET WINAPI WSASocketW(int, int, int, LPWSAPROTOCOL_INFOW, GROUP, DWORD);WINSOCK_API_LINKAGE INT WINAPI WSAStringToAddressA(LPSTR, INT, LPWSAPROTOCOL_INFOA, LPSOCKADDR, LPINT);WINSOCK_API_LINKAGE INT WINAPI WSAStringToAddressW(LPWSTR, INT, LPWSAPROTOCOL_INFOW, LPSOCKADDR, LPINT);WINSOCK_API_LINKAGE DWORD WINAPI WSAWaitForMultipleEvents(DWORD, const WSAEVENT *, BOOL, DWORD, BOOL);typedef SOCKET (WINAPI *LPFN_WSAACCEPT)(SOCKET, struct sockaddr *, LPINT, LPCONDITIONPROC, DWORD);typedef INT (WINAPI *LPFN_WSAADDRESSTOSTRINGA)(LPSOCKADDR, DWORD, LPWSAPROTOCOL_INFOA, LPSTR, LPDWORD);typedef INT (WINAPI *LPFN_WSAADDRESSTOSTRINGW)(LPSOCKADDR, DWORD, LPWSAPROTOCOL_INFOW, LPWSTR, LPDWORD);typedef BOOL (WINAPI *LPFN_WSACLOSEEVENT)(WSAEVENT);typedef int (WINAPI *LPFN_WSACONNECT)(SOCKET, const struct sockaddr *, int, LPWSABUF, LPWSABUF, LPQOS, LPQOS);typedef WSAEVENT (WINAPI *LPFN_WSACREATEEVENT)(void);typedef int (WINAPI *LPFN_WSADUPLICATESOCKETA)(SOCKET, DWORD, LPWSAPROTOCOL_INFOA);typedef int (WINAPI *LPFN_WSADUPLICATESOCKETW)(SOCKET, DWORD, LPWSAPROTOCOL_INFOW);typedef INT (WINAPI *LPFN_WSAENUMNAMESPACEPROVIDERSA)(LPDWORD, LPWSANAMESPACE_INFOA);typedef INT (WINAPI *LPFN_WSAENUMNAMESPACEPROVIDERSW)(LPDWORD, LPWSANAMESPACE_INFOW);typedef int (WINAPI *LPFN_WSAENUMNETWORKEVENTS)(SOCKET, WSAEVENT, LPWSANETWORKEVENTS);typedef int (WINAPI *LPFN_WSAENUMPROTOCOLSA)(LPINT, LPWSAPROTOCOL_INFOA, LPDWORD);typedef int (WINAPI *LPFN_WSAENUMPROTOCOLSW)(LPINT, LPWSAPROTOCOL_INFOW, LPDWORD);typedef int (WINAPI *LPFN_WSAEVENTSELECT)(SOCKET, WSAEVENT, long);typedef BOOL (WINAPI *LPFN_WSAGETOVERLAPPEDRESULT)(SOCKET, LPWSAOVERLAPPED, LPDWORD, BOOL, LPDWORD);typedef BOOL (WINAPI *LPFN_WSAGETQOSBYNAME)(SOCKET, LPWSABUF, LPQOS);typedef INT (WINAPI *LPFN_WSAGETSERVICECLASSINFOA)(LPGUID, LPGUID, LPDWORD, LPWSASERVICECLASSINFOA);typedef INT (WINAPI *LPFN_WSAGETSERVICECLASSINFOW)(LPGUID, LPGUID, LPDWORD, LPWSASERVICECLASSINFOW);typedef INT (WINAPI *LPFN_WSAGETSERVICECLASSNAMEBYCLASSIDA)(LPGUID, LPSTR, LPDWORD);typedef INT (WINAPI *LPFN_WSAGETSERVICECLASSNAMEBYCLASSIDW)(LPGUID, LPWSTR, LPDWORD);typedef int (WINAPI *LPFN_WSAHTONL)(SOCKET, unsigned long, unsigned long *);typedef int (WINAPI *LPFN_WSAHTONS)(SOCKET, unsigned short, unsigned short *);typedef INT (WINAPI *LPFN_WSAINSTALLSERVICECLASSA)(LPWSASERVICECLASSINFOA);typedef INT (WINAPI *LPFN_WSAINSTALLSERVICECLASSW)(LPWSASERVICECLASSINFOW);typedef int (WINAPI *LPFN_WSAIOCTL)(SOCKET, DWORD, LPVOID, DWORD, LPVOID, DWORD, LPDWORD, LPWSAOVERLAPPED, LPWSAOVERLAPPED_COMPLETION_ROUTINE);typedef SOCKET (WINAPI *LPFN_WSAJOINLEAF)(SOCKET, const struct sockaddr *, int, LPWSABUF, LPWSABUF, LPQOS, LPQOS, DWORD);typedef INT (WINAPI *LPFN_WSALOOKUPSERVICEBEGINA)(LPWSAQUERYSETA, DWORD, LPHANDLE);typedef INT (WINAPI *LPFN_WSALOOKUPSERVICEBEGINW)(LPWSAQUERYSETW, DWORD, LPHANDLE);typedef INT (WINAPI *LPFN_WSALOOKUPSERVICENEXTA)(HANDLE, DWORD, LPDWORD, LPWSAQUERYSETA);typedef INT (WINAPI *LPFN_WSALOOKUPSERVICENEXTW)(HANDLE, DWORD, LPDWORD, LPWSAQUERYSETW);typedef INT (WINAPI *LPFN_WSALOOKUPSERVICEEND)(HANDLE);typedef int (WINAPI *LPFN_WSANSPIoctl)(HANDLE, DWORD,LPVOID,DWORD,LPVOID,DWORD,LPDWORD,LPWSACOMPLETION);typedef int (WINAPI *LPFN_WSANTOHL)(SOCKET, unsigned long, unsigned long *);typedef int (WINAPI *LPFN_WSANTOHS)(SOCKET, unsigned short, unsigned short *);typedef int (WINAPI *LPFN_WSARECV)(SOCKET, LPWSABUF, DWORD, LPDWORD, LPDWORD, LPWSAOVERLAPPED, LPWSAOVERLAPPED_COMPLETION_ROUTINE);typedef int (WINAPI *LPFN_WSARECVDISCONNECT)(SOCKET, LPWSABUF);typedef int (WINAPI *LPFN_WSARECVFROM)(SOCKET, LPWSABUF, DWORD, LPDWORD, LPDWORD, struct sockaddr *, LPINT, LPWSAOVERLAPPED, LPWSAOVERLAPPED_COMPLETION_ROUTINE);typedef INT (WINAPI *LPFN_WSAREMOVESERVICECLASS)(LPGUID);typedef BOOL (WINAPI *LPFN_WSARESETEVENT)(WSAEVENT);typedef int (WINAPI *LPFN_WSASEND)(SOCKET, LPWSABUF, DWORD, LPDWORD, DWORD, LPWSAOVERLAPPED, LPWSAOVERLAPPED_COMPLETION_ROUTINE);typedef int (WINAPI *LPFN_WSASENDDISCONNECT)(SOCKET, LPWSABUF);typedef int (WINAPI *LPFN_WSASENDTO)(SOCKET, LPWSABUF, DWORD, LPDWORD, DWORD, const struct sockaddr *, int, LPWSAOVERLAPPED, LPWSAOVERLAPPED_COMPLETION_ROUTINE);typedef BOOL (WINAPI *LPFN_WSASETEVENT)(WSAEVENT);typedef INT (WINAPI *LPFN_WSASETSERVICEA)(LPWSAQUERYSETA, WSAESETSERVICEOP, DWORD);typedef INT (WINAPI *LPFN_WSASETSERVICEW)(LPWSAQUERYSETW, WSAESETSERVICEOP, DWORD);typedef SOCKET (WINAPI *LPFN_WSASOCKETA)(int, int, int, LPWSAPROTOCOL_INFOA, GROUP, DWORD);typedef SOCKET (WINAPI *LPFN_WSASOCKETW)(int, int, int, LPWSAPROTOCOL_INFOW, GROUP, DWORD);typedef INT (WINAPI *LPFN_WSASTRINGTOADDRESSA)(LPSTR, INT, LPWSAPROTOCOL_INFOA, LPSOCKADDR, LPINT);typedef INT (WINAPI *LPFN_WSASTRINGTOADDRESSW)(LPWSTR, INT, LPWSAPROTOCOL_INFOW, LPSOCKADDR, LPINT);typedef DWORD (WINAPI *LPFN_WSAWAITFORMULTIPLEEVENTS)(DWORD, const WSAEVENT *, BOOL, DWORD, BOOL);#ifdef UNICODE#define LPFN_WSAADDRESSTOSTRING LPFN_WSAADDRESSTOSTRINGW#define LPFN_WSADUPLICATESOCKET LPFN_WSADUPLICATESOCKETW#define LPFN_WSAENUMNAMESPACEPROVIDERS LPFN_WSAENUMNAMESPACEPROVIDERSW#define LPFN_WSAENUMPROTOCOLS LPFN_WSAENUMPROTOCOLSW#define LPFN_WSAGETSERVICECLASSINFO LPFN_WSAGETSERVICECLASSINFOW#define LPFN_WSAGETSERVICECLASSNAMEBYCLASSID LPFN_WSAGETSERVICECLASSNAMEBYCLASSIDW#define LPFN_WSAINSTALLSERVICECLASS LPFN_WSAINSTALLSERVICECLASSW#define LPFN_WSALOOKUPSERVICEBEGIN LPFN_WSALOOKUPSERVICEBEGINW#define LPFN_WSALOOKUPSERVICENEXT LPFN_WSALOOKUPSERVICENEXTW#define LPFN_WSASETSERVICE LPFN_WSASETSERVICEW#define LPFN_WSASOCKET LPFN_WSASOCKETW#define LPFN_WSASTRINGTOADDRESS LPFN_WSASTRINGTOADDRESSW#define WSAAddressToString WSAAddressToStringW#define WSADuplicateSocket WSADuplicateSocketW#define WSAEnumNameSpaceProviders WSAEnumNameSpaceProvidersW#define WSAEnumProtocols WSAEnumProtocolsW#define WSAGetServiceClassInfo WSAGetServiceClassInfoW#define WSAGetServiceClassNameByClassId WSAGetServiceClassNameByClassIdW#define WSASetService WSASetServiceW#define WSASocket WSASocketW#define WSAStringToAddress WSAStringToAddressW#define WSALookupServiceBegin WSALookupServiceBeginW#define WSALookupServiceNext WSALookupServiceNextW#define WSAInstallServiceClass WSAInstallServiceClassW#else#define LPFN_WSAADDRESSTOSTRING LPFN_WSAADDRESSTOSTRINGA#define LPFN_WSADUPLICATESOCKET LPFN_WSADUPLICATESOCKETW#define LPFN_WSAENUMNAMESPACEPROVIDERS LPFN_WSAENUMNAMESPACEPROVIDERSA#define LPFN_WSAENUMPROTOCOLS LPFN_WSAENUMPROTOCOLSA#define LPFN_WSAGETSERVICECLASSINFO LPFN_WSAGETSERVICECLASSINFOA#define LPFN_WSAGETSERVICECLASSNAMEBYCLASSID LPFN_WSAGETSERVICECLASSNAMEBYCLASSIDA#define LPFN_WSAINSTALLSERVICECLASS LPFN_WSAINSTALLSERVICECLASSA#define LPFN_WSALOOKUPSERVICEBEGIN LPFN_WSALOOKUPSERVICEBEGINA#define LPFN_WSALOOKUPSERVICENEXT LPFN_WSALOOKUPSERVICENEXTA#define LPFN_WSASETSERVICE LPFN_WSASETSERVICEA#define LPFN_WSASOCKET LPFN_WSASOCKETA#define LPFN_WSASTRINGTOADDRESS LPFN_WSASTRINGTOADDRESSA#define WSAAddressToString WSAAddressToStringA#define WSADuplicateSocket WSADuplicateSocketA#define WSAEnumNameSpaceProviders WSAEnumNameSpaceProvidersA#define WSAEnumProtocols WSAEnumProtocolsA#define WSAGetServiceClassInfo WSAGetServiceClassInfoA#define WSAGetServiceClassNameByClassId WSAGetServiceClassNameByClassIdA#define WSAInstallServiceClass WSAInstallServiceClassA#define WSALookupServiceBegin WSALookupServiceBeginA#define WSALookupServiceNext WSALookupServiceNextA#define WSASocket WSASocketA#define WSAStringToAddress WSAStringToAddressA#define WSASetService WSASetServiceA#endif#ifdef __cplusplus}#endif#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -