[2/2] d3drm: Add IDirect3DRM2 interface (try 2)
André Hentschel
nerv at dawncrow.de
Tue Dec 27 16:16:10 CST 2011
try2: reordered the implementation sequence, tried to wrapped new/changed code after 100 columns
---
dlls/d3drm/d3drm.c | 464 +++++++++++++++++++++++++++++++++++++++++++-
dlls/d3drm/d3drm_main.c | 2 +-
dlls/d3drm/d3drm_private.h | 2 +-
include/d3drm.h | 2 +-
4 files changed, 457 insertions(+), 13 deletions(-)
diff --git a/dlls/d3drm/d3drm.c b/dlls/d3drm/d3drm.c
index 138832b..596bc14 100644
--- a/dlls/d3drm/d3drm.c
+++ b/dlls/d3drm/d3drm.c
@@ -31,21 +31,28 @@ WINE_DEFAULT_DEBUG_CHANNEL(d3drm);
typedef struct {
IDirect3DRM IDirect3DRM_iface;
+ IDirect3DRM2 IDirect3DRM2_iface;
LONG ref;
} IDirect3DRMImpl;
static const struct IDirect3DRMVtbl Direct3DRM_Vtbl;
+static const struct IDirect3DRM2Vtbl Direct3DRM2_Vtbl;
static inline IDirect3DRMImpl *impl_from_IDirect3DRM(IDirect3DRM *iface)
{
return CONTAINING_RECORD(iface, IDirect3DRMImpl, IDirect3DRM_iface);
}
-HRESULT Direct3DRM_create(LPDIRECT3DRM* ppDirect3DRM)
+static inline IDirect3DRMImpl *impl_from_IDirect3DRM2(IDirect3DRM2 *iface)
+{
+ return CONTAINING_RECORD(iface, IDirect3DRMImpl, IDirect3DRM2_iface);
+}
+
+HRESULT Direct3DRM_create(IUnknown** ppObj)
{
IDirect3DRMImpl* object;
- TRACE("(%p)\n", ppDirect3DRM);
+ TRACE("(%p)\n", ppObj);
object = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(IDirect3DRMImpl));
if (!object)
@@ -55,9 +62,10 @@ HRESULT Direct3DRM_create(LPDIRECT3DRM* ppDirect3DRM)
}
object->IDirect3DRM_iface.lpVtbl = &Direct3DRM_Vtbl;
+ object->IDirect3DRM2_iface.lpVtbl = &Direct3DRM2_Vtbl;
object->ref = 1;
- *ppDirect3DRM = (IDirect3DRM*)object;
+ *ppObj = (IUnknown*)&object->IDirect3DRM_iface;
return S_OK;
}
@@ -69,16 +77,25 @@ static HRESULT WINAPI IDirect3DRMImpl_QueryInterface(IDirect3DRM* iface, REFIID
TRACE("(%p/%p)->(%s,%p)\n", iface, This, debugstr_guid(riid), ppvObject);
- if (IsEqualGUID(riid, &IID_IUnknown) ||
- IsEqualGUID(riid, &IID_IDirect3DRM))
+ *ppvObject = NULL;
+
+ if(IsEqualGUID(riid, &IID_IUnknown) ||
+ IsEqualGUID(riid, &IID_IDirect3DRM))
{
- IUnknown_AddRef(iface);
- *ppvObject = This;
- return S_OK;
+ *ppvObject = &This->IDirect3DRM_iface;
+ }
+ else if(IsEqualGUID(riid, &IID_IDirect3DRM2))
+ {
+ *ppvObject = &This->IDirect3DRM2_iface;
+ }
+ else
+ {
+ FIXME("interface %s not implemented\n", debugstr_guid(riid));
+ return E_NOINTERFACE;
}
- ERR("(%p)->(%s,%p),not found\n",This,debugstr_guid(riid),ppvObject);
- return E_NOINTERFACE;
+ IDirect3DRM_AddRef(iface);
+ return S_OK;
}
static ULONG WINAPI IDirect3DRMImpl_AddRef(IDirect3DRM* iface)
@@ -430,3 +447,430 @@ static const struct IDirect3DRMVtbl Direct3DRM_Vtbl =
IDirect3DRMImpl_Load,
IDirect3DRMImpl_Tick
};
+
+
+/*** IUnknown methods ***/
+static HRESULT WINAPI IDirect3DRM2Impl_QueryInterface(IDirect3DRM2* iface, REFIID riid,
+ void** ppvObject)
+{
+ IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
+ return IDirect3DRM_QueryInterface(&This->IDirect3DRM_iface, riid, ppvObject);
+}
+
+static ULONG WINAPI IDirect3DRM2Impl_AddRef(IDirect3DRM2* iface)
+{
+ IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
+
+ TRACE("(%p/%p)\n", iface, This);
+
+ return InterlockedIncrement(&This->ref);
+}
+
+static ULONG WINAPI IDirect3DRM2Impl_Release(IDirect3DRM2* iface)
+{
+ IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
+ ULONG ref = InterlockedDecrement(&This->ref);
+
+ TRACE("(%p/%p)\n", iface, This);
+
+ if (!ref)
+ HeapFree(GetProcessHeap(), 0, This);
+
+ return ref;
+}
+
+/*** IDirect3DRM2 methods ***/
+static HRESULT WINAPI IDirect3DRM2Impl_CreateObject(IDirect3DRM2* iface, REFCLSID rclsid,
+ LPUNKNOWN pUnkOuter, REFIID riid,
+ LPVOID *ppvObj)
+{
+ IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
+
+ FIXME("(%p/%p)->(%s,%p,%s,%p): stub\n", iface, This, debugstr_guid(rclsid), pUnkOuter,
+ debugstr_guid(riid), ppvObj);
+
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI IDirect3DRM2Impl_CreateFrame(IDirect3DRM2* iface,
+ LPDIRECT3DRMFRAME pFrameParent,
+ LPDIRECT3DRMFRAME2 * ppFrame)
+{
+ IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
+
+ FIXME("(%p/%p)->(%p,%p): stub\n", iface, This, pFrameParent, ppFrame);
+
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI IDirect3DRM2Impl_CreateMesh(IDirect3DRM2* iface, LPDIRECT3DRMMESH * ppMesh)
+{
+ IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
+
+ FIXME("(%p/%p)->(%p): stub\n", iface, This, ppMesh);
+
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI IDirect3DRM2Impl_CreateMeshBuilder(IDirect3DRM2* iface,
+ LPDIRECT3DRMMESHBUILDER2 * ppMeshBuilder)
+{
+ IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
+
+ TRACE("(%p/%p)->(%p)\n", iface, This, ppMeshBuilder);
+
+ return Direct3DRMMeshBuilder_create((IUnknown**)ppMeshBuilder);
+}
+
+static HRESULT WINAPI IDirect3DRM2Impl_CreateFace(IDirect3DRM2* iface, LPDIRECT3DRMFACE * ppFace)
+{
+ IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
+
+ FIXME("(%p/%p)->(%p): stub\n", iface, This, ppFace);
+
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI IDirect3DRM2Impl_CreateAnimation(IDirect3DRM2* iface,
+ LPDIRECT3DRMANIMATION * ppAnimation)
+{
+ IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
+
+ FIXME("(%p/%p)->(%p): stub\n", iface, This, ppAnimation);
+
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI IDirect3DRM2Impl_CreateAnimationSet(IDirect3DRM2* iface,
+ LPDIRECT3DRMANIMATIONSET * ppAnimationSet)
+{
+ IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
+
+ FIXME("(%p/%p)->(%p): stub\n", iface, This, ppAnimationSet);
+
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI IDirect3DRM2Impl_CreateTexture(IDirect3DRM2* iface, LPD3DRMIMAGE pImage,
+ LPDIRECT3DRMTEXTURE2 * ppTexture)
+{
+ IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
+
+ FIXME("(%p/%p)->(%p,%p): stub\n", iface, This, pImage, ppTexture);
+
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI IDirect3DRM2Impl_CreateLight(IDirect3DRM2* iface, D3DRMLIGHTTYPE type,
+ D3DCOLOR color, LPDIRECT3DRMLIGHT * ppLight)
+{
+ IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
+
+ FIXME("(%p/%p)->(%d,%d,%p): stub\n", iface, This, type, color, ppLight);
+
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI IDirect3DRM2Impl_CreateLightRGB(IDirect3DRM2* iface, D3DRMLIGHTTYPE type,
+ D3DVALUE red, D3DVALUE green, D3DVALUE blue,
+ LPDIRECT3DRMLIGHT * ppLight)
+{
+ IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
+
+ FIXME("(%p/%p)->(%d,%f,%f,%f,%p): stub\n", iface, This, type, red, green, blue, ppLight);
+
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI IDirect3DRM2Impl_Material(IDirect3DRM2* iface, D3DVALUE m,
+ LPDIRECT3DRMMATERIAL * ppMaterial)
+{
+ IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
+
+ FIXME("(%p/%p)->(%f,%p): stub\n", iface, This, m, ppMaterial);
+
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI IDirect3DRM2Impl_CreateDevice(IDirect3DRM2* iface, DWORD width, DWORD height,
+ LPDIRECT3DRMDEVICE2 * ppDevice)
+{
+ IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
+
+ FIXME("(%p/%p)->(%d,%d,%p): stub\n", iface, This, width, height, ppDevice);
+
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI IDirect3DRM2Impl_CreateDeviceFromSurface(IDirect3DRM2* iface, LPGUID pGUID,
+ LPDIRECTDRAW pDD,
+ LPDIRECTDRAWSURFACE pDDSBack,
+ LPDIRECT3DRMDEVICE2 * ppDevice)
+{
+ IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
+
+ FIXME("(%p/%p)->(%s,%p,%p,%p): stub\n", iface, This, debugstr_guid(pGUID), pDD, pDDSBack, ppDevice);
+
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI IDirect3DRM2Impl_CreateDeviceFromD3D(IDirect3DRM2* iface, LPDIRECT3D2 pD3D,
+ LPDIRECT3DDEVICE2 pD3DDev,
+ LPDIRECT3DRMDEVICE2 * ppDevice)
+{
+ IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
+
+ FIXME("(%p/%p)->(%p,%p,%p): stub\n", iface, This, pD3D, pD3DDev, ppDevice);
+
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI IDirect3DRM2Impl_CreateDeviceFromClipper(IDirect3DRM2* iface,
+ LPDIRECTDRAWCLIPPER pDDClipper,
+ LPGUID pGUID, int width, int height,
+ LPDIRECT3DRMDEVICE2 * ppDevice)
+{
+ IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
+
+ FIXME("(%p/%p)->(%p,%s,%d,%d,%p): stub\n", iface, This, pDDClipper, debugstr_guid(pGUID), width,
+ height, ppDevice);
+
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI IDirect3DRM2Impl_CreateTextureFromSurface(IDirect3DRM2* iface,
+ LPDIRECTDRAWSURFACE pDDS,
+ LPDIRECT3DRMTEXTURE2 * ppTexture)
+{
+ IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
+
+ FIXME("(%p/%p)->(%p,%p): stub\n", iface, This, pDDS, ppTexture);
+
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI IDirect3DRM2Impl_CreateShadow(IDirect3DRM2* iface, LPDIRECT3DRMVISUAL pVisual,
+ LPDIRECT3DRMLIGHT pLight,
+ D3DVALUE px, D3DVALUE py, D3DVALUE pz,
+ D3DVALUE nx, D3DVALUE ny, D3DVALUE nz,
+ LPDIRECT3DRMVISUAL * ppVisual)
+{
+ IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
+
+ FIXME("(%p/%p)->(%p,%p,%f,%f,%f,%f,%f,%f,%p): stub\n", iface, This, pVisual, pLight, px, py, pz,
+ nx, ny, nz, ppVisual);
+
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI IDirect3DRM2Impl_CreateViewport(IDirect3DRM2* iface,
+ LPDIRECT3DRMDEVICE pDevice,
+ LPDIRECT3DRMFRAME pFrame,
+ DWORD xpos, DWORD ypos,
+ DWORD width, DWORD height,
+ LPDIRECT3DRMVIEWPORT * ppViewport)
+{
+ IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
+
+ FIXME("(%p/%p)->(%p,%p,%d,%d,%d,%d,%p): stub\n", iface, This, pDevice, pFrame, xpos, ypos,
+ width, height, ppViewport);
+
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI IDirect3DRM2Impl_CreateWrap(IDirect3DRM2* iface, D3DRMWRAPTYPE type,
+ LPDIRECT3DRMFRAME pFrame,
+ D3DVALUE ox, D3DVALUE oy, D3DVALUE oz,
+ D3DVALUE dx, D3DVALUE dy, D3DVALUE dz,
+ D3DVALUE ux, D3DVALUE uy, D3DVALUE uz,
+ D3DVALUE ou, D3DVALUE ov, D3DVALUE su,
+ D3DVALUE sv, LPDIRECT3DRMWRAP * ppWrap)
+{
+ IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
+
+ FIXME("(%p/%p)->(%d,%p,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%p): stub\n", iface, This, type,
+ pFrame, ox, oy, oz, dx, dy, dz, ux, uy, uz, ou, ov, su, sv, ppWrap);
+
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI IDirect3DRM2Impl_CreateUserVisual(IDirect3DRM2* iface,
+ D3DRMUSERVISUALCALLBACK cb, LPVOID pArg,
+ LPDIRECT3DRMUSERVISUAL * ppUserVisual)
+{
+ IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
+
+ FIXME("(%p/%p)->(%p,%p,%p): stub\n", iface, This, cb, pArg, ppUserVisual);
+
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI IDirect3DRM2Impl_LoadTexture(IDirect3DRM2* iface, const char * filename,
+ LPDIRECT3DRMTEXTURE2 * ppTexture)
+{
+ IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
+
+ FIXME("(%p/%p)->(%s,%p): stub\n", iface, This, filename, ppTexture);
+
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI IDirect3DRM2Impl_LoadTextureFromResource(IDirect3DRM2* iface, HMODULE hModule,
+ LPCSTR strName, LPCSTR strType,
+ LPDIRECT3DRMTEXTURE2 * ppTexture)
+{
+ IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
+
+ FIXME("(%p/%p)->(%p,%p,%p,%p): stub\n", iface, This, hModule, strName, strType, ppTexture);
+
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI IDirect3DRM2Impl_SetSearchPath(IDirect3DRM2* iface, LPCSTR path)
+{
+ IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
+
+ FIXME("(%p/%p)->(%s): stub\n", iface, This, path);
+
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI IDirect3DRM2Impl_AddSearchPath(IDirect3DRM2* iface, LPCSTR path)
+{
+ IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
+
+ FIXME("(%p/%p)->(%s): stub\n", iface, This, path);
+
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI IDirect3DRM2Impl_GetSearchPath(IDirect3DRM2* iface, DWORD *size_return,
+ LPSTR path_return)
+{
+ IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
+
+ FIXME("(%p/%p)->(%p,%s): stub\n", iface, This, size_return, path_return);
+
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI IDirect3DRM2Impl_SetDefaultTextureColors(IDirect3DRM2* iface, DWORD nb_colors)
+{
+ IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
+
+ FIXME("(%p/%p)->(%d): stub\n", iface, This, nb_colors);
+
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI IDirect3DRM2Impl_SetDefaultTextureShades(IDirect3DRM2* iface, DWORD nb_shades)
+{
+ IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
+
+ FIXME("(%p/%p)->(%d): stub\n", iface, This, nb_shades);
+
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI IDirect3DRM2Impl_GetDevices(IDirect3DRM2* iface,
+ LPDIRECT3DRMDEVICEARRAY * ppDeviceArray)
+{
+ IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
+
+ FIXME("(%p/%p)->(%p): stub\n", iface, This, ppDeviceArray);
+
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI IDirect3DRM2Impl_GetNamedObject(IDirect3DRM2* iface, const char * pName,
+ LPDIRECT3DRMOBJECT * ppObject)
+{
+ IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
+
+ FIXME("(%p/%p)->(%s,%p): stub\n", iface, This, pName, ppObject);
+
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI IDirect3DRM2Impl_EnumerateObjects(IDirect3DRM2* iface, D3DRMOBJECTCALLBACK cb,
+ LPVOID pArg)
+{
+ IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
+
+ FIXME("(%p/%p)->(%p,%p): stub\n", iface, This, cb, pArg);
+
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI IDirect3DRM2Impl_Load(IDirect3DRM2* iface, LPVOID pObjSource, LPVOID pObjID,
+ LPIID * ppGUIDs, DWORD nb_GUIDs,
+ D3DRMLOADOPTIONS LOFlags, D3DRMLOADCALLBACK LoadProc,
+ LPVOID pArgLP, D3DRMLOADTEXTURECALLBACK LoadTextureProc,
+ LPVOID pArgLTP, LPDIRECT3DRMFRAME pParentFrame)
+{
+ IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
+
+ FIXME("(%p/%p)->(%p,%p,%p,%d,%d,%p,%p,%p,%p,%p): stub\n", iface, This, pObjSource, pObjID,
+ ppGUIDs, nb_GUIDs, LOFlags, LoadProc, pArgLP, LoadTextureProc, pArgLTP, pParentFrame);
+
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI IDirect3DRM2Impl_Tick(IDirect3DRM2* iface, D3DVALUE tick)
+{
+ IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
+
+ FIXME("(%p/%p)->(%f): stub\n", iface, This, tick);
+
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI IDirect3DRM2Impl_CreateProgressiveMesh(IDirect3DRM2* iface,
+ LPDIRECT3DRMPROGRESSIVEMESH * ppMesh)
+{
+ IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
+
+ FIXME("(%p/%p)->(%p): stub\n", iface, This, ppMesh);
+
+ return E_NOTIMPL;
+}
+
+static const struct IDirect3DRM2Vtbl Direct3DRM2_Vtbl =
+{
+ IDirect3DRM2Impl_QueryInterface,
+ IDirect3DRM2Impl_AddRef,
+ IDirect3DRM2Impl_Release,
+ IDirect3DRM2Impl_CreateObject,
+ IDirect3DRM2Impl_CreateFrame,
+ IDirect3DRM2Impl_CreateMesh,
+ IDirect3DRM2Impl_CreateMeshBuilder,
+ IDirect3DRM2Impl_CreateFace,
+ IDirect3DRM2Impl_CreateAnimation,
+ IDirect3DRM2Impl_CreateAnimationSet,
+ IDirect3DRM2Impl_CreateTexture,
+ IDirect3DRM2Impl_CreateLight,
+ IDirect3DRM2Impl_CreateLightRGB,
+ IDirect3DRM2Impl_Material,
+ IDirect3DRM2Impl_CreateDevice,
+ IDirect3DRM2Impl_CreateDeviceFromSurface,
+ IDirect3DRM2Impl_CreateDeviceFromD3D,
+ IDirect3DRM2Impl_CreateDeviceFromClipper,
+ IDirect3DRM2Impl_CreateTextureFromSurface,
+ IDirect3DRM2Impl_CreateShadow,
+ IDirect3DRM2Impl_CreateViewport,
+ IDirect3DRM2Impl_CreateWrap,
+ IDirect3DRM2Impl_CreateUserVisual,
+ IDirect3DRM2Impl_LoadTexture,
+ IDirect3DRM2Impl_LoadTextureFromResource,
+ IDirect3DRM2Impl_SetSearchPath,
+ IDirect3DRM2Impl_AddSearchPath,
+ IDirect3DRM2Impl_GetSearchPath,
+ IDirect3DRM2Impl_SetDefaultTextureColors,
+ IDirect3DRM2Impl_SetDefaultTextureShades,
+ IDirect3DRM2Impl_GetDevices,
+ IDirect3DRM2Impl_GetNamedObject,
+ IDirect3DRM2Impl_EnumerateObjects,
+ IDirect3DRM2Impl_Load,
+ IDirect3DRM2Impl_Tick,
+ IDirect3DRM2Impl_CreateProgressiveMesh
+};
diff --git a/dlls/d3drm/d3drm_main.c b/dlls/d3drm/d3drm_main.c
index 38a6a6c..2adc188 100644
--- a/dlls/d3drm/d3drm_main.c
+++ b/dlls/d3drm/d3drm_main.c
@@ -50,5 +50,5 @@ HRESULT WINAPI Direct3DRMCreate(LPDIRECT3DRM* ppDirect3DRM)
{
TRACE("(%p)\n", ppDirect3DRM);
- return Direct3DRM_create(ppDirect3DRM);
+ return Direct3DRM_create((IUnknown**)ppDirect3DRM);
}
diff --git a/dlls/d3drm/d3drm_private.h b/dlls/d3drm/d3drm_private.h
index dd2347b..0be7c53 100644
--- a/dlls/d3drm/d3drm_private.h
+++ b/dlls/d3drm/d3drm_private.h
@@ -26,7 +26,7 @@
#include "d3drm.h"
-HRESULT Direct3DRM_create(LPDIRECT3DRM* ppDirect3DRM) DECLSPEC_HIDDEN;
+HRESULT Direct3DRM_create(IUnknown** ppObj) DECLSPEC_HIDDEN;
HRESULT Direct3DRMMeshBuilder_create(IUnknown** ppObj) DECLSPEC_HIDDEN;
#endif /* __D3DRM_PRIVATE_INCLUDED__ */
diff --git a/include/d3drm.h b/include/d3drm.h
index 4b8f0e7..f1540c5 100644
--- a/include/d3drm.h
+++ b/include/d3drm.h
@@ -230,7 +230,7 @@ DECLARE_INTERFACE_(IDirect3DRM2,IUnknown)
STDMETHOD(Load)(THIS_ LPVOID, LPVOID, LPIID *, DWORD, D3DRMLOADOPTIONS, D3DRMLOADCALLBACK, LPVOID,
D3DRMLOADTEXTURECALLBACK, LPVOID, LPDIRECT3DRMFRAME) PURE;
STDMETHOD(Tick)(THIS_ D3DVALUE) PURE;
- STDMETHOD(CreateProgressiveMesh)(THIS_ LPDIRECT3DRMPROGRESSIVEMESH) PURE;
+ STDMETHOD(CreateProgressiveMesh)(THIS_ LPDIRECT3DRMPROGRESSIVEMESH *) PURE;
};
#undef INTERFACE
--
Best Regards, André Hentschel
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: Nachrichtenteil als Anhang
URL: <http://www.winehq.org/pipermail/wine-patches/attachments/20111227/0f4aa2db/attachment.ksh>
More information about the wine-patches
mailing list