次の方法で共有


IRunnableObject::SetContainedObject メソッド (objidl.h)

OLE コンテナーに埋め込まれているオブジェクトに通知します。これにより、埋め込みオブジェクトへのリンクをサポートするコンテナーに対して参照カウントが正しく実行されます。

構文

HRESULT SetContainedObject(
  [in] BOOL fContained
);

パラメーター

[in] fContained

TRUE は 、オブジェクトが OLE コンテナーに含まれていることを指定します。 FALSE は 、そうでないことを示します。

戻り値

このメソッドは、標準の戻り値E_INVALIDARG、E_OUTOFMEMORY、E_UNEXPECTED、およびS_OKを返すことができます。

注釈

SetContainedObject メソッドを使用すると、コンテナーはリンクとして機能するのではなく、コンテナーに埋め込まれたことをオブジェクト ハンドラーに通知できます。 この呼び出しにより、 オブジェクトに対するコンテナーの参照が、外部接続の既定値である strong から weak に変更されます。 オブジェクトが目に見えて実行されている場合、エンド ユーザーがオブジェクトに対してロックを持っているため、このメソッドはほとんど意味を持たないためです。 ただし、埋め込みリンク ソースのサイレント更新中は、リンクが壊れた後にコンテナーが実行中の状態でオブジェクトを保持できないようにする必要があります。 このため、コンテナーの オブジェクトへの参照は弱い必要があります。

呼び出し元へのメモ

埋め込みオブジェクトへのリンクがサポートされている場合、コンテナー アプリケーションは SetContainedObject を呼び出す必要があります。 通常、 OleLoad または OleCreate を呼び出した直後に呼び出しを行い、閉じる前でもメソッドを再度呼び出すことはありません。 さらに、コンテナーはほとんどの場合、 fContainedTRUE に設定してこのメソッドを呼び出します。 fContainedFALSE に設定してこのメソッドを使用することはまれです。

SetContainedObject の呼び出しは、埋め込みオブジェクトがコンテナー以外のクライアントによって参照されないことがわかっている場合にのみ省略可能です。 コンテナー アプリケーションが埋め込みオブジェクトへのリンクをサポートしていない場合。 SetContainedObject を呼び出す方が望ましいが、必要ではない。

OleSetContainedObject は、 SetContainedObject によって提供される機能を簡単に再パッケージ化するヘルパー関数です。 OLE 2.01 のリリースでは、QueryInterface を呼び出し、IRunnableObject を要求し、IRunnableObject::SetContainedObject を呼び出すように OleSetContainedObject の実装が変更されました。 つまり、 インターフェイスとヘルパー関数を同じ意味で使用できます。

要件

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

こちらもご覧ください

IRunnableObject

OleSetContainedObject