mirror of https://github.com/lianthony/NT4.0
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
162 lines
2.2 KiB
162 lines
2.2 KiB
/**********************************************************************/
|
|
/** Microsoft Windows NT **/
|
|
/** Copyright(c) Microsoft Corp., 1993 **/
|
|
/**********************************************************************/
|
|
|
|
/*
|
|
rpcsupp.cxx
|
|
|
|
This module contains support routines for the W3 Service RPC
|
|
interface.
|
|
|
|
|
|
FILE HISTORY:
|
|
KeithMo 23-Mar-1993 Created.
|
|
|
|
*/
|
|
|
|
#define CHICAGO 1
|
|
|
|
#include "w3p.hxx"
|
|
#include <time.h>
|
|
|
|
|
|
//
|
|
// Private globals.
|
|
//
|
|
|
|
//
|
|
// Private prototypes.
|
|
//
|
|
|
|
|
|
//
|
|
// Public functions.
|
|
//
|
|
BOOL
|
|
ConvertStringToRpc(
|
|
WCHAR * * ppwch,
|
|
LPCSTR pch
|
|
)
|
|
/*++
|
|
|
|
Description
|
|
|
|
Allocates, copies and converts pch to *ppwch
|
|
|
|
Arguments:
|
|
|
|
ppwch - Receives allocated destination string
|
|
pch - ANSI string to copy from
|
|
|
|
Note:
|
|
|
|
--*/
|
|
{
|
|
int cch;
|
|
int iRet;
|
|
|
|
if ( !pch )
|
|
{
|
|
*ppwch = NULL;
|
|
return TRUE;
|
|
}
|
|
|
|
cch = strlen( pch );
|
|
|
|
if ( !(*ppwch = (WCHAR *) MIDL_user_allocate( (cch + 1) * sizeof(WCHAR))) )
|
|
{
|
|
SetLastError( ERROR_NOT_ENOUGH_MEMORY );
|
|
return FALSE;
|
|
}
|
|
|
|
iRet = MultiByteToWideChar( CP_ACP,
|
|
MB_PRECOMPOSED,
|
|
pch,
|
|
cch + 1,
|
|
*ppwch,
|
|
cch + 1 );
|
|
|
|
if ( !iRet )
|
|
{
|
|
MIDL_user_free( *ppwch );
|
|
return FALSE;
|
|
}
|
|
|
|
return TRUE;
|
|
}
|
|
|
|
VOID
|
|
FreeRpcString(
|
|
WCHAR * pwch
|
|
)
|
|
{
|
|
if ( pwch )
|
|
MIDL_user_free( pwch );
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
PVOID
|
|
MIDL_user_allocate(IN size_t size)
|
|
/*++
|
|
|
|
Routine Description:
|
|
|
|
MIDL memory allocation.
|
|
|
|
Arguments:
|
|
|
|
size : Memory size requested.
|
|
|
|
Return Value:
|
|
|
|
Pointer to the allocated memory block.
|
|
|
|
--*/
|
|
{
|
|
PVOID pvBlob;
|
|
|
|
pvBlob = LocalAlloc( LPTR, size);
|
|
|
|
return( pvBlob );
|
|
|
|
} // MIDL_user_allocate()
|
|
|
|
|
|
VOID
|
|
MIDL_user_free(IN PVOID pvBlob)
|
|
/*++
|
|
|
|
Routine Description:
|
|
|
|
MIDL memory free .
|
|
|
|
Arguments:
|
|
|
|
pvBlob : Pointer to a memory block that is freed.
|
|
|
|
|
|
Return Value:
|
|
|
|
None.
|
|
|
|
--*/
|
|
{
|
|
LocalFree( pvBlob);
|
|
|
|
return;
|
|
} // MIDL_user_free()
|
|
|
|
|
|
|
|
|
|
//
|
|
// Private functions.
|
|
//
|
|
|
|
|