util.c
上传用户:yuandong
上传日期:2022-08-08
资源大小:954k
文件大小:1k
- /*++
- Copyright (c) 1990-1998 Microsoft Corporation
- All rights reserved
- Module Name:
- util.c
- --*/
- #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;
- }