SetClipboardData 函式 (winuser.h)
以指定的剪貼簿格式將資料放在剪貼簿上。 視窗必須是目前的剪貼簿擁有者,而且應用程式必須已呼叫 OpenClipboard 函式。 (回應WM_RENDERFORMAT訊息時,剪貼簿擁有者在呼叫SetClipboardData.) 之前,不得呼叫OpenClipboard
語法
HANDLE SetClipboardData(
[in] UINT uFormat,
[in, optional] HANDLE hMem
);
參數
[in] uFormat
類型: UINT
剪貼簿格式。 此參數可以是已註冊的格式或任何標準剪貼簿格式。 如需詳細資訊,請參閱 標準剪貼簿格式 和 已註冊的剪貼簿格式。
[in, optional] hMem
類型: HANDLE
指定格式之資料的控制碼。 這個參數可以是 Null,表示視窗會以指定的剪貼簿格式提供資料, (在要求時呈現格式) ;這稱為 延遲轉譯。 如果視窗延遲轉譯,它必須處理 WM_RENDERFORMAT 和 WM_RENDERALLFORMATS 訊息。
如果 SetClipboardData 成功,系統就會擁有 hMem 參數所識別的物件。 一旦擁有權傳輸至系統,應用程式可能不會寫入或釋放資料,但可以在呼叫 CloseClipboard 函式之前鎖定和讀取資料。 (剪貼簿關閉之前必須先解除鎖定記憶體。) 如果 hMem 參數識別記憶體物件,則必須使用具有 GMEM_MOVEABLE 旗標的函式來設定物件。
傳回值
類型: HANDLE
如果函式成功,傳回值就是資料的控制碼。
如果函式失敗,傳回值為 Null。 若要取得擴充的錯誤資訊,請呼叫 GetLastError。
備註
Windows 8: 要與 Windows 市集應用程式共用的點陣圖必須採用 CF_BITMAP格式, ( 裝置相依點陣圖) 。
如果應用程式呼叫 SetClipboardData 以回應 WM_RENDERFORMAT 或 WM_RENDERALLFORMATS,則應用程式不應該在 呼叫 SetClipboardData 之後使用控制碼。
如果應用程式呼叫將 hwnd 設為Null的OpenClipboard,EmptyClipboard會將剪貼簿擁有者設定為Null;這會導致SetClipboardData失敗。
當應用程式呼叫 GetClipboardData 函式時,系統會在特定剪貼簿格式之間執行隱含的資料格式轉換。 例如,如果 CF_OEMTEXT 格式位於剪貼簿上,視窗可以 擷取CF_TEXT 格式的資料。 剪貼簿上的格式會視需要轉換成要求的格式。 如需詳細資訊,請參閱 合成剪貼簿格式。
範例
如需範例,請參閱 將資訊複製到剪貼簿。
規格需求
最低支援的用戶端 | Windows 2000 Professional [僅限傳統型應用程式] |
最低支援的伺服器 | Windows 2000 Server [僅限桌面應用程式] |
目標平台 | Windows |
標頭 | winuser.h (包含 Windows.h) |
程式庫 | User32.lib |
Dll | User32.dll |
API 集合 | ext-ms-win-ntuser-misc-l1-2-0 (Windows 8.1) |
另請參閱
概念
參考