IVideoWindow インターフェイス

IVideoWindow インターフェイスは、ビデオ ウィンドウのプロパティを設定する。アプリケーションはこのインターフェイスを使って、ウィンドウのオーナー、ウィンドウの位置とディメンジョン、その他のプロパティを設定できる。

ビデオ レンダリング フィルタとフィルタ グラフ マネージャは両方とも、このインターフェイスを公開する。アプリケーションがこのインターフェイスを使う場合は、フィルタ グラフ マネージャが公開しているインターフェイスを使う必要がある。フィルタ グラフ マネージャは、メソッド呼び出しをすべてビデオ レンダラに転送する。さらに、ビデオ レンダラが自身を更新するために必要な WM_DISPLAYCHANGE などの特定のウィンドウ メッセージも転送する。ビデオ ウィンドウを子ウィンドウにすると、以降そのウィンドウはこれらのメッセージを直接受け取れなくなる。したがって、フィルタ グラフ マネージャからの転送を待つことになる。

ただし、フィルタ グラフに複数のビデオ レンダラが含まれている場合、フィルタ グラフ マネージャはそのうちの (任意に選択された) 1 つのビデオ レンダラとしか通信しない。したがって、アプリケーションが複数のビデオ ウィンドウを使うには、フィルタ自身の IVideoWindow インターフェイスを直接使う必要がある。その場合、IVideoWindow::NotifyOwnerMessage メソッドを使って、必ずウィンドウ メッセージを各ビデオ レンダラに転送すること。

ビデオ ウィンドウを子ウィンドウに配置する MFC アプリケーションは、空の WM_ERASEBKGND メッセージ ハンドラを定義しなければならない。定義しないと、ビデオ表示領域は正しく再描画されない。

ビデオ レンダラが接続されていない場合、このインターフェイスのメソッドはすべてエラー コード VFW_E_NOT_CONNECTED を返す。接続と切断を繰り返しても、ビデオ レンダラに設定したプロパティは有効である。このインターフェイスは Automation 互換なので、ブール値は OAFALSE (0) または OATRUE (-1) である。

フィルタ開発者 :CBaseVideoWindow クラスを使うと、このインターフェイスが実装しやすい。

IDispatch から継承するメソッドのほかに、IVideoWindow インターフェイスは次のメソッドを公開する。

メソッド 説明
get_AutoShow ビデオ レンダラがビデオ データを受け取ったときにビデオ ウィンドウを自動的に表示するかどうかを照会する。
get_BackgroundPalette ビデオ ウィンドウがパレットをバックグラウンドで実現するかどうかを照会する。
get_BorderColor 転送先矩形の縁の周りに表示される色を取得する。
get_Caption ビデオ ウィンドウのキャプションを取得する。
get_FullScreenMode ビデオ レンダラがフルスクリーン モードかどうかを照会する。
get_Height ビデオ ウィンドウの高さを取得する。
get_Left ビデオ ウィンドウの x 座標を取得する。
get_MessageDrain ビデオ ウィンドウからマウス メッセージおよびキーボード メッセージを受け取るウィンドウがあればそのウィンドウを取得する。
get_Owner ビデオ ウィンドウの親ウィンドウがあればそのウィンドウを取得する。
get_Top ビデオ ウィンドウの y 座標を取得する。
get_Visible ビデオ ウィンドウが表示されているかどうかを照会する。
get_Width ビデオ ウィンドウの幅を取得する。
get_WindowState ビデオ ウィンドウの表示/非表示、最小化/最大化を照会する。
get_WindowStyle ビデオ ウィンドウのウィンドウ スタイルを取得する。
get_WindowStyleEx ビデオ ウィンドウの拡張スタイルを取得する。
GetMaxIdealImageSize ビデオ イメージの理想的な最大サイズを取得する。
GetMinIdealImageSize ビデオ イメージの理想的な最小サイズを取得する。
GetRestorePosition 復元されたウィンドウの位置を取得する。
GetWindowPosition ビデオ ウィンドウの位置を取得する。
HideCursor カーソルを非表示にする。
IsCursorHidden カーソルが非表示かどうかを照会する。
NotifyOwnerMessage ビデオ ウィンドウにメッセージを転送する。
put_AutoShow ビデオ データを受け取ったときに、ビデオ レンダラが自動的にビデオ ウィンドウを表示するかどうかを指定する。
put_BackgroundPalette ビデオ ウィンドウがパレットをバックグラウンドで実現するかどうかを指定する。
put_BorderColor 転送先矩形の縁の周りに表示される色を設定する。
put_Caption ビデオ ウィンドウのキャプションを設定する。
put_FullScreenMode フルスクリーン モードを有効または無効にする。
put_Height ビデオ ウィンドウの高さを設定する。
put_Left ビデオ ウィンドウの x 座標を設定する。
put_MessageDrain ビデオ ウィンドウからマウス メッセージとキーボードメッセージを受け取るウィンドウを指定する。
put_Owner ビデオ ウィンドウの親ウィンドウを指定する。
put_Top ビデオ ウィンドウの y 座標を設定する。
put_Visible ビデオ ウィンドウの表示/非表示を切り替える。
put_Width ビデオ ウィンドウの幅を設定する。
put_WindowState ビデオ ウィンドウの表示/非表示、最小化/最大化を切り替える。
put_WindowStyle ビデオ ウィンドウのウィンドウ スタイルを設定する。
put_WindowStyleEx ビデオ ウィンドウの拡張ウィンドウ スタイルを設定する。
SetWindowForeground Z オーダーの先頭にビデオ ウィンドウを配置する。
SetWindowPosition ビデオ ウィンドウの位置を設定する。