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

IVMRMonitorConfig

COM
IID9cf0b1b6-fbaa-4b7f-88cf-cf1f130a0dce継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

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

メソッド 5

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

vtbl 3 HRESULT SetMonitor(VMRGUID* pGUID)

マルチモニター環境では、SetMonitor メソッドは、この VMR インスタンスがビデオ再生に使用するモニターを指定します。

pGUIDVMRGUID*inモニターを識別する VMRGUID 構造体へのポインター。

戻り値

HRESULT 値を返します。取り得る値には次のものがあります。

戻り値 説明
E_INVALIDARG
引数が無効です。
E_POINTER
NULL ポインター引数です。
S_OK
成功しました。
VFW_E_WRONG_STATE
アロケーター プレゼンターが読み込まれていません。

解説(Remarks)

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

VMRGUID 構造体の pGUID メンバーは、既定の DirectDraw デバイスを示す NULL であるか、または VMRGUID 構造体の GUID メンバーのアドレスと等しくなければなりません。それ以外の場合、このメソッドは E_INVALIDARG を返します。

指定した GUID がどのモニターにも対応しない場合、このメソッドは E_INVALIDARG を返します。

vtbl 4 HRESULT GetMonitor(VMRGUID* pGUID)

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

pGUIDVMRGUID*out呼び出し元が確保した VMRGUID 構造体へのポインター。このメソッドは、モニターを識別する GUID をこの構造体に格納します。

戻り値

HRESULT 値を返します。取り得る値には次のものがあります。

戻り値 説明
E_POINTER
NULL ポインター引数です。
S_OK
成功しました。
VFW_E_WRONG_STATE
アロケーター プレゼンターが読み込まれていません。
vtbl 5 HRESULT SetDefaultMonitor(VMRGUID* pGUID)

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

pGUIDVMRGUID*inモニターを識別する VMRGUID 構造体へのポインター。

戻り値

HRESULT 値を返します。取り得る値には次のものがあります。

戻り値 説明
E_FAIL
指定したモニターを既定として設定できませんでした。
E_INVALIDARG
引数が無効です。指定したモニターが存在しないか、pGUID パラメーターの書式が正しくありません。
E_POINTER
NULL ポインター引数です。
S_OK
成功しました。
VFW_E_WRONG_STATE
アロケーター プレゼンターが読み込まれていません。

解説(Remarks)

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

VMRGUID 構造体の pGUID メンバーは、既定の DirectDraw デバイスを示す NULL であるか、または VMRGUID 構造体の GUID メンバーのアドレスと等しくなければなりません。それ以外の場合、このメソッドは E_INVALIDARG を返します。

指定した GUID がどのモニターにも対応しない場合、このメソッドは E_INVALIDARG を返します。

vtbl 6 HRESULT GetDefaultMonitor(VMRGUID* pGUID)

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

pGUIDVMRGUID*outシステム上の既定のモニターを識別する VMRGUID 構造体へのポインター。

戻り値

HRESULT 値を返します。取り得る値には次のものがあります。

戻り値 説明
E_POINTER
NULL ポインター引数です。
S_OK
成功しました。
VFW_E_WRONG_STATE
アロケーター プレゼンターが読み込まれていません。

解説(Remarks)

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

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

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

pInfoVMRMONITORINFO*outシステム上の各モニターに関する情報を含む VMRMONITORINFO 構造体の配列へのポインター。
dwMaxInfoArraySizeDWORDin配列内のメンバーの最大数を指定します。
pdwNumDevicesDWORD*out取得したデバイス数を受け取る変数へのポインター。

戻り値

HRESULT 値を返します。取り得る値には次のものがあります。

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

解説(Remarks)

このメソッドを使用して、上流のデコーダー フィルターに接続する際に VMR が使用できる DirectDraw デバイス GUID と、それに関連付けられたモニター情報の一覧を取得します。必要な配列サイズを pdwNumDevices パラメーターで受け取るには、pInfoNULL を指定します。

出典・ライセンス: 上記「公式ドキュメント」の内容は 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_IVMRMonitorConfig "{9CF0B1B6-FBAA-4B7F-88CF-CF1F130A0DCE}"
#usecom global IVMRMonitorConfig IID_IVMRMonitorConfig "{}"
#comfunc global IVMRMonitorConfig_SetMonitor            3 var
#comfunc global IVMRMonitorConfig_GetMonitor            4 var
#comfunc global IVMRMonitorConfig_SetDefaultMonitor     5 var
#comfunc global IVMRMonitorConfig_GetDefaultMonitor     6 var
#comfunc global IVMRMonitorConfig_GetAvailableMonitors  7 var,int,var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。