252 lines
4.6 KiB
C
252 lines
4.6 KiB
C
|
/**********************************************************************/
|
||
|
/** 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 <string.hxx>
|
||
|
|
||
|
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_
|