共用方式為


OleFlushClipboard 函式 (ole2.h)

執行剪貼簿關機順序。 它也會釋放 OleSetClipboard 函式放置在剪貼簿上的 IDataObject 指標。

Syntax

HRESULT OleFlushClipboard();

傳回值

此函式會在成功時傳回S_OK。 其他可能的值包括下列專案。

傳回碼 Description
CLIPBRD_E_CANT_OPEN
OleFlushClipboard 中使用的 Windows OpenClipboard 函式失敗。
CLIPBRD_E_CANT_CLOSE
OleFlushClipboard 中使用的 Windows CloseClipboard 函式失敗。

備註

OleFlushClipboard 會將數據對象中的數據轉譯到剪貼簿,並釋放數據物件的 IDataObject 指標。 當將數據物件放在剪貼簿上的應用程式正在執行時,剪貼簿只會保留資料物件的指標,因而節省記憶體。 如果您要撰寫做為剪貼簿作業來源的應用程式,您可以在關閉應用程式時呼叫 OleFlushClipboard 函式,例如當使用者離開應用程式時。 呼叫 OleFlushClipboard 可在應用程式關閉之後,啟用 OLE 物件的貼上和貼上連結。

在呼叫 OleFlushClipboard 之前,您可以輕鬆地判斷您的數據是否仍在剪貼簿上,並呼叫 OleIsCurrentClipboard 函式。

OleFlushClipboard 會保留資料傳輸物件提供的所有格式,包括剪貼簿上的 OLE 1 相容性格式,以便在應用程式關機後提供它們。 除了 OLE 1 相容性格式之外,這些格式也包括全域句柄媒體上提供的所有格式, (除了TYMED_FILE) ,並以 NULL 目標裝置格式化。 例如,如果數據源應用程式提供特定的剪貼簿格式, (在 IStorage 物件上說 cfFOO) ,並呼叫 OleFlushClipboard 函式,則會將記憶體物件複製到記憶體中,並將 hglobal 記憶體句柄放在剪貼簿上。

若要擷取剪貼簿上的資訊,您可以從另一個應用程式呼叫 OleGetClipboard 函式,這會建立預設數據物件,而剪貼簿中的 hglobal 會再次變成記憶體物件。 此外, FORMATETC 列舉值和 IDataObject::QueryGetData 方法會正確地指出原始剪貼簿格式 (cfFOO) 可在TYMED_ISTORAGE上再次使用。

若要清空剪貼簿,請呼叫指定其參數 NULL 值的 OleSetClipboard 函式。 如果關閉之後不需要在剪貼簿上保留數據,或是數據將使用標準 Windows 剪貼簿函式放在剪貼簿上,應用程式應該呼叫此專案。

規格需求

需求
最低支援的用戶端 Windows 2000 Professional [僅限傳統型應用程式]
最低支援的伺服器 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 版)

另請參閱

IDataObject

OleGetClipboard

OleIsCurrentClipboard

OleSetClipboard