11 //__interface __declspec(uuid("654F7EF5-CFDF-4df9-A450-6C6A13C622C0"))
15 virtual ~IAtlMemMgr() {};
17 virtual _Ret_maybenull_
_Post_writable_byte_size_(SizeBytes
) void* Allocate(
22 _Inout_opt_
void* Buffer
25 virtual _Ret_maybenull_
_Post_writable_byte_size_(SizeBytes
) void* Reallocate(
26 _Inout_updates_bytes_opt_(SizeBytes
) void* Buffer
,
30 virtual size_t GetSize(
35 class CWin32Heap
: public IAtlMemMgr
46 CWin32Heap(_In_ HANDLE hHeap
) :
49 ATLASSERT(hHeap
!= NULL
);
58 _Ret_maybenull_
_Post_writable_byte_size_(SizeBytes
) virtual void* Allocate(
62 return ::HeapAlloc(m_hHeap
, 0, SizeBytes
);
71 if (!::HeapFree(m_hHeap
, 0, Buffer
))
76 _Ret_maybenull_
_Post_writable_byte_size_(SizeBytes
) virtual void* Reallocate(
77 _In_opt_
void* Buffer
,
89 return Allocate(SizeBytes
);
92 return ::HeapReAlloc(m_hHeap
, 0, Buffer
, SizeBytes
);
95 virtual size_t GetSize(
99 return ::HeapSize(m_hHeap
, 0, Buffer
);