[PATCH 05/12] d3drm: Implement IDirect3DRMDevice*::InitFromD3D.

Aaryaman Vasishta jem456.vasishta at gmail.com
Wed Jul 13 18:33:59 CDT 2016


On Sun, Jul 10, 2016 at 9:10 PM, Stefan Dösinger <stefandoesinger at gmail.com>
wrote:

>
> > +        hr = IDirect3DRMDevice2_InitFromD3D(device2, d3d1, d3ddevice1);
> > +        ok(hr == E_NOINTERFACE, "Expected hr == E_NOINTERFACE, got
> %#x.\n", hr);
> What happens if you QI IDirect3DRMDevice1 from IDirect3DRMDevice2 and call
> InitFromD3D on it? I would expect it to succeed because common decency
> suggests that CreateObject doesn't leave a history of which interface was
> requested and there's no CLSID_CDirect3DRMDevice2 or
> CLSID_CDirect3DRMDevice3. Still worth a check though I think.
>
It still returns E_NOINTERFACE. This means that CreateObject does keep
track of which interface was requested within the object after all. We
could probably mimic this by using a version field within the struct, which
can be looked up and InitFromD3D would be handled accordingly, similar to
the version field in struct d3d_device. This could potentially be used in
other functions with similar behavior on different versions as well.


Cheers,
Aaryaman
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.winehq.org/pipermail/wine-devel/attachments/20160714/f3416ec2/attachment.html>


More information about the wine-devel mailing list