2 * Implementation of IFilterMapper3 for CLSID_FilterMapper2.
6 * hidenori@a2.ctktv.ne.jp
17 #include "wine/obj_base.h"
18 #include "wine/obj_oleaut.h"
23 #include "debugtools.h"
24 DEFAULT_DEBUG_CHANNEL(quartz
);
26 #include "quartz_private.h"
32 IFilterMapper3_fnQueryInterface(IFilterMapper3
* iface
,REFIID riid
,void** ppobj
)
34 CFilterMapper2_THIS(iface
,fmap3
);
36 TRACE("(%p)->()\n",This
);
38 return IUnknown_QueryInterface(This
->unk
.punkControl
,riid
,ppobj
);
42 IFilterMapper3_fnAddRef(IFilterMapper3
* iface
)
44 CFilterMapper2_THIS(iface
,fmap3
);
46 TRACE("(%p)->()\n",This
);
48 return IUnknown_AddRef(This
->unk
.punkControl
);
52 IFilterMapper3_fnRelease(IFilterMapper3
* iface
)
54 CFilterMapper2_THIS(iface
,fmap3
);
56 TRACE("(%p)->()\n",This
);
58 return IUnknown_Release(This
->unk
.punkControl
);
62 IFilterMapper3_fnCreateCategory(IFilterMapper3
* iface
,REFCLSID rclsidCategory
,DWORD dwMerit
,LPCWSTR lpwszDesc
)
64 CFilterMapper2_THIS(iface
,fmap3
);
66 FIXME("(%p)->(%s,%lu,%s) stub!\n",This
,
67 debugstr_guid(rclsidCategory
),
68 (unsigned long)dwMerit
,debugstr_w(lpwszDesc
));
75 IFilterMapper3_fnUnregisterFilter(IFilterMapper3
* iface
,const CLSID
* pclsidCategory
,const OLECHAR
* lpwszInst
,REFCLSID rclsidFilter
)
77 CFilterMapper2_THIS(iface
,fmap3
);
79 FIXME("(%p)->(%s,%s,%s) stub!\n",This
,
80 debugstr_guid(pclsidCategory
),
81 debugstr_w(lpwszInst
),
82 debugstr_guid(rclsidFilter
));
84 if ( pclsidCategory
== NULL
)
85 pclsidCategory
= &CLSID_LegacyAmFilterCategory
;
88 return QUARTZ_RegisterAMovieFilter(
92 NULL
, lpwszInst
, FALSE
);
97 IFilterMapper3_fnRegisterFilter(IFilterMapper3
* iface
,REFCLSID rclsidFilter
,LPCWSTR lpName
,IMoniker
** ppMoniker
,const CLSID
* pclsidCategory
,const OLECHAR
* lpwszInst
,const REGFILTER2
* pRF2
)
99 CFilterMapper2_THIS(iface
,fmap3
);
101 FIXME( "(%p)->(%s,%s,%p,%s,%s,%p) stub!\n",This
,
102 debugstr_guid(rclsidFilter
),debugstr_w(lpName
),
103 ppMoniker
,debugstr_guid(pclsidCategory
),
104 debugstr_w(lpwszInst
),pRF2
);
106 if ( lpName
== NULL
|| pRF2
== NULL
)
109 if ( ppMoniker
!= NULL
)
111 FIXME( "ppMoniker != NULL - not implemented!\n" );
115 if ( pclsidCategory
== NULL
)
116 pclsidCategory
= &CLSID_LegacyAmFilterCategory
;
118 /* FIXME!! - all members in REGFILTER2 are ignored ! */
120 return QUARTZ_RegisterAMovieFilter(
124 lpName
, lpwszInst
, TRUE
);
128 static HRESULT WINAPI
129 IFilterMapper3_fnEnumMatchingFilters(IFilterMapper3
* iface
,IEnumMoniker
** ppMoniker
,DWORD dwFlags
,BOOL bExactMatch
,DWORD dwMerit
,BOOL bInputNeeded
,DWORD cInputTypes
,const GUID
* pguidInputTypes
,const REGPINMEDIUM
* pPinMediumIn
,const CLSID
* pPinCategoryIn
,BOOL bRender
,BOOL bOutputNeeded
,DWORD cOutputTypes
,const GUID
* pguidOutputTypes
,const REGPINMEDIUM
* pPinMediumOut
,const CLSID
* pPinCategoryOut
)
131 CFilterMapper2_THIS(iface
,fmap3
);
133 FIXME("(%p)->() stub!\n",This
);
138 static HRESULT WINAPI
139 IFilterMapper3_fnGetICreateDevEnum(IFilterMapper3
* iface
,ICreateDevEnum
** ppDevEnum
)
141 CFilterMapper2_THIS(iface
,fmap3
);
144 FIXME("(%p)->() stub!\n",This
);
152 static ICOM_VTABLE(IFilterMapper3
) ifmap3
=
154 ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
155 /* IUnknown fields */
156 IFilterMapper3_fnQueryInterface
,
157 IFilterMapper3_fnAddRef
,
158 IFilterMapper3_fnRelease
,
159 /* IFilterMapper2 fields */
160 IFilterMapper3_fnCreateCategory
,
161 IFilterMapper3_fnUnregisterFilter
,
162 IFilterMapper3_fnRegisterFilter
,
163 IFilterMapper3_fnEnumMatchingFilters
,
164 /* IFilterMapper3 fields */
165 IFilterMapper3_fnGetICreateDevEnum
,
169 HRESULT
CFilterMapper2_InitIFilterMapper3( CFilterMapper2
* pfm
)
172 ICOM_VTBL(&pfm
->fmap3
) = &ifmap3
;
177 void CFilterMapper2_UninitIFilterMapper3( CFilterMapper2
* pfm
)