CreateItemMoniker 関数 (objbase.h)

含むオブジェクト (通常は複合ドキュメント) 内のオブジェクトを識別するアイテム モニカーを作成します。

構文

HRESULT CreateItemMoniker(
  [in]  LPCOLESTR lpszDelim,
  [in]  LPCOLESTR lpszItem,
  [out] LPMONIKER *ppmk
);

パラメーター

[in] lpszDelim

このアイテムの表示名を含むオブジェクトの表示名から区切るために使用される区切り記号 (通常は "!") を含むワイド文字列 (1 文字あたり 2 バイト) の 0 で終わる文字列へのポインター。

[in] lpszItem

識別されるオブジェクトのオブジェクトの名前を含むを示す、0 で終わる文字列へのポインター。 この名前は、後で IOleItemContainer::GetObject の呼び出しでオブジェクトへのポインターを取得するために使用できます。

[out] ppmk

項目モニカーへのインターフェイス ポインターを受け取る IMoniker* ポインター変数のアドレス。 成功した場合、関数はアイテム モニカーで AddRef を呼び出し、呼び出し元は Release を呼び出す役割を担います。 エラーが発生した場合、指定されたインターフェイス ポインターには NULL 値があります。

戻り値

この関数は、E_OUTOFMEMORYおよびS_OK標準戻り値を返すことができます。

注釈

モニカー プロバイダーは、モニカーを提供してオブジェクトを識別し、他の関係者がアクセスできるように、 CreateItemMoniker を呼び出して、アイテム モニカーでそのオブジェクトを識別します。 アイテム モニカーは文字列に基づいており、別のオブジェクト内に含まれており、文字列を使用して個別に識別できるオブジェクトを識別します。 包含オブジェクトは 、IOleContainer インターフェイスも実装する必要があります。

ほとんどのモニカー プロバイダーは、リンクをサポートする OLE アプリケーションです。 ファイル ベースのドキュメントよりも小さいオブジェクトへのリンクをサポートするアプリケーション (ドキュメント内の選択範囲へのリンクを許可するサーバー アプリケーションなど) では、アイテム モニカーを使用してオブジェクトを識別する必要があります。 埋め込みオブジェクトへのリンクを許可するコンテナー アプリケーションでは、項目モニカーを使用して埋め込みオブジェクトを識別します。

lpszItem パラメーターは、オブジェクトを一意に識別するためにドキュメントで使用される名前です。 たとえば、識別されるオブジェクトがスプレッドシート内のセル範囲である場合、適切な名前は "A1:E7" のようになります。識別されるオブジェクトが埋め込みオブジェクトである場合の適切な名前は、"embedobj1" のようになります。包含オブジェクトは、この名前を解釈して対応するオブジェクトを検索できる IOleItemContainer インターフェイスの実装を提供する必要があります。 これにより、項目モニカーを識別するオブジェクトにバインドできます。

項目モニカーは、単独では使用されません。 これらは、含まれているオブジェクトを識別するモニカーで構成する必要があります。 たとえば、識別されるオブジェクトがファイル ベースのドキュメントに含まれるセル範囲である場合、そのオブジェクトを識別するアイテム モニカーは、そのドキュメントを識別するファイル モニカーで構成する必要があり、その結果、"C:\work\sales.xls!A1:E7"

また、別のドキュメント内の埋め込みオブジェクト内にオブジェクトが含まれている場合と同様に、入れ子になったコンテナーも許可されます。 このようなオブジェクトの完全なモニカーは、"C:\work\report.doc!embedobj1!A1:E7"この場合、含まれる各オブジェクトは CreateItemMoniker を 呼び出し、 IOleItemContainer インターフェイスの独自の実装を提供する必要があります。

要件

要件
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリ |UWP アプリ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリ |UWP アプリ]
対象プラットフォーム Windows
ヘッダー objbase.h
Library Ole32.lib
[DLL] Ole32.dll
API セット ext-ms-win-com-ole32-l1-1-0 (Windows 8で導入)

こちらもご覧ください

Imoniker

IMoniker::ComposeWith

IOleContainer

IOleItemContainer