static inline HRESULT d3d12_device_query_interface(struct d3d12_device *device, REFIID iid, void **object) { - return ID3D12Device_QueryInterface(&device->ID3D12Device_iface, iid, object); + return ID3D12Device_QueryInterface(&device->ID3D12Device1_iface, iid, object); } static inline ULONG d3d12_device_add_ref(struct d3d12_device *device) { - return ID3D12Device_AddRef(&device->ID3D12Device_iface); + return ID3D12Device_AddRef(&device->ID3D12Device1_iface); } static inline ULONG d3d12_device_release(struct d3d12_device *device) { - return ID3D12Device_Release(&device->ID3D12Device_iface); + return ID3D12Device_Release(&device->ID3D12Device1_iface); } static inline unsigned int d3d12_device_get_descriptor_handle_increment_size(struct d3d12_device *device, D3D12_DESCRIPTOR_HEAP_TYPE descriptor_type) { - return ID3D12Device_GetDescriptorHandleIncrementSize(&device->ID3D12Device_iface, descriptor_type); + return ID3D12Device_GetDescriptorHandleIncrementSize(&device->ID3D12Device1_iface, descriptor_type); }
We should use the ID3D12Device1 variants here.
I was slightly surprised the compiler didn't catch that; looks like we don't enable WIDL_C_INLINE_WRAPPERS. IIRC that was because it was slightly broken with older versions of MinGW-64, but perhaps we can revisit that.