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)

另請參閱

IMoniker

IMoniker::ComposeWith

IOleContainer

IOleItemContainer