ホーム › Media.DirectShow › IFilterMapper2
IFilterMapper2
COMメソッド 4
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
| clsidCategory | GUID* | in | 作成するフィルタカテゴリのGUIDを指定する。 |
| dwCategoryMerit | DWORD | in | カテゴリに与えるメリット値(MERIT_*)。 |
| Description | LPWSTR | in | カテゴリの説明文字列(ワイド文字)。 |
| pclsidCategory | GUID* | in | 対象フィルタが属するカテゴリGUID。NULLで既定カテゴリ。 |
| szInstance | LPWSTR | in | インスタンス識別子文字列。NULL可。 |
| Filter | GUID* | in | 登録解除するフィルタのクラスID。 |
vtbl 5 HRESULT RegisterFilter(GUID* clsidFilter, LPWSTR Name, IMoniker** ppMoniker, GUID* pclsidCategory, LPWSTR szInstance, REGFILTER2* prf2)
| clsidFilter | GUID* | in | 登録するフィルタのクラスID。 |
| Name | LPWSTR | in | フィルタの表示名(ワイド文字)。 |
| ppMoniker | IMoniker** | inoutoptional | 生成または使用するモニカを受け取る入出力。NULL可。 |
| pclsidCategory | GUID* | in | 登録先カテゴリGUID。NULLで既定カテゴリ。 |
| szInstance | LPWSTR | in | インスタンス識別子文字列。NULL可。 |
| prf2 | REGFILTER2* | in | ピン・メディアタイプ情報を含む登録情報(REGFILTER2)へのポインタ。 |
vtbl 6 HRESULT EnumMatchingFilters(IEnumMoniker** ppEnum, DWORD dwFlags, BOOL bExactMatch, DWORD dwMerit, BOOL bInputNeeded, DWORD cInputTypes, GUID* pInputTypes, REGPINMEDIUM* pMedIn, GUID* pPinCategoryIn, BOOL bRender, BOOL bOutputNeeded, DWORD cOutputTypes, GUID* pOutputTypes, REGPINMEDIUM* pMedOut, GUID* pPinCategoryOut)
| ppEnum | IEnumMoniker** | out | 条件に一致したフィルタのモニカを列挙するIEnumMonikerを受け取る出力先。 |
| dwFlags | DWORD | in | 列挙動作を制御するフラグ(予約、通常0)。 |
| bExactMatch | BOOL | in | メディアタイプを厳密一致で照合するか否かを示す真偽値。 |
| dwMerit | DWORD | in | この値以上のメリットを持つフィルタのみ対象とする下限値。 |
| bInputNeeded | BOOL | in | 入力ピンを必要とするか否かを示す真偽値。 |
| cInputTypes | DWORD | in | pInputTypes配列のメディアタイプ対の数。 |
| pInputTypes | GUID* | inoptional | 入力に要求するメジャー/サブタイプGUIDの対を並べた配列。 |
| pMedIn | REGPINMEDIUM* | inoptional | 入力ピンに要求する伝送媒体(REGPINMEDIUM)。NULL可。 |
| pPinCategoryIn | GUID* | inoptional | 入力ピンのカテゴリGUID。NULL可。 |
| bRender | BOOL | in | 出力がレンダリングされるフィルタを要求するか否かを示す真偽値。 |
| bOutputNeeded | BOOL | in | 出力ピンを必要とするか否かを示す真偽値。 |
| cOutputTypes | DWORD | in | pOutputTypes配列のメディアタイプ対の数。 |
| pOutputTypes | GUID* | inoptional | 出力に要求するメジャー/サブタイプGUIDの対を並べた配列。 |
| pMedOut | REGPINMEDIUM* | inoptional | 出力ピンに要求する伝送媒体(REGPINMEDIUM)。NULL可。 |
| pPinCategoryOut | GUID* | inoptional | 出力ピンのカテゴリGUID。NULL可。 |
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
出力引数:
#define global IID_IFilterMapper2 "{B79BB0B0-33C1-11D1-ABE1-00A0C905F375}" #usecom global IFilterMapper2 IID_IFilterMapper2 "{}" #comfunc global IFilterMapper2_CreateCategory 3 var,int,wstr #comfunc global IFilterMapper2_UnregisterFilter 4 var,wstr,var #comfunc global IFilterMapper2_RegisterFilter 5 var,wstr,sptr,var,wstr,var #comfunc global IFilterMapper2_EnumMatchingFilters 6 sptr,int,int,int,int,int,var,var,var,int,int,int,var,var,var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IFilterMapper2 "{B79BB0B0-33C1-11D1-ABE1-00A0C905F375}" #usecom global IFilterMapper2 IID_IFilterMapper2 "{}" #comfunc global IFilterMapper2_CreateCategory 3 sptr,int,wstr #comfunc global IFilterMapper2_UnregisterFilter 4 sptr,wstr,sptr #comfunc global IFilterMapper2_RegisterFilter 5 sptr,wstr,sptr,sptr,wstr,sptr #comfunc global IFilterMapper2_EnumMatchingFilters 6 sptr,int,int,int,int,int,sptr,sptr,sptr,int,int,int,sptr,sptr,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。