Share via


IOleClientSite::GetMoniker メソッド (oleidl.h)

オブジェクトのクライアント サイトのモニカーを取得します。 オブジェクトは、 dwAssign の値を指定することで、独自のまたはコンテナーのモニカーの割り当てを強制できます。

構文

HRESULT GetMoniker(
  [in]  DWORD    dwAssign,
  [in]  DWORD    dwWhichMoniker,
  [out] IMoniker **ppmk
);

パラメーター

[in] dwAssign

モニカーが既に存在する場合にのみモニカーを取得するか、モニカーを強制的に割り当てるか、一時的なモニカーを作成するか、割り当てられているモニカーを削除するかを指定します。 実際には、通常、モニカーのコンテナー強制割り当てを要求します。 指定できる値は、 OLEGETMONIKER 列挙体から取得されます。

[in] dwWhichMoniker

コンテナーのモニカー、コンテナーを基準とするオブジェクトのモニカー、またはオブジェクトの完全モニカーを返すかどうかを指定します。 実際には、通常、オブジェクトの完全なモニカーを要求します。 指定できる値は、 OLEWHICHMK 列挙体から取得されます。

[out] ppmk

オブジェクトのクライアント サイトのモニカーへのインターフェイス ポインターを受け取る IMoniker ポインター変数へのポインター。 エラーが発生した場合、実装では ppmkNULL に設定する必要があります。 コンテナーが IOleClientSite::GetMoniker の呼び出しを受け取るたびに、返される ppmk ポインターの参照カウントを増やす必要があります。 ポインターで終了したときに Release を呼び出すのは呼び出し元の責任です。

戻り値

このメソッドは、成功したS_OKを返します。 その他の可能な戻り値は次のとおりです。

リターン コード 説明
E_NOTIMPL
このコンテナーは、オブジェクトにモニカーを割り当てることができません。 これは OLE 1 コンテナーの場合です。

注釈

コンテナーは、埋め込みオブジェクトのモニカーを、それらのオブジェクトにリンクする必要があるクライアントに渡す方法として GetMoniker を実装します。

埋め込みオブジェクトまたはその中の擬似オブジェクト (スプレッドシート内のセルの範囲など) にリンクを作成する場合、オブジェクトには、リンクのソースを示す複合モニカーを構築するためのモニカーが必要です。 埋め込みオブジェクトにモニカーがまだない場合は、 GetMoniker を 呼び出して要求できます。

埋め込みへのリンクが含まれると想定されるすべてのコンテナーでは 、GetMoniker を サポートしてOLEWHICHMK_CONTAINERを提供する必要があります。そのため、リンク クライアントとリンク ソース ファイルの移動時にリンク追跡が可能になりますが、相対的な位置は同じです。

オブジェクトは、オブジェクトが読み込まれていない間に変更される可能性があるため、完全なモニカーまたはそのコンテナーのモニカーを永続的に格納することはできません。 たとえば、コンテナーまたは オブジェクトの名前を変更できます。この場合、コンテナーのモニカーまたはオブジェクトの完全なモニカーを格納すると、クライアントがオブジェクトへのリンクを追跡できなくなります。

非常に特殊なケースでは、オブジェクトに以前に割り当てられたモニカーが不要になり、最適化として削除したい場合があります。 このような場合、オブジェクトは getMoniker をOLEGETMONIKER_UNASSIGNで呼び出してモニカーを削除できます。

要件

要件
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー oleidl.h

こちらもご覧ください

IOleClientSite

IOleClientSite::GetMoniker

IOleObject::SetMoniker