#pragma once | |
//------------------------------------------------------------------------------------------------- | |
// <copyright file="memutil.h" company="Outercurve Foundation"> | |
// Copyright (c) 2004, Outercurve Foundation. | |
// This software is released under Microsoft Reciprocal License (MS-RL). | |
// The license and further copyright text can be found in the file | |
// LICENSE.TXT at the root directory of the distribution. | |
// </copyright> | |
// | |
// <summary> | |
// Header for memory helper functions. | |
// </summary> | |
//------------------------------------------------------------------------------------------------- | |
#ifdef __cplusplus | |
extern "C" { | |
#endif | |
#define ReleaseMem(p) if (p) { MemFree(p); } | |
#define ReleaseNullMem(p) if (p) { MemFree(p); p = NULL; } | |
HRESULT DAPI MemInitialize(); | |
void DAPI MemUninitialize(); | |
LPVOID DAPI MemAlloc( | |
__in SIZE_T cbSize, | |
__in BOOL fZero | |
); | |
LPVOID DAPI MemReAlloc( | |
__in LPVOID pv, | |
__in SIZE_T cbSize, | |
__in BOOL fZero | |
); | |
HRESULT DAPI MemEnsureArraySize( | |
__deref_out_bcount(cArray * cbArrayType) LPVOID* ppvArray, | |
__in DWORD cArray, | |
__in SIZE_T cbArrayType, | |
__in DWORD dwGrowthCount | |
); | |
HRESULT DAPI MemInsertIntoArray( | |
__deref_out_bcount((cExistingArray + cNumInsertItems) * cbArrayType) LPVOID* ppvArray, | |
__in DWORD dwInsertIndex, | |
__in DWORD cNumInsertItems, | |
__in DWORD cExistingArray, | |
__in SIZE_T cbArrayType, | |
__in DWORD dwGrowthCount | |
); | |
HRESULT DAPI MemFree( | |
__in LPVOID pv | |
); | |
SIZE_T DAPI MemSize( | |
__in LPCVOID pv | |
); | |
#ifdef __cplusplus | |
} | |
#endif | |