次の方法で共有


ポインター モニカー

ポインター モニカー は、アクティブまたは実行中の状態でのみ存在できるオブジェクトを識別します。 これは、パッシブ状態またはアクティブ状態のいずれかに存在できるオブジェクトを識別するモニカーの他のクラスとは異なります。

たとえば、アプリケーションに永続的な表現がないオブジェクトがあるとします。 通常、アプリケーションのクライアントがそのオブジェクトにアクセスする必要がある場合は、単にクライアントにオブジェクトへのポインターを渡すことができます。 ただし、クライアントがモニカーを期待している場合を想定しています。 オブジェクトはファイル モニカーで識別できません。これは、ファイルに格納されておらず、項目モニカーでもないためです。これは、別のオブジェクトに含まれていないためです。

代わりに、アプリケーションでポインター モニカーを作成できます。これは、単に内部的にポインターを格納し、クライアントに渡すモニカーです。 クライアントはこのモニカーを他のモニカーと同様に扱うことができます。 ただし、クライアントがポインター モニカー IMoniker::BindToObject を呼び出すと、モニカー コードは実行中のオブジェクト テーブル (ROT) をチェックしたり、ストレージから何も読み込んだりしません。 代わりに、モニカー コードは、モニカー内に格納されているポインター QueryInterface を呼び出すだけです。

ポインター モニカーを使用すると、アクティブまたは実行中の状態にのみ存在するオブジェクトがモニカー操作に参加し、モニカー クライアントによって使用されます。 ポインター モニカーと他のクラスのモニカーの重要な違いの 1 つは、ポインター モニカーを永続的なストレージに保存できないことです。 その場合、IMoniker::Save メソッドを呼び出すとエラーが返されます。 これは、ポインター モニカーが特殊な状況でのみ役立つことを意味します。 ポインター モニカーを使用する必要がある場合は、CreatePointerMoniker 関数を使用できます。

反モニカー

クラス モニカー

複合モニカー

ファイル モニカー

アイテム モニカー