如何使用IMalloc :: Free?

时间:2010-06-20 14:05:50

标签: com oledb

我正在使用ICommandText :: GetCommandText方法。 根据MSDN文档(http://msdn.microsoft.com/en-us/library/ms709825(v=VS.85).aspx),我需要使用IMalloc :: Free来释放为LPOLESTR * ppwszCommand输出参数分配的内存。

如何使用此界面执行此操作?

2 个答案:

答案 0 :(得分:3)

将它传递给CoTaskMemFree,它正在包装相同的默认OLE分配器CoGetMalloc正在公开。

CoTaskMemAlloc/Free是默认OLE分配器的IMalloc接口的便捷快捷方式,因此您可以完全跳过繁琐的界面。

答案 1 :(得分:1)

您需要首先检索IMalloc*指针 - 使用CoGetMalloc()。一旦你有一个IMalloc*指针调用IMalloc::Free(),传递你想要释放的块的地址。完成指针上的IMalloc*指针调用IMalloc::Release()后,将其保存到某个地方以便在不再需要时重复使用并释放。