IMSVidVideoRenderer2
COMIDispatch (デュアル)comobj 経由でメソッド名による遅延バインド呼び出しができます(vtableインデックス不要)。公式ドキュメント
IMSVidVideoRenderer2 インターフェイスは、ビデオレンダラーデバイスを表します。
解説(Remarks)
このインターフェイスのインターフェイス識別子 (IID) を宣言するには、__uuidof 演算子を使用します: __uuidof(IMSVidVideoRenderer2)。
メソッド 7
vtbl = vtable インデックス(0始まり)。IDispatch 実装のため HSP ではメソッド名でも呼べます(上記)。低レベルの index 呼び出し用に vtbl も掲載。0〜2 は IUnknown。
get_Allocator メソッドは、VMR からアロケーター プレゼンターを IUnknown ポインターとして取得します。
| AllocPresent | IUnknown** | out | アロケーター プレゼンターの IUnknown インターフェイスへのポインターを受け取ります。 |
戻り値
HRESULT 値を返します。取り得る値には次のものがあります。
| 戻り値コード | 説明 |
|---|---|
| 成功しました。 |
解説(Remarks)
呼び出し側は、返された IUnknown インターフェイスを解放する必要があります。
get__Allocator メソッドは、VMR からアロケーター プレゼンターを取得します。
| AllocPresent | IVMRSurfaceAllocator** | out | IVMRSurfaceAllocator インターフェイス ポインターを受け取ります。 |
戻り値
解説(Remarks)
呼び出し側は、IVMRSurfaceAllocator インターフェイスを解放する必要があります。
get_Allocator_ID メソッドは、VMR フィルターのアロケーター プレゼンターの識別子を取得します。
| ID | INT* | out | 識別子を受け取ります。返された値が -1 の場合、MSVidVideoRenderer オブジェクトがフィルター グラフを構築する際に既定の識別子を割り当てます。 |
戻り値
HRESULT 値を返します。取り得る値には次のものがあります。
| 戻り値コード | 説明 |
|---|---|
| 成功しました。 |
解説(Remarks)
この識別子はアプリケーションが使用するためのものであり、VMR では使用されません。
SetAllocator メソッドは、VMR に対してアロケーター プレゼンターを指定します。アプリケーションはこのメソッドを使用して、独自のカスタム アロケーター プレゼンター オブジェクトを提供できます。
| AllocPresent | IUnknown* | in | アロケーター プレゼンター オブジェクトの IUnknown インターフェイスへのポインターです。 |
| ID | INT | in | 必要に応じて、アロケーター プレゼンター オブジェクトの識別子 (ID) を指定します。既定値の -1 は、MSVidVideoRenderer オブジェクトがフィルター グラフを構築する際に ID を作成することを示します。その場合、MSVidVideoRenderer オブジェクトは、アロケーター プレゼンターの IUnknown インターフェイス ポインターの下位 32 ビットを ID として使用します。この ID はアプリケーションが使用するためのものであり、VMR では使用されないことに注意してください。 |
戻り値
HRESULT 値を返します。取り得る値には次のものがあります。
| 戻り値コード | 説明 |
|---|---|
| 成功しました。 |
| AllocPresent | IVMRSurfaceAllocator* | in | 設定するVMRサーフェスアロケーター(IVMRSurfaceAllocator)オブジェクト。 |
| ID | INT | in | そのアロケーターに割り当てる識別子。 |
put_SuppressEffects メソッドは、電源管理および視覚効果に関する設定を行います。
| bSuppress | VARIANT_BOOL | in | ブール値を指定します。詳細については「解説」を参照してください。 |
戻り値
HRESULT 値を返します。取り得る値には次のものがあります。
| 戻り値コード | 説明 |
|---|---|
| 成功しました。 |
解説(Remarks)
bSuppress が VARIANT_TRUE に等しい場合、Video Control は次の処理を行います。
- フォントのスムージングとシステム全体のドロップ シャドウ効果を無効にします。(Video Control がハードウェア オーバーレイを使用している場合のみ。) これは、アプリケーションがオーバーレイ上に描画を行う場合に役立ちます。
- スクリーン セーバーを無効にし、ディスプレイの電源管理をオフにします。これは、ユーザーが番組を視聴している間にオペレーティング システムが再生を中断するのを防ぐのに役立ちます。
bSuppress が VARIANT_FALSE に等しい場合、Video Control は既存のシステム設定を使用します。
get_SuppressEffects メソッドは、電源管理および視覚効果を制御する設定を取得します。
| bSuppress | VARIANT_BOOL* | out | VARIANT_TRUE または VARIANT_FALSE の値を受け取ります。詳細については、IMSVidVideoRenderer2::put_SuppressEffects を参照してください。 |
戻り値
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IMSVidVideoRenderer2 "{6BDD5C1E-2810-4159-94BC-05511AE8549B}" #usecom global IMSVidVideoRenderer2 IID_IMSVidVideoRenderer2 "{37B03543-A4C8-11D2-B634-00C04F79498E}" #comfunc global IMSVidVideoRenderer2_get_Allocator 46 sptr #comfunc global IMSVidVideoRenderer2_get__Allocator 47 sptr #comfunc global IMSVidVideoRenderer2_get_Allocator_ID 48 var #comfunc global IMSVidVideoRenderer2_SetAllocator 49 sptr,int #comfunc global IMSVidVideoRenderer2__SetAllocator2 50 sptr,int #comfunc global IMSVidVideoRenderer2_put_SuppressEffects 51 int #comfunc global IMSVidVideoRenderer2_get_SuppressEffects 52 var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。 ; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。#define global IID_IMSVidVideoRenderer2 "{6BDD5C1E-2810-4159-94BC-05511AE8549B}" #usecom global IMSVidVideoRenderer2 IID_IMSVidVideoRenderer2 "{37B03543-A4C8-11D2-B634-00C04F79498E}" #comfunc global IMSVidVideoRenderer2_get_Allocator 46 sptr #comfunc global IMSVidVideoRenderer2_get__Allocator 47 sptr #comfunc global IMSVidVideoRenderer2_get_Allocator_ID 48 sptr #comfunc global IMSVidVideoRenderer2_SetAllocator 49 sptr,int #comfunc global IMSVidVideoRenderer2__SetAllocator2 50 sptr,int #comfunc global IMSVidVideoRenderer2_put_SuppressEffects 51 int #comfunc global IMSVidVideoRenderer2_get_SuppressEffects 52 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。 ; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。