次の方法で共有


アイテム モニカー

別の OLE 実装モニカー クラスは、別のオブジェクトに含まれるオブジェクトを識別するために使用できる 項目モニカーです。 包含オブジェクトの種類の 1 つは、複合ドキュメントに埋め込まれた OLE オブジェクトです。 複合ドキュメントでは、"embedobj1"、"embedobj2" などの任意の名前を割り当てることで、含まれている埋め込みオブジェクトを識別できます。 もう 1 つの種類の包含オブジェクトは、スプレッドシート内のセル範囲やテキスト ドキュメント内の文字範囲など、ドキュメント内のユーザー選択です。 選択範囲で構成されるオブジェクトは、ユーザーが選択をマークするまで個別のオブジェクトとして扱われないため、擬似オブジェクト と呼ばれます。 スプレッドシートは、"1A:7F" などの名前を使用してセル範囲を識別し、ワープロ ドキュメントではブックマークの名前を使用して文字の範囲を識別する場合があります。

項目モニカーは、主にコンテナーを識別する別のモニカーと連結 、またはで構成される場合に便利です。 通常、アイテム モニカーは作成され、(たとえば) ファイル モニカー上に作成され、オブジェクトへの完全なパスと同等のパスが作成されます。 たとえば、ファイル モニカー "c:\work\report.doc" (コンテナー オブジェクトを識別します) とアイテム モニカー "embedobj1" (コンテナー内のオブジェクトを識別する) を構成して、特定のファイル内の特定のオブジェクトを一意に識別するモニカー "c:\work\report.doc\embedobj1" を形成できます。 また、追加の項目モニカーを連結して、深く入れ子になったオブジェクトを識別することもできます。 たとえば、"embedobj1" がスプレッドシート オブジェクトの名前である場合、そのスプレッドシート オブジェクト内の特定のセル範囲を識別するために、別のアイテム モニカーを追加して、"c:\work\report.doc\embedobj1\1A:7F" と同等のモニカーを作成できます。

ファイル モニカーと組み合わせると、アイテム モニカーは完全なパスを形成します。 したがって、項目モニカーはファイル システムを超えてパス名の概念を拡張し、ファイルだけでなく個々のオブジェクトを識別するパス名を定義します。

アイテム モニカーとファイル モニカーには大きな違いがあります。 ファイル モニカーに含まれるパスは、ファイル システムを理解しているユーザーにとって意味を持ち、項目モニカーに含まれる部分パスは特定のコンテナーにのみ意味があります。 誰もが "c:\work\report.doc" が何を指しているのかを知っていますが、"1A:7F" が何を参照するかを知っているコンテナー オブジェクトは 1 つだけです。 あるコンテナーは、別のアプリケーションによって作成された項目モニカーを解釈できません。項目モニカーによって参照されるオブジェクトを認識する唯一のコンテナーは、最初に項目モニカーをオブジェクトに割り当てたコンテナーです。 このため、ファイルとアイテム モニカーの組み合わせによって名前付けされたオブジェクトのソースは、ファイル モニカーのバインドを容易にするために、IPersistFile実装するだけでなく、IOleItemContainerして、項目モニカーの名前をファイルのコンテキストで適切なオブジェクトに解決できるようにする必要があります。

モニカーの利点は、モニカーを使用してオブジェクトを見つける人が、アイテム モニカーが複合の一部である限り、アイテム モニカーに含まれる名前を理解する必要がないことです。 一般に、アイテム モニカーが単独で存在することは意味がありません。 代わりに、ファイル モニカーにアイテム モニカーを作成します。 その後、複合 IMoniker::BindToObject を呼び出し、その中の個々のモニカーをバインドして名前を解釈します。

アイテム モニカー オブジェクトを作成し、モニカー プロバイダーへのポインターを返すために、OLE は CreateItemMonikerヘルパー関数を提供します。 この関数は、項目モニカー オブジェクトを作成し、プロバイダーへのポインターを返します。

反モニカー

クラス モニカー

複合モニカー

ファイル モニカー

ポインター モニカー