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:
parent
ebe0fce6e4
commit
0d3c026bdb
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue