ホーム › Media.DirectShow › IFilterMapper
IFilterMapper
COMメソッド 8
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
| clsid | GUID | in | 登録するフィルタのクラスID(CLSID)。 |
| Name | LPWSTR | in | 登録するフィルタの表示名(ワイド文字)。 |
| dwMerit | DWORD | in | フィルタの優先度(MERIT_*値)。インテリジェント接続での選択順を左右する。 |
| clsid | GUID | in | インスタンス登録するフィルタのクラスID。 |
| Name | LPWSTR | in | インスタンスの表示名(ワイド文字)。 |
| MRId | GUID* | out | 生成されたメディアリソースID(GUID)を受け取る出力先。 |
vtbl 5 HRESULT RegisterPin(GUID Filter, LPWSTR Name, BOOL bRendered, BOOL bOutput, BOOL bZero, BOOL bMany, GUID ConnectsToFilter, LPWSTR ConnectsToPin)
| Filter | GUID | in | 対象フィルタのクラスID。 |
| Name | LPWSTR | in | 登録するピンの名前(ワイド文字)。 |
| bRendered | BOOL | in | このピンがレンダリング出力か否かを示す真偽値。 |
| bOutput | BOOL | in | 出力ピンか入力ピンかを示す真偽値(TRUEで出力)。 |
| bZero | BOOL | in | ピン数が0になり得るか否かを示す真偽値。 |
| bMany | BOOL | in | 同種ピンを複数持てるか否かを示す真偽値。 |
| ConnectsToFilter | GUID | in | 接続先フィルタのクラスID。不問ならGUID_NULL。 |
| ConnectsToPin | LPWSTR | in | 接続先ピンの名前(ワイド文字)。 |
| clsFilter | GUID | in | 対象フィルタのクラスID。 |
| strName | LPWSTR | in | 対象ピンの名前(ワイド文字)。 |
| clsMajorType | GUID | in | 登録するメディアのメジャータイプGUID。 |
| clsSubType | GUID | in | 登録するメディアのサブタイプGUID。 |
vtbl 7 HRESULT UnregisterFilter(GUID Filter)
| Filter | GUID | in | 登録解除するフィルタのクラスID。 |
vtbl 8 HRESULT UnregisterFilterInstance(GUID MRId)
| MRId | GUID | in | 登録解除するフィルタインスタンスのメディアリソースID(GUID)。 |
| Filter | GUID | in | 対象フィルタのクラスID。 |
| Name | LPWSTR | in | 登録解除するピンの名前(ワイド文字)。 |
vtbl 10 HRESULT EnumMatchingFilters(IEnumRegFilters** ppEnum, DWORD dwMerit, BOOL bInputNeeded, GUID clsInMaj, GUID clsInSub, BOOL bRender, BOOL bOututNeeded, GUID clsOutMaj, GUID clsOutSub)
| ppEnum | IEnumRegFilters** | out | 条件に一致したフィルタを列挙するIEnumRegFiltersを受け取る出力先。 |
| dwMerit | DWORD | in | この値以上のメリットを持つフィルタのみ対象とする下限値。 |
| bInputNeeded | BOOL | in | 入力ピンを持つフィルタを要求するか否かを示す真偽値。 |
| clsInMaj | GUID | in | 入力に要求するメジャータイプGUID。不問ならGUID_NULL。 |
| clsInSub | GUID | in | 入力に要求するサブタイプGUID。不問ならGUID_NULL。 |
| bRender | BOOL | in | レンダラを要求するか否かを示す真偽値。 |
| bOututNeeded | BOOL | in | 出力ピンを持つフィルタを要求するか否かを示す真偽値。 |
| clsOutMaj | GUID | in | 出力に要求するメジャータイプGUID。不問ならGUID_NULL。 |
| clsOutSub | GUID | in | 出力に要求するサブタイプGUID。不問ならGUID_NULL。 |
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
出力引数:
#define global IID_IFilterMapper "{56A868A3-0AD4-11CE-B03A-0020AF0BA770}" #usecom global IFilterMapper IID_IFilterMapper "{}" #comfunc global IFilterMapper_RegisterFilter 3 int,wstr,int #comfunc global IFilterMapper_RegisterFilterInstance 4 int,wstr,var #comfunc global IFilterMapper_RegisterPin 5 int,wstr,int,int,int,int,int,wstr #comfunc global IFilterMapper_RegisterPinType 6 int,wstr,int,int #comfunc global IFilterMapper_UnregisterFilter 7 int #comfunc global IFilterMapper_UnregisterFilterInstance 8 int #comfunc global IFilterMapper_UnregisterPin 9 int,wstr #comfunc global IFilterMapper_EnumMatchingFilters 10 sptr,int,int,int,int,int,int,int,int ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IFilterMapper "{56A868A3-0AD4-11CE-B03A-0020AF0BA770}" #usecom global IFilterMapper IID_IFilterMapper "{}" #comfunc global IFilterMapper_RegisterFilter 3 int,wstr,int #comfunc global IFilterMapper_RegisterFilterInstance 4 int,wstr,sptr #comfunc global IFilterMapper_RegisterPin 5 int,wstr,int,int,int,int,int,wstr #comfunc global IFilterMapper_RegisterPinType 6 int,wstr,int,int #comfunc global IFilterMapper_UnregisterFilter 7 int #comfunc global IFilterMapper_UnregisterFilterInstance 8 int #comfunc global IFilterMapper_UnregisterPin 9 int,wstr #comfunc global IFilterMapper_EnumMatchingFilters 10 sptr,int,int,int,int,int,int,int,int ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。