Microsoft DirectX 8.0 |
IDDrawExclModeVideoCallback インターフェイスを利用すると、アプリケーションは、オーバーレイの位置、サイズ、表示/非表示などに関する同期通知を取得し、アプリケーションのビデオの表示/非表示、サイズ、位置を調整することができる。これにより、再生の開始時、終了時、または途中でカラー キーのちらつきが発生することがなくなる。アプリケーションは、このインターフェイスをサポートする COM オブジェクトを実装する必要がある。
IDDrawExclModeVideo インターフェイスを使用しており、(おそらく常時) コールバック情報を必要としている場合は、このインターフェイスを実装すること。
Microsoft® DirectShow® オーバーレイ ミキサー フィルタを使用している場合、および、より一般的には、IDDrawExclModeVideo をサポートするフィルタ、またはアプリケーションが適切なタイミングでカラー キーを描画できるようにコールバックを生成する必要があるフィルタを書いている場合は、このインターフェイスを使用する。
vtable 順のメソッド
IUnknown メソッド 説明 QueryInterface サポートされているインターフェイスへのポインタを取得する。 AddRef 参照カウントをインクリメントする。 Release 参照カウントをデクリメントする。 IDDrawExclModeVideoCallback メソッド 説明 OnUpdateOverlay ビデオのオーバーレイ サーフェスが変わる直前にアプリケーションに通知する。 OnColorKeyChange カラー キーが変わり、アプリケーションが新しいカラー キーを使ってビデオにグラフィックスをオーバーレイできるようになったことをアプリケーションに通知する。
カラー キーが変わり、アプリケーションが新しいカラー キーを使ってビデオにグラフィックスをオーバーレイできるようになったことをアプリケーションに通知する。
構文
HRESULT OnColorKeyChange ( COLORKEY const *pKey, DWORD dwColor );
パラメータ
戻り値
インターフェイスの実装に応じた HRESULT 値を返す。
現在の DirectShow の実装での戻り値は次のとおりである。
S_OK 成功。 E_INVALIDARG パラメータの中の 1 つが無効である。
ビデオのオーバーレイ サーフェスが表示される直前、非表示になる直前、サイズを変える直前、または位置を変える直前にアプリケーションに通知し、アプリケーションがそれに合わせてウィンドウを再描画できるようにする。
構文
HRESULT OnUpdateOverlay( BOOL bBeforeChange, DWORD dwFlags, BOOL bOldVisible, LPRECT *prcSrcOld, LPRECT *prcDestOld, BOOL bNewVisible, LPRECT *prcSrcNew, LPRECT *prcDestNew, );
パラメータ
- bBeforeChange
- [in] 呼び出しがオーバーレイに関連する変更の前に行われるか、後で行われるかを示すブール型の値。TRUE は前に行われることを示し、FALSE は後で行われることを示す。
- dwFlags
- [in] 何が変わるのか、または変わったのかを示す AM_OVERLAY_NOTIFY_FLAGS データ型の値。
- bOldVisible
- [in] 旧ウィンドウが表示されているかどうかを示すブール型の値。TRUE は旧ウィンドウが表示されていることを示す。
- prcSrcOld
- [in] DirectDraw サーフェスの古いソースの位置を示す矩形へのポインタ。
- prcDestOld
- [in] オーバーレイ サーフェス内の矩形の古い表示位置を示す矩形へのポインタ。
- bNewVisible
- [in] 新しいウィンドウが表示されているかどうかを示すブール型の値。TRUE は新しいウィンドウが表示されていることを示す。
- prcSrcNew
- [in] DirectDraw サーフェスの新しいソースの位置を示す矩形へのポインタ。
- prcDestNew
- [in] オーバーレイ サーフェス内の矩形の新しい表示位置を示す矩形へのポインタ。
戻り値
インターフェイスの実装に応じた HRESULT 値を返す。
現在の DirectShow の実装での戻り値は次のとおりである。
S_OK 成功。 E_INVALIDARG 無効なパラメータ。
注意
アプリケーションは、オーバーレイに関連する変更が発生する前に 1 回、発生した後に 1 回、このメソッドを呼び出す必要がある。変更前に行われる呼び出しでは、アプリケーションがこのメソッドの実行を完了するまでオーバーレイの変更は発生しない。