IOverlay インターフェイス (strmif.h)
[このページに関連付けられている機能 DirectShow は、従来の機能です。 MediaPlayer、IMFMediaEngine、Media Foundation のオーディオ/ビデオ キャプチャに置き換わりました。 これらの機能は、Windows 10とWindows 11用に最適化されています。 新しいコードでは、可能であれば、DirectShow ではなく Media Foundation で MediaPlayer、IMFMediaEngine、Audio/Video Capture を使用することを強くお勧めします。 Microsoft は、レガシ API を使用する既存のコードを、可能であれば新しい API を使用するように書き換えるよう提案しています。]
インターフェイスは IOverlay
、ビデオを正しいウィンドウ位置に配置しながら、フィルターがビデオ メモリに直接書き込むことができるように情報を提供します。 これは、ビデオ レンダラーの入力ピンに実装され、そのフィルターの IOverlayNotify メソッドを呼び出してビデオ ウィンドウへの変更を通知することで、アップストリーム フィルター (通常はビデオ圧縮解除器) と通信します。
このインターフェイスには、DirectDraw® オーバーレイ機能との関係はありません。 Microsoft ビデオ レンダラーは、 IMemInputPin インターフェイスを介して受け取るデータを描画し、使用可能な場合は DirectDraw オーバーレイを使用します。 IMemInputPin の代わりに使用されるこのインターフェイスは、レンダラーの描画機能をバイパスするが、他の表示プロパティの通知が必要なアップストリーム フィルターの通知サポートを提供することを目的としています。
インターフェイスと IOverlayNotify インターフェイスの連携方法 IOverlay
の詳細については、 IOverlayNotify リファレンス ページを参照してください。
レンダリング ウィンドウへの変更の非同期通知の詳細については、 IOverlayNotify2 インターフェイスを参照してください。
このインターフェイスは、Microsoft® DirectShow® ビデオ レンダラー フィルターに実装されます。 必要に応じて、代替ビデオ レンダラー フィルターに実装することもできます。 そうする場合は、フレーム バッファーに直接書き込むか、オーバーレイを配置しようとするフィルターがビデオを表示する場所を知るように、このインターフェイスを実装します。 このインターフェイスを実装するには、描画を行うフィルターの IOverlayNotify インターフェイスまたは IOverlayNotify2 インターフェイスでメソッドを使用するようにレンダラーを準備し、ビデオ プロパティの変更を通知する必要があります。
DirectShow のウィンドウ ベースのレンダラーでは、 IMemInputPin インターフェイスと IOverlay インターフェイスの両方がサポートされています。 これら 2 つのインターフェイスは相互に排他的です。 フィルターは、接続中にMEDIASUBTYPE_Overlayのサブタイプを持つメディアの種類を指定することによって 、IOverlay トランスポートを使用することを選択します。 接続後、インターフェイスを正常に IOverlay
取得して使用できるようになります。 他のビデオ形式 (MEDIASUBTYPE_RGB8 など) と接続すると、 を呼 IOverlay
び出そうとすると、VFW_E_NOT_OVERLAY_CONNECTIONが返されます。
ビデオ オーバーレイ プロパティを制御する必要があり、ビデオ データ自体の表示を処理するアップストリーム フィルターから、この関数のメソッドを使用します。 これは通常、ビデオ ハードウェアへの代替接続を持つハードウェア ビデオ デコーダーによって使用されます。
継承
IOverlay インターフェイスは、IUnknown インターフェイスから継承されます。 IOverlay には、次の種類のメンバーもあります。
メソッド
IOverlay インターフェイスには、これらのメソッドがあります。
IOverlay::Advise Advise メソッドは、dwInterests パラメーターで指定されたオーバーレイ イベントのアドバイズ リンクを設定します。 |
IOverlay::GetClipList GetClipList メソッドは、クリッピング リストを取得します。 |
IOverlay::GetColorKey GetColorKey メソッドは、クロマ キー処理に使用されている現在のカラー キーを取得します。 |
IOverlay::GetDefaultColorKey GetDefaultColorKey メソッドは、クロマ キー オーバーレイに使用される既定の色キーを取得します。 |
IOverlay::GetPalette GetPalette メソッドは、現在のシステム パレットを取得します。 |
IOverlay::GetVideoPosition GetVideoPosition メソッドは、現在のビデオ ソースとターゲットの四角形を取得します。 |
IOverlay::GetWindowHandle GetWindowHandle メソッドは、現在のウィンドウ ハンドルを取得します。 |
IOverlay::SetColorKey SetColorKey メソッドは、カラー キーを変更します。 |
IOverlay::SetPalette SetPalette メソッドはパレットを設定します。 |
IOverlay::Unadvise Unadvise メソッドは、IOverlayNotify インターフェイスで確立されたアドバイズ リンクを終了します。 |
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | strmif.h (Dshow.h を含む) |