[PATCH 1/2] d3drm: Implement IDirect3DRM*::CreateObject.

Aaryaman Vasishta jem456.vasishta at gmail.com
Mon Apr 18 08:15:49 CDT 2016


On Mon, Apr 18, 2016 at 4:17 PM, Henri Verbeet <hverbeet at gmail.com> wrote:

> On 17 April 2016 at 22:57, Aaryaman Vasishta <jem456.vasishta at gmail.com>
> wrote:
> > @@ -1054,10 +1058,50 @@ static ULONG WINAPI d3drm3_Release(IDirect3DRM3
> *iface)
> >  static HRESULT WINAPI d3drm3_CreateObject(IDirect3DRM3 *iface,
> >          REFCLSID clsid, IUnknown *outer, REFIID iid, void **out)
> >  {
> > -    FIXME("iface %p, clsid %s, outer %p, iid %s, out %p stub!\n",
> > +    void *object_struct;
> ...
> > +    if (IsEqualGUID(clsid, &CLSID_CDirect3DRMTexture))
> > +    {
> > +        if (FAILED(hr = d3drm_texture_create((struct d3drm_texture
> **)&object_struct)))
> > +        {
> > +            *out = NULL;
> > +            return hr;
> > +        }
> > +        object = (IUnknown *)&((struct d3drm_texture
> *)object_struct)->IDirect3DRMTexture3_iface;
> > +    }
> Why do you need "object_struct"?
>
I need it to store the object's address, from which the IUnknown interface
is obtained which in turn is used to QI the required object using iid.

Am I missing something? Is there a better way? I suppose I could re-use
object and keep it as a void * instead of IUnknown..

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


More information about the wine-devel mailing list