IOleObject::Advise メソッド (oleidl.h)

複合ドキュメント オブジェクトと呼び出し元オブジェクトのアドバイザリ シンクの間にアドバイザリ接続を確立します。これにより、複合ドキュメント オブジェクトの名前が変更、保存、または閉じられたときに呼び出し元のオブジェクトが通知を受け取ります。

構文

HRESULT Advise(
  [in]  IAdviseSink *pAdvSink,
  [out] DWORD       *pdwConnection
);

パラメーター

[in] pAdvSink

呼び出し元オブジェクトのアドバイズ シンク上の IAdviseSink インターフェイスへのポインター。

[out] pdwConnection

アドバイザリ接続を削除するために IOleObject::Unadvise に渡すことができるトークンへのポインター。

戻り値

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

リターン コード 説明
E_OUTOFMEMORY
この操作で使用できるメモリが不足しています。

注釈

IOleObject::Advise メソッドは、オブジェクトとそのコンテナー間のアドバイザリ接続を設定します。これにより、オブジェクトは、オブジェクト内の閉じる、保存、名前変更、およびリンクソース変更イベントをコンテナーのアドバイス シンクに通知します。 コンテナーは、通常、オブジェクトの初期化の一環としてこのメソッドを呼び出して、アドバイザリ シンクを オブジェクトに登録します。 戻り値として、オブジェクトは IAdviseSink または IAdviseSink2 を呼び出して、コンテナーの複合ドキュメント通知 送信します。

コンテナーとオブジェクトがアドバイザリ接続を正常に確立した場合、呼び出しを受け取るオブジェクトは pdwConnection を介してコンテナーに 0 以外の値を返します。 アドバイザリ接続の確立が失敗した場合、オブジェクトは 0 を返します。 アドバイザリ接続を削除するために、コンテナーは IOleObject::Unadvise を呼び出し、この 0 以外のトークンを オブジェクトに渡します。

オブジェクトは、アドバイザリ イベントの管理と追跡のジョブを OLE アドバイザリ ホルダーに委任できます。このジョブには、 CreateOleAdviseHolder を呼び出してポインターを取得します。 返される IOleAdviseHolder インターフェイスには、アドバイザリ通知を送信するための 3 つのメソッドと、 IOleAdviseHolder::AdviseIOleAdviseHolder::Unadviseおよび IOleAdviseHolder::EnumAdvise メソッドが含まれています。 IOleObject のメソッドと同じです。 IOleObject::AdviseIOleObject::Unadvise、または IOleObject::EnumAdvise の呼び出しは、アドバイズ ホルダーの対応するメソッドに委任されます。

アドバイス 所有者を破棄するには、IOleAdviseHolder インターフェイスで IUnknown::Release を呼び出します。

要件

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

こちらもご覧ください

CreateOleAdviseHolder

IOleAdviseHolder::Advise

IOleObject

IOleObject::EnumAdvise

IOleObject::Unadvise