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 | ビデオ ウィンドウの位置を設定する。 |