R��mi Bernon (@rbernon) commented about dlls/windows.devices.enumeration/main.c:
+static HRESULT WINAPI device_watcher_Start(IDeviceWatcher *iface) +{ + FIXME("iface %p stub!\n", iface); + return S_OK; +} + +static HRESULT WINAPI device_watcher_Stop(IDeviceWatcher *iface) +{ + struct device_watcher *impl = impl_from_IDeviceWatcher(iface); + HRESULT hr; + + FIXME("iface %p stub!\n", iface); + + IDeviceWatcher_AddRef(&impl->IDeviceWatcher_iface); + hr = typed_event_handlers_notify(&impl->stopped_handlers, (IInspectable *)iface, NULL); + IDeviceWatcher_Release(&impl->IDeviceWatcher_iface); You don't need to AddRef / Release here. Also I'm just reading this quickly but if it's actually implemented you could probably change the trace to TRACE and not FIXME / stub.
One good habit is also to first implement a class or an interface as complete stub first, then implement each method individually (or a few at a time), adding the required members and code to the class and removing the FIXME. Eventually interleaving with new tests for the methods in a first commits with todo_wine, and then the commit implementing the methods with the todo_wine removed. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/716#note_7030