剪贴板里的JPG图片,代码无法保存GetClipboardData(CF_BITMAP)返回NULL,但是却可以右键粘贴,该怎么处理

剪贴板里的JPG图片,代码无法保存GetClipboardData(CF_BITMAP)返回NULL,但是却可以右键粘贴
剪贴板里的JPG图片,代码无法保存GetClipboardData(CF_BITMAP)返回NULL,但是却可以右键粘贴

	if (::OpenClipboard(NULL))
{
HBITMAP h = (HBITMAP)GetClipboardData(CF_BITMAP); //这一句返回NULL
                int e=GetLastError();                                                                  //GetLastError()返回0
         }

------解决方案--------------------
我想这里面不一定保存有实质的图片,只做了个标记而已,真正内存拷贝动作可能发生在 粘贴 动作时。
------解决方案--------------------

WINUSERAPI HANDLE WINAPI GetClipboardData(__in UINT uFormat);

这是它的声明。
楼主可以按照下面的代码试试:

if(!IsClipboardFormatAvailable(CF_BITMAP))
{
TRACE("IsClipboardFormatAvailable() failed!\n");
return ;
}
if(!OpenClipboard())
{
TRACE("OpenClipboard() failed!\n");
return ;
}
HANDLE hMem=GetClipboardData(CF_BITMAP); 
ASSERT(hMem != NULL);
HBITMAP hBMP=(HBITMAP)GlobalLock(hMem);
//Do something here using hBMP
GlobalUnlock(hMem);
//Free the memory
CloseClipboard();

------解决方案--------------------
GetLastError返回值是多少?