#ifndef _DSLOOKUP_H #define _DSLOOKUP_H #include #include #ifdef __cplusplus extern "C" { #endif #ifdef DBG LPVOID RSPAlloc( DWORD dwSize, DWORD dwLine, PSTR pszFile ); #else LPVOID RSPAlloc( DWORD dwSize ); #endif void DrvFree( LPVOID p ); #if DBG #define DrvAlloc(x) RSPAlloc(x, __LINE__, __FILE__) #else #define DrvAlloc(x) RSPAlloc(x) #endif #if DBG #define DBGOUT(arg) DbgPrt arg VOID DbgPrt( IN DWORD dwDbgLevel, IN PUCHAR DbgMessage, IN ... ); #else #define DBGOUT(arg) #endif BOOL OpenServerLookup(HKEY hRegistry); BOOL GetNextServer(LPSTR pszServerName, DWORD dwSize, BOOL * pbFromReg); BOOL CloseLookup(void); typedef int (WSAAPI * PFNWSASTARTUP)( WORD wVersionRequested, LPWSADATA lpWSAData ); typedef int (WSAAPI * PFNWSACLEANUP)( VOID ); typedef HOSTENT FAR * (WSAAPI * PFNGETHOSTBYNAME)( const char FAR *name ); typedef HANDLE (WINAPI * PFNICMPCREATEFILE)( VOID ); typedef BOOL (WINAPI * PFNICMPCLOSEHANDLE)( HANDLE IcmpHandle ); typedef BOOL (WINAPI * PFNICMPSENDECHO)( HANDLE IcmpHandle, IPAddr DestinationAddress, LPVOID RequestData, WORD RequestSize, PIP_OPTION_INFORMATION RequestOptions, LPVOID ReplyBuffer, DWORD ReplySize, DWORD Timeout ); typedef struct rspsocket_tag { HMODULE hWS2; HMODULE hICMP; HANDLE IcmpHandle; PFNWSASTARTUP pFnWSAStartup; PFNWSACLEANUP pFnWSACleanup; PFNGETHOSTBYNAME pFngethostbyname; PFNICMPCREATEFILE pFnIcmpCreateFile; PFNICMPCLOSEHANDLE pFnIcmpCloseHandle; PFNICMPSENDECHO pFnIcmpSendEcho; } RSPSOCKET, * PRSPSOCKET; HRESULT SockStartup ( RSPSOCKET * pSocket ); HRESULT SockIsServerResponding( RSPSOCKET * pSocket, char * szServer ); HRESULT SockShutdown ( RSPSOCKET * pSocket ); #ifdef __cplusplus } #endif #endif