OleGetClipboardWithEnterpriseInfo 函式 (ole2.h)
啟用 Windows 資訊保護 啟用
從 OLE 剪貼簿擷取 IDataObject 的應用程式
隨附於 Windows 資訊保護 數據和 的相關信息
來源應用程式。這項信息允許
啟發式應用程式負責套用 Windows 資訊保護
原則,包括飛行任何適當的 UI 提示,以及
用戶明確核准複製的稽核案例
企業數據進入個人內容。
如果呼叫的應用程式未啟用,或為
設定為「不允許」以存取企業數據,
然後,此呼叫的行為與 OleGetClipboard 完全相同 - 在決定要傳回 的 IDataObject 之前套用原則,
並提供空字串做為輸出。
語法
HRESULT OleGetClipboardWithEnterpriseInfo(
[out] IDataObject **dataObject,
[out] PWSTR *dataEnterpriseId,
[out] PWSTR *sourceDescription,
[out] PWSTR *targetDescription,
[out] PWSTR *dataDescription
);
參數
[out] dataObject
接收剪貼簿數據物件介面指標的 IDataObject 指標變數位址。
[out] dataEnterpriseId
設定剪貼簿數據之應用程式的企業識別碼。 如果數據是個人數據,這會是空字串。
[out] sourceDescription
設定剪貼簿的應用程式描述。
[out] targetDescription
要用於稽核之呼叫端應用程式的描述。
[out] dataDescription
要用於稽核的數據物件描述。
傳回值
此函式會在成功時傳回S_OK。 其他可能的值包括下列專案。
傳回碼 | Description |
---|---|
|
OleFlushClipboard 中使用的 OpenClipboard 函式失敗。 |
|
OleFlushClipboard 中使用的 CloseClipboard 函式失敗。 |
備註
OleGetClipboardWithEnterpriseInfo 會處理三個案例:
- 使用 OleSetClipboard 函式在剪貼簿上放置數據的應用程式仍在執行中。
- 使用 OleSetClipboard 函式在剪貼簿上放置數據的應用程式隨後會呼叫 OleFlushClipboard 函式。
- 剪貼簿上有來自非 OLE 應用程式的數據。
第二種情況下,OLE 會建立預設數據物件,並將它傳回給使用者。 由於剪貼簿上的數據源自 OleSetClipboard 呼叫,所以 OLE 提供的數據物件包含剪貼簿上數據類型的更精確資訊。 特別是,原始媒體 (TYMED) 提供數據的已知。 因此,如果數據源應用程式提供特定的剪貼簿格式,例如 cfFOO,在記憶體物件上呼叫 OleFlushClipboard 函式,則會將記憶體物件複製到記憶體中,並將 hglobal 記憶體句柄放在剪貼簿上。 然後,當 OleGetClipboardWithEnterpriseInfo 函式建立其默認數據物件時,剪貼簿中的 hglobal 會再次成為 IStorage 物件。 此外, FORMATETC 列舉值和 IDataObject::QueryGetData 方法會正確指出原始剪貼簿格式 (cfFOO) 在TYMED_ISTORAGE上再次提供。
第三種情況中,OLE 仍會建立預設數據物件,但剪貼簿格式中的數據沒有特殊資訊, (特別適用於應用程式定義的剪貼簿格式) 。 因此,如果呼叫 SetClipboardData 函式直接將 hGlobal 型儲存媒體放在剪貼簿上, FORMATETC 列舉值和 IDataObject::QueryGetData 方法不會指出儲存媒體上提供數據。 不過,針對 TYMED_ISTORAGE呼叫 IDataObject::GetData 方法會成功。 由於這些限制,強烈建議 OLE 感知應用程式使用 OLE 剪貼簿函式與剪貼簿互動。
OleGetClipboardWithEnterpriseInfo 函式所建立的剪貼簿數據物件具有相當廣泛的 IDataObject 實作。 OLE 提供的數據物件可以將 OLE 1 剪貼簿格式數據轉換成 OLE 2 呼叫端預期的表示。 此外,任何結構化或平面媒體上都可以使用任何結構化或平面數據,而且任何平面媒體上都可以使用任何一般數據。 不過,GDI 物件 (例如元檔與點陣圖) 僅適用於其各自的媒體。
請注意, FORMATETC 列舉值中使用的 FORMATETC 結構的 tymed 成員包含支援的媒體聯集。 尋找特定資訊的應用程式 (,例如CF_TEXT在檢查此值時,TYMED_HGLOBAL) 是否应该执行适当的位掩码。
如果您呼叫 OleGetClipboardWithEnterpriseInfo 函式,您應該只保留傳回的 IDataObject 一段非常短的時間。 它會取用應用程式中提供的資源。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 10 [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2016 [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | ole2.h |
程式庫 | Ole32.lib |
Dll | Ole32.dll |