/**********************************************************************/ /** Microsoft Windows NT **/ /** Copyright(c) Microsoft Corp., 1994 **/ /**********************************************************************/ /* tcpproc.hxx Exports misc. bits of TCP services helper DLL stuff FILE HISTORY: Johnl 09-Oct-1994 Created. MuraliK 31-July-1995 ReadRegistryString added + Schedule items function decls moved out. MuraliK 23-Feb-1996 Added IslFormatDate() */ #ifndef _TCPPROC_H_ #define _TCPPROC_H_ // // Heap Routines // #ifdef __cplusplus #include extern "C" { dllexp BOOL ReadRegistryStr( IN HKEY hkeyReg, OUT STR & str, IN LPCTSTR lpszValueName, IN LPCTSTR lpszDefaultValue = NULL, IN BOOL fExpand = FALSE); #endif // __cplusplus #define TCP_ALLOC(cb) (VOID *)LocalAlloc( LPTR, cb ) #define TCP_FREE(p) LocalFree( (HLOCAL) p ) #define TCP_DUMP_RESIDUE() /* NOTHING */ // // Registry functions // dllexp LPSTR ConvertUnicodeToAnsi( IN LPCWSTR lpszUnicode, IN LPSTR lpszAnsi, IN DWORD cbAnsi ); // // Quick macro to initialize a unicode string // #define InitUnicodeString( pUnicode, pwch ) \ { \ (pUnicode)->Buffer = pwch; \ (pUnicode)->Length = wcslen( pwch ) * sizeof(WCHAR); \ (pUnicode)->MaximumLength = (pUnicode)->Length + sizeof(WCHAR);\ } dllexp DWORD ReadRegistryDwordA( HKEY hkey, LPCSTR pszValueName, DWORD dwDefaultValue ); dllexp DWORD WriteRegistryDwordA( HKEY hkey, LPCSTR pszValueName, DWORD dwDefaultValue ); dllexp DWORD WriteRegistryStringA( HKEY hkey, LPCSTR pszValueName, LPCSTR pszValue, // null-terminated string DWORD cbValue, // including terminating null character DWORD fdwType // REG_SZ, REG_MULTI_SZ ... ); dllexp DWORD WriteRegistryStringW( HKEY hkey, LPCWSTR pszValueName, LPCWSTR pszValue, // null-terminated string DWORD cbValue, // including terminating null character DWORD fdwType // REG_SZ, REG_MULTI_SZ ... ); #define ReadRegistryDword ReadRegistryDwordA #define WriteRegistryDword WriteRegistryDwordA #define WriteRegistryString WriteRegistryStringA dllexp TCHAR * ReadRegistryString( HKEY hkey, LPCTSTR pszValueName, LPCTSTR pszDefaultValue, BOOL fExpand ); dllexp TCHAR * KludgeMultiSz( HKEY hkey, LPDWORD lpdwLength ); // // Simple wrapper around ReadRegistryString that restores ppchstr if the // call fails for any reason. Environment variables are always expanded // dllexp BOOL ReadRegString( HKEY hkey, CHAR * * ppchstr, LPCSTR pchValue, LPCSTR pchDefault ); // // MIDL_user_allocates space for pch and does a unicode conversion into *ppwch // dllexp BOOL ConvertStringToRpc( WCHAR * * ppwch, LPCSTR pch ); // // MIDL_user_frees string allocated with ConvertStringToRpc. Noop if pwch is // NULL // dllexp VOID FreeRpcString( WCHAR * pwch ); dllexp DWORD InetNtoa( IN struct in_addr inaddr, OUT CHAR * pchBuffer /* at least 16 byte buffer */ ); // // Async Socket send/recv with timeouts // BOOL TcpSockSend( SOCKET sock, LPVOID pBuffer, DWORD cbBuffer, PDWORD nSent, DWORD nTimeout ); BOOL TcpSockRecv( SOCKET sock, LPVOID pBuffer, DWORD cbBuffer, PDWORD nReceived, DWORD nTimeout ); dllexp INT WaitForSocketWorker( IN SOCKET sockRead, IN SOCKET sockWrite, IN LPBOOL pfRead, IN LPBOOL pfWrite, IN DWORD nTimeout ); // // Test socket if still connected // dllexp BOOL TcpSockTest( SOCKET sock ); // // Do synchronous readfile // dllexp BOOL DoSynchronousReadFile( IN HANDLE hFile, IN PCHAR Buffer, IN DWORD nBuffer, OUT PDWORD nRead, IN LPOVERLAPPED Overlapped ); // // Dll initialization and termination // dllexp BOOL InitCommonDlls( VOID ); dllexp BOOL TerminateCommonDlls( VOID ); #ifdef __cplusplus }; // extern "C" #endif // __cplusplus #endif // !_TCPPROC_H_