master
  1#undef INTERFACE
  2/*
  3 * Copyright (C) 2005 Peter Berg Larsen
  4 * Copyright (C) 2010 Christian Costa
  5 *
  6 * This library is free software; you can redistribute it and/or
  7 * modify it under the terms of the GNU Lesser General Public
  8 * License as published by the Free Software Foundation; either
  9 * version 2.1 of the License, or (at your option) any later version.
 10 *
 11 * This library is distributed in the hope that it will be useful,
 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 14 * Lesser General Public License for more details.
 15 *
 16 * You should have received a copy of the GNU Lesser General Public
 17 * License along with this library; if not, write to the Free Software
 18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
 19 */
 20
 21#ifndef __D3DRM_H__
 22#define __D3DRM_H__
 23
 24#include <ddraw.h>
 25
 26typedef struct IDirect3DRM *LPDIRECT3DRM, **LPLPDIRECT3DRM;
 27
 28#include <d3drmobj.h>
 29
 30#ifdef __cplusplus
 31extern "C" {
 32#endif
 33
 34/* Direct3DRM Object CLSID */
 35DEFINE_GUID(CLSID_CDirect3DRM,              0x4516ec41, 0x8f20, 0x11d0, 0x9b, 0x6d, 0x00, 0x00, 0xc0, 0x78, 0x1b, 0xc3);
 36
 37/* Direct3DRM Interface GUIDs */
 38DEFINE_GUID(IID_IDirect3DRM,                0x2bc49361, 0x8327, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
 39DEFINE_GUID(IID_IDirect3DRM2,               0x4516ecc8, 0x8f20, 0x11d0, 0x9b, 0x6d, 0x00, 0x00, 0xc0, 0x78, 0x1b, 0xc3);
 40DEFINE_GUID(IID_IDirect3DRM3,               0x4516ec83, 0x8f20, 0x11d0, 0x9b, 0x6d, 0x00, 0x00, 0xc0, 0x78, 0x1b, 0xc3);
 41
 42typedef struct IDirect3DRM2 *LPDIRECT3DRM2, **LPLPDIRECT3DRM2;
 43typedef struct IDirect3DRM3 *LPDIRECT3DRM3, **LPLPDIRECT3DRM3;
 44
 45HRESULT WINAPI Direct3DRMCreate(struct IDirect3DRM **d3drm);
 46
 47/*****************************************************************************
 48 * IDirect3DRMObject interface
 49 */
 50#ifdef WINE_NO_UNICODE_MACROS
 51#undef GetClassName
 52#endif
 53#define INTERFACE IDirect3DRM
 54DECLARE_INTERFACE_(IDirect3DRM,IUnknown)
 55{
 56    /*** IUnknown methods ***/
 57    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
 58    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
 59    STDMETHOD_(ULONG,Release)(THIS) PURE;
 60    /*** IDirect3DRM methods ***/
 61    STDMETHOD(CreateObject)(THIS_ REFCLSID clsid, IUnknown *outer, REFIID iid, void **out) PURE;
 62    STDMETHOD(CreateFrame)(THIS_ IDirect3DRMFrame *parent, IDirect3DRMFrame **frame) PURE;
 63    STDMETHOD(CreateMesh)(THIS_ IDirect3DRMMesh **mesh) PURE;
 64    STDMETHOD(CreateMeshBuilder)(THIS_ IDirect3DRMMeshBuilder **mesh_builder) PURE;
 65    STDMETHOD(CreateFace)(THIS_ IDirect3DRMFace **face) PURE;
 66    STDMETHOD(CreateAnimation)(THIS_ IDirect3DRMAnimation **animation) PURE;
 67    STDMETHOD(CreateAnimationSet)(THIS_ IDirect3DRMAnimationSet **set) PURE;
 68    STDMETHOD(CreateTexture)(THIS_ D3DRMIMAGE *image, IDirect3DRMTexture **texture) PURE;
 69    STDMETHOD(CreateLight)(THIS_ D3DRMLIGHTTYPE type, D3DCOLOR color, IDirect3DRMLight **light) PURE;
 70    STDMETHOD(CreateLightRGB)(THIS_ D3DRMLIGHTTYPE type, D3DVALUE r, D3DVALUE g, D3DVALUE b,
 71            IDirect3DRMLight **light) PURE;
 72    STDMETHOD(CreateMaterial)(THIS_ D3DVALUE power, IDirect3DRMMaterial **material) PURE;
 73    STDMETHOD(CreateDevice)(THIS_ DWORD width, DWORD height, IDirect3DRMDevice **device) PURE;
 74    STDMETHOD(CreateDeviceFromSurface)(THIS_ GUID *guid, IDirectDraw *ddraw,
 75            IDirectDrawSurface *surface, IDirect3DRMDevice **device) PURE;
 76    STDMETHOD(CreateDeviceFromD3D)(THIS_ IDirect3D *d3d, IDirect3DDevice *d3d_device,
 77            IDirect3DRMDevice **device) PURE;
 78    STDMETHOD(CreateDeviceFromClipper)(THIS_ IDirectDrawClipper *clipper, GUID *guid,
 79            int width, int height, IDirect3DRMDevice **device) PURE;
 80    STDMETHOD(CreateTextureFromSurface)(THIS_ IDirectDrawSurface *surface,
 81            IDirect3DRMTexture **texture) PURE;
 82    STDMETHOD(CreateShadow)(THIS_ IDirect3DRMVisual *visual, IDirect3DRMLight *light,
 83            D3DVALUE px, D3DVALUE py, D3DVALUE pz, D3DVALUE nx, D3DVALUE ny, D3DVALUE nz,
 84            IDirect3DRMVisual **shadow) PURE;
 85    STDMETHOD(CreateViewport)(THIS_ IDirect3DRMDevice *device, IDirect3DRMFrame *camera,
 86            DWORD x, DWORD y, DWORD width, DWORD height, IDirect3DRMViewport **viewport) PURE;
 87    STDMETHOD(CreateWrap)(THIS_ D3DRMWRAPTYPE type, IDirect3DRMFrame *reference, D3DVALUE ox, D3DVALUE oy, D3DVALUE oz,
 88        D3DVALUE dx, D3DVALUE dy, D3DVALUE dz, D3DVALUE ux, D3DVALUE uy, D3DVALUE uz, D3DVALUE ou, D3DVALUE ov,
 89        D3DVALUE su, D3DVALUE sv, IDirect3DRMWrap **wrap) PURE;
 90    STDMETHOD(CreateUserVisual)(THIS_ D3DRMUSERVISUALCALLBACK cb, void *ctx, IDirect3DRMUserVisual **visual) PURE;
 91    STDMETHOD(LoadTexture)(THIS_ const char *filename, IDirect3DRMTexture **texture) PURE;
 92    STDMETHOD(LoadTextureFromResource)(THIS_ HRSRC resource, IDirect3DRMTexture **texture) PURE;
 93    STDMETHOD(SetSearchPath)(THIS_ const char *path) PURE;
 94    STDMETHOD(AddSearchPath)(THIS_ const char *path) PURE;
 95    STDMETHOD(GetSearchPath)(THIS_ DWORD *size, char *path) PURE;
 96    STDMETHOD(SetDefaultTextureColors)(THIS_ DWORD) PURE;
 97    STDMETHOD(SetDefaultTextureShades)(THIS_ DWORD) PURE;
 98    STDMETHOD(GetDevices)(THIS_ IDirect3DRMDeviceArray **array) PURE;
 99    STDMETHOD(GetNamedObject)(THIS_ const char *name, IDirect3DRMObject **object) PURE;
100    STDMETHOD(EnumerateObjects)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
101    STDMETHOD(Load)(THIS_ void *source, void *object_id, IID **iids, DWORD iid_count, D3DRMLOADOPTIONS flags,
102            D3DRMLOADCALLBACK load_cb, void *load_ctx, D3DRMLOADTEXTURECALLBACK load_tex_cb, void *load_tex_ctx,
103            IDirect3DRMFrame *parent_frame) PURE;
104    STDMETHOD(Tick)(THIS_ D3DVALUE) PURE;
105};
106#undef INTERFACE
107
108#if !defined(__cplusplus) || defined(CINTERFACE)
109/*** IUnknown methods ***/
110#define IDirect3DRM_QueryInterface(p,a,b)                         (p)->lpVtbl->QueryInterface(p,a,b)
111#define IDirect3DRM_AddRef(p)                                     (p)->lpVtbl->AddRef(p)
112#define IDirect3DRM_Release(p)                                    (p)->lpVtbl->Release(p)
113/*** IDirect3DRM methods ***/
114#define IDirect3DRM_CreateObject(p,a,b,c,d)                       (p)->lpVtbl->CreateObject(p,a,b,c,d)
115#define IDirect3DRM_CreateFrame(p,a,b)                            (p)->lpVtbl->CreateFrame(p,a,b)
116#define IDirect3DRM_CreateMesh(p,a)                               (p)->lpVtbl->CreateMesh(p,a)
117#define IDirect3DRM_CreateMeshBuilder(p,a)                        (p)->lpVtbl->CreateMeshBuilder(p,a)
118#define IDirect3DRM_CreateFace(p,a)                               (p)->lpVtbl->CreateFace(p,a)
119#define IDirect3DRM_CreateAnimation(p,a)                          (p)->lpVtbl->CreateAnimation(p,a)
120#define IDirect3DRM_CreateAnimationSet(p,a)                       (p)->lpVtbl->CreateAnimationSet(p,a)
121#define IDirect3DRM_CreateTexture(p,a,b)                          (p)->lpVtbl->CreateTexture(p,a,b)
122#define IDirect3DRM_CreateLight(p,a,b,c)                          (p)->lpVtbl->CreateLight(p,a,b,c)
123#define IDirect3DRM_CreateLightRGB(p,a,b,c,d,e)                   (p)->lpVtbl->CreateLightRGB(p,a,b,c,d,e)
124#define IDirect3DRM_CreateMaterial(p,a,b)                         (p)->lpVtbl->CreateMaterial(p,a,b)
125#define IDirect3DRM_CreateDevice(p,a,b,c)                         (p)->lpVtbl->CreateDevice(p,a,b,c)
126#define IDirect3DRM_CreateDeviceFromSurface(p,a,b,c,d)            (p)->lpVtbl->CreateDeviceFromSurface(p,a,b,c,d)
127#define IDirect3DRM_CreateDeviceFromD3D(p,a,b,c)                  (p)->lpVtbl->CreateDeviceFromD3D(p,a,b,c)
128#define IDirect3DRM_CreateDeviceFromClipper(p,a,b,c,d,e)          (p)->lpVtbl->CreateDeviceFromClipper(p,a,b,c,d,e)
129#define IDirect3DRM_CreateTextureFromSurface(p,a,b)               (p)->lpVtbl->CreateTextureFromSurface(p,a,b)
130#define IDirect3DRM_CreateShadow(p,a,b,c,d,e,f,g,h,i)             (p)->lpVtbl->CreateShadow(p,a,b,c,d,e,f,g,h,i)
131#define IDirect3DRM_CreateViewport(p,a,b,c,d,e,f,g)               (p)->lpVtbl->CreateViewport(p,a,b,c,d,e,f,g)
132#define IDirect3DRM_CreateWrap(p,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,q) (p)->lpVtbl->CreateWrap(p,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,q)
133#define IDirect3DRM_CreateUserVisual(p,a,b,c)                     (p)->lpVtbl->CreateUserVisual(p,a,b,c)
134#define IDirect3DRM_LoadTexture(p,a,b)                            (p)->lpVtbl->LoadTexture(p,a,b)
135#define IDirect3DRM_LoadTextureFromResource(p,a,b)                (p)->lpVtbl->LoadTextureFromResource(p,a,b)
136#define IDirect3DRM_SetSearchPath(p,a)                            (p)->lpVtbl->SetSearchPath(p,a)
137#define IDirect3DRM_AddSearchPath(p,a)                            (p)->lpVtbl->AddSearchPath(p,a)
138#define IDirect3DRM_GetSearchPath(p,a,b)                          (p)->lpVtbl->GetSearchPath(p,a,b)
139#define IDirect3DRM_SetDefaultTextureColors(p,a)                  (p)->lpVtbl->SetDefaultTextureColors(p,a)
140#define IDirect3DRM_SetDefaultTextureShades(p,a)                  (p)->lpVtbl->SetDefaultTextureShades(p,a)
141#define IDirect3DRM_GetDevices(p,a)                               (p)->lpVtbl->GetDevices(p,a)
142#define IDirect3DRM_GetNamedObject(p,a,b)                         (p)->lpVtbl->GetNamedObject(p,a,b)
143#define IDirect3DRM_EnumerateObjects(p,a,b)                       (p)->lpVtbl->EnumerateObjects(p,a,b)
144#define IDirect3DRM_Load(p,a,b,c,d,e,f,g,h,i,j)                   (p)->lpVtbl->Load(p,a,b,c,d,e,f,g,h,i,j)
145#define IDirect3DRM_Tick(p,a)                                     (p)->lpVtbl->Tick(p,a)
146#else
147/*** IUnknown methods ***/
148#define IDirect3DRM_QueryInterface(p,a,b)                         (p)->QueryInterface(a,b)
149#define IDirect3DRM_AddRef(p)                                     (p)->AddRef()
150#define IDirect3DRM_Release(p)                                    (p)->Release()
151/*** IDirect3DRM methods ***/
152#define IDirect3DRM_CreateObject(p,a,b,c,d)                       (p)->CreateObject(a,b,c,d)
153#define IDirect3DRM_CreateFrame(p,a,b)                            (p)->CreateFrame(a,b)
154#define IDirect3DRM_CreateMesh(p,a)                               (p)->CreateMesh(a)
155#define IDirect3DRM_CreateMeshBuilder(p,a)                        (p)->CreateMeshBuilder(a)
156#define IDirect3DRM_CreateFace(p,a)                               (p)->CreateFace(a)
157#define IDirect3DRM_CreateAnimation(p,a)                          (p)->CreateAnimation(a)
158#define IDirect3DRM_CreateAnimationSet(p,a)                       (p)->CreateAnimationSet(a)
159#define IDirect3DRM_CreateTexture(p,a,b)                          (p)->CreateTexture(a,b)
160#define IDirect3DRM_CreateLight(p,a,b,c)                          (p)->CreateLight(a,b,c)
161#define IDirect3DRM_CreateLightRGB(p,a,b,c,d,e)                   (p)->CreateLightRGB(a,b,c,d,e)
162#define IDirect3DRM_CreateMaterial(p,a,b)                         (p)->CreateMaterial(a,b)
163#define IDirect3DRM_CreateDevice(p,a,b,c)                         (p)->CreateDevice(a,b,c)
164#define IDirect3DRM_CreateDeviceFromSurface(p,a,b,c,d)            (p)->CreateDeviceFromSurface(a,b,c,d)
165#define IDirect3DRM_CreateDeviceFromD3D(p,a,b,c)                  (p)->CreateDeviceFromD3D(a,b,c)
166#define IDirect3DRM_CreateDeviceFromClipper(p,a,b,c,d,e)          (p)->CreateDeviceFromClipper(a,b,c,d,e)
167#define IDirect3DRM_CreateTextureFromSurface(p,a,b)               (p)->CreateTextureFromSurface(a,b)
168#define IDirect3DRM_CreateShadow(p,a,b,c,d,e,f,g,h,i)             (p)->CreateShadow(a,b,c,d,e,f,g,h,i)
169#define IDirect3DRM_CreateViewport(p,a,b,c,d,e,f,g)               (p)->CreateViewport(a,b,c,d,e,f,g)
170#define IDirect3DRM_CreateWrap(p,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,q) (p)->CreateWrap(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,q)
171#define IDirect3DRM_CreateUserVisual(p,a,b,c)                     (p)->CreateUserVisual(a,b,c)
172#define IDirect3DRM_LoadTexture(p,a,b)                            (p)->LoadTexture(a,b)
173#define IDirect3DRM_LoadTextureFromResource(p,a,b)                (p)->LoadTextureFromResource(a,b)
174#define IDirect3DRM_SetSearchPath(p,a)                            (p)->SetSearchPath(a)
175#define IDirect3DRM_AddSearchPath(p,a)                            (p)->AddSearchPath(a)
176#define IDirect3DRM_GetSearchPath(p,a,b)                          (p)->GetSearchPath(a,b)
177#define IDirect3DRM_SetDefaultTextureColors(p,a)                  (p)->SetDefaultTextureColors(a)
178#define IDirect3DRM_SetDefaultTextureShades(p,a)                  (p)->SetDefaultTextureShades(a)
179#define IDirect3DRM_GetDevices(p,a)                               (p)->GetDevices(a)
180#define IDirect3DRM_GetNamedObject(p,a,b)                         (p)->GetNamedObject(a,b)
181#define IDirect3DRM_EnumerateObjects(p,a,b)                       (p)->EnumerateObjects(a,b)
182#define IDirect3DRM_Load(p,a,b,c,d,e,f,g,h,i,j)                   (p)->Load(a,b,c,d,e,f,g,h,i,j)
183#define IDirect3DRM_Tick(p,a)                                     (p)->Tick(a)
184#endif
185
186/*****************************************************************************
187 * IDirect3DRM2 interface
188 */
189#ifdef WINE_NO_UNICODE_MACROS
190#undef GetClassName
191#endif
192#define INTERFACE IDirect3DRM2
193DECLARE_INTERFACE_(IDirect3DRM2,IUnknown)
194{
195    /*** IUnknown methods ***/
196    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
197    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
198    STDMETHOD_(ULONG,Release)(THIS) PURE;
199    /*** IDirect3DRM2 methods ***/
200    STDMETHOD(CreateObject)(THIS_ REFCLSID clsid, IUnknown *outer, REFIID iid, void **out) PURE;
201    STDMETHOD(CreateFrame)(THIS_ IDirect3DRMFrame *parent, IDirect3DRMFrame2 **frame) PURE;
202    STDMETHOD(CreateMesh)(THIS_ IDirect3DRMMesh **mesh) PURE;
203    STDMETHOD(CreateMeshBuilder)(THIS_ IDirect3DRMMeshBuilder2 **mesh_builder) PURE;
204    STDMETHOD(CreateFace)(THIS_ IDirect3DRMFace **face) PURE;
205    STDMETHOD(CreateAnimation)(THIS_ IDirect3DRMAnimation **animation) PURE;
206    STDMETHOD(CreateAnimationSet)(THIS_ IDirect3DRMAnimationSet **set) PURE;
207    STDMETHOD(CreateTexture)(THIS_ D3DRMIMAGE *image, IDirect3DRMTexture2 **texture) PURE;
208    STDMETHOD(CreateLight)(THIS_ D3DRMLIGHTTYPE type, D3DCOLOR color, IDirect3DRMLight **light) PURE;
209    STDMETHOD(CreateLightRGB)(THIS_ D3DRMLIGHTTYPE type, D3DVALUE r, D3DVALUE g, D3DVALUE b,
210            IDirect3DRMLight **light) PURE;
211    STDMETHOD(CreateMaterial)(THIS_ D3DVALUE power, IDirect3DRMMaterial **material) PURE;
212    STDMETHOD(CreateDevice)(THIS_ DWORD width, DWORD height, IDirect3DRMDevice2 **device) PURE;
213    STDMETHOD(CreateDeviceFromSurface)(THIS_ GUID *guid, IDirectDraw *ddraw,
214            IDirectDrawSurface *surface, IDirect3DRMDevice2 **device) PURE;
215    STDMETHOD(CreateDeviceFromD3D)(THIS_ IDirect3D2 *d3d, IDirect3DDevice2 *d3d_device,
216            IDirect3DRMDevice2 **device) PURE;
217    STDMETHOD(CreateDeviceFromClipper)(THIS_ IDirectDrawClipper *clipper, GUID *guid,
218            int width, int height, IDirect3DRMDevice2 **device) PURE;
219    STDMETHOD(CreateTextureFromSurface)(THIS_ IDirectDrawSurface *surface,
220            IDirect3DRMTexture2 **texture) PURE;
221    STDMETHOD(CreateShadow)(THIS_ IDirect3DRMVisual *visual, IDirect3DRMLight *light,
222            D3DVALUE px, D3DVALUE py, D3DVALUE pz, D3DVALUE nx, D3DVALUE ny, D3DVALUE nz,
223            IDirect3DRMVisual **shadow) PURE;
224    STDMETHOD(CreateViewport)(THIS_ IDirect3DRMDevice *device, IDirect3DRMFrame *camera,
225            DWORD x, DWORD y, DWORD width, DWORD height, IDirect3DRMViewport **viewport) PURE;
226    STDMETHOD(CreateWrap)(THIS_ D3DRMWRAPTYPE type, IDirect3DRMFrame *reference, D3DVALUE ox, D3DVALUE oy, D3DVALUE oz,
227        D3DVALUE dx, D3DVALUE dy, D3DVALUE dz, D3DVALUE ux, D3DVALUE uy, D3DVALUE uz, D3DVALUE ou, D3DVALUE ov,
228        D3DVALUE su, D3DVALUE sv, IDirect3DRMWrap **wrap) PURE;
229    STDMETHOD(CreateUserVisual)(THIS_ D3DRMUSERVISUALCALLBACK cb, void *ctx, IDirect3DRMUserVisual **visual) PURE;
230    STDMETHOD(LoadTexture)(THIS_ const char *filename, IDirect3DRMTexture2 **texture) PURE;
231    STDMETHOD(LoadTextureFromResource)(THIS_ HMODULE module, const char *resource_name,
232            const char *resource_type, IDirect3DRMTexture2 **texture) PURE;
233    STDMETHOD(SetSearchPath)(THIS_ const char *path) PURE;
234    STDMETHOD(AddSearchPath)(THIS_ const char *path) PURE;
235    STDMETHOD(GetSearchPath)(THIS_ DWORD *size, char *path) PURE;
236    STDMETHOD(SetDefaultTextureColors)(THIS_ DWORD) PURE;
237    STDMETHOD(SetDefaultTextureShades)(THIS_ DWORD) PURE;
238    STDMETHOD(GetDevices)(THIS_ IDirect3DRMDeviceArray **array) PURE;
239    STDMETHOD(GetNamedObject)(THIS_ const char *name, IDirect3DRMObject **object) PURE;
240    STDMETHOD(EnumerateObjects)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
241    STDMETHOD(Load)(THIS_ void *source, void *object_id, IID **iids, DWORD iid_count, D3DRMLOADOPTIONS flags,
242            D3DRMLOADCALLBACK load_cb, void *load_ctx, D3DRMLOADTEXTURECALLBACK load_tex_cb, void *load_tex_ctx,
243            IDirect3DRMFrame *parent_frame) PURE;
244    STDMETHOD(Tick)(THIS_ D3DVALUE) PURE;
245    STDMETHOD(CreateProgressiveMesh)(THIS_ IDirect3DRMProgressiveMesh **mesh) PURE;
246};
247#undef INTERFACE
248
249#if !defined(__cplusplus) || defined(CINTERFACE)
250/*** IUnknown methods ***/
251#define IDirect3DRM2_QueryInterface(p,a,b)                         (p)->lpVtbl->QueryInterface(p,a,b)
252#define IDirect3DRM2_AddRef(p)                                     (p)->lpVtbl->AddRef(p)
253#define IDirect3DRM2_Release(p)                                    (p)->lpVtbl->Release(p)
254/*** IDirect3DRM2 methods ***/
255#define IDirect3DRM2_CreateObject(p,a,b,c,d)                       (p)->lpVtbl->CreateObject(p,a,b,c,d)
256#define IDirect3DRM2_CreateFrame(p,a,b)                            (p)->lpVtbl->CreateFrame(p,a,b)
257#define IDirect3DRM2_CreateMesh(p,a)                               (p)->lpVtbl->CreateMesh(p,a)
258#define IDirect3DRM2_CreateMeshBuilder(p,a)                        (p)->lpVtbl->CreateMeshBuilder(p,a)
259#define IDirect3DRM2_CreateFace(p,a)                               (p)->lpVtbl->CreateFace(p,a)
260#define IDirect3DRM2_CreateAnimation(p,a)                          (p)->lpVtbl->CreateAnimation(p,a)
261#define IDirect3DRM2_CreateAnimationSet(p,a)                       (p)->lpVtbl->CreateAnimationSet(p,a)
262#define IDirect3DRM2_CreateTexture(p,a,b)                          (p)->lpVtbl->CreateTexture(p,a,b)
263#define IDirect3DRM2_CreateLight(p,a,b,c)                          (p)->lpVtbl->CreateLight(p,a,b,c)
264#define IDirect3DRM2_CreateLightRGB(p,a,b,c,d,e)                   (p)->lpVtbl->CreateLightRGB(p,a,b,c,d,e)
265#define IDirect3DRM2_CreateMaterial(p,a,b)                         (p)->lpVtbl->CreateMaterial(p,a,b)
266#define IDirect3DRM2_CreateDevice(p,a,b,c)                         (p)->lpVtbl->CreateDevice(p,a,b,c)
267#define IDirect3DRM2_CreateDeviceFromSurface(p,a,b,c,d)            (p)->lpVtbl->CreateDeviceFromSurface(p,a,b,c,d)
268#define IDirect3DRM2_CreateDeviceFromD3D(p,a,b,c)                  (p)->lpVtbl->CreateDeviceFromD3D(p,a,b,c)
269#define IDirect3DRM2_CreateDeviceFromClipper(p,a,b,c,d,e)          (p)->lpVtbl->CreateDeviceFromClipper(p,a,b,c,d,e)
270#define IDirect3DRM2_CreateTextureFromSurface(p,a,b)               (p)->lpVtbl->CreateTextureFromSurface(p,a,b)
271#define IDirect3DRM2_CreateShadow(p,a,b,c,d,e,f,g,h,i)             (p)->lpVtbl->CreateShadow(p,a,b,c,d,e,f,g,h,i)
272#define IDirect3DRM2_CreateViewport(p,a,b,c,d,e,f,g)               (p)->lpVtbl->CreateViewport(p,a,b,c,d,e,f,g)
273#define IDirect3DRM2_CreateWrap(p,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,q) (p)->lpVtbl->CreateWrap(p,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,q)
274#define IDirect3DRM2_CreateUserVisual(p,a,b,c)                     (p)->lpVtbl->CreateUserVisual(p,a,b,c)
275#define IDirect3DRM2_LoadTexture(p,a,b)                            (p)->lpVtbl->LoadTexture(p,a,b)
276#define IDirect3DRM2_LoadTextureFromResource(p,a,b,c,d)            (p)->lpVtbl->LoadTextureFromResource(p,a,b,c,d)
277#define IDirect3DRM2_SetSearchPath(p,a)                            (p)->lpVtbl->SetSearchPath(p,a)
278#define IDirect3DRM2_AddSearchPath(p,a)                            (p)->lpVtbl->AddSearchPath(p,a)
279#define IDirect3DRM2_GetSearchPath(p,a,b)                          (p)->lpVtbl->GetSearchPath(p,a,b)
280#define IDirect3DRM2_SetDefaultTextureColors(p,a)                  (p)->lpVtbl->SetDefaultTextureColors(p,a)
281#define IDirect3DRM2_SetDefaultTextureShades(p,a)                  (p)->lpVtbl->SetDefaultTextureShades(p,a)
282#define IDirect3DRM2_GetDevices(p,a)                               (p)->lpVtbl->GetDevices(p,a)
283#define IDirect3DRM2_GetNamedObject(p,a,b)                         (p)->lpVtbl->GetNamedObject(p,a,b)
284#define IDirect3DRM2_EnumerateObjects(p,a,b)                       (p)->lpVtbl->EnumerateObjects(p,a,b)
285#define IDirect3DRM2_Load(p,a,b,c,d,e,f,g,h,i,j)                   (p)->lpVtbl->Load(p,a,b,c,d,e,f,g,h,i,j)
286#define IDirect3DRM2_Tick(p,a)                                     (p)->lpVtbl->Tick(p,a)
287#define IDirect3DRM2_CreateProgressiveMesh(p,a)                    (p)->lpVtbl->CreateProgressiveMesh(p,a)
288#else
289/*** IUnknown methods ***/
290#define IDirect3DRM2_QueryInterface(p,a,b)                         (p)->QueryInterface(a,b)
291#define IDirect3DRM2_AddRef(p)                                     (p)->AddRef()
292#define IDirect3DRM2_Release(p)                                    (p)->Release()
293/*** IDirect3DRM2 methods ***/
294#define IDirect3DRM2_CreateObject(p,a,b,c,d)                       (p)->CreateObject(a,b,c,d)
295#define IDirect3DRM2_CreateFrame(p,a,b)                            (p)->CreateFrame(a,b)
296#define IDirect3DRM2_CreateMesh(p,a)                               (p)->CreateMesh(a)
297#define IDirect3DRM2_CreateMeshBuilder(p,a)                        (p)->CreateMeshBuilder(a)
298#define IDirect3DRM2_CreateFace(p,a)                               (p)->CreateFace(a)
299#define IDirect3DRM2_CreateAnimation(p,a)                          (p)->CreateAnimation(a)
300#define IDirect3DRM2_CreateAnimationSet(p,a)                       (p)->CreateAnimationSet(a)
301#define IDirect3DRM2_CreateTexture(p,a,b)                          (p)->CreateTexture(a,b)
302#define IDirect3DRM2_CreateLight(p,a,b,c)                          (p)->CreateLight(a,b,c)
303#define IDirect3DRM2_CreateLightRGB(p,a,b,c,d,e)                   (p)->CreateLightRGB(a,b,c,d,e)
304#define IDirect3DRM2_CreateMaterial(p,a,b)                         (p)->CreateMaterial(a,b)
305#define IDirect3DRM2_CreateDevice(p,a,b,c)                         (p)->CreateDevice(a,b,c)
306#define IDirect3DRM2_CreateDeviceFromSurface(p,a,b,c,d)            (p)->CreateDeviceFromSurface(a,b,c,d)
307#define IDirect3DRM2_CreateDeviceFromD3D(p,a,b,c)                  (p)->CreateDeviceFromD3D(a,b,c)
308#define IDirect3DRM2_CreateDeviceFromClipper(p,a,b,c,d,e)          (p)->CreateDeviceFromClipper(a,b,c,d,e)
309#define IDirect3DRM2_CreateTextureFromSurface(p,a,b)               (p)->CreateTextureFromSurface(a,b)
310#define IDirect3DRM2_CreateShadow(p,a,b,c,d,e,f,g,h,i)             (p)->CreateShadow(a,b,c,d,e,f,g,h,i)
311#define IDirect3DRM2_CreateViewport(p,a,b,c,d,e,f,g)               (p)->CreateViewport(a,b,c,d,e,f,g)
312#define IDirect3DRM2_CreateWrap(p,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,q) (p)->CreateWrap(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,q)
313#define IDirect3DRM2_CreateUserVisual(p,a,b,c)                     (p)->CreateUserVisual(a,b,c)
314#define IDirect3DRM2_LoadTexture(p,a,b)                            (p)->LoadTexture(a,b)
315#define IDirect3DRM2_LoadTextureFromResource(p,a,b,c,d)            (p)->LoadTextureFromResource(a,b,c,d)
316#define IDirect3DRM2_SetSearchPath(p,a)                            (p)->SetSearchPath(a)
317#define IDirect3DRM2_AddSearchPath(p,a)                            (p)->AddSearchPath(a)
318#define IDirect3DRM2_GetSearchPath(p,a,b)                          (p)->GetSearchPath(a,b)
319#define IDirect3DRM2_SetDefaultTextureColors(p,a)                  (p)->SetDefaultTextureColors(a)
320#define IDirect3DRM2_SetDefaultTextureShades(p,a)                  (p)->SetDefaultTextureShades(a)
321#define IDirect3DRM2_GetDevices(p,a)                               (p)->GetDevices(a)
322#define IDirect3DRM2_GetNamedObject(p,a,b)                         (p)->GetNamedObject(a,b)
323#define IDirect3DRM2_EnumerateObjects(p,a,b)                       (p)->EnumerateObjects(a,b)
324#define IDirect3DRM2_Load(p,a,b,c,d,e,f,g,h,i,j)                   (p)->Load(a,b,c,d,e,f,g,h,i,j)
325#define IDirect3DRM2_Tick(p,a)                                     (p)->Tick(a)
326#define IDirect3DRM2_CreateProgressiveMesh(p,a)                    (p)->CreateProgressiveMesh(a)
327#endif
328
329/*****************************************************************************
330 * IDirect3DRM3 interface
331 */
332#ifdef WINE_NO_UNICODE_MACROS
333#undef GetClassName
334#endif
335#define INTERFACE IDirect3DRM3
336DECLARE_INTERFACE_(IDirect3DRM3,IUnknown)
337{
338    /*** IUnknown methods ***/
339    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
340    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
341    STDMETHOD_(ULONG,Release)(THIS) PURE;
342    /*** IDirect3DRM2 methods ***/
343    STDMETHOD(CreateObject)(THIS_ REFCLSID clsid, IUnknown *outer, REFIID iid, void **out) PURE;
344    STDMETHOD(CreateFrame)(THIS_ IDirect3DRMFrame3 *parent, IDirect3DRMFrame3 **frame) PURE;
345    STDMETHOD(CreateMesh)(THIS_ IDirect3DRMMesh **mesh) PURE;
346    STDMETHOD(CreateMeshBuilder)(THIS_ IDirect3DRMMeshBuilder3 **mesh_builder) PURE;
347    STDMETHOD(CreateFace)(THIS_ IDirect3DRMFace2 **face) PURE;
348    STDMETHOD(CreateAnimation)(THIS_ IDirect3DRMAnimation2 **animation) PURE;
349    STDMETHOD(CreateAnimationSet)(THIS_ IDirect3DRMAnimationSet2 **set) PURE;
350    STDMETHOD(CreateTexture)(THIS_ D3DRMIMAGE *image, IDirect3DRMTexture3 **texture) PURE;
351    STDMETHOD(CreateLight)(THIS_ D3DRMLIGHTTYPE type, D3DCOLOR color, IDirect3DRMLight **light) PURE;
352    STDMETHOD(CreateLightRGB)(THIS_ D3DRMLIGHTTYPE type, D3DVALUE r, D3DVALUE g, D3DVALUE b,
353            IDirect3DRMLight **light) PURE;
354    STDMETHOD(CreateMaterial)(THIS_ D3DVALUE, IDirect3DRMMaterial2 **material) PURE;
355    STDMETHOD(CreateDevice)(THIS_ DWORD width, DWORD height, IDirect3DRMDevice3 **device) PURE;
356    STDMETHOD(CreateDeviceFromSurface)(THIS_ GUID *guid, IDirectDraw *ddraw,
357            IDirectDrawSurface *surface, DWORD flags, IDirect3DRMDevice3 **device) PURE;
358    STDMETHOD(CreateDeviceFromD3D)(THIS_ IDirect3D2 *d3d, IDirect3DDevice2 *d3d_device,
359            IDirect3DRMDevice3 **device) PURE;
360    STDMETHOD(CreateDeviceFromClipper)(THIS_ IDirectDrawClipper *clipper, GUID *guid,
361            int width, int height, IDirect3DRMDevice3 **device) PURE;
362    STDMETHOD(CreateTextureFromSurface)(THIS_ IDirectDrawSurface *surface,
363            IDirect3DRMTexture3 **texture) PURE;
364    STDMETHOD(CreateShadow)(THIS_ IUnknown *object, IDirect3DRMLight *light, D3DVALUE px, D3DVALUE py, D3DVALUE pz,
365            D3DVALUE nx, D3DVALUE ny, D3DVALUE nz, IDirect3DRMShadow2 **shadow) PURE;
366    STDMETHOD(CreateViewport)(THIS_ IDirect3DRMDevice3 *device, IDirect3DRMFrame3 *camera,
367            DWORD x, DWORD y, DWORD width, DWORD height, IDirect3DRMViewport2 **viewport) PURE;
368    STDMETHOD(CreateWrap)(THIS_ D3DRMWRAPTYPE type, IDirect3DRMFrame3 *reference,
369            D3DVALUE ox, D3DVALUE oy, D3DVALUE oz, D3DVALUE dx, D3DVALUE dy, D3DVALUE dz,
370            D3DVALUE ux, D3DVALUE uy, D3DVALUE uz, D3DVALUE ou, D3DVALUE ov, D3DVALUE su, D3DVALUE sv,
371            IDirect3DRMWrap **wrap) PURE;
372    STDMETHOD(CreateUserVisual)(THIS_ D3DRMUSERVISUALCALLBACK cb, void *ctx, IDirect3DRMUserVisual **visual) PURE;
373    STDMETHOD(LoadTexture)(THIS_ const char *filename, IDirect3DRMTexture3 **texture) PURE;
374    STDMETHOD(LoadTextureFromResource)(THIS_ HMODULE module, const char *resource_name,
375            const char *resource_type, IDirect3DRMTexture3 **texture) PURE;
376    STDMETHOD(SetSearchPath)(THIS_ const char *path) PURE;
377    STDMETHOD(AddSearchPath)(THIS_ const char *path) PURE;
378    STDMETHOD(GetSearchPath)(THIS_ DWORD *size, char *path) PURE;
379    STDMETHOD(SetDefaultTextureColors)(THIS_ DWORD) PURE;
380    STDMETHOD(SetDefaultTextureShades)(THIS_ DWORD) PURE;
381    STDMETHOD(GetDevices)(THIS_ IDirect3DRMDeviceArray **array) PURE;
382    STDMETHOD(GetNamedObject)(THIS_ const char *name, IDirect3DRMObject **object) PURE;
383    STDMETHOD(EnumerateObjects)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
384    STDMETHOD(Load)(THIS_ void *source, void *object_id, IID **iids, DWORD iid_count, D3DRMLOADOPTIONS flags,
385            D3DRMLOADCALLBACK load_cb, void *load_ctx, D3DRMLOADTEXTURECALLBACK load_tex_cb, void *load_tex_ctx,
386            IDirect3DRMFrame3 *parent_frame) PURE;
387    STDMETHOD(Tick)(THIS_ D3DVALUE) PURE;
388    STDMETHOD(CreateProgressiveMesh)(THIS_ IDirect3DRMProgressiveMesh **mesh) PURE;
389    STDMETHOD(RegisterClient)(THIS_ REFGUID guid, DWORD *id) PURE;
390    STDMETHOD(UnregisterClient)(THIS_ REFGUID rguid) PURE;
391    STDMETHOD(CreateClippedVisual)(THIS_ IDirect3DRMVisual *visual, IDirect3DRMClippedVisual **clipped_visual) PURE;
392    STDMETHOD(SetOptions)(THIS_ DWORD) PURE;
393    STDMETHOD(GetOptions)(THIS_ DWORD *flags) PURE;
394};
395#undef INTERFACE
396
397#if !defined(__cplusplus) || defined(CINTERFACE)
398/*** IUnknown methods ***/
399#define IDirect3DRM3_QueryInterface(p,a,b)                         (p)->lpVtbl->QueryInterface(p,a,b)
400#define IDirect3DRM3_AddRef(p)                                     (p)->lpVtbl->AddRef(p)
401#define IDirect3DRM3_Release(p)                                    (p)->lpVtbl->Release(p)
402/*** IDirect3DRM3 methods ***/
403#define IDirect3DRM3_CreateObject(p,a,b,c,d)                       (p)->lpVtbl->CreateObject(p,a,b,c,d)
404#define IDirect3DRM3_CreateFrame(p,a,b)                            (p)->lpVtbl->CreateFrame(p,a,b)
405#define IDirect3DRM3_CreateMesh(p,a)                               (p)->lpVtbl->CreateMesh(p,a)
406#define IDirect3DRM3_CreateMeshBuilder(p,a)                        (p)->lpVtbl->CreateMeshBuilder(p,a)
407#define IDirect3DRM3_CreateFace(p,a)                               (p)->lpVtbl->CreateFace(p,a)
408#define IDirect3DRM3_CreateAnimation(p,a)                          (p)->lpVtbl->CreateAnimation(p,a)
409#define IDirect3DRM3_CreateAnimationSet(p,a)                       (p)->lpVtbl->CreateAnimationSet(p,a)
410#define IDirect3DRM3_CreateTexture(p,a,b)                          (p)->lpVtbl->CreateTexture(p,a,b)
411#define IDirect3DRM3_CreateLight(p,a,b,c)                          (p)->lpVtbl->CreateLight(p,a,b,c)
412#define IDirect3DRM3_CreateLightRGB(p,a,b,c,d,e)                   (p)->lpVtbl->CreateLightRGB(p,a,b,c,d,e)
413#define IDirect3DRM3_CreateMaterial(p,a,b)                         (p)->lpVtbl->CreateMaterial(p,a,b)
414#define IDirect3DRM3_CreateDevice(p,a,b,c)                         (p)->lpVtbl->CreateDevice(p,a,b,c)
415#define IDirect3DRM3_CreateDeviceFromSurface(p,a,b,c,d,e)          (p)->lpVtbl->CreateDeviceFromSurface(p,a,b,c,d,e)
416#define IDirect3DRM3_CreateDeviceFromD3D(p,a,b,c)                  (p)->lpVtbl->CreateDeviceFromD3D(p,a,b,c)
417#define IDirect3DRM3_CreateDeviceFromClipper(p,a,b,c,d,e)          (p)->lpVtbl->CreateDeviceFromClipper(p,a,b,c,d,e)
418#define IDirect3DRM3_CreateTextureFromSurface(p,a,b)               (p)->lpVtbl->CreateTextureFromSurface(p,a,b)
419#define IDirect3DRM3_CreateShadow(p,a,b,c,d,e,f,g,h,i)             (p)->lpVtbl->CreateShadow(p,a,b,c,d,e,f,g,h,i)
420#define IDirect3DRM3_CreateViewport(p,a,b,c,d,e,f,g)               (p)->lpVtbl->CreateViewport(p,a,b,c,d,e,f,g)
421#define IDirect3DRM3_CreateWrap(p,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,q) (p)->lpVtbl->CreateWrap(p,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,q)
422#define IDirect3DRM3_CreateUserVisual(p,a,b,c)                     (p)->lpVtbl->CreateUserVisual(p,a,b,c)
423#define IDirect3DRM3_LoadTexture(p,a,b)                            (p)->lpVtbl->LoadTexture(p,a,b)
424#define IDirect3DRM3_LoadTextureFromResource(p,a,b,c,d)            (p)->lpVtbl->LoadTextureFromResource(p,a,b,c,d)
425#define IDirect3DRM3_SetSearchPath(p,a)                            (p)->lpVtbl->SetSearchPath(p,a)
426#define IDirect3DRM3_AddSearchPath(p,a)                            (p)->lpVtbl->AddSearchPath(p,a)
427#define IDirect3DRM3_GetSearchPath(p,a,b)                          (p)->lpVtbl->GetSearchPath(p,a,b)
428#define IDirect3DRM3_SetDefaultTextureColors(p,a)                  (p)->lpVtbl->SetDefaultTextureColors(p,a)
429#define IDirect3DRM3_SetDefaultTextureShades(p,a)                  (p)->lpVtbl->SetDefaultTextureShades(p,a)
430#define IDirect3DRM3_GetDevices(p,a)                               (p)->lpVtbl->GetDevices(p,a)
431#define IDirect3DRM3_GetNamedObject(p,a,b)                         (p)->lpVtbl->GetNamedObject(p,a,b)
432#define IDirect3DRM3_EnumerateObjects(p,a,b)                       (p)->lpVtbl->EnumerateObjects(p,a,b)
433#define IDirect3DRM3_Load(p,a,b,c,d,e,f,g,h,i,j)                   (p)->lpVtbl->Load(p,a,b,c,d,e,f,g,h,i,j)
434#define IDirect3DRM3_Tick(p,a)                                     (p)->lpVtbl->Tick(p,a)
435#define IDirect3DRM3_CreateProgressiveMesh(p,a)                    (p)->lpVtbl->CreateProgressiveMesh(p,a)
436#define IDirect3DRM3_RegisterClient(p,a,b)                         (p)->lpVtbl->RegisterClient(p,a,b)
437#define IDirect3DRM3_UnregisterClient(p,a)                         (p)->lpVtbl->UnregisterClient(p,a)
438#define IDirect3DRM3_CreateClippedVisual(p,a,b)                    (p)->lpVtbl->CreateClippedVisual(p,a,b)
439#define IDirect3DRM3_SetOptions(p,a)                               (p)->lpVtbl->SetOptions(p,a)
440#define IDirect3DRM3_GetOptions(p,a)                               (p)->lpVtbl->GetOptions(p,a)
441#else
442/*** IUnknown methods ***/
443#define IDirect3DRM3_QueryInterface(p,a,b)                         (p)->QueryInterface(a,b)
444#define IDirect3DRM3_AddRef(p)                                     (p)->AddRef()
445#define IDirect3DRM3_Release(p)                                    (p)->Release()
446/*** IDirect3DRM3 methods ***/
447#define IDirect3DRM3_CreateObject(p,a,b,c,d)                       (p)->CreateObject(a,b,c,d)
448#define IDirect3DRM3_CreateFrame(p,a,b)                            (p)->CreateFrame(a,b)
449#define IDirect3DRM3_CreateMesh(p,a)                               (p)->CreateMesh(a)
450#define IDirect3DRM3_CreateMeshBuilder(p,a)                        (p)->CreateMeshBuilder(a)
451#define IDirect3DRM3_CreateFace(p,a)                               (p)->CreateFace(a)
452#define IDirect3DRM3_CreateAnimation(p,a)                          (p)->CreateAnimation(a)
453#define IDirect3DRM3_CreateAnimationSet(p,a)                       (p)->CreateAnimationSet(a)
454#define IDirect3DRM3_CreateTexture(p,a,b)                          (p)->CreateTexture(a,b)
455#define IDirect3DRM3_CreateLight(p,a,b,c)                          (p)->CreateLight(a,b,c)
456#define IDirect3DRM3_CreateLightRGB(p,a,b,c,d,e)                   (p)->CreateLightRGB(a,b,c,d,e)
457#define IDirect3DRM3_CreateMaterial(p,a,b)                         (p)->CreateMaterial(a,b)
458#define IDirect3DRM3_CreateDevice(p,a,b,c)                         (p)->CreateDevice(a,b,c)
459#define IDirect3DRM3_CreateDeviceFromSurface(p,a,b,c,d,e)          (p)->CreateDeviceFromSurface(a,b,c,d,e)
460#define IDirect3DRM3_CreateDeviceFromD3D(p,a,b,c)                  (p)->CreateDeviceFromD3D(a,b,c)
461#define IDirect3DRM3_CreateDeviceFromClipper(p,a,b,c,d,e)          (p)->CreateDeviceFromClipper(a,b,c,d,e)
462#define IDirect3DRM3_CreateTextureFromSurface(p,a,b)               (p)->CreateTextureFromSurface(a,b)
463#define IDirect3DRM3_CreateShadow(p,a,b,c,d,e,f,g,h,i)             (p)->CreateShadow(a,b,c,d,e,f,g,h,i)
464#define IDirect3DRM3_CreateViewport(p,a,b,c,d,e,f,g)               (p)->CreateViewport(a,b,c,d,e,f,g)
465#define IDirect3DRM3_CreateWrap(p,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,q) (p)->CreateWrap(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,q)
466#define IDirect3DRM3_CreateUserVisual(p,a,b,c)                     (p)->CreateUserVisual(a,b,c)
467#define IDirect3DRM3_LoadTexture(p,a,b)                            (p)->LoadTexture(a,b)
468#define IDirect3DRM3_LoadTextureFromResource(p,a,b,c,d)            (p)->LoadTextureFromResource(a,b,c,d)
469#define IDirect3DRM3_SetSearchPath(p,a)                            (p)->SetSearchPath(a)
470#define IDirect3DRM3_AddSearchPath(p,a)                            (p)->AddSearchPath(a)
471#define IDirect3DRM3_GetSearchPath(p,a,b)                          (p)->GetSearchPath(a,b)
472#define IDirect3DRM3_SetDefaultTextureColors(p,a)                  (p)->SetDefaultTextureColors(a)
473#define IDirect3DRM3_SetDefaultTextureShades(p,a)                  (p)->SetDefaultTextureShades(a)
474#define IDirect3DRM3_GetDevices(p,a)                               (p)->GetDevices(a)
475#define IDirect3DRM3_GetNamedObject(p,a,b)                         (p)->GetNamedObject(a,b)
476#define IDirect3DRM3_EnumerateObjects(p,a,b)                       (p)->EnumerateObjects(a,b)
477#define IDirect3DRM3_Load(p,a,b,c,d,e,f,g,h,i,j)                   (p)->Load(a,b,c,d,e,f,g,h,i,j)
478#define IDirect3DRM3_Tick(p,a)                                     (p)->Tick(a)
479#define IDirect3DRM3_CreateProgressiveMesh(p,a)                    (p)->CreateProgressiveMesh(a)
480#define IDirect3DRM3_RegisterClient(p,a,b)                         (p)->RegisterClient(a,b)
481#define IDirect3DRM3_UnregisterClient(p,a)                         (p)->UnregisterClient(a)
482#define IDirect3DRM3_CreateClippedVisual(p,a,b)                    (p)->CreateClippedVisual(a,b)
483#define IDirect3DRM3_SetOptions(p,a)                               (p)->SetOptions(a)
484#define IDirect3DRM3_GetOptions(p,a)                               (p)->GetOptions(a)
485#endif
486
487#define D3DRM_OK                        DD_OK
488#define D3DRMERR_BADOBJECT              MAKE_DDHRESULT(781)
489#define D3DRMERR_BADTYPE                MAKE_DDHRESULT(782)
490#define D3DRMERR_BADALLOC               MAKE_DDHRESULT(783)
491#define D3DRMERR_FACEUSED               MAKE_DDHRESULT(784)
492#define D3DRMERR_NOTFOUND               MAKE_DDHRESULT(785)
493#define D3DRMERR_NOTDONEYET             MAKE_DDHRESULT(786)
494#define D3DRMERR_FILENOTFOUND           MAKE_DDHRESULT(787)
495#define D3DRMERR_BADFILE                MAKE_DDHRESULT(788)
496#define D3DRMERR_BADDEVICE              MAKE_DDHRESULT(789)
497#define D3DRMERR_BADVALUE               MAKE_DDHRESULT(790)
498#define D3DRMERR_BADMAJORVERSION        MAKE_DDHRESULT(791)
499#define D3DRMERR_BADMINORVERSION        MAKE_DDHRESULT(792)
500#define D3DRMERR_UNABLETOEXECUTE        MAKE_DDHRESULT(793)
501#define D3DRMERR_LIBRARYNOTFOUND        MAKE_DDHRESULT(794)
502#define D3DRMERR_INVALIDLIBRARY         MAKE_DDHRESULT(795)
503#define D3DRMERR_PENDING                MAKE_DDHRESULT(796)
504#define D3DRMERR_NOTENOUGHDATA          MAKE_DDHRESULT(797)
505#define D3DRMERR_REQUESTTOOLARGE        MAKE_DDHRESULT(798)
506#define D3DRMERR_REQUESTTOOSMALL        MAKE_DDHRESULT(799)
507#define D3DRMERR_CONNECTIONLOST         MAKE_DDHRESULT(800)
508#define D3DRMERR_LOADABORTED            MAKE_DDHRESULT(801)
509#define D3DRMERR_NOINTERNET             MAKE_DDHRESULT(802)
510#define D3DRMERR_BADCACHEFILE           MAKE_DDHRESULT(803)
511#define D3DRMERR_BOXNOTSET              MAKE_DDHRESULT(804)
512#define D3DRMERR_BADPMDATA              MAKE_DDHRESULT(805)
513#define D3DRMERR_CLIENTNOTREGISTERED    MAKE_DDHRESULT(806)
514#define D3DRMERR_NOTCREATEDFROMDDS      MAKE_DDHRESULT(807)
515#define D3DRMERR_NOSUCHKEY              MAKE_DDHRESULT(808)
516#define D3DRMERR_INCOMPATABLEKEY        MAKE_DDHRESULT(809)
517#define D3DRMERR_ELEMENTINUSE           MAKE_DDHRESULT(810)
518#define D3DRMERR_TEXTUREFORMATNOTFOUND  MAKE_DDHRESULT(811)
519#define D3DRMERR_NOTAGGREGATED          MAKE_DDHRESULT(812)
520
521#ifdef __cplusplus
522}
523#endif
524
525#endif /* __D3DRM_H__ */