Share via


IViewObject::SetAdvise メソッド (oleidl.h)

ビュー オブジェクトとアドバイズ シンクの間に接続を確立し、アドバイズ シンクにオブジェクトのビューの変更について通知できるようにします。

構文

HRESULT SetAdvise(
  [in] DWORD       aspects,
  [in] DWORD       advf,
  [in] IAdviseSink *pAdvSink
);

パラメーター

[in] aspects

アドバイザリ接続が設定されているビュー。 有効な値は、列挙 DVASPECT から取得されます。 詳細については、 DVASPECT 列挙を参照してください。

[in] advf

アドバイザリ コネクションを制御するための一連のフラグを保持します。 有効な値は、列挙 ADVF からの値です。 ただし、この方法に関連するのは、考えられる ADVF 値の一部のみです。 次の表では、関連する値について簡単に説明します。 詳細な説明については、 ADVF 列挙を参照してください。

説明
ADVF_ONLYONCE
最初の通知が送信された後、アドバイザリ接続が破棄されます。
ADVF_PRIMEFIRST
データが現在の状態から変更されたかどうかに関係なく、初期通知を送信します。
 
メモ ADVF_ONLYONCEとADVF_PRIMEFIRSTを組み合わせて 、IDataObject::GetData への非同期呼び出しを提供できます。
 

[in] pAdvSink

変更を通知するアドバイザリ シンクの IAdviseSink インターフェイスへのポインター。 NULL 値を 指定 すると、既存のアドバイザリ接続が削除されます。

戻り値

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

リターン コード 説明
OLE_E_ADVISENOTSUPPORTED
アドバイザリ通知はサポートされていません。
DV_E_DVASPECT
dwAspect の値が無効です。
E_INVALIDARG
指定された値の 1 つ以上が無効です。
E_OUTOFMEMORY
この操作で使用できるメモリが不足しています。

解説

ビュー オブジェクトに対する描画操作を要求しているコンテナー アプリケーションは、ビュー オブジェクトのプレゼンテーションが変更されたときに通知されるように IViewObject::SetAdvise メソッドに登録することもできます。 オブジェクトの基になるデータがいつ変更されたのかを確認するには、 IDataObject::D Advise を個別に呼び出す必要があります。

既存のアドバイザリ接続を削除するには、pAdvSink を NULL に設定して IViewObject::SetAdvise メソッドを呼び出します

ビュー オブジェクトが変更された場合は、 IAdviseSink::OnViewChange メソッドを使用して適切なアドバイス シンクを呼び出します。

特定のビュー オブジェクトは、いつでも 1 つのアドバイザリ接続のみをサポートできます。 したがって、 IViewObject::SetAdvise が呼び出され、ビュー オブジェクトが既にアドバイズ シンク ポインターを保持している場合、OLE は新しいポインターが登録される前に既存のポインターを解放します。

要件

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

関連項目

Advf

IAdviseSink

IViewObject

IViewObject::GetAdvise