📄 dwnsock2.inc
字号:
//
// DWNSOCK2.INC Macros for dynamically linking to WinSock 2
//
#ifdef DWINSOCK_GLOBAL
#undef DYNAMICWINSOCK
#define DYNAMICWINSOCK(name, ptr) ptr p_##name
#endif
#ifdef DWINSOCK_EXTERN
#undef DYNAMICWINSOCK
#define DYNAMICWINSOCK(name, ptr) extern ptr p_##name
#endif
#ifdef DWINSOCK_GETPROCADDRESS
#undef DYNAMICWINSOCK
#define DYNAMICWINSOCK(name, ptr) \
p_##name = (ptr)GetProcAddress(hndlWinSock, #name); \
if (p_##name == NULL) fOK = FALSE
#endif
DYNAMICWINSOCK(WSAAccept, LPFN_WSAACCEPT);
DYNAMICWINSOCK(WSAAddressToStringA, LPFN_WSAADDRESSTOSTRINGA);
DYNAMICWINSOCK(WSAAddressToStringW, LPFN_WSAADDRESSTOSTRINGW);
DYNAMICWINSOCK(WSACloseEvent, LPFN_WSACLOSEEVENT);
DYNAMICWINSOCK(WSAConnect, LPFN_WSACONNECT);
DYNAMICWINSOCK(WSACreateEvent, LPFN_WSACREATEEVENT);
DYNAMICWINSOCK(WSADuplicateSocketA, LPFN_WSADUPLICATESOCKETA);
DYNAMICWINSOCK(WSADuplicateSocketW, LPFN_WSADUPLICATESOCKETW);
DYNAMICWINSOCK(WSAEnumNameSpaceProvidersA, LPFN_WSAENUMNAMESPACEPROVIDERSA);
DYNAMICWINSOCK(WSAEnumNameSpaceProvidersW, LPFN_WSAENUMNAMESPACEPROVIDERSW);
DYNAMICWINSOCK(WSAEnumNetworkEvents, LPFN_WSAENUMNETWORKEVENTS);
DYNAMICWINSOCK(WSAEnumProtocolsA, LPFN_WSAENUMPROTOCOLSA);
DYNAMICWINSOCK(WSAEnumProtocolsW, LPFN_WSAENUMPROTOCOLSW);
DYNAMICWINSOCK(WSAEventSelect, LPFN_WSAEVENTSELECT);
DYNAMICWINSOCK(WSAGetOverlappedResult, LPFN_WSAGETOVERLAPPEDRESULT);
DYNAMICWINSOCK(WSAGetQOSByName, LPFN_WSAGETQOSBYNAME);
DYNAMICWINSOCK(WSAGetServiceClassInfoA, LPFN_WSAGETSERVICECLASSINFOA);
DYNAMICWINSOCK(WSAGetServiceClassInfoW, LPFN_WSAGETSERVICECLASSINFOW);
DYNAMICWINSOCK(WSAGetServiceClassNameByClassIdA, LPFN_WSAGETSERVICECLASSNAMEBYCLASSIDA);
DYNAMICWINSOCK(WSAGetServiceClassNameByClassIdW, LPFN_WSAGETSERVICECLASSNAMEBYCLASSIDW);
DYNAMICWINSOCK(WSAHtonl, LPFN_WSAHTONL);
DYNAMICWINSOCK(WSAHtons, LPFN_WSAHTONS);
DYNAMICWINSOCK(WSAInstallServiceClassA, LPFN_WSAINSTALLSERVICECLASSA);
DYNAMICWINSOCK(WSAInstallServiceClassW, LPFN_WSAINSTALLSERVICECLASSW);
DYNAMICWINSOCK(WSAIoctl, LPFN_WSAIOCTL);
DYNAMICWINSOCK(WSAJoinLeaf, LPFN_WSAJOINLEAF);
DYNAMICWINSOCK(WSALookupServiceBeginA, LPFN_WSALOOKUPSERVICEBEGINA);
DYNAMICWINSOCK(WSALookupServiceBeginW, LPFN_WSALOOKUPSERVICEBEGINW);
DYNAMICWINSOCK(WSALookupServiceEnd, LPFN_WSALOOKUPSERVICEEND);
DYNAMICWINSOCK(WSALookupServiceNextA, LPFN_WSALOOKUPSERVICENEXTA);
DYNAMICWINSOCK(WSALookupServiceNextW, LPFN_WSALOOKUPSERVICENEXTW);
DYNAMICWINSOCK(WSANtohl, LPFN_WSANTOHL);
DYNAMICWINSOCK(WSANtohs, LPFN_WSANTOHS);
DYNAMICWINSOCK(WSARecv, LPFN_WSARECV);
DYNAMICWINSOCK(WSARecvDisconnect, LPFN_WSARECVDISCONNECT);
DYNAMICWINSOCK(WSARecvFrom, LPFN_WSARECVFROM);
DYNAMICWINSOCK(WSARemoveServiceClass, LPFN_WSAREMOVESERVICECLASS);
DYNAMICWINSOCK(WSAResetEvent, LPFN_WSARESETEVENT);
DYNAMICWINSOCK(WSASend, LPFN_WSASEND);
DYNAMICWINSOCK(WSASendDisconnect, LPFN_WSASENDDISCONNECT);
DYNAMICWINSOCK(WSASendTo, LPFN_WSASENDTO);
DYNAMICWINSOCK(WSASetEvent, LPFN_WSASETEVENT);
DYNAMICWINSOCK(WSASetServiceA, LPFN_WSASETSERVICEA);
DYNAMICWINSOCK(WSASetServiceW, LPFN_WSASETSERVICEW);
DYNAMICWINSOCK(WSASocketA, LPFN_WSASOCKETA);
DYNAMICWINSOCK(WSASocketW, LPFN_WSASOCKETW);
DYNAMICWINSOCK(WSAStringToAddressA, LPFN_WSASTRINGTOADDRESSA);
DYNAMICWINSOCK(WSAStringToAddressW, LPFN_WSASTRINGTOADDRESSW);
DYNAMICWINSOCK(WSAWaitForMultipleEvents, LPFN_WSAWAITFORMULTIPLEEVENTS);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -