次の方法で共有


IVideoWindow::p ut_FullScreenMode メソッド (control.h)

[このページに関連付けられている機能 DirectShow は、従来の機能です。 MediaPlayerIMFMediaEngine、および Media Foundation のオーディオ/ビデオ キャプチャに置き換わりました。 これらの機能は、Windows 10とWindows 11用に最適化されています。 新しいコードでは、可能であれば、DirectShow ではなく Media Foundation で MediaPlayerIMFMediaEngineAudio/Video Capture を使用することを強くお勧めします。 Microsoft は、従来の API を使用する既存のコードを、可能であれば新しい API を使用するように書き直すよう提案しています。]

メソッドは put_FullScreenMode 、全画面表示のビデオ レンダリングを有効または無効にします。

構文

HRESULT put_FullScreenMode(
  [in] long FullScreenMode
);

パラメーター

[in] FullScreenMode

全画面表示モードを有効または無効にするかどうかを指定するブール値。 次のいずれかの値を指定する必要があります。

説明
OATRUE 全画面表示モードに切り替えます。
OAFALSE 全画面表示モードを無効にします。 (既定値。)

戻り値

可能な戻り値は次のとおりです。

リターン コード 説明
E_NOTIMPL
フィルターは全画面表示モードをサポートしていません。
S_FALSE
既に要求されたモードです。
S_OK
成功しました。
VFW_E_NO_FULLSCREEN
全画面表示モードをサポートするフィルターが見つかりませんでした。

解説

ビデオ レンダラーによっては、アプリケーションがグラフを実行または一時停止するまで、全画面表示モードへの切り替えが表示されない場合があります。 全画面表示モードでは、ユーザーがアプリケーションから離れた場合 (たとえば、Alt + TAB キーを使用)、フィルター グラフ マネージャーは EC_FULLSCREEN_LOST イベントを送信します。

次の解説では、フィルター グラフ マネージャーが全画面表示モードを実装する方法について説明します。 アプリケーション開発者はこの情報を無視できますが、カスタム ビデオ レンダラーを作成する場合に便利な場合があります。

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

  1. 全画面表示モードをネイティブにサポートするフィルター グラフ内のすべてのビデオ レンダラー。
  2. フィルター グラフ内のビデオ レンダラーで、パフォーマンスに大きなコストをかけずにビデオを全画面表示に拡張できます。
  3. 全画面表示レンダラー フィルター。
  4. IVideoWindow をサポートするフィルター グラフ内のすべてのビデオ レンダラー。
最初のオプションでは、Filter Graph Manager は、グラフ内のすべてのビデオ レンダラーで IVideoWindow::get_FullScreenMode を呼び出します。 ほとんどのレンダラーはE_NOTIMPLを返し、フィルターが全画面表示モードをネイティブにサポートしていないことを示します。 レンダラーがE_NOTIMPLと等しくない値を返す場合、フィルター グラフ マネージャーはその値を使用します。

2 番目のオプションの場合、Filter Graph Manager は、グラフ内のすべてのビデオ レンダラーで IVideoWindow::GetMaxIdealImageSizeGetMinIdealImageSize を呼び出します。 ディスプレイのサイズがフィルターの報告された範囲に収まる場合は、フィルターが大幅なパフォーマンス コストなしでビデオを拡大できることを示します。

メモ グラフが停止した場合、フィルター グラフ マネージャーは、これらのメソッドを呼び出す前に各レンダラーを一時停止します。 これにより、多くのレンダラーでは停止中にこれらの値を決定できないため、レンダラーは必要なリソースを初期化できます。
 
古いハードウェアを除き、2 番目のオプションは通常成功します。 3 番目のオプションは、全画面表示レンダラー フィルターを使用し、必要に応じてグラフに追加することです。 4 番目のオプションは、 単に IVideoWindow をサポートするグラフ内の最初のレンダラーを見つけ、パフォーマンスに関係なくビデオを拡大することです。

要件

   
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー control.h (Dshow.h を含む)
Library Strmiids.lib

関連項目

エラーコードと成功コード

IVideoWindow インターフェイス

IVideoWindow::get_FullScreenMode