A couple of optimizations to avoid some server calls in WIN_FindWndPtr
[wine/multimedia.git] / dlls / quartz / ifmap.c
blob0e3424f14d258e4268cd9ed5c06f190391f14e25
1 /*
2 * Implementation of IFilterMapper for CLSID_FilterMapper.
4 * FIXME - stub.
6 * hidenori@a2.ctktv.ne.jp
7 */
9 #include "config.h"
11 #include "windef.h"
12 #include "winbase.h"
13 #include "wingdi.h"
14 #include "winuser.h"
15 #include "winreg.h"
16 #include "winerror.h"
17 #include "wine/obj_base.h"
18 #include "wine/obj_oleaut.h"
19 #include "strmif.h"
20 #include "control.h"
21 #include "uuids.h"
23 #include "debugtools.h"
24 DEFAULT_DEBUG_CHANNEL(quartz);
26 #include "quartz_private.h"
27 #include "fmap.h"
28 #include "regsvr.h"
31 static HRESULT WINAPI
32 IFilterMapper_fnQueryInterface(IFilterMapper* iface,REFIID riid,void** ppobj)
34 CFilterMapper_THIS(iface,fmap);
36 TRACE("(%p)->()\n",This);
38 return IUnknown_QueryInterface(This->unk.punkControl,riid,ppobj);
41 static ULONG WINAPI
42 IFilterMapper_fnAddRef(IFilterMapper* iface)
44 CFilterMapper_THIS(iface,fmap);
46 TRACE("(%p)->()\n",This);
48 return IUnknown_AddRef(This->unk.punkControl);
51 static ULONG WINAPI
52 IFilterMapper_fnRelease(IFilterMapper* iface)
54 CFilterMapper_THIS(iface,fmap);
56 TRACE("(%p)->()\n",This);
58 return IUnknown_Release(This->unk.punkControl);
62 static HRESULT WINAPI
63 IFilterMapper_fnRegisterFilter(IFilterMapper* iface,CLSID clsid,LPCWSTR lpwszName,DWORD dwMerit)
65 CFilterMapper_THIS(iface,fmap);
67 FIXME("(%p)->(%s,%s,%08lx)\n",This,
68 debugstr_guid(&clsid),debugstr_w(lpwszName),dwMerit);
70 /* FIXME */
71 /* FIXME - handle dwMerit! */
72 return QUARTZ_RegisterAMovieFilter(
73 &CLSID_LegacyAmFilterCategory,
74 &clsid,
75 NULL, 0,
76 lpwszName, NULL, TRUE );
79 static HRESULT WINAPI
80 IFilterMapper_fnRegisterFilterInstance(IFilterMapper* iface,CLSID clsid,LPCWSTR lpwszName,CLSID* pclsidMedia)
82 CFilterMapper_THIS(iface,fmap);
83 HRESULT hr;
85 FIXME("(%p)->()\n",This);
87 if ( pclsidMedia == NULL )
88 return E_POINTER;
89 hr = CoCreateGuid(pclsidMedia);
90 if ( FAILED(hr) )
91 return hr;
93 /* FIXME */
94 /* this doesn't work. */
95 /* return IFilterMapper_RegisterFilter(iface,
96 *pclsidMedia,lpwszName,0x60000000); */
98 return E_NOTIMPL;
101 static HRESULT WINAPI
102 IFilterMapper_fnRegisterPin(IFilterMapper* iface,CLSID clsidFilter,LPCWSTR lpwszName,BOOL bRendered,BOOL bOutput,BOOL bZero,BOOL bMany,CLSID clsidReserved,LPCWSTR lpwszReserved)
104 CFilterMapper_THIS(iface,fmap);
106 FIXME("(%p)->() stub!\n",This);
108 return E_NOTIMPL;
111 static HRESULT WINAPI
112 IFilterMapper_fnRegisterPinType(IFilterMapper* iface,CLSID clsidFilter,LPCWSTR lpwszName,CLSID clsidMajorType,CLSID clsidSubType)
114 CFilterMapper_THIS(iface,fmap);
116 FIXME("(%p)->() stub!\n",This);
118 return E_NOTIMPL;
121 static HRESULT WINAPI
122 IFilterMapper_fnUnregisterFilter(IFilterMapper* iface,CLSID clsidFilter)
124 CFilterMapper_THIS(iface,fmap);
126 FIXME("(%p)->(%s)\n",This,debugstr_guid(&clsidFilter));
128 /* FIXME */
129 return QUARTZ_RegisterAMovieFilter(
130 &CLSID_LegacyAmFilterCategory,
131 &clsidFilter,
132 NULL, 0, NULL, NULL, FALSE );
135 static HRESULT WINAPI
136 IFilterMapper_fnUnregisterFilterInstance(IFilterMapper* iface,CLSID clsidMedia)
138 CFilterMapper_THIS(iface,fmap);
140 FIXME("(%p)->(%s)\n",This,debugstr_guid(&clsidMedia));
142 /* FIXME */
143 /* this doesn't work. */
144 /* return IFilterMapper_UnregisterFilter(iface,clsidMedia); */
146 return E_NOTIMPL;
149 static HRESULT WINAPI
150 IFilterMapper_fnUnregisterPin(IFilterMapper* iface,CLSID clsidPin,LPCWSTR lpwszName)
152 CFilterMapper_THIS(iface,fmap);
154 FIXME("(%p)->(%s,%s) stub!\n",This,
155 debugstr_guid(&clsidPin),debugstr_w(lpwszName));
157 return E_NOTIMPL;
160 static HRESULT WINAPI
161 IFilterMapper_fnEnumMatchingFilters(IFilterMapper* iface,IEnumRegFilters** ppobj,DWORD dwMerit,BOOL bInputNeeded,CLSID clsInMajorType,CLSID clsidSubType,BOOL bRender,BOOL bOutputNeeded,CLSID clsOutMajorType,CLSID clsOutSubType)
163 CFilterMapper_THIS(iface,fmap);
165 FIXME("(%p)->() stub!\n",This);
167 return E_NOTIMPL;
172 static ICOM_VTABLE(IFilterMapper) ifmap =
174 ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
175 /* IUnknown fields */
176 IFilterMapper_fnQueryInterface,
177 IFilterMapper_fnAddRef,
178 IFilterMapper_fnRelease,
179 /* IFilterMapper fields */
180 IFilterMapper_fnRegisterFilter,
181 IFilterMapper_fnRegisterFilterInstance,
182 IFilterMapper_fnRegisterPin,
183 IFilterMapper_fnRegisterPinType,
184 IFilterMapper_fnUnregisterFilter,
185 IFilterMapper_fnUnregisterFilterInstance,
186 IFilterMapper_fnUnregisterPin,
187 IFilterMapper_fnEnumMatchingFilters,
191 HRESULT CFilterMapper_InitIFilterMapper( CFilterMapper* pfm )
193 TRACE("(%p)\n",pfm);
194 ICOM_VTBL(&pfm->fmap) = &ifmap;
196 return NOERROR;
199 void CFilterMapper_UninitIFilterMapper( CFilterMapper* pfm )
201 TRACE("(%p)\n",pfm);