次の方法で共有


IVideoWindow::put_FullScreenMode

put_FullScreenMode メソッドは、フルスクリーン ビデオ レンダリングを有効または無効にする。

構文

  HRESULT put_FullScreenMode(
    long FullScreenMode
);

パラメータ

FullScreenMode

[in] フルスクリーン モードを有効にするか無効にするかを指定するブール値。次のいずれかの値を指定する。

説明
OATRUE フルスクリーン モードに切り替える。
OAFALSE フルスクリーン モードを無効にする (デフォルト)

戻り値

次のいずれかの値を返す。

説明
E_NOTIMPL フィルタがフルスクリーン モードをサポートしていない。
S_FALSE 既に要求されたモードになっている。
S_OK 成功。
VFW_E_NO_FULLSCREEN フルスクリーン モードをサポートするフィルタが見つからなかった。

注意

ビデオ レンダラによっては、フルスクリーン モードへの切り替えはアプリケーションでグラフが実行またはポーズされるまで表示されない場合がある。フルスクリーン モードでは、ユーザーがアプリケーションとは別に (たとえば Alt + Tab キーを使って) 切り替えを行うと、フィルタ グラフ マネージャは EC_FULLSCREEN_LOST イベントを送信する。

以下の注意では、フィルタ グラフ マネージャがフルスクリーン モードを実装する方法について説明する。アプリケーション開発者はこの情報を無視しても多分問題はないだろうが、カスタム ビデオ レンダラを記述する場合は有用なこともある。

アプリケーションがフルスクリーン モードに切り替わると、フィルタ グラフ マネージャは最も効率的に機能するビデオ レンダラを検索する。検索する優先順位は次のとおりである。

  1. フルスクリーン モードをネイティブでサポートする、フィルタ グラフ内のビデオ レンダラ。
  2. パフォーマンスを大幅に低下させることなくビデオをフルスクリーンに拡大できる、フィルタ グラフ内のビデオ レンダラ。
  3. フルスクリーン レンダラ フィルタ。
  4. IVideoWindow をサポートする、フィルタ グラフ内のビデオ レンダラ。

最初のオプションでは、フィルタ グラフ マネージャはグラフ内のすべてのビデオ レンダラで IVideoWindow::get_FullScreenMode を呼び出す。大部分のレンダラは E_NOTIMPL を返すが、これはフィルタがフルスクリーン モードをネイティブでサポートしていないことを示す。E_NOTIMPL と等しく "ない" 値を返すレンダラがあれば、フィルタ グラフ マネージャはそのレンダラを使う。

2 番目のオプションでは、フィルタ グラフ マネージャはグラフ内のすべてのビデオ レンダラで IVideoWindow::GetMaxIdealImageSize および GetMinIdealImageSize を呼び出す。表示サイズが報告されたフィルタの範囲内に入る場合、フィルタはパフォーマンスを大幅に低下させることなくビデオを拡大縮小できることを示している。

注 : グラフが停止すると、フィルタ グラフ マネージャは各レンダラをポーズしてからこれらのメソッドを呼び出す。これによって、レンダラは必要なリソースを初期化できる。なぜなら、レンダラの多くは停止しているときはこれらの値を判断できないからである。

古いハードウェア以外は、通常 2 番目のオプションが成功する。3 番目のオプションは、フルスクリーン レンダリング フィルタを使うことで、必要に応じてグラフにそのフィルタを追加する。4 番目のオプションは、グラフ内で IVideoWindow をサポートする最初のレンダラを検索し、パフォーマンスとはかかわりなくビデオを拡大縮小するだけである。

参照