Win32 API 日本語リファレンス
ホームMedia.DirectShow › IVMRMonitorConfig9

IVMRMonitorConfig9

COM
IID46c2e457-8ba0-4eef-b80b-0680f0978749継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

IVMRMonitorConfig9 インターフェースは、Video Mixing Renderer Filter 9(VMR-9)によって実装されます。

解説(Remarks)

Vmr9.h の前に DShow.h と D3d9.h をインクルードしてください。

メソッド 5

vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。

vtbl 3 HRESULT SetMonitor(DWORD uDev)

マルチモニター環境では、SetMonitor メソッドは、VMR が Direct3D デバイスを作成する際に使用するモニターを指定します。

uDevDWORDinモニターを指定するインデックス。

戻り値

このメソッドは HRESULT を返します。指定される可能性のある値には次のものがあります。

戻り値 説明
E_INVALIDARG
引数が無効です。uDev が有効なモニターに対応していません。
S_OK
メソッドは成功しました。
VFW_E_WRONG_STATE
VMR の入力ピンが接続された後は、モニターを設定できません。

解説(Remarks)

マルチモニター環境で、上流のデコーダーフィルターに接続する際に VMR が使用すべき Direct3D デバイスを指定するには、このメソッドを使用します。

Vmr9.h の前に DShow.h と D3d9.h をインクルードしてください。

vtbl 4 HRESULT GetMonitor(DWORD* puDev)

GetMonitor メソッドは、この VMR のインスタンスがビデオ再生に使用しているモニターを取得します。

puDevDWORD*out現在使用中のモニターを識別するインデックスを受け取るポインター。

戻り値

このメソッドは HRESULT を返します。指定される可能性のある値には次のものがあります。

戻り値 説明
E_POINTER
NULL ポインター引数です。
S_OK
メソッドは成功しました。
VFW_E_WRONG_STATE
アロケーター/プレゼンターがロードされていません。

解説(Remarks)

ミキサーフィルターを上流のデコーダーフィルターに接続する際に使用される Direct3D オブジェクトを判別するには、このメソッドを使用します。

Vmr9.h の前に DShow.h と D3d9.h をインクルードしてください。

vtbl 5 HRESULT SetDefaultMonitor(DWORD uDev)

SetDefaultMonitor メソッドは、今後作成されるすべての VMR インスタンスがビデオ再生に使用すべき既定のモニターを指定します。

uDevDWORDin既定のモニターを指定するインデックス。

戻り値

このメソッドは HRESULT を返します。指定される可能性のある値には次の表のものがあります。

戻り値 説明
E_FAIL
指定されたモニターを既定として設定できませんでした。
E_INVALIDARG
引数が無効です。uDev が有効なモニターに対応していません。
S_OK
メソッドは成功しました。
VFW_E_WRONG_STATE
アロケーター/プレゼンターがロードされていません。

解説(Remarks)

マルチモニター環境で、上流のフィルターに接続する際に VMR が使用する既定の Direct3D デバイスを指定するには、このメソッドを使用します。既定の Direct3D デバイスは、特定の接続に対して SetMonitor メソッドによって上書きできます。

Vmr9.h の前に DShow.h と D3d9.h をインクルードしてください。

vtbl 6 HRESULT GetDefaultMonitor(DWORD* puDev)

GetDefaultMonitor メソッドは、今後作成されるすべての VMR インスタンスがビデオ再生に使用する既定のモニターを取得します。

puDevDWORD*outシステム上の既定のモニターを識別するインデックスを受け取るポインター。

戻り値

このメソッドは HRESULT を返します。指定される可能性のある値には次のものがあります。

戻り値 説明
E_POINTER
NULL ポインター引数です。
S_OK
メソッドは成功しました。
VFW_E_WRONG_STATE
アロケーター/プレゼンターがロードされていません。

解説(Remarks)

マルチモニター環境で、オーバーレイミキサーフィルターが上流のフィルターに接続する際に使用する既定の Direct3D デバイスを判別するには、このメソッドを使用します。

Vmr9.h の前に DShow.h と D3d9.h をインクルードしてください。

vtbl 7 HRESULT GetAvailableMonitors(VMR9MonitorInfo* pInfo, DWORD dwMaxInfoArraySize, DWORD* pdwNumDevices)

GetAvailableMonitors メソッドは、システム上で現在利用可能なモニターに関する情報を取得します。

pInfoVMR9MonitorInfo*outシステム上の各モニターに関する情報を格納する VMR9MonitorInfo 構造体の配列へのポインター。
dwMaxInfoArraySizeDWORDin配列内のメンバーの最大数を指定します。
pdwNumDevicesDWORD*outpInfoNULL の場合、このパラメーターは必要な配列サイズを受け取ります。それ以外の場合は、実際に取得されたデバイス数を受け取ります。

戻り値

このメソッドは HRESULT を返します。指定される可能性のある値には次のものがあります。

戻り値 説明
E_INVALIDARG
引数が無効です。dwMaxInfoArraySize は 0 より大きくなければなりません。
E_POINTER
NULL ポインター引数です。
S_OK
メソッドは成功しました。

解説(Remarks)

ミキサーが上流のデコーダーフィルターに接続する際に使用できる Direct Draw デバイス識別子と、それに関連付けられたモニター情報の一覧を取得するには、このメソッドを使用します。

Vmr9.h の前に DShow.h と D3d9.h をインクルードしてください。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

HSP用 COM定義

#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"

出力引数:
#define global IID_IVMRMonitorConfig9 "{46C2E457-8BA0-4EEF-B80B-0680F0978749}"
#usecom global IVMRMonitorConfig9 IID_IVMRMonitorConfig9 "{}"
#comfunc global IVMRMonitorConfig9_SetMonitor            3 int
#comfunc global IVMRMonitorConfig9_GetMonitor            4 var
#comfunc global IVMRMonitorConfig9_SetDefaultMonitor     5 int
#comfunc global IVMRMonitorConfig9_GetDefaultMonitor     6 var
#comfunc global IVMRMonitorConfig9_GetAvailableMonitors  7 var,int,var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。