Microsoft DirectX 8.0

IDDrawExclModeVideoCallback インターフェイス

IDDrawExclModeVideoCallback インターフェイスを利用すると、アプリケーションは、オーバーレイの位置、サイズ、表示/非表示などに関する同期通知を取得し、アプリケーションのビデオの表示/非表示、サイズ、位置を調整することができる。これにより、再生の開始時、終了時、または途中でカラー キーのちらつきが発生することがなくなる。アプリケーションは、このインターフェイスをサポートする COM オブジェクトを実装する必要がある。

IDDrawExclModeVideo インターフェイスを使用しており、(おそらく常時) コールバック情報を必要としている場合は、このインターフェイスを実装すること。

Microsoft® DirectShow® オーバーレイ ミキサー フィルタを使用している場合、および、より一般的には、IDDrawExclModeVideo をサポートするフィルタ、またはアプリケーションが適切なタイミングでカラー キーを描画できるようにコールバックを生成する必要があるフィルタを書いている場合は、このインターフェイスを使用する。

vtable 順のメソッド

IUnknown メソッド説明
QueryInterfaceサポートされているインターフェイスへのポインタを取得する。
AddRef参照カウントをインクリメントする。
Release参照カウントをデクリメントする。
IDDrawExclModeVideoCallback メソッド説明
OnUpdateOverlay ビデオのオーバーレイ サーフェスが変わる直前にアプリケーションに通知する。
OnColorKeyChange カラー キーが変わり、アプリケーションが新しいカラー キーを使ってビデオにグラフィックスをオーバーレイできるようになったことをアプリケーションに通知する。

IDDrawExclModeVideoCallback::OnColorKeyChange

IDDrawExclModeVideoCallback Interface

カラー キーが変わり、アプリケーションが新しいカラー キーを使ってビデオにグラフィックスをオーバーレイできるようになったことをアプリケーションに通知する。

構文

HRESULT OnColorKeyChange (
    COLORKEY const *pKey,
    DWORD dwColor
);

パラメータ

pKey
[out] キー タイプとパレット インデックスが格納された COLORKEY 構造体へのポインタ。
dwColor
[out] 現在のディスプレイ モードが 8 ビットでパレット化されている場合は、pKey によって返される COLORKEY の 8 ビット パレット インデックスを示す値。それ以外の場合は、現在のディスプレイ フォーマットのピクセル フォーマットで表すカラー キーに相当する値。

戻り値

インターフェイスの実装に応じた HRESULT 値を返す。

現在の DirectShow の実装での戻り値は次のとおりである。
S_OK成功。
E_INVALIDARGパラメータの中の 1 つが無効である。

IDDrawExclModeVideoCallback::OnUpdateOverlay

IDDrawExclModeVideoCallback インターフェイス

ビデオのオーバーレイ サーフェスが表示される直前、非表示になる直前、サイズを変える直前、または位置を変える直前にアプリケーションに通知し、アプリケーションがそれに合わせてウィンドウを再描画できるようにする。

構文

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 回、このメソッドを呼び出す必要がある。変更前に行われる呼び出しでは、アプリケーションがこのメソッドの実行を完了するまでオーバーレイの変更は発生しない。