Re: Simplify dlls/atl/registrar.c

2008-09-23 Thread Gerald Pfeifer
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




Re: Simplify dlls/atl/registrar.c

2008-09-09 Thread Rob Shearman
2008/9/7 Gerald Pfeifer [EMAIL PROTECTED]:
 --- dlls/atl/registrar.c7 May 2008 12:06:02 -   1.29
 +++ dlls/atl/registrar.c7 Sep 2008 13:42:54 -
 @@ -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