IMSVidVMR9
COMIDispatch (デュアル)comobj 経由でメソッド名による遅延バインド呼び出しができます(vtableインデックス不要)。公式ドキュメント
このトピックは Update Rollup 2 for Microsoft Windows XP Media Center Edition 2005 に適用されます。IMSVidVMR9 インターフェースは、Video Control フィルターグラフ内の Video Mixing Renderer Filter 9 (VMR-9) を表します。MSVidVMR9 オブジェクトがこのインターフェースを公開します。
解説(Remarks)
このインターフェースのインターフェース識別子 (IID) を宣言するには、__uuidof 演算子を使用します: __uuidof(IMSVidVMR9)。
メソッド 5
vtbl = vtable インデックス(0始まり)。IDispatch 実装のため HSP ではメソッド名でも呼べます(上記)。低レベルの index 呼び出し用に vtbl も掲載。0〜2 は IUnknown。
このトピックは Update Rollup 2 for Microsoft Windows XP Media Center Edition 2005 に適用されます。
| ID | INT* | out | 識別子を受け取ります。アプリケーションが allocator-presenter を設定していない場合、値は –1 になります。 |
戻り値
このメソッドは HRESULT を返します。取り得る値には、以下の表に示すものが含まれますが、これらに限定されません。
| 戻り値コード | 説明 |
|---|---|
| メソッドは成功しました。 |
解説(Remarks)
カスタムの allocator-presenter を設定するには、IMSVidVMR9::SetAllocator を呼び出します。
このトピックは Update Rollup 2 for Microsoft Windows XP Media Center Edition 2005 に適用されます。
| AllocPresent | IUnknown* | in | allocator-presenter の IUnknown インターフェースへのポインター。このオブジェクトは IVMRSurfaceAllocator9 インターフェースを公開している必要があります。VMR-9 フィルターの既定の allocator-presenter を使用するには、このパラメーターを NULL に設定します。 |
| ID | INT | in | allocator-presenter に対するアプリケーション定義の識別子。 |
戻り値
このメソッドは HRESULT を返します。取り得る値には、以下の表に示すものが含まれますが、これらに限定されません。
| 戻り値コード | 説明 |
|---|---|
| メソッドは成功しました。 |
このトピックは Update Rollup 2 for Microsoft Windows XP Media Center Edition 2005 に適用されます。
| bSuppress | VARIANT_BOOL | in | Boolean 値を指定します。詳細については「解説」を参照してください。 |
戻り値
このメソッドは HRESULT を返します。取り得る値には、以下の表に示すものが含まれますが、これらに限定されません。
| 戻り値コード | 説明 |
|---|---|
| メソッドは成功しました。 |
解説(Remarks)
bSuppress が VARIANT_TRUE の場合、Video Control はビデオ再生中にいくつかのシステムパラメーターを構成します:
- スクリーンセーバーのタイムアウトを無効にします。
- Microsoft ClearType のスムージングを無効にします。
- ドロップシャドウ効果を無効にします。
- アルファブレンドされたマウスカーソルを無効にします。
- システムがディスプレイをオフにする(電源管理)のを防ぎます。
bSuppress が VARIANT_FALSE の場合、Video Control はこれらのシステム設定を一切変更しません。
このプロパティの既定値は VARIANT_TRUE です。アプリケーションがすべてのシステム設定を制御したい場合、たとえばカスタムの allocator-presenter を提供する場合(IMSVidVMR9::SetAllocator を参照)は、このプロパティを VARIANT_FALSE に設定します。
このトピックは Update Rollup 2 for Microsoft Windows XP Media Center Edition 2005 に適用されます。
| bSuppress | VARIANT_BOOL* | out | VARIANT_BOOL を受け取ります。詳細については IMSVidVMR9::put_SuppressEffects を参照してください。既定値は VARIANT_TRUE です。 |
戻り値
このメソッドは HRESULT を返します。取り得る値には、以下の表に示すものが含まれますが、これらに限定されません。
| 戻り値コード | 説明 |
|---|---|
| メソッドは成功しました。 |
このトピックは Update Rollup 2 for Microsoft Windows XP Media Center Edition 2005 に適用されます。
| AllocPresent | IUnknown** | out | allocator-presenter の IUnknown インターフェースへのポインターを受け取ります。呼び出し側はこのインターフェースを解放する必要があります。 |
戻り値
このメソッドは HRESULT を返します。取り得る値には、以下の表に示すものが含まれますが、これらに限定されません。
| 戻り値コード | 説明 |
|---|---|
| メソッドは成功しました。 | |
| アプリケーションはカスタムの allocator-presenter を設定していません。 |
解説(Remarks)
カスタムの allocator-presenter を設定するには、IMSVidVMR9::SetAllocator を呼び出します。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IMSVidVMR9 "{D58B0015-EBEF-44BB-BBDD-3F3699D76EA1}" #usecom global IMSVidVMR9 IID_IMSVidVMR9 "{24DC3975-09BF-4231-8655-3EE71F43837D}" #comfunc global IMSVidVMR9_get_Allocator_ID 46 var #comfunc global IMSVidVMR9_SetAllocator 47 sptr,int #comfunc global IMSVidVMR9_put_SuppressEffects 48 int #comfunc global IMSVidVMR9_get_SuppressEffects 49 var #comfunc global IMSVidVMR9_get_Allocator 50 sptr ; ※数字は 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_IMSVidVMR9 "{D58B0015-EBEF-44BB-BBDD-3F3699D76EA1}" #usecom global IMSVidVMR9 IID_IMSVidVMR9 "{24DC3975-09BF-4231-8655-3EE71F43837D}" #comfunc global IMSVidVMR9_get_Allocator_ID 46 sptr #comfunc global IMSVidVMR9_SetAllocator 47 sptr,int #comfunc global IMSVidVMR9_put_SuppressEffects 48 int #comfunc global IMSVidVMR9_get_SuppressEffects 49 sptr #comfunc global IMSVidVMR9_get_Allocator 50 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 不要)。