Source code of Windows XP (NT5)
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.
|
|
/*++
Copyright (c) 1990-1998 Microsoft Corporation All rights reserved
Module Name:
util.c // @@BEGIN_DDKSPLIT
Abstract:
Environment:
User Mode -Win32
NOTE: THIS IS FOR THE DDK ONLY!
Revision History: // @@END_DDKSPLIT
--*/
#include "local.h"
LPVOID ReallocSplMem( LPVOID pOldMem, DWORD cbOld, DWORD cbNew ) { LPVOID pNewMem;
pNewMem=AllocSplMem(cbNew);
if (pOldMem && pNewMem) {
if (cbOld) { CopyMemory( pNewMem, pOldMem, min(cbNew, cbOld)); } FreeSplMem(pOldMem); } return pNewMem; }
LPWSTR AllocSplStr( LPWSTR pStr )
/*++
Routine Description:
This function will allocate enough local memory to store the specified string, and copy that string to the allocated memory
Arguments:
pStr - Pointer to the string that needs to be allocated and stored
Return Value:
NON-NULL - A pointer to the allocated memory containing the string
FALSE/NULL - The operation failed. Extended error status is available using GetLastError.
--*/
{ LPWSTR pMem; DWORD cbStr;
if (!pStr) { return NULL; }
cbStr = wcslen(pStr)*sizeof(WCHAR) + sizeof(WCHAR);
if (pMem = AllocSplMem( cbStr )) { CopyMemory( pMem, pStr, cbStr ); } return pMem; }
LPVOID AllocSplMem( DWORD cbAlloc )
{ PVOID pvMemory;
pvMemory = GlobalAlloc(GMEM_FIXED, cbAlloc);
if( pvMemory ){ ZeroMemory( pvMemory, cbAlloc ); }
return pvMemory; }
|