windows.gaming.input: Make QueryInterface implementations consistent.

When COM aggregation is involved it is important to add a reference to
the returned iface and not to the inner object.

Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Rémi Bernon 2022-03-07 10:40:23 +01:00 committed by Alexandre Julliard
parent ebe0fce6e4
commit 0d3c026bdb
2 changed files with 4 additions and 8 deletions

View file

@ -46,15 +46,13 @@ static HRESULT WINAPI factory_QueryInterface( IActivationFactory *iface, REFIID
IsEqualGUID( iid, &IID_IAgileObject ) ||
IsEqualGUID( iid, &IID_IActivationFactory ))
{
IUnknown_AddRef( iface );
*out = iface;
IInspectable_AddRef( (*out = &impl->IActivationFactory_iface) );
return S_OK;
}
if (IsEqualGUID( iid, &IID_IRawGameControllerStatics ))
{
IUnknown_AddRef( iface );
*out = &impl->IRawGameControllerStatics_iface;
IInspectable_AddRef( (*out = &impl->IRawGameControllerStatics_iface) );
return S_OK;
}

View file

@ -46,15 +46,13 @@ static HRESULT WINAPI factory_QueryInterface( IActivationFactory *iface, REFIID
IsEqualGUID( iid, &IID_IAgileObject ) ||
IsEqualGUID( iid, &IID_IActivationFactory ))
{
IUnknown_AddRef( iface );
*out = iface;
IInspectable_AddRef( (*out = &impl->IActivationFactory_iface) );
return S_OK;
}
if (IsEqualGUID( iid, &IID_IGamepadStatics ))
{
IUnknown_AddRef( iface );
*out = &impl->IGamepadStatics_iface;
IInspectable_AddRef( (*out = &impl->IGamepadStatics_iface) );
return S_OK;
}