CreateItemMoniker 函式 (objbase.h)
建立專案 Moniker,識別包含物件內的物件 (通常是複合檔) 。
語法
HRESULT CreateItemMoniker(
[in] LPCOLESTR lpszDelim,
[in] LPCOLESTR lpszItem,
[out] LPMONIKER *ppmk
);
參數
[in] lpszDelim
寬字元字串的指標,每個字元 (兩個字節,) 以零結尾的字串,其中包含分隔符 (通常是 “!”) 用來分隔此項目的顯示名稱與其包含對象的顯示名稱。
[in] lpszItem
以零結尾字串的指標,指出所識別物件的包含物件名稱。 此名稱稍後可用來擷取 呼叫 IOleItemContainer::GetObject 中物件的指標。
[out] ppmk
接收專案 Moniker 介面指標的 IMoniker* 指標變數位址。 成功時,函式已在專案Moniker上呼叫 AddRef ,而呼叫端負責呼叫 Release。 如果發生錯誤,則提供的介面指標具有 NULL 值。
傳回值
此函式可以傳回標準傳回值E_OUTOFMEMORY和S_OK。
備註
Moniker 提供者,其會向Monikers提供識別其物件,讓其他物件能夠存取它們,因此會呼叫 CreateItemMoniker ,以專案 Monikers 識別其物件。 專案Moniker是以字串為基礎,並識別包含在另一個物件內的物件,而且可以使用字串個別識別。 包含的物件也必須實作 IOleContainer 介面。
大部分Moniker提供者都是支持連結的 OLE 應用程式。 支援連結至小於檔案檔之物件的應用程式,例如允許連結至檔內選取範圍的伺服器應用程式,應該使用專案 Monikers 來識別物件。 允許連結至內嵌物件的容器應用程式會使用專案Monikers來識別內嵌物件。
lpszItem 參數是檔用來唯一識別對象的名稱。 例如,如果識別的對像是電子表格中的儲存格範圍,則適當的名稱可能類似 「A1:E7」。識別的物件為內嵌物件時,適當的名稱可能是 “embedobj1”。包含的對象必須提供 IOleItemContainer 介面的實作,這個介面可以解譯此名稱並找出對應的物件。 這可讓專案Moniker系結至它所識別的物件。
專案Moniker不會用於隔離。 它們也必須由識別包含物件的Moniker組成。 例如,如果所識別的對像是檔案型檔中所包含的單元格範圍,則識別該物件的專案Moniker必須與識別該檔的檔案Moniker一起撰寫,導致複合Moniker相當於 「C:\work\sales.xls!A1:E7.”
也允許巢狀容器,如同物件包含在另一份檔內內嵌對象的情況下。 這類物件的完整Moniker相當於 「C:\work\report.doc!embedobj1!A1:E7.”在此情況下,每個包含的對象都必須呼叫 CreateItemMoniker ,並提供自己的 IOleItemContainer 介面實作。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 2000 專業版 [傳統型應用程式 |UWP 應用程式] |
最低支援的伺服器 | Windows 2000 Server [傳統型應用程式 |UWP 應用程式] |
目標平台 | Windows |
標頭 | objbase.h |
程式庫 | Ole32.lib |
Dll | Ole32.dll |
API 集合 | ext-ms-win-com-ole32-l1-1-0 (中引進的 Windows 8) |