⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dwnsock2.inc

📁 Library of C functions that allows a program to use WinSock 2 functionality if it is available or fa
💻 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 + -