On 18 January 2016 at 19:57, Aaryaman Vasishta
<jem456.vasishta@gmail.com> wrote:
> - if (IsEqualGUID(riid, &IID_IDirect3DRMTexture2)
> - || IsEqualGUID(riid, &IID_IDirect3DRMTexture)
> + if (IsEqualGUID(riid, &IID_IDirect3DRMTexture)
> + || IsEqualGUID(riid, &IID_IDirect3DRMVisual)
> + || IsEqualGUID(riid, &IID_IDirect3DRMObject)
> || IsEqualGUID(riid, &IID_IUnknown))
> {
> + *out = &texture->IDirect3DRMTexture_iface;
This isn't necessarily wrong, but it does seem weird. You return
&texture->IDirect3DRMTexture_iface here for e.g. IUnknown, but the
implementation then forwards to &texture->IDirect3DRMTexture3_iface.
It seems more logical to return the IDirect3DRMTexture3 interface here
directly.
We also tend to check the "newest" IID first, in D3D code at least.
I.e., IID_IDirect3DRMTexture3 before IID_IDirect3DRMTexture.