要放置在剪贴板上的内存对象应使用带有GMEM_DDESHARE和GMEM_MOVEABLE标志的GlobalAlloc功能进行分配。
一旦将内存对象放置在剪贴板上,该内存句柄的所有权将传输到系统。当剪贴板被清空并且内存对象具有以下剪贴板格式之一时,系统通过调用指示的Win32功能来释放内存对象:
函数调用自由对象 | 剪贴板格式 |
DeleteMetaFile | CF_DSPENHMETAFILE |
CF_DSPMETAFILEPICT | |
CF_ENHMETAFILE | |
CF_METAFILEPICT | |
DeleteObject | CF_BITMAP |
CF_DSPBITMAP | |
CF_PALETTE | |
GlobalFree | CF_DIB |
CF_DSPTEXT | |
CF_OEMTEXT | |
CF_TEXT | |
CF_UNICODETEXT |
当剪贴板清空其剪贴板格式未在上述列表中显示的内存对象时,应用程序本身必须释放内存对象。