Rémi Bernon (@rbernon) commented about dlls/windows.devices.enumeration/main.c:
case DeviceWatcherStatus_Aborted: case DeviceWatcherStatus_Created: case DeviceWatcherStatus_Stopped:
- {
IWeakReferenceSource *weak_src;IWeakReference *weak;HRESULT hr;hr = IDeviceWatcher_QueryInterface( iface, &IID_IWeakReferenceSource, (void **)&weak_src );if (FAILED(hr)) break;hr = IWeakReferenceSource_GetWeakReference( weak_src, &weak );IWeakReferenceSource_Release( weak_src );if (FAILED(hr)) break;hr = DevCreateObjectQuery( DevObjectTypeDeviceInterfaceDisplay, DevQueryFlagAsyncClose, 0, NULL, 0, NULL, device_object_query_callback, weak,&impl->query );if (FAILED(hr))
There's no need to go through `QueryInterface`. Also `GetWeakReference` cannot fail.
```suggestion:-5+0 IWeakReferenceSource_GetWeakReference( &impl->weak_reference_source.IWeakReferenceSource_iface, &weak ); ```