OpenClipboard

OpenClipboard

如果一個應用程序調用OpenClipboard,HWND設置為NULL,EmptyClipboard設置剪貼板所有者為NULL,這會導致SetClipboardData失敗。

VB


OpenClipboard
打開剪貼板查看,並防止其他應用程序修改剪貼板的內容.
VB聲明:
Declare Function OpenClipboard Lib "user32" (ByVal hWndNewOwner As Long) As Long
C/C++函數原形:
BOOL OpenClipboard(
__in HWND hWndNewOwner
);
參數
hWndNewOwne Long類型,與打開剪切板相關聯的窗口句柄。如果這個參數為NULL,打開剪貼板與當前任務相關聯。
返回值
如果函數執行成功,返回非零值.
如果函數執行失敗,返回零,為了獲得更多的錯誤信息,調用GetLastError.
注:
如果另一個窗口已經打開的剪貼板,OpenClipboard函數會失敗。每次成功調用OpenClipboard后都應有一次CloseClipboard調用.
由hWndNewOwner參數確定的窗口不會成為剪貼板所有者,除非EmptyClipboard函數被調用。
需求:
客戶機操作系統最低需求:Windows XP
伺服器操作系統最低需求:Windows 2000 Server
頭文件:windows.h
庫文件:user32.lib
DLL文件名:user32.dll

VC


介紹

類: CWnd
頭文件:
afxwin.h
功能:打開剪貼板。
語法:
BOOL OpenClipboard();
返回值:
如果通過CWnd打開了剪貼板,則返回非零值。
如果其他應用程序或窗口已經打開了剪貼板,則返回零。
說明:
在調用Windows的CloseClipboard函數之前,其他應用程序將不能修改剪貼板的內容。
在調用Windows的EmptyClipboard函數之前,當前的CWnd對象將不會成為剪貼板的擁有者。

示例

//打開粘貼板
if(!OpenClipboard())
//如果失敗則釋放內存局柄
GlobalFree(m_hMemory);
//清空粘貼板
else if(!EmptyClipboard()||SetClipboardData(CF_TEXT,m_hMemory)==NULL)
{
//失敗時釋放內存句柄
GlobalFree(m_hMemory);
}
else
//關閉粘貼板
CloseClipboard();