IAMPluginControl
COM公式ドキュメント
優先リストおよびブロックリストのフィルターを制御します。
メソッド 7
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
指定されたサブタイプに一致するクラス識別子 (CLSID) を優先リストから検索します。
| subType | GUID* | in | 一致させるメディアサブタイプの GUID。 |
| clsid | GUID* | out | 優先リストから取得した CLSID を受け取ります。 |
戻り値
このメソッドは次のいずれかの値を返します。
| リターンコード | 説明 |
|---|---|
| メソッドは成功しました。 | |
|
このサブタイプに一致する CLSID は見つかりませんでした。 |
IAMPluginControl::GetPreferredClsidByIndex (strmif.h) は、インデックス値で指定されたクラス識別子 (CLSID) を優先リストから取得します。
| index | DWORD | in | 取得する CLSID の 0 から始まるインデックス。 |
| subType | GUID* | out | CLSID に関連付けられたサブタイプの GUID を受け取ります。 |
| clsid | GUID* | out | 指定されたインデックスの CLSID を受け取ります。 |
戻り値
このメソッドは次のいずれかの値を返します。
| リターンコード | 説明 |
|---|---|
| メソッドは成功しました。 | |
|
index パラメーターが範囲外です。 |
クラス識別子 (CLSID) を優先リストに追加するか、リストから CLSID を削除します。(IAMPluginControl.SetPreferredClsid)
| subType | GUID* | in | CLSID に関連付けるメディアサブタイプの GUID。 |
| clsid | GUID* | inoptional | リストに追加する CLSID へのポインター。このパラメーターが NULL の場合、subType に関連付けられたエントリがリストから削除されます。 |
戻り値
このメソッドが成功すると S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
クラス識別子 (CLSID) がブロックリストに含まれているかどうかを照会します。(IAMPluginControl.IsDisabled)
| clsid | GUID* | in | 検索する CLSID。 |
戻り値
このメソッドは次のいずれかの値を返します。
| リターンコード | 説明 |
|---|---|
| 指定された CLSID はブロックリストに含まれています。 | |
|
指定された CLSID はブロックリストに含まれていません。 |
IAMPluginControl::GetDisabledByIndex (strmif.h) は、クラス識別子 (CLSID) をブロックリストから取得します。
| index | DWORD | in | 取得する CLSID の 0 から始まるインデックス。 |
| clsid | GUID* | out | 指定されたインデックスの CLSID を受け取ります。 |
戻り値
このメソッドは次のいずれかの値を返します。
| リターンコード | 説明 |
|---|---|
| メソッドは成功しました。 | |
|
index パラメーターが範囲外です。 |
クラス識別子 (CLSID) をブロックリストに追加するか、リストから CLSID を削除します。(IAMPluginControl.SetDisabled)
| clsid | GUID* | in | 追加または削除する CLSID。 |
| disabled | BOOL | in | CLSID を追加するか削除するかを指定します。値が TRUE の場合、メソッドは CLSID をブロックリストに追加します。それ以外の場合は、リストから削除します。 |
戻り値
このメソッドが成功すると S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
Audio Compression Manager (ACM) または Video Compression Manager (VCM) のコーデックがブロックリストに含まれているかどうかを照会します。
| dllName | LPWSTR | in | コーデックを実装する DLL の名前。 |
戻り値
このメソッドは次のいずれかの値を返します。
| リターンコード | 説明 |
|---|---|
| 指定された DLL はブロックリストに含まれています。 | |
|
指定された DLL はブロックリストに含まれていません。 |
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IAMPluginControl "{0E26A181-F40C-4635-8786-976284B52981}" #usecom global IAMPluginControl IID_IAMPluginControl "{}" #comfunc global IAMPluginControl_GetPreferredClsid 3 var,var #comfunc global IAMPluginControl_GetPreferredClsidByIndex 4 int,var,var #comfunc global IAMPluginControl_SetPreferredClsid 5 var,var #comfunc global IAMPluginControl_IsDisabled 6 var #comfunc global IAMPluginControl_GetDisabledByIndex 7 int,var #comfunc global IAMPluginControl_SetDisabled 8 var,int #comfunc global IAMPluginControl_IsLegacyDisabled 9 wstr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。#define global IID_IAMPluginControl "{0E26A181-F40C-4635-8786-976284B52981}" #usecom global IAMPluginControl IID_IAMPluginControl "{}" #comfunc global IAMPluginControl_GetPreferredClsid 3 sptr,sptr #comfunc global IAMPluginControl_GetPreferredClsidByIndex 4 int,sptr,sptr #comfunc global IAMPluginControl_SetPreferredClsid 5 sptr,sptr #comfunc global IAMPluginControl_IsDisabled 6 sptr #comfunc global IAMPluginControl_GetDisabledByIndex 7 int,sptr #comfunc global IAMPluginControl_SetDisabled 8 sptr,int #comfunc global IAMPluginControl_IsLegacyDisabled 9 wstr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。