d3drm: Add IDirect3DRM3 interface.
[wine/multimedia.git] / dlls / d3drm / d3drm.c
blob32f07c510ff20ebc26b2a64b8a8c2b1f006388cc
1 /*
2 * Implementation of IDirect3DRM Interface
4 * Copyright 2010 Christian Costa
5 * Copyright 2011 André Hentschel
7 * This library is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Lesser General Public
9 * License as published by the Free Software Foundation; either
10 * version 2.1 of the License, or (at your option) any later version.
12 * This library is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * Lesser General Public License for more details.
17 * You should have received a copy of the GNU Lesser General Public
18 * License along with this library; if not, write to the Free Software
19 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
22 #include "wine/debug.h"
24 #define COBJMACROS
26 #include "winbase.h"
27 #include "wingdi.h"
29 #include "d3drm_private.h"
31 WINE_DEFAULT_DEBUG_CHANNEL(d3drm);
33 typedef struct {
34 IDirect3DRM IDirect3DRM_iface;
35 IDirect3DRM2 IDirect3DRM2_iface;
36 IDirect3DRM3 IDirect3DRM3_iface;
37 LONG ref;
38 } IDirect3DRMImpl;
40 static const struct IDirect3DRMVtbl Direct3DRM_Vtbl;
41 static const struct IDirect3DRM2Vtbl Direct3DRM2_Vtbl;
42 static const struct IDirect3DRM3Vtbl Direct3DRM3_Vtbl;
44 static inline IDirect3DRMImpl *impl_from_IDirect3DRM(IDirect3DRM *iface)
46 return CONTAINING_RECORD(iface, IDirect3DRMImpl, IDirect3DRM_iface);
49 static inline IDirect3DRMImpl *impl_from_IDirect3DRM2(IDirect3DRM2 *iface)
51 return CONTAINING_RECORD(iface, IDirect3DRMImpl, IDirect3DRM2_iface);
54 static inline IDirect3DRMImpl *impl_from_IDirect3DRM3(IDirect3DRM3 *iface)
56 return CONTAINING_RECORD(iface, IDirect3DRMImpl, IDirect3DRM3_iface);
59 HRESULT Direct3DRM_create(IUnknown** ppObj)
61 IDirect3DRMImpl* object;
63 TRACE("(%p)\n", ppObj);
65 object = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(IDirect3DRMImpl));
66 if (!object)
68 ERR("Out of memory\n");
69 return E_OUTOFMEMORY;
72 object->IDirect3DRM_iface.lpVtbl = &Direct3DRM_Vtbl;
73 object->IDirect3DRM2_iface.lpVtbl = &Direct3DRM2_Vtbl;
74 object->IDirect3DRM3_iface.lpVtbl = &Direct3DRM3_Vtbl;
75 object->ref = 1;
77 *ppObj = (IUnknown*)&object->IDirect3DRM_iface;
79 return S_OK;
82 /*** IUnknown methods ***/
83 static HRESULT WINAPI IDirect3DRMImpl_QueryInterface(IDirect3DRM* iface, REFIID riid, void** ppvObject)
85 IDirect3DRMImpl *This = impl_from_IDirect3DRM(iface);
87 TRACE("(%p/%p)->(%s,%p)\n", iface, This, debugstr_guid(riid), ppvObject);
89 *ppvObject = NULL;
91 if(IsEqualGUID(riid, &IID_IUnknown) ||
92 IsEqualGUID(riid, &IID_IDirect3DRM))
94 *ppvObject = &This->IDirect3DRM_iface;
96 else if(IsEqualGUID(riid, &IID_IDirect3DRM2))
98 *ppvObject = &This->IDirect3DRM2_iface;
100 else if(IsEqualGUID(riid, &IID_IDirect3DRM3))
102 *ppvObject = &This->IDirect3DRM3_iface;
104 else
106 FIXME("interface %s not implemented\n", debugstr_guid(riid));
107 return E_NOINTERFACE;
110 IDirect3DRM_AddRef(iface);
111 return S_OK;
114 static ULONG WINAPI IDirect3DRMImpl_AddRef(IDirect3DRM* iface)
116 IDirect3DRMImpl *This = impl_from_IDirect3DRM(iface);
118 TRACE("(%p/%p)\n", iface, This);
120 return InterlockedIncrement(&This->ref);
123 static ULONG WINAPI IDirect3DRMImpl_Release(IDirect3DRM* iface)
125 IDirect3DRMImpl *This = impl_from_IDirect3DRM(iface);
126 ULONG ref = InterlockedDecrement(&This->ref);
128 TRACE("(%p/%p)\n", iface, This);
130 if (!ref)
131 HeapFree(GetProcessHeap(), 0, This);
133 return ref;
136 /*** IDirect3DRM methods ***/
137 static HRESULT WINAPI IDirect3DRMImpl_CreateObject(IDirect3DRM* iface, REFCLSID rclsid, LPUNKNOWN pUnkOuter, REFIID riid, LPVOID *ppvObj)
139 IDirect3DRMImpl *This = impl_from_IDirect3DRM(iface);
141 FIXME("(%p/%p)->(%s,%p,%s,%p): stub\n", iface, This, debugstr_guid(rclsid), pUnkOuter, debugstr_guid(riid), ppvObj);
143 return E_NOTIMPL;
146 static HRESULT WINAPI IDirect3DRMImpl_CreateFrame(IDirect3DRM* iface, LPDIRECT3DRMFRAME pFrameParent, LPDIRECT3DRMFRAME * ppFrame)
148 IDirect3DRMImpl *This = impl_from_IDirect3DRM(iface);
150 FIXME("(%p/%p)->(%p,%p): stub\n", iface, This, pFrameParent, ppFrame);
152 return E_NOTIMPL;
155 static HRESULT WINAPI IDirect3DRMImpl_CreateMesh(IDirect3DRM* iface, LPDIRECT3DRMMESH * ppMesh)
157 IDirect3DRMImpl *This = impl_from_IDirect3DRM(iface);
159 FIXME("(%p/%p)->(%p): stub\n", iface, This, ppMesh);
161 return E_NOTIMPL;
164 static HRESULT WINAPI IDirect3DRMImpl_CreateMeshBuilder(IDirect3DRM* iface, LPDIRECT3DRMMESHBUILDER * ppMeshBuilder)
166 IDirect3DRMImpl *This = impl_from_IDirect3DRM(iface);
168 TRACE("(%p/%p)->(%p)\n", iface, This, ppMeshBuilder);
170 return Direct3DRMMeshBuilder_create(&IID_IDirect3DRMMeshBuilder, (IUnknown**)ppMeshBuilder);
173 static HRESULT WINAPI IDirect3DRMImpl_CreateFace(IDirect3DRM* iface, LPDIRECT3DRMFACE * ppFace)
175 IDirect3DRMImpl *This = impl_from_IDirect3DRM(iface);
177 FIXME("(%p/%p)->(%p): stub\n", iface, This, ppFace);
179 return E_NOTIMPL;
182 static HRESULT WINAPI IDirect3DRMImpl_CreateAnimation(IDirect3DRM* iface, LPDIRECT3DRMANIMATION * ppAnimation)
184 IDirect3DRMImpl *This = impl_from_IDirect3DRM(iface);
186 FIXME("(%p/%p)->(%p): stub\n", iface, This, ppAnimation);
188 return E_NOTIMPL;
191 static HRESULT WINAPI IDirect3DRMImpl_CreateAnimationSet(IDirect3DRM* iface, LPDIRECT3DRMANIMATIONSET * ppAnimationSet)
193 IDirect3DRMImpl *This = impl_from_IDirect3DRM(iface);
195 FIXME("(%p/%p)->(%p): stub\n", iface, This, ppAnimationSet);
197 return E_NOTIMPL;
200 static HRESULT WINAPI IDirect3DRMImpl_CreateTexture(IDirect3DRM* iface, LPD3DRMIMAGE pImage, LPDIRECT3DRMTEXTURE * ppTexture)
202 IDirect3DRMImpl *This = impl_from_IDirect3DRM(iface);
204 FIXME("(%p/%p)->(%p,%p): stub\n", iface, This, pImage, ppTexture);
206 return E_NOTIMPL;
209 static HRESULT WINAPI IDirect3DRMImpl_CreateLight(IDirect3DRM* iface, D3DRMLIGHTTYPE type, D3DCOLOR color, LPDIRECT3DRMLIGHT * ppLight)
211 IDirect3DRMImpl *This = impl_from_IDirect3DRM(iface);
213 FIXME("(%p/%p)->(%d,%d,%p): stub\n", iface, This, type, color, ppLight);
215 return E_NOTIMPL;
218 static HRESULT WINAPI IDirect3DRMImpl_CreateLightRGB(IDirect3DRM* iface, D3DRMLIGHTTYPE type, D3DVALUE red, D3DVALUE green, D3DVALUE blue, LPDIRECT3DRMLIGHT * ppLight)
220 IDirect3DRMImpl *This = impl_from_IDirect3DRM(iface);
222 FIXME("(%p/%p)->(%d,%f,%f,%f,%p): stub\n", iface, This, type, red, green, blue, ppLight);
224 return E_NOTIMPL;
227 static HRESULT WINAPI IDirect3DRMImpl_Material(IDirect3DRM* iface, D3DVALUE m, LPDIRECT3DRMMATERIAL * ppMaterial)
229 IDirect3DRMImpl *This = impl_from_IDirect3DRM(iface);
231 FIXME("(%p/%p)->(%f,%p): stub\n", iface, This, m, ppMaterial);
233 return E_NOTIMPL;
236 static HRESULT WINAPI IDirect3DRMImpl_CreateDevice(IDirect3DRM* iface, DWORD width, DWORD height, LPDIRECT3DRMDEVICE * ppDevice)
238 IDirect3DRMImpl *This = impl_from_IDirect3DRM(iface);
240 FIXME("(%p/%p)->(%d,%d,%p): stub\n", iface, This, width, height, ppDevice);
242 return E_NOTIMPL;
245 static HRESULT WINAPI IDirect3DRMImpl_CreateDeviceFromSurface(IDirect3DRM* iface, LPGUID pGUID, LPDIRECTDRAW pDD, LPDIRECTDRAWSURFACE pDDSBack, LPDIRECT3DRMDEVICE * ppDevice)
247 IDirect3DRMImpl *This = impl_from_IDirect3DRM(iface);
249 FIXME("(%p/%p)->(%s,%p,%p,%p): stub\n", iface, This, debugstr_guid(pGUID), pDD, pDDSBack, ppDevice);
251 return E_NOTIMPL;
254 static HRESULT WINAPI IDirect3DRMImpl_CreateDeviceFromD3D(IDirect3DRM* iface, LPDIRECT3D pD3D, LPDIRECT3DDEVICE pD3DDev, LPDIRECT3DRMDEVICE * ppDevice)
256 IDirect3DRMImpl *This = impl_from_IDirect3DRM(iface);
258 FIXME("(%p/%p)->(%p,%p,%p): stub\n", iface, This, pD3D, pD3DDev, ppDevice);
260 return E_NOTIMPL;
263 static HRESULT WINAPI IDirect3DRMImpl_CreateDeviceFromClipper(IDirect3DRM* iface, LPDIRECTDRAWCLIPPER pDDClipper, LPGUID pGUID, int width, int height, LPDIRECT3DRMDEVICE * ppDevice)
265 IDirect3DRMImpl *This = impl_from_IDirect3DRM(iface);
267 FIXME("(%p/%p)->(%p,%s,%d,%d,%p): stub\n", iface, This, pDDClipper, debugstr_guid(pGUID), width, height, ppDevice);
269 return E_NOTIMPL;
272 static HRESULT WINAPI IDirect3DRMImpl_CreateTextureFromSurface(IDirect3DRM* iface, LPDIRECTDRAWSURFACE pDDS, LPDIRECT3DRMTEXTURE * ppTexture)
274 IDirect3DRMImpl *This = impl_from_IDirect3DRM(iface);
276 FIXME("(%p/%p)->(%p,%p): stub\n", iface, This, pDDS, ppTexture);
278 return E_NOTIMPL;
281 static HRESULT WINAPI IDirect3DRMImpl_CreateShadow(IDirect3DRM* iface, LPDIRECT3DRMVISUAL pVisual, LPDIRECT3DRMLIGHT pLight, D3DVALUE px, D3DVALUE py, D3DVALUE pz, D3DVALUE nx, D3DVALUE ny, D3DVALUE nz, LPDIRECT3DRMVISUAL * ppVisual)
283 IDirect3DRMImpl *This = impl_from_IDirect3DRM(iface);
285 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);
287 return E_NOTIMPL;
290 static HRESULT WINAPI IDirect3DRMImpl_CreateViewport(IDirect3DRM* iface, LPDIRECT3DRMDEVICE pDevice, LPDIRECT3DRMFRAME pFrame, DWORD xpos, DWORD ypos, DWORD width, DWORD height, LPDIRECT3DRMVIEWPORT * ppViewport)
292 IDirect3DRMImpl *This = impl_from_IDirect3DRM(iface);
294 FIXME("(%p/%p)->(%p,%p,%d,%d,%d,%d,%p): stub\n", iface, This, pDevice, pFrame, xpos, ypos, width, height, ppViewport);
296 return E_NOTIMPL;
299 static HRESULT WINAPI IDirect3DRMImpl_CreateWrap(IDirect3DRM* 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)
301 IDirect3DRMImpl *This = impl_from_IDirect3DRM(iface);
303 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);
305 return E_NOTIMPL;
308 static HRESULT WINAPI IDirect3DRMImpl_CreateUserVisual(IDirect3DRM* iface, D3DRMUSERVISUALCALLBACK cb, LPVOID pArg, LPDIRECT3DRMUSERVISUAL * ppUserVisual)
310 IDirect3DRMImpl *This = impl_from_IDirect3DRM(iface);
312 FIXME("(%p/%p)->(%p,%p,%p): stub\n", iface, This, cb, pArg, ppUserVisual);
314 return E_NOTIMPL;
317 static HRESULT WINAPI IDirect3DRMImpl_LoadTexture(IDirect3DRM* iface, const char * filename, LPDIRECT3DRMTEXTURE * ppTexture)
319 IDirect3DRMImpl *This = impl_from_IDirect3DRM(iface);
321 FIXME("(%p/%p)->(%s,%p): stub\n", iface, This, filename, ppTexture);
323 return E_NOTIMPL;
326 static HRESULT WINAPI IDirect3DRMImpl_LoadTextureFromResource(IDirect3DRM* iface, HRSRC rs, LPDIRECT3DRMTEXTURE * ppTexture)
328 IDirect3DRMImpl *This = impl_from_IDirect3DRM(iface);
330 FIXME("(%p/%p)->(%p,%p): stub\n", iface, This, rs, ppTexture);
332 return E_NOTIMPL;
335 static HRESULT WINAPI IDirect3DRMImpl_SetSearchPath(IDirect3DRM* iface, LPCSTR path)
337 IDirect3DRMImpl *This = impl_from_IDirect3DRM(iface);
339 FIXME("(%p/%p)->(%s): stub\n", iface, This, path);
341 return E_NOTIMPL;
344 static HRESULT WINAPI IDirect3DRMImpl_AddSearchPath(IDirect3DRM* iface, LPCSTR path)
346 IDirect3DRMImpl *This = impl_from_IDirect3DRM(iface);
348 FIXME("(%p/%p)->(%s): stub\n", iface, This, path);
350 return E_NOTIMPL;
353 static HRESULT WINAPI IDirect3DRMImpl_GetSearchPath(IDirect3DRM* iface, DWORD *size_return, LPSTR path_return)
355 IDirect3DRMImpl *This = impl_from_IDirect3DRM(iface);
357 FIXME("(%p/%p)->(%p,%s): stub\n", iface, This, size_return, path_return);
359 return E_NOTIMPL;
362 static HRESULT WINAPI IDirect3DRMImpl_SetDefaultTextureColors(IDirect3DRM* iface, DWORD nb_colors)
364 IDirect3DRMImpl *This = impl_from_IDirect3DRM(iface);
366 FIXME("(%p/%p)->(%d): stub\n", iface, This, nb_colors);
368 return E_NOTIMPL;
371 static HRESULT WINAPI IDirect3DRMImpl_SetDefaultTextureShades(IDirect3DRM* iface, DWORD nb_shades)
373 IDirect3DRMImpl *This = impl_from_IDirect3DRM(iface);
375 FIXME("(%p/%p)->(%d): stub\n", iface, This, nb_shades);
377 return E_NOTIMPL;
380 static HRESULT WINAPI IDirect3DRMImpl_GetDevices(IDirect3DRM* iface, LPDIRECT3DRMDEVICEARRAY * ppDeviceArray)
382 IDirect3DRMImpl *This = impl_from_IDirect3DRM(iface);
384 FIXME("(%p/%p)->(%p): stub\n", iface, This, ppDeviceArray);
386 return E_NOTIMPL;
389 static HRESULT WINAPI IDirect3DRMImpl_GetNamedObject(IDirect3DRM* iface, const char * pName, LPDIRECT3DRMOBJECT * ppObject)
391 IDirect3DRMImpl *This = impl_from_IDirect3DRM(iface);
393 FIXME("(%p/%p)->(%s,%p): stub\n", iface, This, pName, ppObject);
395 return E_NOTIMPL;
398 static HRESULT WINAPI IDirect3DRMImpl_EnumerateObjects(IDirect3DRM* iface, D3DRMOBJECTCALLBACK cb, LPVOID pArg)
400 IDirect3DRMImpl *This = impl_from_IDirect3DRM(iface);
402 FIXME("(%p/%p)->(%p,%p): stub\n", iface, This, cb, pArg);
404 return E_NOTIMPL;
407 static HRESULT WINAPI IDirect3DRMImpl_Load(IDirect3DRM* iface, LPVOID pObjSource, LPVOID pObjID, LPIID * ppGUIDs, DWORD nb_GUIDs, D3DRMLOADOPTIONS LOFlags, D3DRMLOADCALLBACK LoadProc, LPVOID pArgLP, D3DRMLOADTEXTURECALLBACK LoadTextureProc, LPVOID pArgLTP, LPDIRECT3DRMFRAME pParentFrame)
409 IDirect3DRMImpl *This = impl_from_IDirect3DRM(iface);
411 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);
413 return E_NOTIMPL;
416 static HRESULT WINAPI IDirect3DRMImpl_Tick(IDirect3DRM* iface, D3DVALUE tick)
418 IDirect3DRMImpl *This = impl_from_IDirect3DRM(iface);
420 FIXME("(%p/%p)->(%f): stub\n", iface, This, tick);
422 return E_NOTIMPL;
425 static const struct IDirect3DRMVtbl Direct3DRM_Vtbl =
427 IDirect3DRMImpl_QueryInterface,
428 IDirect3DRMImpl_AddRef,
429 IDirect3DRMImpl_Release,
430 IDirect3DRMImpl_CreateObject,
431 IDirect3DRMImpl_CreateFrame,
432 IDirect3DRMImpl_CreateMesh,
433 IDirect3DRMImpl_CreateMeshBuilder,
434 IDirect3DRMImpl_CreateFace,
435 IDirect3DRMImpl_CreateAnimation,
436 IDirect3DRMImpl_CreateAnimationSet,
437 IDirect3DRMImpl_CreateTexture,
438 IDirect3DRMImpl_CreateLight,
439 IDirect3DRMImpl_CreateLightRGB,
440 IDirect3DRMImpl_Material,
441 IDirect3DRMImpl_CreateDevice,
442 IDirect3DRMImpl_CreateDeviceFromSurface,
443 IDirect3DRMImpl_CreateDeviceFromD3D,
444 IDirect3DRMImpl_CreateDeviceFromClipper,
445 IDirect3DRMImpl_CreateTextureFromSurface,
446 IDirect3DRMImpl_CreateShadow,
447 IDirect3DRMImpl_CreateViewport,
448 IDirect3DRMImpl_CreateWrap,
449 IDirect3DRMImpl_CreateUserVisual,
450 IDirect3DRMImpl_LoadTexture,
451 IDirect3DRMImpl_LoadTextureFromResource,
452 IDirect3DRMImpl_SetSearchPath,
453 IDirect3DRMImpl_AddSearchPath,
454 IDirect3DRMImpl_GetSearchPath,
455 IDirect3DRMImpl_SetDefaultTextureColors,
456 IDirect3DRMImpl_SetDefaultTextureShades,
457 IDirect3DRMImpl_GetDevices,
458 IDirect3DRMImpl_GetNamedObject,
459 IDirect3DRMImpl_EnumerateObjects,
460 IDirect3DRMImpl_Load,
461 IDirect3DRMImpl_Tick
465 /*** IUnknown methods ***/
466 static HRESULT WINAPI IDirect3DRM2Impl_QueryInterface(IDirect3DRM2* iface, REFIID riid,
467 void** ppvObject)
469 IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
470 return IDirect3DRM_QueryInterface(&This->IDirect3DRM_iface, riid, ppvObject);
473 static ULONG WINAPI IDirect3DRM2Impl_AddRef(IDirect3DRM2* iface)
475 IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
477 TRACE("(%p/%p)\n", iface, This);
479 return InterlockedIncrement(&This->ref);
482 static ULONG WINAPI IDirect3DRM2Impl_Release(IDirect3DRM2* iface)
484 IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
485 ULONG ref = InterlockedDecrement(&This->ref);
487 TRACE("(%p/%p)\n", iface, This);
489 if (!ref)
490 HeapFree(GetProcessHeap(), 0, This);
492 return ref;
495 /*** IDirect3DRM2 methods ***/
496 static HRESULT WINAPI IDirect3DRM2Impl_CreateObject(IDirect3DRM2* iface, REFCLSID rclsid,
497 LPUNKNOWN pUnkOuter, REFIID riid,
498 LPVOID *ppvObj)
500 IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
502 FIXME("(%p/%p)->(%s,%p,%s,%p): stub\n", iface, This, debugstr_guid(rclsid), pUnkOuter,
503 debugstr_guid(riid), ppvObj);
505 return E_NOTIMPL;
508 static HRESULT WINAPI IDirect3DRM2Impl_CreateFrame(IDirect3DRM2* iface,
509 LPDIRECT3DRMFRAME pFrameParent,
510 LPDIRECT3DRMFRAME2 * ppFrame)
512 IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
514 FIXME("(%p/%p)->(%p,%p): stub\n", iface, This, pFrameParent, ppFrame);
516 return E_NOTIMPL;
519 static HRESULT WINAPI IDirect3DRM2Impl_CreateMesh(IDirect3DRM2* iface, LPDIRECT3DRMMESH * ppMesh)
521 IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
523 FIXME("(%p/%p)->(%p): stub\n", iface, This, ppMesh);
525 return E_NOTIMPL;
528 static HRESULT WINAPI IDirect3DRM2Impl_CreateMeshBuilder(IDirect3DRM2* iface,
529 LPDIRECT3DRMMESHBUILDER2 * ppMeshBuilder)
531 IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
533 TRACE("(%p/%p)->(%p)\n", iface, This, ppMeshBuilder);
535 return Direct3DRMMeshBuilder_create(&IID_IDirect3DRMMeshBuilder2, (IUnknown**)ppMeshBuilder);
538 static HRESULT WINAPI IDirect3DRM2Impl_CreateFace(IDirect3DRM2* iface, LPDIRECT3DRMFACE * ppFace)
540 IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
542 FIXME("(%p/%p)->(%p): stub\n", iface, This, ppFace);
544 return E_NOTIMPL;
547 static HRESULT WINAPI IDirect3DRM2Impl_CreateAnimation(IDirect3DRM2* iface,
548 LPDIRECT3DRMANIMATION * ppAnimation)
550 IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
552 FIXME("(%p/%p)->(%p): stub\n", iface, This, ppAnimation);
554 return E_NOTIMPL;
557 static HRESULT WINAPI IDirect3DRM2Impl_CreateAnimationSet(IDirect3DRM2* iface,
558 LPDIRECT3DRMANIMATIONSET * ppAnimationSet)
560 IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
562 FIXME("(%p/%p)->(%p): stub\n", iface, This, ppAnimationSet);
564 return E_NOTIMPL;
567 static HRESULT WINAPI IDirect3DRM2Impl_CreateTexture(IDirect3DRM2* iface, LPD3DRMIMAGE pImage,
568 LPDIRECT3DRMTEXTURE2 * ppTexture)
570 IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
572 FIXME("(%p/%p)->(%p,%p): stub\n", iface, This, pImage, ppTexture);
574 return E_NOTIMPL;
577 static HRESULT WINAPI IDirect3DRM2Impl_CreateLight(IDirect3DRM2* iface, D3DRMLIGHTTYPE type,
578 D3DCOLOR color, LPDIRECT3DRMLIGHT * ppLight)
580 IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
582 FIXME("(%p/%p)->(%d,%d,%p): stub\n", iface, This, type, color, ppLight);
584 return E_NOTIMPL;
587 static HRESULT WINAPI IDirect3DRM2Impl_CreateLightRGB(IDirect3DRM2* iface, D3DRMLIGHTTYPE type,
588 D3DVALUE red, D3DVALUE green, D3DVALUE blue,
589 LPDIRECT3DRMLIGHT * ppLight)
591 IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
593 FIXME("(%p/%p)->(%d,%f,%f,%f,%p): stub\n", iface, This, type, red, green, blue, ppLight);
595 return E_NOTIMPL;
598 static HRESULT WINAPI IDirect3DRM2Impl_Material(IDirect3DRM2* iface, D3DVALUE m,
599 LPDIRECT3DRMMATERIAL * ppMaterial)
601 IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
603 FIXME("(%p/%p)->(%f,%p): stub\n", iface, This, m, ppMaterial);
605 return E_NOTIMPL;
608 static HRESULT WINAPI IDirect3DRM2Impl_CreateDevice(IDirect3DRM2* iface, DWORD width, DWORD height,
609 LPDIRECT3DRMDEVICE2 * ppDevice)
611 IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
613 FIXME("(%p/%p)->(%d,%d,%p): stub\n", iface, This, width, height, ppDevice);
615 return E_NOTIMPL;
618 static HRESULT WINAPI IDirect3DRM2Impl_CreateDeviceFromSurface(IDirect3DRM2* iface, LPGUID pGUID,
619 LPDIRECTDRAW pDD,
620 LPDIRECTDRAWSURFACE pDDSBack,
621 LPDIRECT3DRMDEVICE2 * ppDevice)
623 IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
625 FIXME("(%p/%p)->(%s,%p,%p,%p): stub\n", iface, This, debugstr_guid(pGUID), pDD, pDDSBack, ppDevice);
627 return E_NOTIMPL;
630 static HRESULT WINAPI IDirect3DRM2Impl_CreateDeviceFromD3D(IDirect3DRM2* iface, LPDIRECT3D2 pD3D,
631 LPDIRECT3DDEVICE2 pD3DDev,
632 LPDIRECT3DRMDEVICE2 * ppDevice)
634 IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
636 FIXME("(%p/%p)->(%p,%p,%p): stub\n", iface, This, pD3D, pD3DDev, ppDevice);
638 return E_NOTIMPL;
641 static HRESULT WINAPI IDirect3DRM2Impl_CreateDeviceFromClipper(IDirect3DRM2* iface,
642 LPDIRECTDRAWCLIPPER pDDClipper,
643 LPGUID pGUID, int width, int height,
644 LPDIRECT3DRMDEVICE2 * ppDevice)
646 IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
648 FIXME("(%p/%p)->(%p,%s,%d,%d,%p): stub\n", iface, This, pDDClipper, debugstr_guid(pGUID), width,
649 height, ppDevice);
651 return E_NOTIMPL;
654 static HRESULT WINAPI IDirect3DRM2Impl_CreateTextureFromSurface(IDirect3DRM2* iface,
655 LPDIRECTDRAWSURFACE pDDS,
656 LPDIRECT3DRMTEXTURE2 * ppTexture)
658 IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
660 FIXME("(%p/%p)->(%p,%p): stub\n", iface, This, pDDS, ppTexture);
662 return E_NOTIMPL;
665 static HRESULT WINAPI IDirect3DRM2Impl_CreateShadow(IDirect3DRM2* iface, LPDIRECT3DRMVISUAL pVisual,
666 LPDIRECT3DRMLIGHT pLight,
667 D3DVALUE px, D3DVALUE py, D3DVALUE pz,
668 D3DVALUE nx, D3DVALUE ny, D3DVALUE nz,
669 LPDIRECT3DRMVISUAL * ppVisual)
671 IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
673 FIXME("(%p/%p)->(%p,%p,%f,%f,%f,%f,%f,%f,%p): stub\n", iface, This, pVisual, pLight, px, py, pz,
674 nx, ny, nz, ppVisual);
676 return E_NOTIMPL;
679 static HRESULT WINAPI IDirect3DRM2Impl_CreateViewport(IDirect3DRM2* iface,
680 LPDIRECT3DRMDEVICE pDevice,
681 LPDIRECT3DRMFRAME pFrame,
682 DWORD xpos, DWORD ypos,
683 DWORD width, DWORD height,
684 LPDIRECT3DRMVIEWPORT * ppViewport)
686 IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
688 FIXME("(%p/%p)->(%p,%p,%d,%d,%d,%d,%p): stub\n", iface, This, pDevice, pFrame, xpos, ypos,
689 width, height, ppViewport);
691 return E_NOTIMPL;
694 static HRESULT WINAPI IDirect3DRM2Impl_CreateWrap(IDirect3DRM2* iface, D3DRMWRAPTYPE type,
695 LPDIRECT3DRMFRAME pFrame,
696 D3DVALUE ox, D3DVALUE oy, D3DVALUE oz,
697 D3DVALUE dx, D3DVALUE dy, D3DVALUE dz,
698 D3DVALUE ux, D3DVALUE uy, D3DVALUE uz,
699 D3DVALUE ou, D3DVALUE ov, D3DVALUE su,
700 D3DVALUE sv, LPDIRECT3DRMWRAP * ppWrap)
702 IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
704 FIXME("(%p/%p)->(%d,%p,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%p): stub\n", iface, This, type,
705 pFrame, ox, oy, oz, dx, dy, dz, ux, uy, uz, ou, ov, su, sv, ppWrap);
707 return E_NOTIMPL;
710 static HRESULT WINAPI IDirect3DRM2Impl_CreateUserVisual(IDirect3DRM2* iface,
711 D3DRMUSERVISUALCALLBACK cb, LPVOID pArg,
712 LPDIRECT3DRMUSERVISUAL * ppUserVisual)
714 IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
716 FIXME("(%p/%p)->(%p,%p,%p): stub\n", iface, This, cb, pArg, ppUserVisual);
718 return E_NOTIMPL;
721 static HRESULT WINAPI IDirect3DRM2Impl_LoadTexture(IDirect3DRM2* iface, const char * filename,
722 LPDIRECT3DRMTEXTURE2 * ppTexture)
724 IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
726 FIXME("(%p/%p)->(%s,%p): stub\n", iface, This, filename, ppTexture);
728 return E_NOTIMPL;
731 static HRESULT WINAPI IDirect3DRM2Impl_LoadTextureFromResource(IDirect3DRM2* iface, HMODULE hModule,
732 LPCSTR strName, LPCSTR strType,
733 LPDIRECT3DRMTEXTURE2 * ppTexture)
735 IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
737 FIXME("(%p/%p)->(%p,%p,%p,%p): stub\n", iface, This, hModule, strName, strType, ppTexture);
739 return E_NOTIMPL;
742 static HRESULT WINAPI IDirect3DRM2Impl_SetSearchPath(IDirect3DRM2* iface, LPCSTR path)
744 IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
746 FIXME("(%p/%p)->(%s): stub\n", iface, This, path);
748 return E_NOTIMPL;
751 static HRESULT WINAPI IDirect3DRM2Impl_AddSearchPath(IDirect3DRM2* iface, LPCSTR path)
753 IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
755 FIXME("(%p/%p)->(%s): stub\n", iface, This, path);
757 return E_NOTIMPL;
760 static HRESULT WINAPI IDirect3DRM2Impl_GetSearchPath(IDirect3DRM2* iface, DWORD *size_return,
761 LPSTR path_return)
763 IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
765 FIXME("(%p/%p)->(%p,%s): stub\n", iface, This, size_return, path_return);
767 return E_NOTIMPL;
770 static HRESULT WINAPI IDirect3DRM2Impl_SetDefaultTextureColors(IDirect3DRM2* iface, DWORD nb_colors)
772 IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
774 FIXME("(%p/%p)->(%d): stub\n", iface, This, nb_colors);
776 return E_NOTIMPL;
779 static HRESULT WINAPI IDirect3DRM2Impl_SetDefaultTextureShades(IDirect3DRM2* iface, DWORD nb_shades)
781 IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
783 FIXME("(%p/%p)->(%d): stub\n", iface, This, nb_shades);
785 return E_NOTIMPL;
788 static HRESULT WINAPI IDirect3DRM2Impl_GetDevices(IDirect3DRM2* iface,
789 LPDIRECT3DRMDEVICEARRAY * ppDeviceArray)
791 IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
793 FIXME("(%p/%p)->(%p): stub\n", iface, This, ppDeviceArray);
795 return E_NOTIMPL;
798 static HRESULT WINAPI IDirect3DRM2Impl_GetNamedObject(IDirect3DRM2* iface, const char * pName,
799 LPDIRECT3DRMOBJECT * ppObject)
801 IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
803 FIXME("(%p/%p)->(%s,%p): stub\n", iface, This, pName, ppObject);
805 return E_NOTIMPL;
808 static HRESULT WINAPI IDirect3DRM2Impl_EnumerateObjects(IDirect3DRM2* iface, D3DRMOBJECTCALLBACK cb,
809 LPVOID pArg)
811 IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
813 FIXME("(%p/%p)->(%p,%p): stub\n", iface, This, cb, pArg);
815 return E_NOTIMPL;
818 static HRESULT WINAPI IDirect3DRM2Impl_Load(IDirect3DRM2* iface, LPVOID pObjSource, LPVOID pObjID,
819 LPIID * ppGUIDs, DWORD nb_GUIDs,
820 D3DRMLOADOPTIONS LOFlags, D3DRMLOADCALLBACK LoadProc,
821 LPVOID pArgLP, D3DRMLOADTEXTURECALLBACK LoadTextureProc,
822 LPVOID pArgLTP, LPDIRECT3DRMFRAME pParentFrame)
824 IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
826 FIXME("(%p/%p)->(%p,%p,%p,%d,%d,%p,%p,%p,%p,%p): stub\n", iface, This, pObjSource, pObjID,
827 ppGUIDs, nb_GUIDs, LOFlags, LoadProc, pArgLP, LoadTextureProc, pArgLTP, pParentFrame);
829 return E_NOTIMPL;
832 static HRESULT WINAPI IDirect3DRM2Impl_Tick(IDirect3DRM2* iface, D3DVALUE tick)
834 IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
836 FIXME("(%p/%p)->(%f): stub\n", iface, This, tick);
838 return E_NOTIMPL;
841 static HRESULT WINAPI IDirect3DRM2Impl_CreateProgressiveMesh(IDirect3DRM2* iface,
842 LPDIRECT3DRMPROGRESSIVEMESH * ppMesh)
844 IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
846 FIXME("(%p/%p)->(%p): stub\n", iface, This, ppMesh);
848 return E_NOTIMPL;
851 static const struct IDirect3DRM2Vtbl Direct3DRM2_Vtbl =
853 IDirect3DRM2Impl_QueryInterface,
854 IDirect3DRM2Impl_AddRef,
855 IDirect3DRM2Impl_Release,
856 IDirect3DRM2Impl_CreateObject,
857 IDirect3DRM2Impl_CreateFrame,
858 IDirect3DRM2Impl_CreateMesh,
859 IDirect3DRM2Impl_CreateMeshBuilder,
860 IDirect3DRM2Impl_CreateFace,
861 IDirect3DRM2Impl_CreateAnimation,
862 IDirect3DRM2Impl_CreateAnimationSet,
863 IDirect3DRM2Impl_CreateTexture,
864 IDirect3DRM2Impl_CreateLight,
865 IDirect3DRM2Impl_CreateLightRGB,
866 IDirect3DRM2Impl_Material,
867 IDirect3DRM2Impl_CreateDevice,
868 IDirect3DRM2Impl_CreateDeviceFromSurface,
869 IDirect3DRM2Impl_CreateDeviceFromD3D,
870 IDirect3DRM2Impl_CreateDeviceFromClipper,
871 IDirect3DRM2Impl_CreateTextureFromSurface,
872 IDirect3DRM2Impl_CreateShadow,
873 IDirect3DRM2Impl_CreateViewport,
874 IDirect3DRM2Impl_CreateWrap,
875 IDirect3DRM2Impl_CreateUserVisual,
876 IDirect3DRM2Impl_LoadTexture,
877 IDirect3DRM2Impl_LoadTextureFromResource,
878 IDirect3DRM2Impl_SetSearchPath,
879 IDirect3DRM2Impl_AddSearchPath,
880 IDirect3DRM2Impl_GetSearchPath,
881 IDirect3DRM2Impl_SetDefaultTextureColors,
882 IDirect3DRM2Impl_SetDefaultTextureShades,
883 IDirect3DRM2Impl_GetDevices,
884 IDirect3DRM2Impl_GetNamedObject,
885 IDirect3DRM2Impl_EnumerateObjects,
886 IDirect3DRM2Impl_Load,
887 IDirect3DRM2Impl_Tick,
888 IDirect3DRM2Impl_CreateProgressiveMesh
892 /*** IUnknown methods ***/
893 static HRESULT WINAPI IDirect3DRM3Impl_QueryInterface(IDirect3DRM3* iface, REFIID riid,
894 void** ppvObject)
896 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
897 return IDirect3DRM_QueryInterface(&This->IDirect3DRM_iface, riid, ppvObject);
900 static ULONG WINAPI IDirect3DRM3Impl_AddRef(IDirect3DRM3* iface)
902 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
904 TRACE("(%p/%p)\n", iface, This);
906 return InterlockedIncrement(&This->ref);
909 static ULONG WINAPI IDirect3DRM3Impl_Release(IDirect3DRM3* iface)
911 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
912 ULONG ref = InterlockedDecrement(&This->ref);
914 TRACE("(%p/%p)\n", iface, This);
916 if (!ref)
917 HeapFree(GetProcessHeap(), 0, This);
919 return ref;
922 /*** IDirect3DRM3 methods ***/
923 static HRESULT WINAPI IDirect3DRM3Impl_CreateObject(IDirect3DRM3* iface, REFCLSID rclsid,
924 LPUNKNOWN unkwn, REFIID riid, LPVOID* object)
926 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
928 FIXME("(%p/%p)->(%s,%p,%s,%p): stub\n", iface, This, debugstr_guid(rclsid), unkwn,
929 debugstr_guid(riid), object);
931 return E_NOTIMPL;
934 static HRESULT WINAPI IDirect3DRM3Impl_CreateFrame(IDirect3DRM3* iface,
935 LPDIRECT3DRMFRAME3 FrameParent,
936 LPDIRECT3DRMFRAME3* Frame)
938 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
940 FIXME("(%p/%p)->(%p,%p): stub\n", iface, This, FrameParent, Frame);
942 return E_NOTIMPL;
945 static HRESULT WINAPI IDirect3DRM3Impl_CreateMesh(IDirect3DRM3* iface, LPDIRECT3DRMMESH* Mesh)
947 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
949 FIXME("(%p/%p)->(%p): stub\n", iface, This, Mesh);
951 return E_NOTIMPL;
954 static HRESULT WINAPI IDirect3DRM3Impl_CreateMeshBuilder(IDirect3DRM3* iface,
955 LPDIRECT3DRMMESHBUILDER3* ppMeshBuilder)
957 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
959 TRACE("(%p/%p)->(%p)\n", iface, This, ppMeshBuilder);
961 return Direct3DRMMeshBuilder_create(&IID_IDirect3DRMMeshBuilder3, (IUnknown**)ppMeshBuilder);
964 static HRESULT WINAPI IDirect3DRM3Impl_CreateFace(IDirect3DRM3* iface, LPDIRECT3DRMFACE2* Face)
966 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
968 FIXME("(%p/%p)->(%p): stub\n", iface, This, Face);
970 return E_NOTIMPL;
973 static HRESULT WINAPI IDirect3DRM3Impl_CreateAnimation(IDirect3DRM3* iface,
974 LPDIRECT3DRMANIMATION2* Animation)
976 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
978 FIXME("(%p/%p)->(%p): stub\n", iface, This, Animation);
980 return E_NOTIMPL;
983 static HRESULT WINAPI IDirect3DRM3Impl_CreateAnimationSet(IDirect3DRM3* iface,
984 LPDIRECT3DRMANIMATIONSET2* AnimationSet)
986 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
988 FIXME("(%p/%p)->(%p): stub\n", iface, This, AnimationSet);
990 return E_NOTIMPL;
993 static HRESULT WINAPI IDirect3DRM3Impl_CreateTexture(IDirect3DRM3* iface, LPD3DRMIMAGE Image,
994 LPDIRECT3DRMTEXTURE3* Texture)
996 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
998 FIXME("(%p/%p)->(%p,%p): stub\n", iface, This, Image, Texture);
1000 return E_NOTIMPL;
1003 static HRESULT WINAPI IDirect3DRM3Impl_CreateLight(IDirect3DRM3* iface, D3DRMLIGHTTYPE type,
1004 D3DCOLOR color, LPDIRECT3DRMLIGHT* Light)
1006 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
1008 FIXME("(%p/%p)->(%d,%d,%p): stub\n", iface, This, type, color, Light);
1010 return E_NOTIMPL;
1013 static HRESULT WINAPI IDirect3DRM3Impl_CreateLightRGB(IDirect3DRM3* iface, D3DRMLIGHTTYPE type,
1014 D3DVALUE red, D3DVALUE green, D3DVALUE blue,
1015 LPDIRECT3DRMLIGHT* Light)
1017 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
1019 FIXME("(%p/%p)->(%d,%f,%f,%f,%p): stub\n", iface, This, type, red, green, blue, Light);
1021 return E_NOTIMPL;
1024 static HRESULT WINAPI IDirect3DRM3Impl_Material(IDirect3DRM3* iface, D3DVALUE m,
1025 LPDIRECT3DRMMATERIAL2* Material)
1027 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
1029 FIXME("(%p/%p)->(%f,%p): stub\n", iface, This, m, Material);
1031 return E_NOTIMPL;
1034 static HRESULT WINAPI IDirect3DRM3Impl_CreateDevice(IDirect3DRM3* iface, DWORD width, DWORD height,
1035 LPDIRECT3DRMDEVICE3* device)
1037 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
1039 FIXME("(%p/%p)->(%d,%d,%p): stub\n", iface, This, width, height, device);
1041 return E_NOTIMPL;
1044 static HRESULT WINAPI IDirect3DRM3Impl_CreateDeviceFromSurface(IDirect3DRM3* iface, LPGUID pGUID,
1045 LPDIRECTDRAW dd,
1046 LPDIRECTDRAWSURFACE back,
1047 LPDIRECT3DRMDEVICE3* device)
1049 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
1051 FIXME("(%p/%p)->(%s,%p,%p,%p): stub\n", iface, This, debugstr_guid(pGUID), dd, back, device);
1053 return E_NOTIMPL;
1056 static HRESULT WINAPI IDirect3DRM3Impl_CreateDeviceFromD3D(IDirect3DRM3* iface, LPDIRECT3D2 d3d,
1057 LPDIRECT3DDEVICE2 d3ddev,
1058 LPDIRECT3DRMDEVICE3* device)
1060 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
1062 FIXME("(%p/%p)->(%p,%p,%p): stub\n", iface, This, d3d, d3ddev, device);
1064 return E_NOTIMPL;
1067 static HRESULT WINAPI IDirect3DRM3Impl_CreateDeviceFromClipper(IDirect3DRM3* iface,
1068 LPDIRECTDRAWCLIPPER clipper,
1069 LPGUID GUID, int width, int height,
1070 LPDIRECT3DRMDEVICE3* device)
1072 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
1074 FIXME("(%p/%p)->(%p,%s,%d,%d,%p): stub\n", iface, This, clipper, debugstr_guid(GUID),
1075 width, height, device);
1077 return E_NOTIMPL;
1080 static HRESULT WINAPI IDirect3DRM3Impl_CreateShadow(IDirect3DRM3* iface, LPUNKNOWN Visual1,
1081 LPDIRECT3DRMLIGHT Light, D3DVALUE px,
1082 D3DVALUE py, D3DVALUE pz, D3DVALUE nx,
1083 D3DVALUE ny, D3DVALUE nz,
1084 LPDIRECT3DRMSHADOW2* Visual2)
1086 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
1088 FIXME("(%p/%p)->(%p,%p,%f,%f,%f,%f,%f,%f,%p): stub\n", iface, This, Visual1, Light, px, py, pz,
1089 nx, ny, nz, Visual2);
1091 return E_NOTIMPL;
1094 static HRESULT WINAPI IDirect3DRM3Impl_CreateTextureFromSurface(IDirect3DRM3* iface,
1095 LPDIRECTDRAWSURFACE surface,
1096 LPDIRECT3DRMTEXTURE3* texture)
1098 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
1100 FIXME("(%p/%p)->(%p,%p): stub\n", iface, This, surface, texture);
1102 return E_NOTIMPL;
1105 static HRESULT WINAPI IDirect3DRM3Impl_CreateViewport(IDirect3DRM3* iface,
1106 LPDIRECT3DRMDEVICE3 Device,
1107 LPDIRECT3DRMFRAME3 frame, DWORD xpos,
1108 DWORD ypos, DWORD width, DWORD height,
1109 LPDIRECT3DRMVIEWPORT2* viewport)
1111 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
1113 FIXME("(%p/%p)->(%p,%p,%d,%d,%d,%d,%p): stub\n", iface, This, Device, frame, xpos, ypos, width,
1114 height, viewport);
1116 return E_NOTIMPL;
1119 static HRESULT WINAPI IDirect3DRM3Impl_CreateWrap(IDirect3DRM3* iface, D3DRMWRAPTYPE type,
1120 LPDIRECT3DRMFRAME3 frame,
1121 D3DVALUE ox, D3DVALUE oy, D3DVALUE oz,
1122 D3DVALUE dx, D3DVALUE dy, D3DVALUE dz,
1123 D3DVALUE ux, D3DVALUE uy, D3DVALUE uz,
1124 D3DVALUE ou, D3DVALUE ov, D3DVALUE su,
1125 D3DVALUE sv, LPDIRECT3DRMWRAP* wrap)
1127 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
1129 FIXME("(%p/%p)->(%d,%p,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%p): stub\n", iface, This, type,
1130 frame, ox, oy, oz, dx, dy, dz, ux, uy, uz, ou, ov, su, sv, wrap);
1132 return E_NOTIMPL;
1135 static HRESULT WINAPI IDirect3DRM3Impl_CreateUserVisual(IDirect3DRM3* iface,
1136 D3DRMUSERVISUALCALLBACK cb, LPVOID arg,
1137 LPDIRECT3DRMUSERVISUAL* UserVisual)
1139 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
1141 FIXME("(%p/%p)->(%p,%p,%p): stub\n", iface, This, cb, arg, UserVisual);
1143 return E_NOTIMPL;
1146 static HRESULT WINAPI IDirect3DRM3Impl_LoadTexture(IDirect3DRM3* iface, const char* filename,
1147 LPDIRECT3DRMTEXTURE3* Texture)
1149 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
1151 FIXME("(%p/%p)->(%s,%p): stub\n", iface, This, filename, Texture);
1153 return E_NOTIMPL;
1156 static HRESULT WINAPI IDirect3DRM3Impl_LoadTextureFromResource(IDirect3DRM3* iface, HMODULE mod,
1157 LPCSTR strName, LPCSTR strType,
1158 LPDIRECT3DRMTEXTURE3 * ppTexture)
1160 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
1162 FIXME("(%p/%p)->(%p,%p,%p,%p): stub\n", iface, This, mod, strName, strType, ppTexture);
1164 return E_NOTIMPL;
1167 static HRESULT WINAPI IDirect3DRM3Impl_SetSearchPath(IDirect3DRM3* iface, LPCSTR path)
1169 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
1171 FIXME("(%p/%p)->(%s): stub\n", iface, This, path);
1173 return E_NOTIMPL;
1176 static HRESULT WINAPI IDirect3DRM3Impl_AddSearchPath(IDirect3DRM3* iface, LPCSTR path)
1178 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
1180 FIXME("(%p/%p)->(%s): stub\n", iface, This, path);
1182 return E_NOTIMPL;
1185 static HRESULT WINAPI IDirect3DRM3Impl_GetSearchPath(IDirect3DRM3* iface, DWORD* size_return,
1186 LPSTR path_return)
1188 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
1190 FIXME("(%p/%p)->(%p,%s): stub\n", iface, This, size_return, path_return);
1192 return E_NOTIMPL;
1195 static HRESULT WINAPI IDirect3DRM3Impl_SetDefaultTextureColors(IDirect3DRM3* iface, DWORD nb_colors)
1197 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
1199 FIXME("(%p/%p)->(%d): stub\n", iface, This, nb_colors);
1201 return E_NOTIMPL;
1204 static HRESULT WINAPI IDirect3DRM3Impl_SetDefaultTextureShades(IDirect3DRM3* iface, DWORD nb_shades)
1206 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
1208 FIXME("(%p/%p)->(%d): stub\n", iface, This, nb_shades);
1210 return E_NOTIMPL;
1213 static HRESULT WINAPI IDirect3DRM3Impl_GetDevices(IDirect3DRM3* iface,
1214 LPDIRECT3DRMDEVICEARRAY* DeviceArray)
1216 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
1218 FIXME("(%p/%p)->(%p): stub\n", iface, This, DeviceArray);
1220 return E_NOTIMPL;
1223 static HRESULT WINAPI IDirect3DRM3Impl_GetNamedObject(IDirect3DRM3* iface, const char* Name,
1224 LPDIRECT3DRMOBJECT* Object)
1226 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
1228 FIXME("(%p/%p)->(%s,%p): stub\n", iface, This, Name, Object);
1230 return E_NOTIMPL;
1233 static HRESULT WINAPI IDirect3DRM3Impl_EnumerateObjects(IDirect3DRM3* iface, D3DRMOBJECTCALLBACK cb,
1234 LPVOID arg)
1236 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
1238 FIXME("(%p/%p)->(%p,%p): stub\n", iface, This, cb, arg);
1240 return E_NOTIMPL;
1243 static HRESULT WINAPI IDirect3DRM3Impl_Load(IDirect3DRM3* iface, LPVOID ObjSource, LPVOID ObjID,
1244 LPIID* GUIDs, DWORD nb_GUIDs, D3DRMLOADOPTIONS LOFlags,
1245 D3DRMLOADCALLBACK LoadProc, LPVOID ArgLP,
1246 D3DRMLOADTEXTURECALLBACK LoadTextureProc, LPVOID ArgLTP,
1247 LPDIRECT3DRMFRAME3 ParentFrame)
1249 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
1251 FIXME("(%p/%p)->(%p,%p,%p,%d,%d,%p,%p,%p,%p,%p): stub\n", iface, This, ObjSource, ObjID, GUIDs,
1252 nb_GUIDs, LOFlags, LoadProc, ArgLP, LoadTextureProc, ArgLTP, ParentFrame);
1254 return E_NOTIMPL;
1257 static HRESULT WINAPI IDirect3DRM3Impl_Tick(IDirect3DRM3* iface, D3DVALUE tick)
1259 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
1261 FIXME("(%p/%p)->(%f): stub\n", iface, This, tick);
1263 return E_NOTIMPL;
1266 static HRESULT WINAPI IDirect3DRM3Impl_CreateProgressiveMesh(IDirect3DRM3* iface,
1267 LPDIRECT3DRMPROGRESSIVEMESH Mesh)
1269 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
1271 FIXME("(%p/%p)->(%p): stub\n", iface, This, Mesh);
1273 return E_NOTIMPL;
1276 static HRESULT WINAPI IDirect3DRM3Impl_RegisterClient(IDirect3DRM3* iface, REFGUID rguid,
1277 LPDWORD id)
1279 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
1281 FIXME("(%p/%p)->(%s, %p): stub\n", iface, This, debugstr_guid(rguid), id);
1283 return E_NOTIMPL;
1286 static HRESULT WINAPI IDirect3DRM3Impl_UnregisterClient(IDirect3DRM3* iface, REFGUID rguid)
1288 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
1290 FIXME("(%p/%p)->(%s): stub\n", iface, This, debugstr_guid(rguid));
1292 return E_NOTIMPL;
1295 static HRESULT WINAPI IDirect3DRM3Impl_CreateClippedVisual(IDirect3DRM3* iface,
1296 LPDIRECT3DRMVISUAL vis,
1297 LPDIRECT3DRMCLIPPEDVISUAL* clippedvis)
1299 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
1301 FIXME("(%p/%p)->(%p, %p): stub\n", iface, This, vis, clippedvis);
1303 return E_NOTIMPL;
1306 static HRESULT WINAPI IDirect3DRM3Impl_SetOptions(IDirect3DRM3* iface, DWORD opt)
1308 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
1310 FIXME("(%p/%p)->(%d): stub\n", iface, This, opt);
1312 return E_NOTIMPL;
1315 static HRESULT WINAPI IDirect3DRM3Impl_GetOptions(IDirect3DRM3* iface, LPDWORD opt)
1317 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
1319 FIXME("(%p/%p)->(%p): stub\n", iface, This, opt);
1321 return E_NOTIMPL;
1324 static const struct IDirect3DRM3Vtbl Direct3DRM3_Vtbl =
1326 IDirect3DRM3Impl_QueryInterface,
1327 IDirect3DRM3Impl_AddRef,
1328 IDirect3DRM3Impl_Release,
1329 IDirect3DRM3Impl_CreateObject,
1330 IDirect3DRM3Impl_CreateFrame,
1331 IDirect3DRM3Impl_CreateMesh,
1332 IDirect3DRM3Impl_CreateMeshBuilder,
1333 IDirect3DRM3Impl_CreateFace,
1334 IDirect3DRM3Impl_CreateAnimation,
1335 IDirect3DRM3Impl_CreateAnimationSet,
1336 IDirect3DRM3Impl_CreateTexture,
1337 IDirect3DRM3Impl_CreateLight,
1338 IDirect3DRM3Impl_CreateLightRGB,
1339 IDirect3DRM3Impl_Material,
1340 IDirect3DRM3Impl_CreateDevice,
1341 IDirect3DRM3Impl_CreateDeviceFromSurface,
1342 IDirect3DRM3Impl_CreateDeviceFromD3D,
1343 IDirect3DRM3Impl_CreateDeviceFromClipper,
1344 IDirect3DRM3Impl_CreateTextureFromSurface,
1345 IDirect3DRM3Impl_CreateShadow,
1346 IDirect3DRM3Impl_CreateViewport,
1347 IDirect3DRM3Impl_CreateWrap,
1348 IDirect3DRM3Impl_CreateUserVisual,
1349 IDirect3DRM3Impl_LoadTexture,
1350 IDirect3DRM3Impl_LoadTextureFromResource,
1351 IDirect3DRM3Impl_SetSearchPath,
1352 IDirect3DRM3Impl_AddSearchPath,
1353 IDirect3DRM3Impl_GetSearchPath,
1354 IDirect3DRM3Impl_SetDefaultTextureColors,
1355 IDirect3DRM3Impl_SetDefaultTextureShades,
1356 IDirect3DRM3Impl_GetDevices,
1357 IDirect3DRM3Impl_GetNamedObject,
1358 IDirect3DRM3Impl_EnumerateObjects,
1359 IDirect3DRM3Impl_Load,
1360 IDirect3DRM3Impl_Tick,
1361 IDirect3DRM3Impl_CreateProgressiveMesh,
1362 IDirect3DRM3Impl_RegisterClient,
1363 IDirect3DRM3Impl_UnregisterClient,
1364 IDirect3DRM3Impl_CreateClippedVisual,
1365 IDirect3DRM3Impl_SetOptions,
1366 IDirect3DRM3Impl_GetOptions