WINAPI会自动释放附加到控件的内存吗?

c-d*_*dev 5 c winapi

关于WIN32 api的一个简单问题.
我有一个使用MySQL C API连接到MySQL的函数,它检索指向结构的指针的链接列表.

所以在一个对话框回调中,我ListView用这些元素填充一个控件,并将每个元素结构指针附加到一行中ListView.

现在的问题是:我应该释放指针从删除的所有项目后,ListView通过LVM_DELETEALLITEMS例如当我点击刷新按钮?
或者WIN32 API为我释放它们?

IIn*_*ble 5

从列表视图中删除项目时,您负责清理通过LVITEM结构的lParam成员引用的任何资源.Windows API不会为您执行此操作.

实际上,Windows API无法为您执行此操作.它没有办法知道,指针指向的内存是否分配使用new,malloc,IMalloc,或任何其他分配器.或者指针可能指向静态分配的数组,并且不需要完全释放.或者它甚至可能不是指针,而是用于排序的哈希值,或者是其他结构的索引.

因为只有你知道,如何解释lParam,所有关于资源管理的责任都在你身上.与一些观点相反,C++在这里不会帮助你.