Microsoft DirectX 8.0 |
IVideoWindow オブジェクトは、ビデオ レンダラのビデオ ウィンドウのプロパティをサポートする。このオブジェクトは、Microsoft® Visual Basic® および Microsoft® Visual C++® を通じてアクセスできるデュアル インターフェイスであり、汎用ビデオ ウィンドウを制御する。一般的にこのオブジェクトは、ディスプレイ上のウィンドウ内でビデオを描画するビデオ レンダラである。
IVideoWindow オブジェクトはプロパティとメソッドの両方をサポートする。複数のプロパティを同時に変更する必要がある操作では、関連する多数のプロパティを同時に変更するメソッドを利用できる。たとえば、ウィンドウの位置とサイズを設定するときは、4 個の別々のプロパティを呼び出してもよいし、SetWindowPosition という 1 つのメソッドを呼び出してもよい。
IVideoWindow のプロパティとメソッドを使用するには、ビデオ レンダラを接続する必要がある。
プロパティ
AutoShow 最初に状態が変化したときにウィンドウを自動的に表示するかどうかを指定するフラグを取得または設定する。 BackgroundPalette レンダラがパレットをバックグラウンドで適用するかどうかを示すフラグを取得または設定する。 BorderColor ビデオ ウィンドウの境界線の色を取得または設定する。 Caption 再生ウィンドウのテキスト キャプションを取得または設定する。 FullScreenMode フルスクリーン モードの種類を取得または設定する。 Height ビデオ ウィンドウの高さを取得または設定する。 Left ビデオ ウィンドウの x 軸座標を取得または設定する。 MessageDrain ビデオ ウィンドウがメッセージの受信またはポストに使用するウィンドウ ハンドルを取得または設定する。 NotifyOwnerMessage 親ウィンドウが受信したメッセージを、フィルタの所有する子ウィンドウに転送する。 Owner ビデオ再生ウィンドウを所有する親ウィンドウを取得または設定する。 Top ビデオ ウィンドウの y 軸座標を取得または設定する。 Visible ウィンドウの表示/非表示の状態を取得または設定する。 Width ビデオ ウィンドウの幅を取得または設定する。 WindowState 表示/非表示、最小化など、現在のウィンドウの状態を取得または設定する。 WindowStyle 再生ウィンドウのスタイルを取得または設定する。 WindowStyleEx 再生ウィンドウの拡張スタイル ビットを取得または設定する。
メソッド
GetMaxIdealImageSize ビデオ画像再生 (クライアント) 領域の理想最大画像サイズを取得する。 GetMinIdealImageSize ビデオ画像再生 (クライアント) 領域の理想最小画像サイズを取得する。 GetRestorePosition 最大化および最小化を行うときに、元のビデオ ウィンドウ サイズを取得する。 GetWindowPosition ビデオ ウィンドウの位置を取得する。 HideCursor カーソルを非表示にする。 IsCursorHidden カーソルの表示/非表示の状態を取得する。 NotifyOwnerMessage フィルタ グラフのパレットおよび色の変更メッセージを渡す。 SetWindowForeground ビデオ ウィンドウをフォアグラウンド ウィンドウに設定し、オプションでビデオ ウィンドウにフォーカスを移す。 SetWindowPosition ディスプレイ上のビデオ ウィンドウの位置を設定する。
ウィンドウを自動的に表示するかどうかの情報を取得または設定する。
構文
objVideoWindow.AutoShow [= boolean]
指定項目
- objVideoWindow
- 評価結果が IVideoWindow オブジェクトになるオブジェクト式。
- boolean
- TRUE は、状態が変わったときにウィンドウが表示されることを示す。
注意
多くの簡単なアプリケーションでは、フィルタ グラフがトランスポート状態に設定されたときにウィンドウを表示する必要がある。このプロパティはデフォルトでオン (–1) に設定されているため、グラフがポーズ状態からトランスポート状態に移行すると、ウィンドウが表示される。ウィンドウは同時にフォアグラウンド ウィンドウに設定される。ウィンドウを閉じない限り、それ以降は、ポーズ状態またはトランスポート状態に移行するたびにウィンドウが表示される。ウィンドウを閉じた場合は、レンダラがいったん停止状態になるまでウィンドウは表示されない。このプロパティをオフ (0) に設定すると、ウィンドウを明示的に表示しない限り、ウィンドウは非表示状態にとどまる。ウィンドウを明示的に表示するには Visible プロパティを設定する。
必要なパレットがバックグラウンドで適用されるかどうかを決定する。
構文
objVideoWindow.BackgroundPalette [= boolean]
指定項目
- objVideoWindow
- 評価結果が IVideoWindow オブジェクトになるオブジェクト式。
- boolean
- パレットが適用されるかどうかを示すフラグ。
注意
このプロパティが TRUE (–1) の場合、レンダラは、必要とされるすべてのビデオ パレットをバックグラウンドで適用する。これは、パレットが使用するすべての色が、描画を行う前に、ディスプレイ パレットの最も近い色に変更されることを意味する。これにより、ビデオを再生するときにアプリケーションのパレットが乱れないことが保証される。ただし、この操作はビデオにかかるパフォーマンスの負担が大きいため、絶対に必要でない限り、使用しないこと。このプロパティのデフォルト値は FALSE (0) である。
ビデオ ウィンドウの境界線の色を取得または設定する。
構文
objVideoWindow.BorderColor [= Color]
指定項目
- objVideoWindow
- 評価結果が IVideoWindow オブジェクトになるオブジェクト式。
- Color
- 新しい境界線の色。
注意
設定されている転送先矩形がウィンドウの表示クライアント領域と異なる場合は、周辺部に境界線が表示される。このプロパティを利用して、アプリケーションは、境界線の色を変更できる。色はデフォルトでは黒に設定されている。システム カラー以外の色を渡すと、渡された色は、色を使用する前に、現在のパレットに従って、最も近い色に変換される。True Color デバイスではその必要はない。このプロパティを設定すると、ウィンドウの境界線は、自動的に新しい色で再描画される。
ビデオ ウィンドウのテキストのタイトル文字列を取得または設定する。
構文
objVideoWindow.Caption [= string]
指定項目
- objVideoWindow
- 評価結果が IVideoWindow オブジェクトになるオブジェクト式。
- string
- ウィンドウのタイトル キャプションの新しい値。
ビデオ ウィンドウでフルスクリーン モードを使用するかどうかを示すフラグを取得または設定する。
構文
objVideoWindow.FullScreenMode [= boolean]
指定項目
- objVideoWindow
- 評価結果が IVideoWindow オブジェクトになるオブジェクト式。
- boolean
- 新しいフラグの値。TRUE はフルスクリーン モードを示し、FALSE はフルスクリーン モードを使用しないことを示す。
ビデオ画像再生 (クライアント) 領域の理想最大画像サイズを取得する。
構文
objVideoWindow.GetMaxIdealImageSize Width, Height
指定項目
- objVideoWindow
- 評価結果が IVideoWindow オブジェクトになるオブジェクト式。
- Width
- 画像の幅が格納される Long 型の値。
- Height
- 画像の高さが格納される Long 型の値。
ビデオ画像再生 (クライアント) 領域の理想最小画像サイズを取得する。
構文
objVideoWindow.GetMinIdealImageSize Width, Height
指定項目
- objVideoWindow
- 評価結果が IVideoWindow オブジェクトになるオブジェクト式。
- Width
- 画像の幅が格納される Long 型の値。
- Height
- 画像の高さが格納される Long 型の値。
ウィンドウを最小化した後、元に戻す場合に、ウィンドウのサイズと位置を取得する。
構文
objVideoWindow.GetRestorePosition Left, Top, Width, Height
指定項目
- objVideoWindow
- 評価結果が IVideoWindow オブジェクトになるオブジェクト式。
- Left
- ビデオ ウィンドウの x 軸の原点を返す。
- Top
- ビデオ ウィンドウの y 軸の原点を返す。
- Width
- ビデオ ウィンドウの幅を返す。
- Height
- ビデオ ウィンドウの高さを返す。
現在のウィンドウ矩形 (クライアント領域ではない) をデバイスの座標で取得する。
構文
objVideoWindow.GetWindowPosition Left, Top, Width, Height
指定項目
- objVideoWindow
- 評価結果が IVideoWindow オブジェクトになるオブジェクト式。
- Left
- ウィンドウの x 軸の原点を返す。
- Top
- ウィンドウの y 軸の原点を返す。
- Width
- ウィンドウの幅を返す。
- Height
- ウィンドウの高さを返す。
注意
このメソッドには、Left プロパティ、Top プロパティ、Width プロパティ、および Height プロパティを個別に設定するのと同じ効果がある。
ビデオ ウィンドウの高さを取得または設定する。
構文
objVideoWindow.Height [= lValue]
指定項目
- objVideoWindow
- 評価結果が IVideoWindow オブジェクトになるオブジェクト式。
- lValue
- ビデオ ウィンドウの縦の長さの新しい値。
注意
Height プロパティを変更しても、Width プロパティ (ビデオ ウィンドウの y 座標) は影響を受けない。
カーソルがビデオ再生ウィンドウの上を通過したときに、カーソルを表示するかどうかを指定する。
構文
objVideoWindow.HideCursor bValue
指定項目
- objVideoWindow
- 評価結果が IVideoWindow オブジェクトになるオブジェクト式。
- bValue
- カーソルを表示するかどうかを示すブール型の値。TRUE はカーソルを表示せず、FALSE はカーソルを表示する。
注意
通常、フルスクリーン再生を使用する場合は、ユーザーの気が散らないようにカーソルを表示しない。
次のコードは、このメソッドの使い方を示している。
Dim o_objVideoWindow As IVideoWindow 'IVideoWindow オブジェクトを初期化 Dim g_objMediaControl As IMediaControl 'IMediaControl オブジェクトを初期化 Set g_objVideoWindow = g_objMediaControl '再生ウィンドウを 'フィルタ グラフに割り当てる g_objVideoWindow.HideCursor (True) 'カーソルを非表示にする
カーソルの表示/非表示の状態を取得する。
構文
objVideoWindow.IsCursorHidden bValue
指定項目
- objVideoWindow
- 評価結果が IVideoWindow オブジェクトになるオブジェクト式。
- bValue
- カーソルの表示/非表示の状態が格納されるブール型の値。カーソルが非表示状態であれば TRUE、表示状態であれば FALSE になる。
注意
通常、フルスクリーン再生を使用する場合は、ユーザーの気が散らないようにカーソルを表示しない。
次のコードは、このメソッドの使い方を示している。
Dim o_objVideoWindow As IVideoWindow 'IVideoWindow オブジェクトを初期化 Dim g_objMediaControl As IMediaControl 'IMediaControl オブジェクトを初期化 Dim bTest As Boolean 'ストレージ変数を初期化 Set g_objVideoWindow = g_objMediaControl '再生ウィンドウを 'フィルタ グラフに割り当てる g_objVideoWindow.IsCursorHidden (bTest) 'カーソルが非表示かどうかをチェックする
ビデオ ウィンドウの x 座標を取得または設定する。
構文
objVideoWindow.Left [= lValue]
指定項目
- objVideoWindow
- 評価結果が IVideoWindow オブジェクトになるオブジェクト式。
- lValue
- x 軸座標の新しい値。
注意
このプロパティを呼び出しても、ビデオ ウィンドウの幅は影響を受けない。
ビデオ ウィンドウ宛てにポストされたメッセージを受け取るウィンドウのウィンドウ ハンドルを取得または設定する。
構文
objVideoWindow.MessageDrain [= handle]
指定項目
- objVideoWindow
- 評価結果が IVideoWindow オブジェクトになるオブジェクト式。
- handle
- ウィンドウ ハンドルの新しい値。
親ウィンドウが受信したメッセージを、フィルタが所有する子ウィンドウに転送する。
構文
objVideoWindow.NotifyOwnerMessage hwnd, uMsg, wParam, lParam
指定項目
- objVideoWindow
- 評価結果が IVideoWindow オブジェクトになるオブジェクト式。
- hwnd
- ウィンドウ ハンドル。
- uMsg
- 送られるメッセージ。
- wParam
- メッセージの wParam。
- lParam
- メッセージの lParam。
ビデオ ウィンドウを所有する親を取得または設定する。
構文
objVideoWindow.Owner [= handle]
指定項目
- objVideoWindow
- 評価結果が IVideoWindow オブジェクトになるオブジェクト式。
- handle
- ウィンドウ ハンドルの新しい値。
注意
このプロパティを利用して、アプリケーションはビデオ ウィンドウの所有者を設定できる。この機能は、複合ドキュメントでビデオを再生するときによく使用される。
ビデオ ウィンドウをフォアグラウンド ウィンドウに設定し、オプションでビデオ ウィンドウにフォーカスを移す。
構文
objVideoWindow.SetWindowForeground Focus
指定項目
- objVideoWindow
- 評価結果が IVideoWindow オブジェクトになるオブジェクト式。
- Focus
- ビデオ ウィンドウにフォーカスを移すかどうかを指定する Long 型の値。値 –1 は、ウィンドウにフォーカスを移す。0 はウィンドウにフォーカスを移さない。
ビデオ ウィンドウの位置 (クライアント矩形の位置ではない) をデバイスの座標で設定する。
構文
objVideoWindow.SetWindowPosition Left, Top, Width, Height
指定項目
- objVideoWindow
- 評価結果が IVideoWindow オブジェクトになるオブジェクト式。
- Left
- ウィンドウの x 軸の原点を指定する。
- Top
- ウィンドウの y 軸の原点を指定する。
- Width
- ウィンドウの幅を指定する。
- Height
- ウィンドウの高さを指定する。
注意
ビデオを表示する位置をウィンドウの座標で指定する。たとえば、転送先を (100,50,200,400) に設定すると、ビデオ再生画像は、クライアント領域の左端から 100 ピクセル、上端から 50 ピクセルの位置に原点を持ち、全体のサイズが 200 x 400 ピクセルになる。ビデオがこれより小さい場合、またはビデオより小さい転送元矩形が指定されている場合は、ビデオ画像が表示領域に合わせて拡大される。同様に、ビデオが転送先矩形より大きい場合、ビデオは矩形の表示領域に合わせて縮小される。アプリケーション側で転送元と転送先の矩形を同じサイズにしないと、パフォーマンスに大きな負担がかかる。
転送先矩形が設定されていない標準的な環境では、ユーザーがウィンドウをどれだけ拡大しても、ビデオは表示クライアント ウィンドウ領域全体を満たす。また、転送先矩形のプロパティは、ビデオ ウィンドウ クライアント領域のサイズを正しく返す。
このメソッドには、Left プロパティ、Top プロパティ、Width プロパティ、および Height プロパティを個別に設定するのと同じ効果がある。
ビデオ ウィンドウの y 軸座標を取得または設定する。
構文
objVideoWindow.Top [= lValue]
指定項目
- objVideoWindow
- 評価結果が IVideoWindow オブジェクトになるオブジェクト式。
- lValue
- y 軸の原点の新しい値。
注意
このプロパティを呼び出しても、ビデオ ウィンドウの高さは影響を受けない。
ビデオ ウィンドウの表示/非表示の状態を取得または設定する。
構文
objVideoWindow.Visible [= boolean]
指定項目
- objVideoWindow
- 評価結果が IVideoWindow オブジェクトになるオブジェクト式。
- boolean
- TRUE に設定されているとウィンドウが表示される。FALSE の場合、ウィンドウは表示されない。
ビデオ ウィンドウの幅を取得または設定する。
構文
objVideoWindow.Width [= lValue]
指定項目
- objVideoWindow
- 評価結果が IVideoWindow オブジェクトになるオブジェクト式。
- lValue
- 幅の新しい値。
注意
Width プロパティは、ビデオ ウィンドウの Height プロパティ (x 座標) とは無関係である。
ビデオ ウィンドウの状態を取得または設定する。
構文
objVideoWindow.WindowState [= lValue]
指定項目
- objVideoWindow
- 評価結果が IVideoWindow オブジェクトになるオブジェクト式。
- lValue
- WindowState プロパティの新しい値。
ビデオ ウィンドウのスタイル パラメータを取得または設定する。
構文
objVideoWindow.WindowStyle [= lValue]
指定項目
- objVideoWindow
- 評価結果が IVideoWindow オブジェクトになるオブジェクト式。
- lValue
- WindowStyle プロパティの新しい値。
注意
すべてのウィンドウ スタイルの一覧については、Microsoft® Platform Software Development Kit (SDK) の「CreateWindow 関数」を参照すること。
ビデオ ウィンドウのスタイル パラメータを変更する。
構文
objVideoWindow.WindowStyleEx [= lValue]
指定項目
- objVideoWindow
- 評価結果が IVideoWindow オブジェクトになるオブジェクト式。
- lValue
- フラグの新しい値。有効な値は、Microsoft Win32 GetWindowLong 関数の GWL_STYLE 値によって設定できるフラグに限られる。