CreateGenericComposite 函式 (objbase.h)
執行兩個Moniker的泛型組合,並提供結果複合Moniker的指標。
語法
HRESULT CreateGenericComposite(
[in, optional] LPMONIKER pmkFirst,
[in, optional] LPMONIKER pmkRest,
[out] LPMONIKER *ppmkComposite
);
參數
[in, optional] pmkFirst
要由 pmkRest 指向之 Moniker 左邊的 Moniker 指標。 可以指向任何類型的Moniker,包括泛型複合。
[in, optional] pmkRest
要由 pmkFirst 指向之 Moniker 右邊之 Moniker 的指標。 可以指向與 pmkRest Moniker 類型相容的任何類型的 Moniker,包括泛型複合。
[out] ppmkComposite
IMoniker* 指標變數的位址,該變數會接收複合 Moniker 對象的介面指標,這是撰寫 pmkFirst 和 pmkRest 的結果。 這個物件支援 IMoniker 的 OLE 複合 Moniker 實作。 成功時,函式已在Moniker上呼叫 AddRef ,而呼叫端負責呼叫 Release。 如果 pmkFirst 或 pmkRest 為 NULL,則提供的指標是非 NULL 的指標。 如果 pmkFirst 和 pmkRest 都是 NULL,或發生錯誤,則傳回的指標為 NULL。
傳回值
此函式可以傳回標準傳回值E_OUTOFMEMORY,以及下列值。
傳回碼 | 描述 |
---|---|
|
輸入Monikers已成功撰寫。 |
|
例如,如果 pmkFirst 和 pmkRest 都是以絕對路徑) 為基礎的檔案 Monikers,則無法撰寫兩個 Monikers,因為路徑語法發生錯誤 (。 |
備註
CreateGenericComposite 會將兩個 Monikers 聯結至一個。 聯結的Moniker類別可能不同,只受限於組合規則。 只有在您藉由實作 IMoniker 介面來撰寫新的 Moniker 類別時,才呼叫此函式,在包含泛型組合功能的 IMoniker::ComposeWith 實作內。
Moniker 提供者應該呼叫 ComposeWith ,將兩個 Monikers 組合在一起。 ComposeWith 的實作應該 (,因為 OLE 實作) 嘗試,當類別合理時,請先執行非泛型組合,在其中合併相同類別的兩個 Moniker。 如果無法這麼做,實作可以呼叫 CreateGenericComposite 來執行泛型組合,這會在組合規則中結合不同類別的兩個 Moniker。 如果您撰寫新的Moniker類別,則可以定義新的非泛型組合類型。
在撰寫兩個Monikers的過程中, CreateGenericComposite 會簡化所有作業。 假設 pmkFirst 是泛型複合 Moniker、A + B + C, 而 pmkRest 是泛型複合 Moniker、C -1 + B -1 + Z (,其中 C -1 是 C) 的反轉。 函式會先撰寫 C 到 C -1,以無內容撰寫。 然後,它會將 B 和 B -1 組成任何專案。 最後,它會撰寫 A 到 Z,並提供泛型複合 Moniker A + Z 的指標。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 2000 專業版 [傳統型應用程式 |UWP 應用程式] |
最低支援的伺服器 | Windows 2000 Server [傳統型應用程式 |UWP 應用程式] |
目標平台 | Windows |
標頭 | objbase.h |
程式庫 | Ole32.lib |
Dll | Ole32.dll |
API 集合 | ext-ms-win-com-ole32-l1-1-5 (於 Windows 10 10.0.15063 版) |