comctl32: Store style bits provided with WM_CREATE.
[wine/multimedia.git] / dlls / d3drm / d3drm.c
blob3ce374ded5b088c5467a2111f40c7a2babd7a44f
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 TRACE("(%p/%p)->(%p,%p)\n", iface, This, pFrameParent, ppFrame);
152 if (pFrameParent)
153 FIXME("(%p/%p): Parent frame not yet supported\n", iface, This);
155 return Direct3DRMFrame_create(&IID_IDirect3DRMFrame, (IUnknown**)ppFrame);
158 static HRESULT WINAPI IDirect3DRMImpl_CreateMesh(IDirect3DRM* iface, LPDIRECT3DRMMESH * ppMesh)
160 IDirect3DRMImpl *This = impl_from_IDirect3DRM(iface);
162 FIXME("(%p/%p)->(%p): stub\n", iface, This, ppMesh);
164 return E_NOTIMPL;
167 static HRESULT WINAPI IDirect3DRMImpl_CreateMeshBuilder(IDirect3DRM* iface, LPDIRECT3DRMMESHBUILDER * ppMeshBuilder)
169 IDirect3DRMImpl *This = impl_from_IDirect3DRM(iface);
171 TRACE("(%p/%p)->(%p)\n", iface, This, ppMeshBuilder);
173 return Direct3DRMMeshBuilder_create(&IID_IDirect3DRMMeshBuilder, (IUnknown**)ppMeshBuilder);
176 static HRESULT WINAPI IDirect3DRMImpl_CreateFace(IDirect3DRM* iface, LPDIRECT3DRMFACE * ppFace)
178 IDirect3DRMImpl *This = impl_from_IDirect3DRM(iface);
180 FIXME("(%p/%p)->(%p): stub\n", iface, This, ppFace);
182 return E_NOTIMPL;
185 static HRESULT WINAPI IDirect3DRMImpl_CreateAnimation(IDirect3DRM* iface, LPDIRECT3DRMANIMATION * ppAnimation)
187 IDirect3DRMImpl *This = impl_from_IDirect3DRM(iface);
189 FIXME("(%p/%p)->(%p): stub\n", iface, This, ppAnimation);
191 return E_NOTIMPL;
194 static HRESULT WINAPI IDirect3DRMImpl_CreateAnimationSet(IDirect3DRM* iface, LPDIRECT3DRMANIMATIONSET * ppAnimationSet)
196 IDirect3DRMImpl *This = impl_from_IDirect3DRM(iface);
198 FIXME("(%p/%p)->(%p): stub\n", iface, This, ppAnimationSet);
200 return E_NOTIMPL;
203 static HRESULT WINAPI IDirect3DRMImpl_CreateTexture(IDirect3DRM* iface, LPD3DRMIMAGE pImage, LPDIRECT3DRMTEXTURE * ppTexture)
205 IDirect3DRMImpl *This = impl_from_IDirect3DRM(iface);
207 FIXME("(%p/%p)->(%p,%p): stub\n", iface, This, pImage, ppTexture);
209 return E_NOTIMPL;
212 static HRESULT WINAPI IDirect3DRMImpl_CreateLight(IDirect3DRM* iface, D3DRMLIGHTTYPE type, D3DCOLOR color, LPDIRECT3DRMLIGHT * ppLight)
214 IDirect3DRMImpl *This = impl_from_IDirect3DRM(iface);
216 FIXME("(%p/%p)->(%d,%d,%p): stub\n", iface, This, type, color, ppLight);
218 return E_NOTIMPL;
221 static HRESULT WINAPI IDirect3DRMImpl_CreateLightRGB(IDirect3DRM* iface, D3DRMLIGHTTYPE type, D3DVALUE red, D3DVALUE green, D3DVALUE blue, LPDIRECT3DRMLIGHT * ppLight)
223 IDirect3DRMImpl *This = impl_from_IDirect3DRM(iface);
225 FIXME("(%p/%p)->(%d,%f,%f,%f,%p): stub\n", iface, This, type, red, green, blue, ppLight);
227 return E_NOTIMPL;
230 static HRESULT WINAPI IDirect3DRMImpl_Material(IDirect3DRM* iface, D3DVALUE m, LPDIRECT3DRMMATERIAL * ppMaterial)
232 IDirect3DRMImpl *This = impl_from_IDirect3DRM(iface);
234 FIXME("(%p/%p)->(%f,%p): stub\n", iface, This, m, ppMaterial);
236 return E_NOTIMPL;
239 static HRESULT WINAPI IDirect3DRMImpl_CreateDevice(IDirect3DRM* iface, DWORD width, DWORD height, LPDIRECT3DRMDEVICE * ppDevice)
241 IDirect3DRMImpl *This = impl_from_IDirect3DRM(iface);
243 FIXME("(%p/%p)->(%d,%d,%p): stub\n", iface, This, width, height, ppDevice);
245 return E_NOTIMPL;
248 static HRESULT WINAPI IDirect3DRMImpl_CreateDeviceFromSurface(IDirect3DRM* iface, LPGUID pGUID, LPDIRECTDRAW pDD, LPDIRECTDRAWSURFACE pDDSBack, LPDIRECT3DRMDEVICE * ppDevice)
250 IDirect3DRMImpl *This = impl_from_IDirect3DRM(iface);
252 FIXME("(%p/%p)->(%s,%p,%p,%p): stub\n", iface, This, debugstr_guid(pGUID), pDD, pDDSBack, ppDevice);
254 return E_NOTIMPL;
257 static HRESULT WINAPI IDirect3DRMImpl_CreateDeviceFromD3D(IDirect3DRM* iface, LPDIRECT3D pD3D, LPDIRECT3DDEVICE pD3DDev, LPDIRECT3DRMDEVICE * ppDevice)
259 IDirect3DRMImpl *This = impl_from_IDirect3DRM(iface);
261 FIXME("(%p/%p)->(%p,%p,%p): stub\n", iface, This, pD3D, pD3DDev, ppDevice);
263 return E_NOTIMPL;
266 static HRESULT WINAPI IDirect3DRMImpl_CreateDeviceFromClipper(IDirect3DRM* iface, LPDIRECTDRAWCLIPPER pDDClipper, LPGUID pGUID, int width, int height, LPDIRECT3DRMDEVICE * ppDevice)
268 IDirect3DRMImpl *This = impl_from_IDirect3DRM(iface);
270 FIXME("(%p/%p)->(%p,%s,%d,%d,%p): stub\n", iface, This, pDDClipper, debugstr_guid(pGUID), width, height, ppDevice);
272 return E_NOTIMPL;
275 static HRESULT WINAPI IDirect3DRMImpl_CreateTextureFromSurface(IDirect3DRM* iface, LPDIRECTDRAWSURFACE pDDS, LPDIRECT3DRMTEXTURE * ppTexture)
277 IDirect3DRMImpl *This = impl_from_IDirect3DRM(iface);
279 FIXME("(%p/%p)->(%p,%p): stub\n", iface, This, pDDS, ppTexture);
281 return E_NOTIMPL;
284 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)
286 IDirect3DRMImpl *This = impl_from_IDirect3DRM(iface);
288 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);
290 return E_NOTIMPL;
293 static HRESULT WINAPI IDirect3DRMImpl_CreateViewport(IDirect3DRM* iface, LPDIRECT3DRMDEVICE pDevice, LPDIRECT3DRMFRAME pFrame, DWORD xpos, DWORD ypos, DWORD width, DWORD height, LPDIRECT3DRMVIEWPORT * ppViewport)
295 IDirect3DRMImpl *This = impl_from_IDirect3DRM(iface);
297 FIXME("(%p/%p)->(%p,%p,%d,%d,%d,%d,%p): stub\n", iface, This, pDevice, pFrame, xpos, ypos, width, height, ppViewport);
299 return E_NOTIMPL;
302 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)
304 IDirect3DRMImpl *This = impl_from_IDirect3DRM(iface);
306 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);
308 return E_NOTIMPL;
311 static HRESULT WINAPI IDirect3DRMImpl_CreateUserVisual(IDirect3DRM* iface, D3DRMUSERVISUALCALLBACK cb, LPVOID pArg, LPDIRECT3DRMUSERVISUAL * ppUserVisual)
313 IDirect3DRMImpl *This = impl_from_IDirect3DRM(iface);
315 FIXME("(%p/%p)->(%p,%p,%p): stub\n", iface, This, cb, pArg, ppUserVisual);
317 return E_NOTIMPL;
320 static HRESULT WINAPI IDirect3DRMImpl_LoadTexture(IDirect3DRM* iface, const char * filename, LPDIRECT3DRMTEXTURE * ppTexture)
322 IDirect3DRMImpl *This = impl_from_IDirect3DRM(iface);
324 FIXME("(%p/%p)->(%s,%p): stub\n", iface, This, filename, ppTexture);
326 return E_NOTIMPL;
329 static HRESULT WINAPI IDirect3DRMImpl_LoadTextureFromResource(IDirect3DRM* iface, HRSRC rs, LPDIRECT3DRMTEXTURE * ppTexture)
331 IDirect3DRMImpl *This = impl_from_IDirect3DRM(iface);
333 FIXME("(%p/%p)->(%p,%p): stub\n", iface, This, rs, ppTexture);
335 return E_NOTIMPL;
338 static HRESULT WINAPI IDirect3DRMImpl_SetSearchPath(IDirect3DRM* iface, LPCSTR path)
340 IDirect3DRMImpl *This = impl_from_IDirect3DRM(iface);
342 FIXME("(%p/%p)->(%s): stub\n", iface, This, path);
344 return E_NOTIMPL;
347 static HRESULT WINAPI IDirect3DRMImpl_AddSearchPath(IDirect3DRM* iface, LPCSTR path)
349 IDirect3DRMImpl *This = impl_from_IDirect3DRM(iface);
351 FIXME("(%p/%p)->(%s): stub\n", iface, This, path);
353 return E_NOTIMPL;
356 static HRESULT WINAPI IDirect3DRMImpl_GetSearchPath(IDirect3DRM* iface, DWORD *size_return, LPSTR path_return)
358 IDirect3DRMImpl *This = impl_from_IDirect3DRM(iface);
360 FIXME("(%p/%p)->(%p,%s): stub\n", iface, This, size_return, path_return);
362 return E_NOTIMPL;
365 static HRESULT WINAPI IDirect3DRMImpl_SetDefaultTextureColors(IDirect3DRM* iface, DWORD nb_colors)
367 IDirect3DRMImpl *This = impl_from_IDirect3DRM(iface);
369 FIXME("(%p/%p)->(%d): stub\n", iface, This, nb_colors);
371 return E_NOTIMPL;
374 static HRESULT WINAPI IDirect3DRMImpl_SetDefaultTextureShades(IDirect3DRM* iface, DWORD nb_shades)
376 IDirect3DRMImpl *This = impl_from_IDirect3DRM(iface);
378 FIXME("(%p/%p)->(%d): stub\n", iface, This, nb_shades);
380 return E_NOTIMPL;
383 static HRESULT WINAPI IDirect3DRMImpl_GetDevices(IDirect3DRM* iface, LPDIRECT3DRMDEVICEARRAY * ppDeviceArray)
385 IDirect3DRMImpl *This = impl_from_IDirect3DRM(iface);
387 FIXME("(%p/%p)->(%p): stub\n", iface, This, ppDeviceArray);
389 return E_NOTIMPL;
392 static HRESULT WINAPI IDirect3DRMImpl_GetNamedObject(IDirect3DRM* iface, const char * pName, LPDIRECT3DRMOBJECT * ppObject)
394 IDirect3DRMImpl *This = impl_from_IDirect3DRM(iface);
396 FIXME("(%p/%p)->(%s,%p): stub\n", iface, This, pName, ppObject);
398 return E_NOTIMPL;
401 static HRESULT WINAPI IDirect3DRMImpl_EnumerateObjects(IDirect3DRM* iface, D3DRMOBJECTCALLBACK cb, LPVOID pArg)
403 IDirect3DRMImpl *This = impl_from_IDirect3DRM(iface);
405 FIXME("(%p/%p)->(%p,%p): stub\n", iface, This, cb, pArg);
407 return E_NOTIMPL;
410 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)
412 IDirect3DRMImpl *This = impl_from_IDirect3DRM(iface);
414 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);
416 return E_NOTIMPL;
419 static HRESULT WINAPI IDirect3DRMImpl_Tick(IDirect3DRM* iface, D3DVALUE tick)
421 IDirect3DRMImpl *This = impl_from_IDirect3DRM(iface);
423 FIXME("(%p/%p)->(%f): stub\n", iface, This, tick);
425 return E_NOTIMPL;
428 static const struct IDirect3DRMVtbl Direct3DRM_Vtbl =
430 IDirect3DRMImpl_QueryInterface,
431 IDirect3DRMImpl_AddRef,
432 IDirect3DRMImpl_Release,
433 IDirect3DRMImpl_CreateObject,
434 IDirect3DRMImpl_CreateFrame,
435 IDirect3DRMImpl_CreateMesh,
436 IDirect3DRMImpl_CreateMeshBuilder,
437 IDirect3DRMImpl_CreateFace,
438 IDirect3DRMImpl_CreateAnimation,
439 IDirect3DRMImpl_CreateAnimationSet,
440 IDirect3DRMImpl_CreateTexture,
441 IDirect3DRMImpl_CreateLight,
442 IDirect3DRMImpl_CreateLightRGB,
443 IDirect3DRMImpl_Material,
444 IDirect3DRMImpl_CreateDevice,
445 IDirect3DRMImpl_CreateDeviceFromSurface,
446 IDirect3DRMImpl_CreateDeviceFromD3D,
447 IDirect3DRMImpl_CreateDeviceFromClipper,
448 IDirect3DRMImpl_CreateTextureFromSurface,
449 IDirect3DRMImpl_CreateShadow,
450 IDirect3DRMImpl_CreateViewport,
451 IDirect3DRMImpl_CreateWrap,
452 IDirect3DRMImpl_CreateUserVisual,
453 IDirect3DRMImpl_LoadTexture,
454 IDirect3DRMImpl_LoadTextureFromResource,
455 IDirect3DRMImpl_SetSearchPath,
456 IDirect3DRMImpl_AddSearchPath,
457 IDirect3DRMImpl_GetSearchPath,
458 IDirect3DRMImpl_SetDefaultTextureColors,
459 IDirect3DRMImpl_SetDefaultTextureShades,
460 IDirect3DRMImpl_GetDevices,
461 IDirect3DRMImpl_GetNamedObject,
462 IDirect3DRMImpl_EnumerateObjects,
463 IDirect3DRMImpl_Load,
464 IDirect3DRMImpl_Tick
468 /*** IUnknown methods ***/
469 static HRESULT WINAPI IDirect3DRM2Impl_QueryInterface(IDirect3DRM2* iface, REFIID riid,
470 void** ppvObject)
472 IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
473 return IDirect3DRM_QueryInterface(&This->IDirect3DRM_iface, riid, ppvObject);
476 static ULONG WINAPI IDirect3DRM2Impl_AddRef(IDirect3DRM2* iface)
478 IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
480 TRACE("(%p/%p)\n", iface, This);
482 return InterlockedIncrement(&This->ref);
485 static ULONG WINAPI IDirect3DRM2Impl_Release(IDirect3DRM2* iface)
487 IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
488 ULONG ref = InterlockedDecrement(&This->ref);
490 TRACE("(%p/%p)\n", iface, This);
492 if (!ref)
493 HeapFree(GetProcessHeap(), 0, This);
495 return ref;
498 /*** IDirect3DRM2 methods ***/
499 static HRESULT WINAPI IDirect3DRM2Impl_CreateObject(IDirect3DRM2* iface, REFCLSID rclsid,
500 LPUNKNOWN pUnkOuter, REFIID riid,
501 LPVOID *ppvObj)
503 IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
505 FIXME("(%p/%p)->(%s,%p,%s,%p): stub\n", iface, This, debugstr_guid(rclsid), pUnkOuter,
506 debugstr_guid(riid), ppvObj);
508 return E_NOTIMPL;
511 static HRESULT WINAPI IDirect3DRM2Impl_CreateFrame(IDirect3DRM2* iface,
512 LPDIRECT3DRMFRAME pFrameParent,
513 LPDIRECT3DRMFRAME2 * ppFrame)
515 IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
517 TRACE("(%p/%p)->(%p,%p)\n", iface, This, pFrameParent, ppFrame);
519 if (pFrameParent)
520 FIXME("(%p/%p): Parent frame not yet supported\n", iface, This);
522 return Direct3DRMFrame_create(&IID_IDirect3DRMFrame2, (IUnknown**)ppFrame);
525 static HRESULT WINAPI IDirect3DRM2Impl_CreateMesh(IDirect3DRM2* iface, LPDIRECT3DRMMESH * ppMesh)
527 IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
529 FIXME("(%p/%p)->(%p): stub\n", iface, This, ppMesh);
531 return E_NOTIMPL;
534 static HRESULT WINAPI IDirect3DRM2Impl_CreateMeshBuilder(IDirect3DRM2* iface,
535 LPDIRECT3DRMMESHBUILDER2 * ppMeshBuilder)
537 IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
539 TRACE("(%p/%p)->(%p)\n", iface, This, ppMeshBuilder);
541 return Direct3DRMMeshBuilder_create(&IID_IDirect3DRMMeshBuilder2, (IUnknown**)ppMeshBuilder);
544 static HRESULT WINAPI IDirect3DRM2Impl_CreateFace(IDirect3DRM2* iface, LPDIRECT3DRMFACE * ppFace)
546 IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
548 FIXME("(%p/%p)->(%p): stub\n", iface, This, ppFace);
550 return E_NOTIMPL;
553 static HRESULT WINAPI IDirect3DRM2Impl_CreateAnimation(IDirect3DRM2* iface,
554 LPDIRECT3DRMANIMATION * ppAnimation)
556 IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
558 FIXME("(%p/%p)->(%p): stub\n", iface, This, ppAnimation);
560 return E_NOTIMPL;
563 static HRESULT WINAPI IDirect3DRM2Impl_CreateAnimationSet(IDirect3DRM2* iface,
564 LPDIRECT3DRMANIMATIONSET * ppAnimationSet)
566 IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
568 FIXME("(%p/%p)->(%p): stub\n", iface, This, ppAnimationSet);
570 return E_NOTIMPL;
573 static HRESULT WINAPI IDirect3DRM2Impl_CreateTexture(IDirect3DRM2* iface, LPD3DRMIMAGE pImage,
574 LPDIRECT3DRMTEXTURE2 * ppTexture)
576 IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
578 FIXME("(%p/%p)->(%p,%p): stub\n", iface, This, pImage, ppTexture);
580 return E_NOTIMPL;
583 static HRESULT WINAPI IDirect3DRM2Impl_CreateLight(IDirect3DRM2* iface, D3DRMLIGHTTYPE type,
584 D3DCOLOR color, LPDIRECT3DRMLIGHT * ppLight)
586 IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
588 FIXME("(%p/%p)->(%d,%d,%p): stub\n", iface, This, type, color, ppLight);
590 return E_NOTIMPL;
593 static HRESULT WINAPI IDirect3DRM2Impl_CreateLightRGB(IDirect3DRM2* iface, D3DRMLIGHTTYPE type,
594 D3DVALUE red, D3DVALUE green, D3DVALUE blue,
595 LPDIRECT3DRMLIGHT * ppLight)
597 IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
599 FIXME("(%p/%p)->(%d,%f,%f,%f,%p): stub\n", iface, This, type, red, green, blue, ppLight);
601 return E_NOTIMPL;
604 static HRESULT WINAPI IDirect3DRM2Impl_Material(IDirect3DRM2* iface, D3DVALUE m,
605 LPDIRECT3DRMMATERIAL * ppMaterial)
607 IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
609 FIXME("(%p/%p)->(%f,%p): stub\n", iface, This, m, ppMaterial);
611 return E_NOTIMPL;
614 static HRESULT WINAPI IDirect3DRM2Impl_CreateDevice(IDirect3DRM2* iface, DWORD width, DWORD height,
615 LPDIRECT3DRMDEVICE2 * ppDevice)
617 IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
619 FIXME("(%p/%p)->(%d,%d,%p): stub\n", iface, This, width, height, ppDevice);
621 return E_NOTIMPL;
624 static HRESULT WINAPI IDirect3DRM2Impl_CreateDeviceFromSurface(IDirect3DRM2* iface, LPGUID pGUID,
625 LPDIRECTDRAW pDD,
626 LPDIRECTDRAWSURFACE pDDSBack,
627 LPDIRECT3DRMDEVICE2 * ppDevice)
629 IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
631 FIXME("(%p/%p)->(%s,%p,%p,%p): stub\n", iface, This, debugstr_guid(pGUID), pDD, pDDSBack, ppDevice);
633 return E_NOTIMPL;
636 static HRESULT WINAPI IDirect3DRM2Impl_CreateDeviceFromD3D(IDirect3DRM2* iface, LPDIRECT3D2 pD3D,
637 LPDIRECT3DDEVICE2 pD3DDev,
638 LPDIRECT3DRMDEVICE2 * ppDevice)
640 IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
642 FIXME("(%p/%p)->(%p,%p,%p): stub\n", iface, This, pD3D, pD3DDev, ppDevice);
644 return E_NOTIMPL;
647 static HRESULT WINAPI IDirect3DRM2Impl_CreateDeviceFromClipper(IDirect3DRM2* iface,
648 LPDIRECTDRAWCLIPPER pDDClipper,
649 LPGUID pGUID, int width, int height,
650 LPDIRECT3DRMDEVICE2 * ppDevice)
652 IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
654 FIXME("(%p/%p)->(%p,%s,%d,%d,%p): stub\n", iface, This, pDDClipper, debugstr_guid(pGUID), width,
655 height, ppDevice);
657 return E_NOTIMPL;
660 static HRESULT WINAPI IDirect3DRM2Impl_CreateTextureFromSurface(IDirect3DRM2* iface,
661 LPDIRECTDRAWSURFACE pDDS,
662 LPDIRECT3DRMTEXTURE2 * ppTexture)
664 IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
666 FIXME("(%p/%p)->(%p,%p): stub\n", iface, This, pDDS, ppTexture);
668 return E_NOTIMPL;
671 static HRESULT WINAPI IDirect3DRM2Impl_CreateShadow(IDirect3DRM2* iface, LPDIRECT3DRMVISUAL pVisual,
672 LPDIRECT3DRMLIGHT pLight,
673 D3DVALUE px, D3DVALUE py, D3DVALUE pz,
674 D3DVALUE nx, D3DVALUE ny, D3DVALUE nz,
675 LPDIRECT3DRMVISUAL * ppVisual)
677 IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
679 FIXME("(%p/%p)->(%p,%p,%f,%f,%f,%f,%f,%f,%p): stub\n", iface, This, pVisual, pLight, px, py, pz,
680 nx, ny, nz, ppVisual);
682 return E_NOTIMPL;
685 static HRESULT WINAPI IDirect3DRM2Impl_CreateViewport(IDirect3DRM2* iface,
686 LPDIRECT3DRMDEVICE pDevice,
687 LPDIRECT3DRMFRAME pFrame,
688 DWORD xpos, DWORD ypos,
689 DWORD width, DWORD height,
690 LPDIRECT3DRMVIEWPORT * ppViewport)
692 IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
694 FIXME("(%p/%p)->(%p,%p,%d,%d,%d,%d,%p): stub\n", iface, This, pDevice, pFrame, xpos, ypos,
695 width, height, ppViewport);
697 return E_NOTIMPL;
700 static HRESULT WINAPI IDirect3DRM2Impl_CreateWrap(IDirect3DRM2* iface, D3DRMWRAPTYPE type,
701 LPDIRECT3DRMFRAME pFrame,
702 D3DVALUE ox, D3DVALUE oy, D3DVALUE oz,
703 D3DVALUE dx, D3DVALUE dy, D3DVALUE dz,
704 D3DVALUE ux, D3DVALUE uy, D3DVALUE uz,
705 D3DVALUE ou, D3DVALUE ov, D3DVALUE su,
706 D3DVALUE sv, LPDIRECT3DRMWRAP * ppWrap)
708 IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
710 FIXME("(%p/%p)->(%d,%p,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%p): stub\n", iface, This, type,
711 pFrame, ox, oy, oz, dx, dy, dz, ux, uy, uz, ou, ov, su, sv, ppWrap);
713 return E_NOTIMPL;
716 static HRESULT WINAPI IDirect3DRM2Impl_CreateUserVisual(IDirect3DRM2* iface,
717 D3DRMUSERVISUALCALLBACK cb, LPVOID pArg,
718 LPDIRECT3DRMUSERVISUAL * ppUserVisual)
720 IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
722 FIXME("(%p/%p)->(%p,%p,%p): stub\n", iface, This, cb, pArg, ppUserVisual);
724 return E_NOTIMPL;
727 static HRESULT WINAPI IDirect3DRM2Impl_LoadTexture(IDirect3DRM2* iface, const char * filename,
728 LPDIRECT3DRMTEXTURE2 * ppTexture)
730 IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
732 FIXME("(%p/%p)->(%s,%p): stub\n", iface, This, filename, ppTexture);
734 return E_NOTIMPL;
737 static HRESULT WINAPI IDirect3DRM2Impl_LoadTextureFromResource(IDirect3DRM2* iface, HMODULE hModule,
738 LPCSTR strName, LPCSTR strType,
739 LPDIRECT3DRMTEXTURE2 * ppTexture)
741 IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
743 FIXME("(%p/%p)->(%p,%p,%p,%p): stub\n", iface, This, hModule, strName, strType, ppTexture);
745 return E_NOTIMPL;
748 static HRESULT WINAPI IDirect3DRM2Impl_SetSearchPath(IDirect3DRM2* iface, LPCSTR path)
750 IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
752 FIXME("(%p/%p)->(%s): stub\n", iface, This, path);
754 return E_NOTIMPL;
757 static HRESULT WINAPI IDirect3DRM2Impl_AddSearchPath(IDirect3DRM2* iface, LPCSTR path)
759 IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
761 FIXME("(%p/%p)->(%s): stub\n", iface, This, path);
763 return E_NOTIMPL;
766 static HRESULT WINAPI IDirect3DRM2Impl_GetSearchPath(IDirect3DRM2* iface, DWORD *size_return,
767 LPSTR path_return)
769 IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
771 FIXME("(%p/%p)->(%p,%s): stub\n", iface, This, size_return, path_return);
773 return E_NOTIMPL;
776 static HRESULT WINAPI IDirect3DRM2Impl_SetDefaultTextureColors(IDirect3DRM2* iface, DWORD nb_colors)
778 IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
780 FIXME("(%p/%p)->(%d): stub\n", iface, This, nb_colors);
782 return E_NOTIMPL;
785 static HRESULT WINAPI IDirect3DRM2Impl_SetDefaultTextureShades(IDirect3DRM2* iface, DWORD nb_shades)
787 IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
789 FIXME("(%p/%p)->(%d): stub\n", iface, This, nb_shades);
791 return E_NOTIMPL;
794 static HRESULT WINAPI IDirect3DRM2Impl_GetDevices(IDirect3DRM2* iface,
795 LPDIRECT3DRMDEVICEARRAY * ppDeviceArray)
797 IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
799 FIXME("(%p/%p)->(%p): stub\n", iface, This, ppDeviceArray);
801 return E_NOTIMPL;
804 static HRESULT WINAPI IDirect3DRM2Impl_GetNamedObject(IDirect3DRM2* iface, const char * pName,
805 LPDIRECT3DRMOBJECT * ppObject)
807 IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
809 FIXME("(%p/%p)->(%s,%p): stub\n", iface, This, pName, ppObject);
811 return E_NOTIMPL;
814 static HRESULT WINAPI IDirect3DRM2Impl_EnumerateObjects(IDirect3DRM2* iface, D3DRMOBJECTCALLBACK cb,
815 LPVOID pArg)
817 IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
819 FIXME("(%p/%p)->(%p,%p): stub\n", iface, This, cb, pArg);
821 return E_NOTIMPL;
824 static HRESULT WINAPI IDirect3DRM2Impl_Load(IDirect3DRM2* iface, LPVOID pObjSource, LPVOID pObjID,
825 LPIID * ppGUIDs, DWORD nb_GUIDs,
826 D3DRMLOADOPTIONS LOFlags, D3DRMLOADCALLBACK LoadProc,
827 LPVOID pArgLP, D3DRMLOADTEXTURECALLBACK LoadTextureProc,
828 LPVOID pArgLTP, LPDIRECT3DRMFRAME pParentFrame)
830 IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
832 FIXME("(%p/%p)->(%p,%p,%p,%d,%d,%p,%p,%p,%p,%p): stub\n", iface, This, pObjSource, pObjID,
833 ppGUIDs, nb_GUIDs, LOFlags, LoadProc, pArgLP, LoadTextureProc, pArgLTP, pParentFrame);
835 return E_NOTIMPL;
838 static HRESULT WINAPI IDirect3DRM2Impl_Tick(IDirect3DRM2* iface, D3DVALUE tick)
840 IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
842 FIXME("(%p/%p)->(%f): stub\n", iface, This, tick);
844 return E_NOTIMPL;
847 static HRESULT WINAPI IDirect3DRM2Impl_CreateProgressiveMesh(IDirect3DRM2* iface,
848 LPDIRECT3DRMPROGRESSIVEMESH * ppMesh)
850 IDirect3DRMImpl *This = impl_from_IDirect3DRM2(iface);
852 FIXME("(%p/%p)->(%p): stub\n", iface, This, ppMesh);
854 return E_NOTIMPL;
857 static const struct IDirect3DRM2Vtbl Direct3DRM2_Vtbl =
859 IDirect3DRM2Impl_QueryInterface,
860 IDirect3DRM2Impl_AddRef,
861 IDirect3DRM2Impl_Release,
862 IDirect3DRM2Impl_CreateObject,
863 IDirect3DRM2Impl_CreateFrame,
864 IDirect3DRM2Impl_CreateMesh,
865 IDirect3DRM2Impl_CreateMeshBuilder,
866 IDirect3DRM2Impl_CreateFace,
867 IDirect3DRM2Impl_CreateAnimation,
868 IDirect3DRM2Impl_CreateAnimationSet,
869 IDirect3DRM2Impl_CreateTexture,
870 IDirect3DRM2Impl_CreateLight,
871 IDirect3DRM2Impl_CreateLightRGB,
872 IDirect3DRM2Impl_Material,
873 IDirect3DRM2Impl_CreateDevice,
874 IDirect3DRM2Impl_CreateDeviceFromSurface,
875 IDirect3DRM2Impl_CreateDeviceFromD3D,
876 IDirect3DRM2Impl_CreateDeviceFromClipper,
877 IDirect3DRM2Impl_CreateTextureFromSurface,
878 IDirect3DRM2Impl_CreateShadow,
879 IDirect3DRM2Impl_CreateViewport,
880 IDirect3DRM2Impl_CreateWrap,
881 IDirect3DRM2Impl_CreateUserVisual,
882 IDirect3DRM2Impl_LoadTexture,
883 IDirect3DRM2Impl_LoadTextureFromResource,
884 IDirect3DRM2Impl_SetSearchPath,
885 IDirect3DRM2Impl_AddSearchPath,
886 IDirect3DRM2Impl_GetSearchPath,
887 IDirect3DRM2Impl_SetDefaultTextureColors,
888 IDirect3DRM2Impl_SetDefaultTextureShades,
889 IDirect3DRM2Impl_GetDevices,
890 IDirect3DRM2Impl_GetNamedObject,
891 IDirect3DRM2Impl_EnumerateObjects,
892 IDirect3DRM2Impl_Load,
893 IDirect3DRM2Impl_Tick,
894 IDirect3DRM2Impl_CreateProgressiveMesh
898 /*** IUnknown methods ***/
899 static HRESULT WINAPI IDirect3DRM3Impl_QueryInterface(IDirect3DRM3* iface, REFIID riid,
900 void** ppvObject)
902 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
903 return IDirect3DRM_QueryInterface(&This->IDirect3DRM_iface, riid, ppvObject);
906 static ULONG WINAPI IDirect3DRM3Impl_AddRef(IDirect3DRM3* iface)
908 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
910 TRACE("(%p/%p)\n", iface, This);
912 return InterlockedIncrement(&This->ref);
915 static ULONG WINAPI IDirect3DRM3Impl_Release(IDirect3DRM3* iface)
917 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
918 ULONG ref = InterlockedDecrement(&This->ref);
920 TRACE("(%p/%p)\n", iface, This);
922 if (!ref)
923 HeapFree(GetProcessHeap(), 0, This);
925 return ref;
928 /*** IDirect3DRM3 methods ***/
929 static HRESULT WINAPI IDirect3DRM3Impl_CreateObject(IDirect3DRM3* iface, REFCLSID rclsid,
930 LPUNKNOWN unkwn, REFIID riid, LPVOID* object)
932 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
934 FIXME("(%p/%p)->(%s,%p,%s,%p): stub\n", iface, This, debugstr_guid(rclsid), unkwn,
935 debugstr_guid(riid), object);
937 return E_NOTIMPL;
940 static HRESULT WINAPI IDirect3DRM3Impl_CreateFrame(IDirect3DRM3* iface,
941 LPDIRECT3DRMFRAME3 FrameParent,
942 LPDIRECT3DRMFRAME3* Frame)
944 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
946 TRACE("(%p/%p)->(%p,%p)\n", iface, This, FrameParent, Frame);
948 if (FrameParent)
949 FIXME("(%p/%p): Parent frame not yet supported\n", iface, This);
951 return Direct3DRMFrame_create(&IID_IDirect3DRMFrame3, (IUnknown**)Frame);
954 static HRESULT WINAPI IDirect3DRM3Impl_CreateMesh(IDirect3DRM3* iface, LPDIRECT3DRMMESH* Mesh)
956 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
958 FIXME("(%p/%p)->(%p): stub\n", iface, This, Mesh);
960 return E_NOTIMPL;
963 static HRESULT WINAPI IDirect3DRM3Impl_CreateMeshBuilder(IDirect3DRM3* iface,
964 LPDIRECT3DRMMESHBUILDER3* ppMeshBuilder)
966 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
968 TRACE("(%p/%p)->(%p)\n", iface, This, ppMeshBuilder);
970 return Direct3DRMMeshBuilder_create(&IID_IDirect3DRMMeshBuilder3, (IUnknown**)ppMeshBuilder);
973 static HRESULT WINAPI IDirect3DRM3Impl_CreateFace(IDirect3DRM3* iface, LPDIRECT3DRMFACE2* Face)
975 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
977 FIXME("(%p/%p)->(%p): stub\n", iface, This, Face);
979 return E_NOTIMPL;
982 static HRESULT WINAPI IDirect3DRM3Impl_CreateAnimation(IDirect3DRM3* iface,
983 LPDIRECT3DRMANIMATION2* Animation)
985 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
987 FIXME("(%p/%p)->(%p): stub\n", iface, This, Animation);
989 return E_NOTIMPL;
992 static HRESULT WINAPI IDirect3DRM3Impl_CreateAnimationSet(IDirect3DRM3* iface,
993 LPDIRECT3DRMANIMATIONSET2* AnimationSet)
995 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
997 FIXME("(%p/%p)->(%p): stub\n", iface, This, AnimationSet);
999 return E_NOTIMPL;
1002 static HRESULT WINAPI IDirect3DRM3Impl_CreateTexture(IDirect3DRM3* iface, LPD3DRMIMAGE Image,
1003 LPDIRECT3DRMTEXTURE3* Texture)
1005 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
1007 FIXME("(%p/%p)->(%p,%p): stub\n", iface, This, Image, Texture);
1009 return E_NOTIMPL;
1012 static HRESULT WINAPI IDirect3DRM3Impl_CreateLight(IDirect3DRM3* iface, D3DRMLIGHTTYPE type,
1013 D3DCOLOR color, LPDIRECT3DRMLIGHT* Light)
1015 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
1017 FIXME("(%p/%p)->(%d,%d,%p): stub\n", iface, This, type, color, Light);
1019 return E_NOTIMPL;
1022 static HRESULT WINAPI IDirect3DRM3Impl_CreateLightRGB(IDirect3DRM3* iface, D3DRMLIGHTTYPE type,
1023 D3DVALUE red, D3DVALUE green, D3DVALUE blue,
1024 LPDIRECT3DRMLIGHT* Light)
1026 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
1028 FIXME("(%p/%p)->(%d,%f,%f,%f,%p): stub\n", iface, This, type, red, green, blue, Light);
1030 return E_NOTIMPL;
1033 static HRESULT WINAPI IDirect3DRM3Impl_Material(IDirect3DRM3* iface, D3DVALUE m,
1034 LPDIRECT3DRMMATERIAL2* Material)
1036 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
1038 FIXME("(%p/%p)->(%f,%p): stub\n", iface, This, m, Material);
1040 return E_NOTIMPL;
1043 static HRESULT WINAPI IDirect3DRM3Impl_CreateDevice(IDirect3DRM3* iface, DWORD width, DWORD height,
1044 LPDIRECT3DRMDEVICE3* device)
1046 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
1048 FIXME("(%p/%p)->(%d,%d,%p): stub\n", iface, This, width, height, device);
1050 return E_NOTIMPL;
1053 static HRESULT WINAPI IDirect3DRM3Impl_CreateDeviceFromSurface(IDirect3DRM3* iface, LPGUID pGUID,
1054 LPDIRECTDRAW dd,
1055 LPDIRECTDRAWSURFACE back,
1056 LPDIRECT3DRMDEVICE3* device)
1058 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
1060 FIXME("(%p/%p)->(%s,%p,%p,%p): stub\n", iface, This, debugstr_guid(pGUID), dd, back, device);
1062 return E_NOTIMPL;
1065 static HRESULT WINAPI IDirect3DRM3Impl_CreateDeviceFromD3D(IDirect3DRM3* iface, LPDIRECT3D2 d3d,
1066 LPDIRECT3DDEVICE2 d3ddev,
1067 LPDIRECT3DRMDEVICE3* device)
1069 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
1071 FIXME("(%p/%p)->(%p,%p,%p): stub\n", iface, This, d3d, d3ddev, device);
1073 return E_NOTIMPL;
1076 static HRESULT WINAPI IDirect3DRM3Impl_CreateDeviceFromClipper(IDirect3DRM3* iface,
1077 LPDIRECTDRAWCLIPPER clipper,
1078 LPGUID GUID, int width, int height,
1079 LPDIRECT3DRMDEVICE3* device)
1081 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
1083 FIXME("(%p/%p)->(%p,%s,%d,%d,%p): stub\n", iface, This, clipper, debugstr_guid(GUID),
1084 width, height, device);
1086 return E_NOTIMPL;
1089 static HRESULT WINAPI IDirect3DRM3Impl_CreateShadow(IDirect3DRM3* iface, LPUNKNOWN Visual1,
1090 LPDIRECT3DRMLIGHT Light, D3DVALUE px,
1091 D3DVALUE py, D3DVALUE pz, D3DVALUE nx,
1092 D3DVALUE ny, D3DVALUE nz,
1093 LPDIRECT3DRMSHADOW2* Visual2)
1095 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
1097 FIXME("(%p/%p)->(%p,%p,%f,%f,%f,%f,%f,%f,%p): stub\n", iface, This, Visual1, Light, px, py, pz,
1098 nx, ny, nz, Visual2);
1100 return E_NOTIMPL;
1103 static HRESULT WINAPI IDirect3DRM3Impl_CreateTextureFromSurface(IDirect3DRM3* iface,
1104 LPDIRECTDRAWSURFACE surface,
1105 LPDIRECT3DRMTEXTURE3* texture)
1107 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
1109 FIXME("(%p/%p)->(%p,%p): stub\n", iface, This, surface, texture);
1111 return E_NOTIMPL;
1114 static HRESULT WINAPI IDirect3DRM3Impl_CreateViewport(IDirect3DRM3* iface,
1115 LPDIRECT3DRMDEVICE3 Device,
1116 LPDIRECT3DRMFRAME3 frame, DWORD xpos,
1117 DWORD ypos, DWORD width, DWORD height,
1118 LPDIRECT3DRMVIEWPORT2* viewport)
1120 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
1122 FIXME("(%p/%p)->(%p,%p,%d,%d,%d,%d,%p): stub\n", iface, This, Device, frame, xpos, ypos, width,
1123 height, viewport);
1125 return E_NOTIMPL;
1128 static HRESULT WINAPI IDirect3DRM3Impl_CreateWrap(IDirect3DRM3* iface, D3DRMWRAPTYPE type,
1129 LPDIRECT3DRMFRAME3 frame,
1130 D3DVALUE ox, D3DVALUE oy, D3DVALUE oz,
1131 D3DVALUE dx, D3DVALUE dy, D3DVALUE dz,
1132 D3DVALUE ux, D3DVALUE uy, D3DVALUE uz,
1133 D3DVALUE ou, D3DVALUE ov, D3DVALUE su,
1134 D3DVALUE sv, LPDIRECT3DRMWRAP* wrap)
1136 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
1138 FIXME("(%p/%p)->(%d,%p,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%p): stub\n", iface, This, type,
1139 frame, ox, oy, oz, dx, dy, dz, ux, uy, uz, ou, ov, su, sv, wrap);
1141 return E_NOTIMPL;
1144 static HRESULT WINAPI IDirect3DRM3Impl_CreateUserVisual(IDirect3DRM3* iface,
1145 D3DRMUSERVISUALCALLBACK cb, LPVOID arg,
1146 LPDIRECT3DRMUSERVISUAL* UserVisual)
1148 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
1150 FIXME("(%p/%p)->(%p,%p,%p): stub\n", iface, This, cb, arg, UserVisual);
1152 return E_NOTIMPL;
1155 static HRESULT WINAPI IDirect3DRM3Impl_LoadTexture(IDirect3DRM3* iface, const char* filename,
1156 LPDIRECT3DRMTEXTURE3* Texture)
1158 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
1160 FIXME("(%p/%p)->(%s,%p): stub\n", iface, This, filename, Texture);
1162 return E_NOTIMPL;
1165 static HRESULT WINAPI IDirect3DRM3Impl_LoadTextureFromResource(IDirect3DRM3* iface, HMODULE mod,
1166 LPCSTR strName, LPCSTR strType,
1167 LPDIRECT3DRMTEXTURE3 * ppTexture)
1169 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
1171 FIXME("(%p/%p)->(%p,%p,%p,%p): stub\n", iface, This, mod, strName, strType, ppTexture);
1173 return E_NOTIMPL;
1176 static HRESULT WINAPI IDirect3DRM3Impl_SetSearchPath(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_AddSearchPath(IDirect3DRM3* iface, LPCSTR path)
1187 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
1189 FIXME("(%p/%p)->(%s): stub\n", iface, This, path);
1191 return E_NOTIMPL;
1194 static HRESULT WINAPI IDirect3DRM3Impl_GetSearchPath(IDirect3DRM3* iface, DWORD* size_return,
1195 LPSTR path_return)
1197 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
1199 FIXME("(%p/%p)->(%p,%s): stub\n", iface, This, size_return, path_return);
1201 return E_NOTIMPL;
1204 static HRESULT WINAPI IDirect3DRM3Impl_SetDefaultTextureColors(IDirect3DRM3* iface, DWORD nb_colors)
1206 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
1208 FIXME("(%p/%p)->(%d): stub\n", iface, This, nb_colors);
1210 return E_NOTIMPL;
1213 static HRESULT WINAPI IDirect3DRM3Impl_SetDefaultTextureShades(IDirect3DRM3* iface, DWORD nb_shades)
1215 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
1217 FIXME("(%p/%p)->(%d): stub\n", iface, This, nb_shades);
1219 return E_NOTIMPL;
1222 static HRESULT WINAPI IDirect3DRM3Impl_GetDevices(IDirect3DRM3* iface,
1223 LPDIRECT3DRMDEVICEARRAY* DeviceArray)
1225 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
1227 FIXME("(%p/%p)->(%p): stub\n", iface, This, DeviceArray);
1229 return E_NOTIMPL;
1232 static HRESULT WINAPI IDirect3DRM3Impl_GetNamedObject(IDirect3DRM3* iface, const char* Name,
1233 LPDIRECT3DRMOBJECT* Object)
1235 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
1237 FIXME("(%p/%p)->(%s,%p): stub\n", iface, This, Name, Object);
1239 return E_NOTIMPL;
1242 static HRESULT WINAPI IDirect3DRM3Impl_EnumerateObjects(IDirect3DRM3* iface, D3DRMOBJECTCALLBACK cb,
1243 LPVOID arg)
1245 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
1247 FIXME("(%p/%p)->(%p,%p): stub\n", iface, This, cb, arg);
1249 return E_NOTIMPL;
1252 static HRESULT WINAPI IDirect3DRM3Impl_Load(IDirect3DRM3* iface, LPVOID ObjSource, LPVOID ObjID,
1253 LPIID* GUIDs, DWORD nb_GUIDs, D3DRMLOADOPTIONS LOFlags,
1254 D3DRMLOADCALLBACK LoadProc, LPVOID ArgLP,
1255 D3DRMLOADTEXTURECALLBACK LoadTextureProc, LPVOID ArgLTP,
1256 LPDIRECT3DRMFRAME3 ParentFrame)
1258 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
1260 FIXME("(%p/%p)->(%p,%p,%p,%d,%d,%p,%p,%p,%p,%p): stub\n", iface, This, ObjSource, ObjID, GUIDs,
1261 nb_GUIDs, LOFlags, LoadProc, ArgLP, LoadTextureProc, ArgLTP, ParentFrame);
1263 return E_NOTIMPL;
1266 static HRESULT WINAPI IDirect3DRM3Impl_Tick(IDirect3DRM3* iface, D3DVALUE tick)
1268 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
1270 FIXME("(%p/%p)->(%f): stub\n", iface, This, tick);
1272 return E_NOTIMPL;
1275 static HRESULT WINAPI IDirect3DRM3Impl_CreateProgressiveMesh(IDirect3DRM3* iface,
1276 LPDIRECT3DRMPROGRESSIVEMESH Mesh)
1278 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
1280 FIXME("(%p/%p)->(%p): stub\n", iface, This, Mesh);
1282 return E_NOTIMPL;
1285 static HRESULT WINAPI IDirect3DRM3Impl_RegisterClient(IDirect3DRM3* iface, REFGUID rguid,
1286 LPDWORD id)
1288 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
1290 FIXME("(%p/%p)->(%s, %p): stub\n", iface, This, debugstr_guid(rguid), id);
1292 return E_NOTIMPL;
1295 static HRESULT WINAPI IDirect3DRM3Impl_UnregisterClient(IDirect3DRM3* iface, REFGUID rguid)
1297 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
1299 FIXME("(%p/%p)->(%s): stub\n", iface, This, debugstr_guid(rguid));
1301 return E_NOTIMPL;
1304 static HRESULT WINAPI IDirect3DRM3Impl_CreateClippedVisual(IDirect3DRM3* iface,
1305 LPDIRECT3DRMVISUAL vis,
1306 LPDIRECT3DRMCLIPPEDVISUAL* clippedvis)
1308 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
1310 FIXME("(%p/%p)->(%p, %p): stub\n", iface, This, vis, clippedvis);
1312 return E_NOTIMPL;
1315 static HRESULT WINAPI IDirect3DRM3Impl_SetOptions(IDirect3DRM3* iface, DWORD opt)
1317 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
1319 FIXME("(%p/%p)->(%d): stub\n", iface, This, opt);
1321 return E_NOTIMPL;
1324 static HRESULT WINAPI IDirect3DRM3Impl_GetOptions(IDirect3DRM3* iface, LPDWORD opt)
1326 IDirect3DRMImpl *This = impl_from_IDirect3DRM3(iface);
1328 FIXME("(%p/%p)->(%p): stub\n", iface, This, opt);
1330 return E_NOTIMPL;
1333 static const struct IDirect3DRM3Vtbl Direct3DRM3_Vtbl =
1335 IDirect3DRM3Impl_QueryInterface,
1336 IDirect3DRM3Impl_AddRef,
1337 IDirect3DRM3Impl_Release,
1338 IDirect3DRM3Impl_CreateObject,
1339 IDirect3DRM3Impl_CreateFrame,
1340 IDirect3DRM3Impl_CreateMesh,
1341 IDirect3DRM3Impl_CreateMeshBuilder,
1342 IDirect3DRM3Impl_CreateFace,
1343 IDirect3DRM3Impl_CreateAnimation,
1344 IDirect3DRM3Impl_CreateAnimationSet,
1345 IDirect3DRM3Impl_CreateTexture,
1346 IDirect3DRM3Impl_CreateLight,
1347 IDirect3DRM3Impl_CreateLightRGB,
1348 IDirect3DRM3Impl_Material,
1349 IDirect3DRM3Impl_CreateDevice,
1350 IDirect3DRM3Impl_CreateDeviceFromSurface,
1351 IDirect3DRM3Impl_CreateDeviceFromD3D,
1352 IDirect3DRM3Impl_CreateDeviceFromClipper,
1353 IDirect3DRM3Impl_CreateTextureFromSurface,
1354 IDirect3DRM3Impl_CreateShadow,
1355 IDirect3DRM3Impl_CreateViewport,
1356 IDirect3DRM3Impl_CreateWrap,
1357 IDirect3DRM3Impl_CreateUserVisual,
1358 IDirect3DRM3Impl_LoadTexture,
1359 IDirect3DRM3Impl_LoadTextureFromResource,
1360 IDirect3DRM3Impl_SetSearchPath,
1361 IDirect3DRM3Impl_AddSearchPath,
1362 IDirect3DRM3Impl_GetSearchPath,
1363 IDirect3DRM3Impl_SetDefaultTextureColors,
1364 IDirect3DRM3Impl_SetDefaultTextureShades,
1365 IDirect3DRM3Impl_GetDevices,
1366 IDirect3DRM3Impl_GetNamedObject,
1367 IDirect3DRM3Impl_EnumerateObjects,
1368 IDirect3DRM3Impl_Load,
1369 IDirect3DRM3Impl_Tick,
1370 IDirect3DRM3Impl_CreateProgressiveMesh,
1371 IDirect3DRM3Impl_RegisterClient,
1372 IDirect3DRM3Impl_UnregisterClient,
1373 IDirect3DRM3Impl_CreateClippedVisual,
1374 IDirect3DRM3Impl_SetOptions,
1375 IDirect3DRM3Impl_GetOptions