Rémi Bernon (@rbernon) commented about include/windows.devices.bluetooth.idl:
+ HRESULT FromHostNameAsync([in] Windows.Networking.HostName *name, [out, retval] Windows.Foundation.IAsyncOperation<Windows.Devices.Bluetooth.BluetoothDevice *> **operation); + HRESULT FromBluetoothAddressAsync([in] UINT64 address, [out, retval] Windows.Foundation.IAsyncOperation<Windows.Devices.Bluetooth.BluetoothDevice *> **operation); + HRESULT GetDeviceSelector([out, retval] HSTRING *selector); + } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + marshaling_behavior(agile), + static(Windows.Devices.Bluetooth.IBluetoothDeviceStatics, Windows.Foundation.UniversalApiContract, 1.0), + threading(both) + ] + runtimeclass BluetoothDevice + { + [default] interface Windows.Devices.Bluetooth.IBluetoothDevice; + interface Windows.Foundation.IClosable; + } Lets add all the interfaces, you only need to forward declare them.
```suggestion:-10+0 [ contract(Windows.Foundation.UniversalApiContract, 1.0), marshaling_behavior(agile), static(Windows.Devices.Bluetooth.IBluetoothDeviceStatics, Windows.Foundation.UniversalApiContract, 1.0), static(Windows.Devices.Bluetooth.IBluetoothDeviceStatics2, Windows.Foundation.UniversalApiContract, 2.0), threading(both) ] runtimeclass BluetoothDevice { [default] interface Windows.Devices.Bluetooth.IBluetoothDevice; [contract(Windows.Foundation.UniversalApiContract, 2.0)] interface Windows.Devices.Bluetooth.IBluetoothDevice2; [contract(Windows.Foundation.UniversalApiContract, 3.0)] interface Windows.Devices.Bluetooth.IBluetoothDevice3; [contract(Windows.Foundation.UniversalApiContract, 5.0)] interface Windows.Devices.Bluetooth.IBluetoothDevice4; [contract(Windows.Foundation.UniversalApiContract, 6.0)] interface Windows.Devices.Bluetooth.IBluetoothDevice5; interface Windows.Foundation.IClosable; } ``` -- https://gitlab.winehq.org/wine/wine/-/merge_requests/8206#note_105622