OleSetClipboard 函式 (ole2.h)
將特定資料物件的指標放在剪貼簿上。 這可讓 OleGetClipboard 函式存取資料物件。
語法
HRESULT OleSetClipboard(
[in] LPDATAOBJECT pDataObj
);
參數
[in] pDataObj
可從資料物件上取得要放置於剪貼簿上的 IDataObject 介面指標。 此參數可以是 Null;在此情況下,剪貼簿已清空。
傳回值
此函式會在成功時傳回S_OK。 其他可能的值包括下列專案。
傳回碼 | 描述 |
---|---|
|
OleSetClipboard中使用的OpenClipboard函式失敗。 |
|
OleSetClipboard中使用的EmptyClipboard函式失敗。 |
|
OleSetClipboard中使用的CloseClipboard函式失敗。 |
|
OleSetClipboard中使用的SetClipboardData函式失敗。 |
備註
如果您要撰寫可做為剪貼簿作業來源的應用程式,您必須執行下列動作:
- 建立資料物件 (,這是要複製或剪下至剪貼簿之資料的 IDataObject 介面) 。 這個物件應該是 OLE 拖放作業中使用的相同物件。
- 呼叫 OleSetClipboard 將 IDataObject 指標放在剪貼簿上,因此 OleGetClipboard 函式可以存取它。 OleSetClipboard 也會在資料物件上呼叫 IUnknown::AddRef 方法。
- 如果您想要,請在剪貼簿上放置資料物件之後釋出資料物件,以釋出應用程式中的 IUnknown::AddRef 計數器。
- 如果使用者將資料剪下 (從檔刪除,並將它放入剪貼簿) ,請從檔中移除資料。
OleSetClipboard函式會將剪貼簿的擁有權指派給內部 OLE 視窗控制碼。 資料物件的參考計數會增加 1,以啟用延遲轉譯。 參考計數會藉由呼叫 OleFlushClipboard 函式,或後續呼叫 OleSetClipboard 將 Null 指定為參數值來減少, (清除剪貼簿) 。
當應用程式透過呼叫 OpenClipboard 函式) 直接或間接開啟剪貼簿 (,除非關閉剪貼簿,否則任何其他應用程式都無法使用剪貼簿。 如果剪貼簿目前由另一個應用程式開啟, OleSetClipboard 就會失敗。 內部 OLE 視窗控制碼會將訊息委派給剪貼簿上的資料物件上的 IDataObject 實作,以滿足WM_RENDERFORMAT訊息。
將 Null 指定為 OleSetClipboard 的參數值會清除目前的剪貼簿。 如果剪貼簿的內容是先前 的 OleSetClipboard 呼叫的結果,而且已釋放剪貼簿,則會釋放傳遞至先前呼叫的 IDataObject 指標。 剪貼簿擁有者應該使用此做為訊號,指出先前提供的資料已不再位於剪貼簿上。
如果您需要在關閉應用程式之後將資料保留在剪貼簿上,您應該呼叫OleFlushClipboard,而不是使用Null參數值呼叫OleSetClipboard。
需求
最低支援的用戶端 | Windows 2000 專業版 [僅限傳統型應用程式] |
最低支援的伺服器 | Windows 2000 Server [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | ole2.h |
程式庫 | Ole32.lib |
Dll | Ole32.dll |
API 集合 | ext-ms-win-com-ole32-l1-1-5 (于 Windows 10 10.0.15063 版) |