次の方法で共有


IRunningObjectTable::GetObject メソッド (objidl.h)

指定したモニカーによって識別されたオブジェクトが実行されているかどうかを判断し、実行されている場合は、そのオブジェクトへのポインターを取得します。

構文

HRESULT GetObject(
  [in]  IMoniker *pmkObjectName,
  [out] IUnknown **ppunkObject
);

パラメーター

[in] pmkObjectName

モニカーの IMoniker インターフェイスへのポインター。

[out] ppunkObject

実行中のオブジェクトへのインターフェイス ポインターを受け取る IUnknown ポインター変数へのポインター。 成功した場合、実装は オブジェクトに 対して AddRef を呼び出します。 Release を呼び出すのは呼び出し元の責任です。 オブジェクトが実行されていない場合、またはエラーが発生した場合、実装は *ppunkObjectNULL に設定します。

戻り値

このメソッドは、次の値を返すことができます。

リターン コード 説明
S_OK
ROT で pmkObjectName が見つかり、ポインターが取得されたことを示します。
S_FALSE
ROT に pmkObjectName のエントリが存在しないか、識別するオブジェクトが実行されなくなった (その場合、エントリは取り消されます)。

注釈

このメソッドは、 pmkObjectName で指定されたモニカーの ROT をチェックします。 そのモニカーが以前に IRunningObjectTable::Register の呼び出しに登録されていた場合、このメソッドは、その時点で登録されたポインターを返します。

呼び出し元へのメモ

通常、 IRunningObjectTable::GetObject メソッドを呼び出すのは、独自のモニカー クラス (つまり 、IMoniker インターフェイスの実装) を記述している場合のみです。 通常、 IMoniker::BindToObject の実装からこのメソッドを呼び出します。

ただし、 IMoniker::BindToObject のすべての実装でこのメソッドを呼び出す必要があるわけではないことに注意してください。 モニカーにプレフィックス (IMoniker::BindToObject への NULL 以外の pmkToLeft パラメーターで示される) が必要な場合は、ROT をチェックしないでください。 その理由は、完全なモニカーのみが ROT に登録され、モニカーにプレフィックスが付いている場合、モニカーは複合の一部であるため、完全ではないということです。 代わりに、モニカーは、プレフィックスで識別されるオブジェクト (モニカーによって識別されるオブジェクトのコンテナーなど) からサービスを要求する必要があります。

要件

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

こちらもご覧ください

IMoniker::BindToObject

IRunningObjectTable