|  | #ifndef WIN32_LEAN_AND_MEAN | 
|  | #define WIN32_LEAN_AND_MEAN | 
|  | #endif | 
|  | #include <windows.h> | 
|  | #undef  __CRT__NO_INLINE | 
|  | #define __CRT__NO_INLINE | 
|  | #include <wspiapi.h> | 
|  |  | 
|  | struct addrinfo * WINAPI | 
|  | WspiapiNewAddrInfo (int iSocketType, int iProtocol, WORD wPort, DWORD dwAddress) | 
|  | { | 
|  | struct addrinfo *n; | 
|  | struct sockaddr_in *pa; | 
|  |  | 
|  | if ((n = (struct addrinfo *) WspiapiMalloc (sizeof (struct addrinfo))) == NULL) | 
|  | return NULL; | 
|  | if ((pa = (struct sockaddr_in *) WspiapiMalloc (sizeof(struct sockaddr_in))) == NULL) | 
|  | { | 
|  | WspiapiFree(n); | 
|  | return NULL; | 
|  | } | 
|  | pa->sin_family = AF_INET; | 
|  | pa->sin_port = wPort; | 
|  | pa->sin_addr.s_addr = dwAddress; | 
|  | n->ai_family = PF_INET; | 
|  | n->ai_socktype = iSocketType; | 
|  | n->ai_protocol = iProtocol; | 
|  | n->ai_addrlen = sizeof (struct sockaddr_in); | 
|  | n->ai_addr = (struct sockaddr *) pa; | 
|  | return n; | 
|  | } |