IViewObject::SetAdvise メソッド (oleidl.h)
ビュー オブジェクトとアドバイズ シンクの間に接続を確立し、アドバイズ シンクにオブジェクトのビューの変更について通知できるようにします。
構文
HRESULT SetAdvise(
[in] DWORD aspects,
[in] DWORD advf,
[in] IAdviseSink *pAdvSink
);
パラメーター
[in] aspects
アドバイザリ接続が設定されているビュー。 有効な値は、列挙 DVASPECT から取得されます。 詳細については、 DVASPECT 列挙を参照してください。
[in] advf
アドバイザリ コネクションを制御するための一連のフラグを保持します。 有効な値は、列挙 ADVF からの値です。 ただし、この方法に関連するのは、考えられる ADVF 値の一部のみです。 次の表では、関連する値について簡単に説明します。 詳細な説明については、 ADVF 列挙を参照してください。
値 | 説明 |
---|---|
|
最初の通知が送信された後、アドバイザリ接続が破棄されます。 |
|
データが現在の状態から変更されたかどうかに関係なく、初期通知を送信します。 |
[in] pAdvSink
変更を通知するアドバイザリ シンクの IAdviseSink インターフェイスへのポインター。 NULL 値を 指定 すると、既存のアドバイザリ接続が削除されます。
戻り値
このメソッドは、成功したS_OKを返します。 その他の可能な戻り値は次のとおりです。
リターン コード | 説明 |
---|---|
|
アドバイザリ通知はサポートされていません。 |
|
dwAspect の値が無効です。 |
|
指定された値の 1 つ以上が無効です。 |
|
この操作で使用できるメモリが不足しています。 |
解説
ビュー オブジェクトに対する描画操作を要求しているコンテナー アプリケーションは、ビュー オブジェクトのプレゼンテーションが変更されたときに通知されるように IViewObject::SetAdvise メソッドに登録することもできます。 オブジェクトの基になるデータがいつ変更されたのかを確認するには、 IDataObject::D Advise を個別に呼び出す必要があります。
既存のアドバイザリ接続を削除するには、pAdvSink を NULL に設定して IViewObject::SetAdvise メソッドを呼び出します。
ビュー オブジェクトが変更された場合は、 IAdviseSink::OnViewChange メソッドを使用して適切なアドバイス シンクを呼び出します。
特定のビュー オブジェクトは、いつでも 1 つのアドバイザリ接続のみをサポートできます。 したがって、 IViewObject::SetAdvise が呼び出され、ビュー オブジェクトが既にアドバイズ シンク ポインターを保持している場合、OLE は新しいポインターが登録される前に既存のポインターを解放します。
要件
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | oleidl.h |