IAdviseSink インターフェイス (objidl.h)

コンテナーやその他のオブジェクトが、目的のオブジェクトで発生したデータ変更、変更の表示、および複合ドキュメントの変更に関する通知を受信できるようにします。 たとえば、コンテナー アプリケーションでは、リンクされたオブジェクトと埋め込みオブジェクトのキャッシュされたプレゼンテーションを最新の状態に保つために、このような通知が必要です。 IAdviseSink メソッドの呼び出しは非同期であるため、呼び出しが送信され、呼び出しの戻りを待たずに次の命令が実行されます。

アドバイザリ接続を存在させるには、通知を受信するオブジェクトが IAdviseSink を実装する必要があり、関心のあるオブジェクトは IOleObject::AdviseIDataObject::D Advise を実装する必要があります。 インプロセス オブジェクトとハンドラーは 、IViewObject::SetAdvise を実装することもできます。 IOleObject を実装するオブジェクトは、すべての妥当なアドバイザリ メソッドをサポートする必要があります。 アドバイザリ通知を簡略化するために、OLE は IDataAdviseHolderIOleAdviseHolder の実装を提供します。この実装では、アドバイザリ接続を追跡し、 IAdviseSink インターフェイスへのポインターを介して適切なシンクに通知を送信します。 IViewObject (およびそのアドバイザリ メソッド) は、既定のハンドラーに実装されます。

次の表に示すように、アドバイズ シンクを実装したオブジェクトは、適切なメソッドを呼び出すことによって、特定の種類の通知を受信することに関心を登録します。

このメソッドを呼び出す これらの通知に登録するには
IOleObject::Advise ドキュメントを保存、閉じる、または名前を変更する場合。
IDataObject::D Advise ドキュメントのデータが変更されたとき。
IViewObject::SetAdvise ドキュメントのプレゼンテーションが変更されたとき。
 

登録された通知の種類に適用されるイベントが発生すると、オブジェクト アプリケーションは適切な IAdviseSink メソッドを呼び出します。 たとえば、埋め込みオブジェクトが閉じると、 IAdviseSink::OnClose メソッドを呼び出してコンテナーに通知します。 これらの通知は非同期であり、それらをトリガーするイベントの後に発生します。

継承

IAdviseSink インターフェイスは、IUnknown インターフェイスから継承されます。 IAdviseSink には、次の種類のメンバーもあります。

メソッド

IAdviseSink インターフェイスには、これらのメソッドがあります。

 
IAdviseSink::OnClose

オブジェクトが実行中から読み込まれた状態に変更されたことをすべての登録済みアドバイザリ シンクに通知するために、サーバーによって呼び出されます。
IAdviseSink::OnDataChange

サーバーによって呼び出され、データ オブジェクトの現在登録されている通知は、オブジェクト内のデータが変更されたことをシンクに通知します。
IAdviseSink::OnRename

オブジェクトの名前が変更されたことをすべての登録済みアドバイザリ シンクに通知するために、サーバーによって呼び出されます。
IAdviseSink::OnSave

オブジェクトが保存されたことをすべての登録済みアドバイザリ シンクに通知するために、サーバーによって呼び出されます。
IAdviseSink::OnViewChange

オブジェクトの登録済みアドバイス シンクに、そのビューが変更されたことを通知します。

要件

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

こちらもご覧ください

IAdviseSink2

IAdviseSinkEx

IDataAdviseHolder

IDataObject::D Advise

IOleAdviseHolder

IOleObject::Advise

IUnknown

IViewObject::SetAdvise