DOC: CImageList Returned from CreateDragImage Needs DeleteLast reviewed: June 26, 1997Article ID: Q155436 |
The information in this article applies to:
SUMMARYThe CTreeCtrl::CreateDragImage and CListCtrl::CreateDragImage functions in versions of MFC earlier than 4.2 return a pointer to a temporary CImageList object. In MFC version 4.2, CreateDragImage returns a permanent object that must be explicitly deleted. The documentation for CreateDragImage does not state this. This documentation error was fixed in Visual C++ version 5.0.
MORE INFORMATIONIn versions of MFC earlier than 4.2, MFC implements CreateDragImage as CImageList::FromHandle. An object returned from FromHandle is temporary and does not need to be explicitly deleted. A limitation of this implementation is that the CImageList pointer can be safely used only in the current message being processed. CreateDragImage function was changed in Visual C++ version 4.2 to allocate a permanent CImageList object, and can now be used when handling multiple messages. When finished using the pointer returned by CreateDragImage, however, it is now necessary to explicitly delete the object:
CImageList* pImageList = CreateDragImage( ... delete pImageList;For more information on temporary handles returned from FromHandle, see MFC TechNote "TN003: Mapping of Windows Handles to Objects" in the Visual C++ Books Online.
|
Additional query words: leak
© 1998 Microsoft Corporation. All rights reserved. Terms of Use. |