Re: Simplify dlls/atl/registrar.c
2008/9/7 Gerald Pfeifer <gerald(a)pfeifer.com>:
--- dlls/atl/registrar.c 7 May 2008 12:06:02 -0000 1.29 +++ dlls/atl/registrar.c 7 Sep 2008 13:42:54 -0000 @@ -661,7 +661,7 @@ static const IRegistrarVtbl RegistrarVtb Registrar_ResourceUnregister, };
-static HRESULT Registrar_create(const IUnknown *pUnkOuter, REFIID riid, void **ppvObject) +static HRESULT Registrar_create(REFIID riid, void **ppvObject) { Registrar *ret;
@@ -711,7 +711,7 @@ static HRESULT WINAPI RegistrarCF_Create REFIID riid, void **ppvObject) { TRACE("(%p)->(%s %p)\n", iface, debugstr_guid(riid), ppvObject); - return Registrar_create(pUnkOuter, riid, ppvObject); + return Registrar_create(riid, ppvObject); }
A test needs to be added to see whether or not the Registrar class factory supports aggregation. If it does then a FIXME should be emitted. If not then an ERR may be emitted and CLASS_E_NOAGGREGATION returned. Just removing pUnkOuter isn't the right thing to do. -- Rob Shearman
On Tue, 9 Sep 2008, Rob Shearman wrote:
-static HRESULT Registrar_create(const IUnknown *pUnkOuter, REFIID riid, void **ppvObject) +static HRESULT Registrar_create(REFIID riid, void **ppvObject) A test needs to be added to see whether or not the Registrar class factory supports aggregation. If it does then a FIXME should be emitted. If not then an ERR may be emitted and CLASS_E_NOAGGREGATION returned. Just removing pUnkOuter isn't the right thing to do.
Fair point! Sadly, this is beyond my expertise in this area and I hope that someone with that expertise is going to help with that? Is this something you could look at? (Based on your analysis consider my patch redrawn...) Gerald
participants (2)
-
Gerald Pfeifer -
Rob Shearman