| #ifndef WIN32_LEAN_AND_MEAN | 
 | #define WIN32_LEAN_AND_MEAN | 
 | #endif | 
 | #undef  __CRT__NO_INLINE | 
 | #define __CRT__NO_INLINE | 
 | #include <winsock2.h> | 
 | #include <wspiapi.h> | 
 |  | 
 | FARPROC WINAPI | 
 | WspiapiLoad (WORD wFunction) | 
 | { | 
 |   static WINBOOL isinit = FALSE; | 
 |   static WSPIAPI_FUNCTION rgtGlobal[] = WSPIAPI_FUNCTION_ARRAY; | 
 |   static const int iNumGlobal = (sizeof(rgtGlobal) / sizeof(WSPIAPI_FUNCTION)); | 
 |   HMODULE hlib = NULL; | 
 |   WSPIAPI_FUNCTION rgtLocal[] = WSPIAPI_FUNCTION_ARRAY; | 
 |   FARPROC fScratch = NULL; | 
 |   int i = 0; | 
 |  | 
 |   if (isinit) | 
 |     return rgtGlobal[wFunction].pfAddress; | 
 |  | 
 |   for (;;) | 
 |     { | 
 | 	CHAR systemdir[MAX_PATH + 1], path[MAX_PATH + 8]; | 
 |  | 
 | 	if (GetSystemDirectoryA (systemdir, MAX_PATH) == 0) | 
 | 	  break; | 
 | 	strcpy (path, systemdir); | 
 | 	strcat (path, "\\ws2_32"); | 
 | 	hlib = LoadLibraryA (path); | 
 | 	if(hlib != NULL) | 
 | 	  { | 
 | 	    fScratch = GetProcAddress (hlib, "getaddrinfo"); | 
 | 	    if (!fScratch) | 
 | 	      { | 
 | 		FreeLibrary (hlib); | 
 | 		hlib = NULL; | 
 | 	      } | 
 | 	  } | 
 | 	if (hlib != NULL) | 
 | 	  break; | 
 | 	strcpy (path, systemdir); | 
 | 	strcat (path, "\\wship6"); | 
 | 	hlib = LoadLibraryA (path); | 
 | 	if (hlib != NULL) | 
 | 	  { | 
 | 	    if ((fScratch = GetProcAddress (hlib, "getaddrinfo")) == NULL) | 
 | 	      { | 
 | 		FreeLibrary (hlib); | 
 | 		hlib = NULL; | 
 | 	      } | 
 | 	  } | 
 | 	break; | 
 |     } | 
 |   if (hlib != NULL) | 
 |     { | 
 | 	for (i = 0; i < iNumGlobal; i++) | 
 | 	  { | 
 | 	    if ((rgtLocal[i].pfAddress = GetProcAddress (hlib, rgtLocal[i].pszName)) == NULL) | 
 | 	      { | 
 | 		FreeLibrary (hlib); | 
 | 		hlib = NULL; | 
 | 		break; | 
 | 	      } | 
 | 	  } | 
 | 	if (hlib != NULL) | 
 | 	  { | 
 | 	    for (i = 0; i < iNumGlobal; i++) | 
 | 	      rgtGlobal[i].pfAddress = rgtLocal[i].pfAddress; | 
 | 	  } | 
 |     } | 
 |   isinit = TRUE; | 
 |   return rgtGlobal[wFunction].pfAddress; | 
 | } |