/[cvs]/api/include/d3drmobj.h
ViewVC logotype

Annotation of /api/include/d3drmobj.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1.1.1 - (hide annotations) (vendor branch)
Sun Jul 1 20:47:59 2001 UTC (23 years, 4 months ago) by bearsoft
Branch: lazy, MAIN
CVS Tags: start, HEAD
Changes since 1.1: +0 -0 lines
File MIME type: text/plain
First import

1 bearsoft 1.1 /*==========================================================================;
2     *
3     * Copyright (C) 1995-1997 Microsoft Corporation. All Rights Reserved.
4     *
5     * File: d3drm.h
6     * Content: Direct3DRM include file
7     *
8     ***************************************************************************/
9    
10     #ifndef _D3DRMOBJ_H_
11     #define _D3DRMOBJ_H_
12    
13     #include <objbase.h> /* Use Windows header files */
14     #define VIRTUAL
15     #include "d3drmdef.h"
16    
17     #include "d3d.h"
18    
19     #ifdef __cplusplus
20     extern "C" {
21     #endif
22    
23     /*
24     * The methods for IUnknown
25     */
26     #define IUNKNOWN_METHODS(kind) \
27     STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID *ppvObj) kind; \
28     STDMETHOD_(ULONG, AddRef) (THIS) kind; \
29     STDMETHOD_(ULONG, Release) (THIS) kind
30    
31     /*
32     * The methods for IDirect3DRMObject
33     */
34     #define IDIRECT3DRMOBJECT_METHODS(kind) \
35     STDMETHOD(Clone) (THIS_ LPUNKNOWN pUnkOuter, REFIID riid, LPVOID *ppvObj) kind; \
36     STDMETHOD(AddDestroyCallback) (THIS_ D3DRMOBJECTCALLBACK, LPVOID argument) kind; \
37     STDMETHOD(DeleteDestroyCallback) (THIS_ D3DRMOBJECTCALLBACK, LPVOID argument) kind; \
38     STDMETHOD(SetAppData) (THIS_ DWORD data) kind; \
39     STDMETHOD_(DWORD, GetAppData) (THIS) kind; \
40     STDMETHOD(SetName) (THIS_ LPCSTR) kind; \
41     STDMETHOD(GetName) (THIS_ LPDWORD lpdwSize, LPSTR lpName) kind; \
42     STDMETHOD(GetClassName) (THIS_ LPDWORD lpdwSize, LPSTR lpName) kind
43    
44    
45     #define WIN_TYPES(itype, ptype) \
46     typedef interface itype FAR *LP##ptype, FAR **LPLP##ptype
47    
48     WIN_TYPES(IDirect3DRMObject, DIRECT3DRMOBJECT);
49     WIN_TYPES(IDirect3DRMObject2, DIRECT3DRMOBJECT2);
50     WIN_TYPES(IDirect3DRMDevice, DIRECT3DRMDEVICE);
51     WIN_TYPES(IDirect3DRMDevice2, DIRECT3DRMDEVICE2);
52     WIN_TYPES(IDirect3DRMDevice3, DIRECT3DRMDEVICE3);
53     WIN_TYPES(IDirect3DRMViewport, DIRECT3DRMVIEWPORT);
54     WIN_TYPES(IDirect3DRMViewport2, DIRECT3DRMVIEWPORT2);
55     WIN_TYPES(IDirect3DRMFrame, DIRECT3DRMFRAME);
56     WIN_TYPES(IDirect3DRMFrame2, DIRECT3DRMFRAME2);
57     WIN_TYPES(IDirect3DRMFrame3, DIRECT3DRMFRAME3);
58     WIN_TYPES(IDirect3DRMVisual, DIRECT3DRMVISUAL);
59     WIN_TYPES(IDirect3DRMMesh, DIRECT3DRMMESH);
60     WIN_TYPES(IDirect3DRMMeshBuilder, DIRECT3DRMMESHBUILDER);
61     WIN_TYPES(IDirect3DRMMeshBuilder2, DIRECT3DRMMESHBUILDER2);
62     WIN_TYPES(IDirect3DRMMeshBuilder3, DIRECT3DRMMESHBUILDER3);
63     WIN_TYPES(IDirect3DRMFace, DIRECT3DRMFACE);
64     WIN_TYPES(IDirect3DRMFace2, DIRECT3DRMFACE2);
65     WIN_TYPES(IDirect3DRMLight, DIRECT3DRMLIGHT);
66     WIN_TYPES(IDirect3DRMTexture, DIRECT3DRMTEXTURE);
67     WIN_TYPES(IDirect3DRMTexture2, DIRECT3DRMTEXTURE2);
68     WIN_TYPES(IDirect3DRMTexture3, DIRECT3DRMTEXTURE3);
69     WIN_TYPES(IDirect3DRMWrap, DIRECT3DRMWRAP);
70     WIN_TYPES(IDirect3DRMMaterial, DIRECT3DRMMATERIAL);
71     WIN_TYPES(IDirect3DRMMaterial2, DIRECT3DRMMATERIAL2);
72     WIN_TYPES(IDirect3DRMInterpolator, DIRECT3DRMINTERPOLATOR);
73     WIN_TYPES(IDirect3DRMAnimation, DIRECT3DRMANIMATION);
74     WIN_TYPES(IDirect3DRMAnimation2, DIRECT3DRMANIMATION2);
75     WIN_TYPES(IDirect3DRMAnimationSet, DIRECT3DRMANIMATIONSET);
76     WIN_TYPES(IDirect3DRMAnimationSet2, DIRECT3DRMANIMATIONSET2);
77     WIN_TYPES(IDirect3DRMUserVisual, DIRECT3DRMUSERVISUAL);
78     WIN_TYPES(IDirect3DRMShadow, DIRECT3DRMSHADOW);
79     WIN_TYPES(IDirect3DRMShadow2, DIRECT3DRMSHADOW2);
80     WIN_TYPES(IDirect3DRMArray, DIRECT3DRMARRAY);
81     WIN_TYPES(IDirect3DRMObjectArray, DIRECT3DRMOBJECTARRAY);
82     WIN_TYPES(IDirect3DRMDeviceArray, DIRECT3DRMDEVICEARRAY);
83     WIN_TYPES(IDirect3DRMFaceArray, DIRECT3DRMFACEARRAY);
84     WIN_TYPES(IDirect3DRMViewportArray, DIRECT3DRMVIEWPORTARRAY);
85     WIN_TYPES(IDirect3DRMFrameArray, DIRECT3DRMFRAMEARRAY);
86     WIN_TYPES(IDirect3DRMAnimationArray, DIRECT3DRMANIMATIONARRAY);
87     WIN_TYPES(IDirect3DRMVisualArray, DIRECT3DRMVISUALARRAY);
88     WIN_TYPES(IDirect3DRMPickedArray, DIRECT3DRMPICKEDARRAY);
89     WIN_TYPES(IDirect3DRMPicked2Array, DIRECT3DRMPICKED2ARRAY);
90     WIN_TYPES(IDirect3DRMLightArray, DIRECT3DRMLIGHTARRAY);
91     WIN_TYPES(IDirect3DRMProgressiveMesh, DIRECT3DRMPROGRESSIVEMESH);
92     WIN_TYPES(IDirect3DRMClippedVisual, DIRECT3DRMCLIPPEDVISUAL);
93    
94     /*
95     * Direct3DRM Object classes
96     */
97     DEFINE_GUID(CLSID_CDirect3DRMDevice, 0x4fa3568e, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
98     DEFINE_GUID(CLSID_CDirect3DRMViewport, 0x4fa3568f, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
99     DEFINE_GUID(CLSID_CDirect3DRMFrame, 0x4fa35690, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
100     DEFINE_GUID(CLSID_CDirect3DRMMesh, 0x4fa35691, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
101     DEFINE_GUID(CLSID_CDirect3DRMMeshBuilder, 0x4fa35692, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
102     DEFINE_GUID(CLSID_CDirect3DRMFace, 0x4fa35693, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
103     DEFINE_GUID(CLSID_CDirect3DRMLight, 0x4fa35694, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
104     DEFINE_GUID(CLSID_CDirect3DRMTexture, 0x4fa35695, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
105     DEFINE_GUID(CLSID_CDirect3DRMWrap, 0x4fa35696, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
106     DEFINE_GUID(CLSID_CDirect3DRMMaterial, 0x4fa35697, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
107     DEFINE_GUID(CLSID_CDirect3DRMAnimation, 0x4fa35698, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
108     DEFINE_GUID(CLSID_CDirect3DRMAnimationSet, 0x4fa35699, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
109     DEFINE_GUID(CLSID_CDirect3DRMUserVisual, 0x4fa3569a, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
110     DEFINE_GUID(CLSID_CDirect3DRMShadow, 0x4fa3569b, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
111     DEFINE_GUID(CLSID_CDirect3DRMViewportInterpolator,
112     0xde9eaa1, 0x3b84, 0x11d0, 0x9b, 0x6d, 0x0, 0x0, 0xc0, 0x78, 0x1b, 0xc3);
113     DEFINE_GUID(CLSID_CDirect3DRMFrameInterpolator,
114     0xde9eaa2, 0x3b84, 0x11d0, 0x9b, 0x6d, 0x0, 0x0, 0xc0, 0x78, 0x1b, 0xc3);
115     DEFINE_GUID(CLSID_CDirect3DRMMeshInterpolator,
116     0xde9eaa3, 0x3b84, 0x11d0, 0x9b, 0x6d, 0x0, 0x0, 0xc0, 0x78, 0x1b, 0xc3);
117     DEFINE_GUID(CLSID_CDirect3DRMLightInterpolator,
118     0xde9eaa6, 0x3b84, 0x11d0, 0x9b, 0x6d, 0x0, 0x0, 0xc0, 0x78, 0x1b, 0xc3);
119     DEFINE_GUID(CLSID_CDirect3DRMMaterialInterpolator,
120     0xde9eaa7, 0x3b84, 0x11d0, 0x9b, 0x6d, 0x0, 0x0, 0xc0, 0x78, 0x1b, 0xc3);
121     DEFINE_GUID(CLSID_CDirect3DRMTextureInterpolator,
122     0xde9eaa8, 0x3b84, 0x11d0, 0x9b, 0x6d, 0x0, 0x0, 0xc0, 0x78, 0x1b, 0xc3);
123     DEFINE_GUID(CLSID_CDirect3DRMProgressiveMesh, 0x4516ec40, 0x8f20, 0x11d0, 0x9b, 0x6d, 0x00, 0x00, 0xc0, 0x78, 0x1b, 0xc3);
124     DEFINE_GUID(CLSID_CDirect3DRMClippedVisual, 0x5434e72d, 0x6d66, 0x11d1, 0xbb, 0xb, 0x0, 0x0, 0xf8, 0x75, 0x86, 0x5a);
125    
126    
127     /*
128     * Direct3DRM Object interfaces
129     */
130     DEFINE_GUID(IID_IDirect3DRMObject, 0xeb16cb00, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
131     DEFINE_GUID(IID_IDirect3DRMObject2, 0x4516ec7c, 0x8f20, 0x11d0, 0x9b, 0x6d, 0x00, 0x00, 0xc0, 0x78, 0x1b, 0xc3);
132     DEFINE_GUID(IID_IDirect3DRMDevice, 0xe9e19280, 0x6e05, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
133     DEFINE_GUID(IID_IDirect3DRMDevice2, 0x4516ec78, 0x8f20, 0x11d0, 0x9b, 0x6d, 0x00, 0x00, 0xc0, 0x78, 0x1b, 0xc3);
134     DEFINE_GUID(IID_IDirect3DRMDevice3, 0x549f498b, 0xbfeb, 0x11d1, 0x8e, 0xd8, 0x0, 0xa0, 0xc9, 0x67, 0xa4, 0x82);
135     DEFINE_GUID(IID_IDirect3DRMViewport, 0xeb16cb02, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
136     DEFINE_GUID(IID_IDirect3DRMViewport2, 0x4a1b1be6, 0xbfed, 0x11d1, 0x8e, 0xd8, 0x0, 0xa0, 0xc9, 0x67, 0xa4, 0x82);
137     DEFINE_GUID(IID_IDirect3DRMFrame, 0xeb16cb03, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
138     DEFINE_GUID(IID_IDirect3DRMFrame2, 0xc3dfbd60, 0x3988, 0x11d0, 0x9e, 0xc2, 0x0, 0x0, 0xc0, 0x29, 0x1a, 0xc3);
139     DEFINE_GUID(IID_IDirect3DRMFrame3, 0xff6b7f70, 0xa40e, 0x11d1, 0x91, 0xf9, 0x0, 0x0, 0xf8, 0x75, 0x8e, 0x66);
140     DEFINE_GUID(IID_IDirect3DRMVisual, 0xeb16cb04, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
141     DEFINE_GUID(IID_IDirect3DRMMesh, 0xa3a80d01, 0x6e12, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
142     DEFINE_GUID(IID_IDirect3DRMMeshBuilder, 0xa3a80d02, 0x6e12, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
143     DEFINE_GUID(IID_IDirect3DRMMeshBuilder2, 0x4516ec77, 0x8f20, 0x11d0, 0x9b, 0x6d, 0x0, 0x0, 0xc0, 0x78, 0x1b, 0xc3);
144     DEFINE_GUID(IID_IDirect3DRMMeshBuilder3, 0x4516ec82, 0x8f20, 0x11d0, 0x9b, 0x6d, 0x00, 0x00, 0xc0, 0x78, 0x1b, 0xc3);
145     DEFINE_GUID(IID_IDirect3DRMFace, 0xeb16cb07, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
146     DEFINE_GUID(IID_IDirect3DRMFace2, 0x4516ec81, 0x8f20, 0x11d0, 0x9b, 0x6d, 0x00, 0x00, 0xc0, 0x78, 0x1b, 0xc3);
147     DEFINE_GUID(IID_IDirect3DRMLight, 0xeb16cb08, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
148     DEFINE_GUID(IID_IDirect3DRMTexture, 0xeb16cb09, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
149     DEFINE_GUID(IID_IDirect3DRMTexture2, 0x120f30c0, 0x1629, 0x11d0, 0x94, 0x1c, 0x0, 0x80, 0xc8, 0xc, 0xfa, 0x7b);
150     DEFINE_GUID(IID_IDirect3DRMTexture3, 0xff6b7f73, 0xa40e, 0x11d1, 0x91, 0xf9, 0x0, 0x0, 0xf8, 0x75, 0x8e, 0x66);
151     DEFINE_GUID(IID_IDirect3DRMWrap, 0xeb16cb0a, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
152     DEFINE_GUID(IID_IDirect3DRMMaterial, 0xeb16cb0b, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
153     DEFINE_GUID(IID_IDirect3DRMMaterial2, 0xff6b7f75, 0xa40e, 0x11d1, 0x91, 0xf9, 0x0, 0x0, 0xf8, 0x75, 0x8e, 0x66);
154     DEFINE_GUID(IID_IDirect3DRMAnimation, 0xeb16cb0d, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
155     DEFINE_GUID(IID_IDirect3DRMAnimation2, 0xff6b7f77, 0xa40e, 0x11d1, 0x91, 0xf9, 0x0, 0x0, 0xf8, 0x75, 0x8e, 0x66);
156     DEFINE_GUID(IID_IDirect3DRMAnimationSet, 0xeb16cb0e, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
157     DEFINE_GUID(IID_IDirect3DRMAnimationSet2, 0xff6b7f79, 0xa40e, 0x11d1, 0x91, 0xf9, 0x0, 0x0, 0xf8, 0x75, 0x8e, 0x66);
158     DEFINE_GUID(IID_IDirect3DRMObjectArray, 0x242f6bc2, 0x3849, 0x11d0, 0x9b, 0x6d, 0x0, 0x0, 0xc0, 0x78, 0x1b, 0xc3);
159     DEFINE_GUID(IID_IDirect3DRMDeviceArray, 0xeb16cb10, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
160     DEFINE_GUID(IID_IDirect3DRMViewportArray, 0xeb16cb11, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
161     DEFINE_GUID(IID_IDirect3DRMFrameArray, 0xeb16cb12, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
162     DEFINE_GUID(IID_IDirect3DRMVisualArray, 0xeb16cb13, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
163     DEFINE_GUID(IID_IDirect3DRMLightArray, 0xeb16cb14, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
164     DEFINE_GUID(IID_IDirect3DRMPickedArray, 0xeb16cb16, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
165     DEFINE_GUID(IID_IDirect3DRMFaceArray, 0xeb16cb17, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
166     DEFINE_GUID(IID_IDirect3DRMAnimationArray,
167     0xd5f1cae0, 0x4bd7, 0x11d1, 0xb9, 0x74, 0x0, 0x60, 0x8, 0x3e, 0x45, 0xf3);
168     DEFINE_GUID(IID_IDirect3DRMUserVisual, 0x59163de0, 0x6d43, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
169     DEFINE_GUID(IID_IDirect3DRMShadow, 0xaf359780, 0x6ba3, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
170     DEFINE_GUID(IID_IDirect3DRMShadow2, 0x86b44e25, 0x9c82, 0x11d1, 0xbb, 0xb, 0x0, 0xa0, 0xc9, 0x81, 0xa0, 0xa6);
171     DEFINE_GUID(IID_IDirect3DRMInterpolator, 0x242f6bc1, 0x3849, 0x11d0, 0x9b, 0x6d, 0x0, 0x0, 0xc0, 0x78, 0x1b, 0xc3);
172     DEFINE_GUID(IID_IDirect3DRMProgressiveMesh, 0x4516ec79, 0x8f20, 0x11d0, 0x9b, 0x6d, 0x0, 0x0, 0xc0, 0x78, 0x1b, 0xc3);
173     DEFINE_GUID(IID_IDirect3DRMPicked2Array, 0x4516ec7b, 0x8f20, 0x11d0, 0x9b, 0x6d, 0x0, 0x0, 0xc0, 0x78, 0x1b, 0xc3);
174     DEFINE_GUID(IID_IDirect3DRMClippedVisual, 0x5434e733, 0x6d66, 0x11d1, 0xbb, 0xb, 0x0, 0x0, 0xf8, 0x75, 0x86, 0x5a);
175    
176     typedef void (__cdecl *D3DRMOBJECTCALLBACK)(LPDIRECT3DRMOBJECT obj, LPVOID arg);
177     typedef void (__cdecl *D3DRMFRAMEMOVECALLBACK)(LPDIRECT3DRMFRAME obj, LPVOID arg, D3DVALUE delta);
178     typedef void (__cdecl *D3DRMFRAME3MOVECALLBACK)(LPDIRECT3DRMFRAME3 obj, LPVOID arg, D3DVALUE delta);
179     typedef void (__cdecl *D3DRMUPDATECALLBACK)(LPDIRECT3DRMDEVICE obj, LPVOID arg, int, LPD3DRECT);
180     typedef void (__cdecl *D3DRMDEVICE3UPDATECALLBACK)(LPDIRECT3DRMDEVICE3 obj, LPVOID arg, int, LPD3DRECT);
181     typedef int (__cdecl *D3DRMUSERVISUALCALLBACK)
182     ( LPDIRECT3DRMUSERVISUAL obj, LPVOID arg, D3DRMUSERVISUALREASON reason,
183     LPDIRECT3DRMDEVICE dev, LPDIRECT3DRMVIEWPORT view
184     );
185     typedef HRESULT (__cdecl *D3DRMLOADTEXTURECALLBACK)
186     (char *tex_name, void *arg, LPDIRECT3DRMTEXTURE *);
187     typedef HRESULT (__cdecl *D3DRMLOADTEXTURE3CALLBACK)
188     (char *tex_name, void *arg, LPDIRECT3DRMTEXTURE3 *);
189     typedef void (__cdecl *D3DRMLOADCALLBACK)
190     (LPDIRECT3DRMOBJECT object, REFIID objectguid, LPVOID arg);
191    
192     typedef HRESULT (__cdecl *D3DRMDOWNSAMPLECALLBACK)
193     (LPDIRECT3DRMTEXTURE3 lpDirect3DRMTexture, LPVOID pArg,
194     LPDIRECTDRAWSURFACE pDDSSrc, LPDIRECTDRAWSURFACE pDDSDst);
195     typedef HRESULT (__cdecl *D3DRMVALIDATIONCALLBACK)
196     (LPDIRECT3DRMTEXTURE3 lpDirect3DRMTexture, LPVOID pArg,
197     DWORD dwFlags, DWORD dwcRects, LPRECT pRects);
198    
199    
200     typedef struct _D3DRMPICKDESC
201     {
202     ULONG ulFaceIdx;
203     LONG lGroupIdx;
204     D3DVECTOR vPosition;
205    
206     } D3DRMPICKDESC, *LPD3DRMPICKDESC;
207    
208     typedef struct _D3DRMPICKDESC2
209     {
210     ULONG ulFaceIdx;
211     LONG lGroupIdx;
212     D3DVECTOR dvPosition;
213     D3DVALUE tu;
214     D3DVALUE tv;
215     D3DVECTOR dvNormal;
216     D3DCOLOR dcColor;
217    
218     } D3DRMPICKDESC2, *LPD3DRMPICKDESC2;
219    
220     #undef INTERFACE
221     #define INTERFACE IDirect3DRMObject
222    
223     /*
224     * Base class
225     */
226     DECLARE_INTERFACE_(IDirect3DRMObject, IUnknown)
227     {
228     IUNKNOWN_METHODS(PURE);
229     IDIRECT3DRMOBJECT_METHODS(PURE);
230     };
231    
232     #undef INTERFACE
233     #define INTERFACE IDirect3DRMObject2
234    
235     DECLARE_INTERFACE_(IDirect3DRMObject2, IUnknown)
236     {
237     IUNKNOWN_METHODS(PURE);
238    
239     /*
240     * IDirect3DRMObject2 methods
241     */
242     STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK lpFunc, LPVOID pvArg) PURE;
243     STDMETHOD(Clone)(THIS_ LPUNKNOWN pUnkOuter, REFIID riid, LPVOID *ppvObj) PURE; \
244     STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK lpFunc, LPVOID pvArg) PURE; \
245     STDMETHOD(GetClientData)(THIS_ DWORD dwID, LPVOID* lplpvData) PURE;
246     STDMETHOD(GetDirect3DRM)(THIS_ LPDIRECT3DRM* lplpDirect3DRM) PURE;
247     STDMETHOD(GetName)(THIS_ LPDWORD lpdwSize, LPSTR lpName) PURE;
248     STDMETHOD(SetClientData)(THIS_ DWORD dwID, LPVOID lpvData, DWORD dwFlags) PURE;
249     STDMETHOD(SetName)(THIS_ LPCSTR lpName) PURE;
250     STDMETHOD(GetAge)(THIS_ DWORD dwFlags, LPDWORD pdwAge) PURE;
251     };
252    
253     #undef INTERFACE
254     #define INTERFACE IDirect3DRMVisual
255    
256     DECLARE_INTERFACE_(IDirect3DRMVisual, IDirect3DRMObject)
257     {
258     IUNKNOWN_METHODS(PURE);
259     IDIRECT3DRMOBJECT_METHODS(PURE);
260     };
261    
262     #undef INTERFACE
263     #define INTERFACE IDirect3DRMDevice
264    
265     DECLARE_INTERFACE_(IDirect3DRMDevice, IDirect3DRMObject)
266     {
267     IUNKNOWN_METHODS(PURE);
268     IDIRECT3DRMOBJECT_METHODS(PURE);
269    
270     /*
271     * IDirect3DRMDevice methods
272     */
273     STDMETHOD(Init)(THIS_ ULONG width, ULONG height) PURE;
274     STDMETHOD(InitFromD3D)(THIS_ LPDIRECT3D lpD3D, LPDIRECT3DDEVICE lpD3DDev) PURE;
275     STDMETHOD(InitFromClipper)(THIS_ LPDIRECTDRAWCLIPPER lpDDClipper, LPGUID lpGUID, int width, int height) PURE;
276    
277     STDMETHOD(Update)(THIS) PURE;
278     STDMETHOD(AddUpdateCallback)(THIS_ D3DRMUPDATECALLBACK, LPVOID arg) PURE;
279     STDMETHOD(DeleteUpdateCallback)(THIS_ D3DRMUPDATECALLBACK, LPVOID arg) PURE;
280     STDMETHOD(SetBufferCount)(THIS_ DWORD) PURE;
281     STDMETHOD_(DWORD, GetBufferCount)(THIS) PURE;
282    
283     STDMETHOD(SetDither)(THIS_ BOOL) PURE;
284     STDMETHOD(SetShades)(THIS_ DWORD) PURE;
285     STDMETHOD(SetQuality)(THIS_ D3DRMRENDERQUALITY) PURE;
286     STDMETHOD(SetTextureQuality)(THIS_ D3DRMTEXTUREQUALITY) PURE;
287    
288     STDMETHOD(GetViewports)(THIS_ LPDIRECT3DRMVIEWPORTARRAY *return_views) PURE;
289    
290     STDMETHOD_(BOOL, GetDither)(THIS) PURE;
291     STDMETHOD_(DWORD, GetShades)(THIS) PURE;
292     STDMETHOD_(DWORD, GetHeight)(THIS) PURE;
293     STDMETHOD_(DWORD, GetWidth)(THIS) PURE;
294     STDMETHOD_(DWORD, GetTrianglesDrawn)(THIS) PURE;
295     STDMETHOD_(DWORD, GetWireframeOptions)(THIS) PURE;
296     STDMETHOD_(D3DRMRENDERQUALITY, GetQuality)(THIS) PURE;
297     STDMETHOD_(D3DCOLORMODEL, GetColorModel)(THIS) PURE;
298     STDMETHOD_(D3DRMTEXTUREQUALITY, GetTextureQuality)(THIS) PURE;
299     STDMETHOD(GetDirect3DDevice)(THIS_ LPDIRECT3DDEVICE *) PURE;
300     };
301    
302     #undef INTERFACE
303     #define INTERFACE IDirect3DRMDevice2
304    
305     DECLARE_INTERFACE_(IDirect3DRMDevice2, IDirect3DRMDevice)
306     {
307     IUNKNOWN_METHODS(PURE);
308     IDIRECT3DRMOBJECT_METHODS(PURE);
309    
310     /*
311     * IDirect3DRMDevice methods
312     */
313     STDMETHOD(Init)(THIS_ ULONG width, ULONG height) PURE;
314     STDMETHOD(InitFromD3D)(THIS_ LPDIRECT3D lpD3D, LPDIRECT3DDEVICE lpD3DDev) PURE;
315     STDMETHOD(InitFromClipper)(THIS_ LPDIRECTDRAWCLIPPER lpDDClipper, LPGUID lpGUID, int width, int height) PURE;
316    
317     STDMETHOD(Update)(THIS) PURE;
318     STDMETHOD(AddUpdateCallback)(THIS_ D3DRMUPDATECALLBACK, LPVOID arg) PURE;
319     STDMETHOD(DeleteUpdateCallback)(THIS_ D3DRMUPDATECALLBACK, LPVOID arg) PURE;
320     STDMETHOD(SetBufferCount)(THIS_ DWORD) PURE;
321     STDMETHOD_(DWORD, GetBufferCount)(THIS) PURE;
322    
323     STDMETHOD(SetDither)(THIS_ BOOL) PURE;
324     STDMETHOD(SetShades)(THIS_ DWORD) PURE;
325     STDMETHOD(SetQuality)(THIS_ D3DRMRENDERQUALITY) PURE;
326     STDMETHOD(SetTextureQuality)(THIS_ D3DRMTEXTUREQUALITY) PURE;
327    
328     STDMETHOD(GetViewports)(THIS_ LPDIRECT3DRMVIEWPORTARRAY *return_views) PURE;
329    
330     STDMETHOD_(BOOL, GetDither)(THIS) PURE;
331     STDMETHOD_(DWORD, GetShades)(THIS) PURE;
332     STDMETHOD_(DWORD, GetHeight)(THIS) PURE;
333     STDMETHOD_(DWORD, GetWidth)(THIS) PURE;
334     STDMETHOD_(DWORD, GetTrianglesDrawn)(THIS) PURE;
335     STDMETHOD_(DWORD, GetWireframeOptions)(THIS) PURE;
336     STDMETHOD_(D3DRMRENDERQUALITY, GetQuality)(THIS) PURE;
337     STDMETHOD_(D3DCOLORMODEL, GetColorModel)(THIS) PURE;
338     STDMETHOD_(D3DRMTEXTUREQUALITY, GetTextureQuality)(THIS) PURE;
339     STDMETHOD(GetDirect3DDevice)(THIS_ LPDIRECT3DDEVICE *) PURE;
340    
341     /*
342     * IDirect3DRMDevice2 methods
343     */
344     STDMETHOD(InitFromD3D2)(THIS_ LPDIRECT3D2 lpD3D, LPDIRECT3DDEVICE2 lpD3DDev) PURE;
345     STDMETHOD(InitFromSurface)(THIS_ LPGUID lpGUID, LPDIRECTDRAW lpDD, LPDIRECTDRAWSURFACE lpDDSBack) PURE;
346     STDMETHOD(SetRenderMode)(THIS_ DWORD dwFlags) PURE;
347     STDMETHOD_(DWORD, GetRenderMode)(THIS) PURE;
348     STDMETHOD(GetDirect3DDevice2)(THIS_ LPDIRECT3DDEVICE2 *) PURE;
349     };
350    
351     #undef INTERFACE
352     #define INTERFACE IDirect3DRMDevice3
353    
354     DECLARE_INTERFACE_(IDirect3DRMDevice3, IDirect3DRMObject)
355     {
356     IUNKNOWN_METHODS(PURE);
357     IDIRECT3DRMOBJECT_METHODS(PURE);
358    
359     /*
360     * IDirect3DRMDevice methods
361     */
362     STDMETHOD(Init)(THIS_ ULONG width, ULONG height) PURE;
363     STDMETHOD(InitFromD3D)(THIS_ LPDIRECT3D lpD3D, LPDIRECT3DDEVICE lpD3DDev) PURE;
364     STDMETHOD(InitFromClipper)(THIS_ LPDIRECTDRAWCLIPPER lpDDClipper, LPGUID lpGUID, int width, int height) PURE;
365    
366     STDMETHOD(Update)(THIS) PURE;
367     STDMETHOD(AddUpdateCallback)(THIS_ D3DRMDEVICE3UPDATECALLBACK, LPVOID arg) PURE;
368     STDMETHOD(DeleteUpdateCallback)(THIS_ D3DRMDEVICE3UPDATECALLBACK, LPVOID arg) PURE;
369     STDMETHOD(SetBufferCount)(THIS_ DWORD) PURE;
370     STDMETHOD_(DWORD, GetBufferCount)(THIS) PURE;
371    
372     STDMETHOD(SetDither)(THIS_ BOOL) PURE;
373     STDMETHOD(SetShades)(THIS_ DWORD) PURE;
374     STDMETHOD(SetQuality)(THIS_ D3DRMRENDERQUALITY) PURE;
375     STDMETHOD(SetTextureQuality)(THIS_ D3DRMTEXTUREQUALITY) PURE;
376    
377     STDMETHOD(GetViewports)(THIS_ LPDIRECT3DRMVIEWPORTARRAY *return_views) PURE;
378    
379     STDMETHOD_(BOOL, GetDither)(THIS) PURE;
380     STDMETHOD_(DWORD, GetShades)(THIS) PURE;
381     STDMETHOD_(DWORD, GetHeight)(THIS) PURE;
382     STDMETHOD_(DWORD, GetWidth)(THIS) PURE;
383     STDMETHOD_(DWORD, GetTrianglesDrawn)(THIS) PURE;
384     STDMETHOD_(DWORD, GetWireframeOptions)(THIS) PURE;
385     STDMETHOD_(D3DRMRENDERQUALITY, GetQuality)(THIS) PURE;
386     STDMETHOD_(D3DCOLORMODEL, GetColorModel)(THIS) PURE;
387     STDMETHOD_(D3DRMTEXTUREQUALITY, GetTextureQuality)(THIS) PURE;
388     STDMETHOD(GetDirect3DDevice)(THIS_ LPDIRECT3DDEVICE *) PURE;
389    
390     /*
391     * IDirect3DRMDevice2 methods
392     */
393     STDMETHOD(InitFromD3D2)(THIS_ LPDIRECT3D2 lpD3D, LPDIRECT3DDEVICE2 lpD3DDev) PURE;
394     STDMETHOD(InitFromSurface)(THIS_ LPGUID lpGUID, LPDIRECTDRAW lpDD, LPDIRECTDRAWSURFACE lpDDSBack, DWORD dwFlags) PURE;
395     STDMETHOD(SetRenderMode)(THIS_ DWORD dwFlags) PURE;
396     STDMETHOD_(DWORD, GetRenderMode)(THIS) PURE;
397     STDMETHOD(GetDirect3DDevice2)(THIS_ LPDIRECT3DDEVICE2 *) PURE;
398    
399     /*
400     * IDirect3DRMDevice3 methods
401     */
402     STDMETHOD(FindPreferredTextureFormat)(THIS_ DWORD dwBitDepths, DWORD dwFlags, LPDDPIXELFORMAT lpDDPF) PURE;
403     STDMETHOD(RenderStateChange)(THIS_ D3DRENDERSTATETYPE drsType, DWORD dwVal, DWORD dwFlags) PURE;
404     STDMETHOD(LightStateChange)(THIS_ D3DLIGHTSTATETYPE drsType, DWORD dwVal, DWORD dwFlags) PURE;
405     STDMETHOD(GetStateChangeOptions)(THIS_ DWORD dwStateClass, DWORD dwStateNum, LPDWORD pdwFlags) PURE;
406     STDMETHOD(SetStateChangeOptions)(THIS_ DWORD dwStateClass, DWORD dwStateNum, DWORD dwFlags) PURE;
407     };
408    
409    
410     #undef INTERFACE
411     #define INTERFACE IDirect3DRMViewport
412    
413     DECLARE_INTERFACE_(IDirect3DRMViewport, IDirect3DRMObject)
414     {
415     IUNKNOWN_METHODS(PURE);
416     IDIRECT3DRMOBJECT_METHODS(PURE);
417    
418     /*
419     * IDirect3DRMViewport methods
420     */
421     STDMETHOD(Init)
422     ( THIS_ LPDIRECT3DRMDEVICE dev, LPDIRECT3DRMFRAME camera,
423     DWORD xpos, DWORD ypos, DWORD width, DWORD height
424     ) PURE;
425     STDMETHOD(Clear)(THIS) PURE;
426     STDMETHOD(Render)(THIS_ LPDIRECT3DRMFRAME) PURE;
427    
428     STDMETHOD(SetFront)(THIS_ D3DVALUE) PURE;
429     STDMETHOD(SetBack)(THIS_ D3DVALUE) PURE;
430     STDMETHOD(SetField)(THIS_ D3DVALUE) PURE;
431     STDMETHOD(SetUniformScaling)(THIS_ BOOL) PURE;
432     STDMETHOD(SetCamera)(THIS_ LPDIRECT3DRMFRAME) PURE;
433     STDMETHOD(SetProjection)(THIS_ D3DRMPROJECTIONTYPE) PURE;
434     STDMETHOD(Transform)(THIS_ D3DRMVECTOR4D *d, D3DVECTOR *s) PURE;
435     STDMETHOD(InverseTransform)(THIS_ D3DVECTOR *d, D3DRMVECTOR4D *s) PURE;
436     STDMETHOD(Configure)(THIS_ LONG x, LONG y, DWORD width, DWORD height) PURE;
437     STDMETHOD(ForceUpdate)(THIS_ DWORD x1, DWORD y1, DWORD x2, DWORD y2) PURE;
438     STDMETHOD(SetPlane)(THIS_ D3DVALUE left, D3DVALUE right, D3DVALUE bottom, D3DVALUE top) PURE;
439    
440     STDMETHOD(GetCamera)(THIS_ LPDIRECT3DRMFRAME *) PURE;
441     STDMETHOD(GetDevice)(THIS_ LPDIRECT3DRMDEVICE *) PURE;
442     STDMETHOD(GetPlane)(THIS_ D3DVALUE *left, D3DVALUE *right, D3DVALUE *bottom, D3DVALUE *top) PURE;
443     STDMETHOD(Pick)(THIS_ LONG x, LONG y, LPDIRECT3DRMPICKEDARRAY *return_visuals) PURE;
444    
445     STDMETHOD_(BOOL, GetUniformScaling)(THIS) PURE;
446     STDMETHOD_(LONG, GetX)(THIS) PURE;
447     STDMETHOD_(LONG, GetY)(THIS) PURE;
448     STDMETHOD_(DWORD, GetWidth)(THIS) PURE;
449     STDMETHOD_(DWORD, GetHeight)(THIS) PURE;
450     STDMETHOD_(D3DVALUE, GetField)(THIS) PURE;
451     STDMETHOD_(D3DVALUE, GetBack)(THIS) PURE;
452     STDMETHOD_(D3DVALUE, GetFront)(THIS) PURE;
453     STDMETHOD_(D3DRMPROJECTIONTYPE, GetProjection)(THIS) PURE;
454     STDMETHOD(GetDirect3DViewport)(THIS_ LPDIRECT3DVIEWPORT *) PURE;
455     };
456    
457     #undef INTERFACE
458     #define INTERFACE IDirect3DRMViewport2
459     DECLARE_INTERFACE_(IDirect3DRMViewport2, IDirect3DRMObject)
460     {
461     IUNKNOWN_METHODS(PURE);
462     IDIRECT3DRMOBJECT_METHODS(PURE);
463    
464     /*
465     * IDirect3DRMViewport2 methods
466     */
467     STDMETHOD(Init)
468     ( THIS_ LPDIRECT3DRMDEVICE3 dev, LPDIRECT3DRMFRAME3 camera,
469     DWORD xpos, DWORD ypos, DWORD width, DWORD height
470     ) PURE;
471     STDMETHOD(Clear)(THIS_ DWORD dwFlags) PURE;
472     STDMETHOD(Render)(THIS_ LPDIRECT3DRMFRAME3) PURE;
473    
474     STDMETHOD(SetFront)(THIS_ D3DVALUE) PURE;
475     STDMETHOD(SetBack)(THIS_ D3DVALUE) PURE;
476     STDMETHOD(SetField)(THIS_ D3DVALUE) PURE;
477     STDMETHOD(SetUniformScaling)(THIS_ BOOL) PURE;
478     STDMETHOD(SetCamera)(THIS_ LPDIRECT3DRMFRAME3) PURE;
479     STDMETHOD(SetProjection)(THIS_ D3DRMPROJECTIONTYPE) PURE;
480     STDMETHOD(Transform)(THIS_ D3DRMVECTOR4D *d, D3DVECTOR *s) PURE;
481     STDMETHOD(InverseTransform)(THIS_ D3DVECTOR *d, D3DRMVECTOR4D *s) PURE;
482     STDMETHOD(Configure)(THIS_ LONG x, LONG y, DWORD width, DWORD height) PURE;
483     STDMETHOD(ForceUpdate)(THIS_ DWORD x1, DWORD y1, DWORD x2, DWORD y2) PURE;
484     STDMETHOD(SetPlane)(THIS_ D3DVALUE left, D3DVALUE right, D3DVALUE bottom, D3DVALUE top) PURE;
485    
486     STDMETHOD(GetCamera)(THIS_ LPDIRECT3DRMFRAME3 *) PURE;
487     STDMETHOD(GetDevice)(THIS_ LPDIRECT3DRMDEVICE3 *) PURE;
488     STDMETHOD(GetPlane)(THIS_ D3DVALUE *left, D3DVALUE *right, D3DVALUE *bottom, D3DVALUE *top) PURE;
489     STDMETHOD(Pick)(THIS_ LONG x, LONG y, LPDIRECT3DRMPICKEDARRAY *return_visuals) PURE;
490    
491     STDMETHOD_(BOOL, GetUniformScaling)(THIS) PURE;
492     STDMETHOD_(LONG, GetX)(THIS) PURE;
493     STDMETHOD_(LONG, GetY)(THIS) PURE;
494     STDMETHOD_(DWORD, GetWidth)(THIS) PURE;
495     STDMETHOD_(DWORD, GetHeight)(THIS) PURE;
496     STDMETHOD_(D3DVALUE, GetField)(THIS) PURE;
497     STDMETHOD_(D3DVALUE, GetBack)(THIS) PURE;
498     STDMETHOD_(D3DVALUE, GetFront)(THIS) PURE;
499     STDMETHOD_(D3DRMPROJECTIONTYPE, GetProjection)(THIS) PURE;
500     STDMETHOD(GetDirect3DViewport)(THIS_ LPDIRECT3DVIEWPORT *) PURE;
501     STDMETHOD(TransformVectors)(THIS_ DWORD dwNumVectors,
502     LPD3DRMVECTOR4D lpDstVectors,
503     LPD3DVECTOR lpSrcVectors) PURE;
504     STDMETHOD(InverseTransformVectors)(THIS_ DWORD dwNumVectors,
505     LPD3DVECTOR lpDstVectors,
506     LPD3DRMVECTOR4D lpSrcVectors) PURE;
507     };
508    
509     #undef INTERFACE
510     #define INTERFACE IDirect3DRMFrame
511    
512     DECLARE_INTERFACE_(IDirect3DRMFrame, IDirect3DRMVisual)
513     {
514     IUNKNOWN_METHODS(PURE);
515     IDIRECT3DRMOBJECT_METHODS(PURE);
516    
517     /*
518     * IDirect3DRMFrame methods
519     */
520     STDMETHOD(AddChild)(THIS_ LPDIRECT3DRMFRAME child) PURE;
521     STDMETHOD(AddLight)(THIS_ LPDIRECT3DRMLIGHT) PURE;
522     STDMETHOD(AddMoveCallback)(THIS_ D3DRMFRAMEMOVECALLBACK, VOID *arg) PURE;
523     STDMETHOD(AddTransform)(THIS_ D3DRMCOMBINETYPE, D3DRMMATRIX4D) PURE;
524     STDMETHOD(AddTranslation)(THIS_ D3DRMCOMBINETYPE, D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
525     STDMETHOD(AddScale)(THIS_ D3DRMCOMBINETYPE, D3DVALUE sx, D3DVALUE sy, D3DVALUE sz) PURE;
526     STDMETHOD(AddRotation)(THIS_ D3DRMCOMBINETYPE, D3DVALUE x, D3DVALUE y, D3DVALUE z, D3DVALUE theta) PURE;
527     STDMETHOD(AddVisual)(THIS_ LPDIRECT3DRMVISUAL) PURE;
528     STDMETHOD(GetChildren)(THIS_ LPDIRECT3DRMFRAMEARRAY *children) PURE;
529     STDMETHOD_(D3DCOLOR, GetColor)(THIS) PURE;
530     STDMETHOD(GetLights)(THIS_ LPDIRECT3DRMLIGHTARRAY *lights) PURE;
531     STDMETHOD_(D3DRMMATERIALMODE, GetMaterialMode)(THIS) PURE;
532     STDMETHOD(GetParent)(THIS_ LPDIRECT3DRMFRAME *) PURE;
533     STDMETHOD(GetPosition)(THIS_ LPDIRECT3DRMFRAME reference, LPD3DVECTOR return_position) PURE;
534     STDMETHOD(GetRotation)(THIS_ LPDIRECT3DRMFRAME reference, LPD3DVECTOR axis, LPD3DVALUE return_theta) PURE;
535     STDMETHOD(GetScene)(THIS_ LPDIRECT3DRMFRAME *) PURE;
536     STDMETHOD_(D3DRMSORTMODE, GetSortMode)(THIS) PURE;
537     STDMETHOD(GetTexture)(THIS_ LPDIRECT3DRMTEXTURE *) PURE;
538     STDMETHOD(GetTransform)(THIS_ D3DRMMATRIX4D return_matrix) PURE;
539     STDMETHOD(GetVelocity)(THIS_ LPDIRECT3DRMFRAME reference, LPD3DVECTOR return_velocity, BOOL with_rotation) PURE;
540     STDMETHOD(GetOrientation)(THIS_ LPDIRECT3DRMFRAME reference, LPD3DVECTOR dir, LPD3DVECTOR up) PURE;
541     STDMETHOD(GetVisuals)(THIS_ LPDIRECT3DRMVISUALARRAY *visuals) PURE;
542     STDMETHOD(GetTextureTopology)(THIS_ BOOL *wrap_u, BOOL *wrap_v) PURE;
543     STDMETHOD(InverseTransform)(THIS_ D3DVECTOR *d, D3DVECTOR *s) PURE;
544     STDMETHOD(Load)(THIS_ LPVOID filename, LPVOID name, D3DRMLOADOPTIONS loadflags, D3DRMLOADTEXTURECALLBACK, LPVOID lpArg)PURE;
545     STDMETHOD(LookAt)(THIS_ LPDIRECT3DRMFRAME target, LPDIRECT3DRMFRAME reference, D3DRMFRAMECONSTRAINT) PURE;
546     STDMETHOD(Move)(THIS_ D3DVALUE delta) PURE;
547     STDMETHOD(DeleteChild)(THIS_ LPDIRECT3DRMFRAME) PURE;
548     STDMETHOD(DeleteLight)(THIS_ LPDIRECT3DRMLIGHT) PURE;
549     STDMETHOD(DeleteMoveCallback)(THIS_ D3DRMFRAMEMOVECALLBACK, VOID *arg) PURE;
550     STDMETHOD(DeleteVisual)(THIS_ LPDIRECT3DRMVISUAL) PURE;
551     STDMETHOD_(D3DCOLOR, GetSceneBackground)(THIS) PURE;
552     STDMETHOD(GetSceneBackgroundDepth)(THIS_ LPDIRECTDRAWSURFACE *) PURE;
553     STDMETHOD_(D3DCOLOR, GetSceneFogColor)(THIS) PURE;
554     STDMETHOD_(BOOL, GetSceneFogEnable)(THIS) PURE;
555     STDMETHOD_(D3DRMFOGMODE, GetSceneFogMode)(THIS) PURE;
556     STDMETHOD(GetSceneFogParams)(THIS_ D3DVALUE *return_start, D3DVALUE *return_end, D3DVALUE *return_density) PURE;
557     STDMETHOD(SetSceneBackground)(THIS_ D3DCOLOR) PURE;
558     STDMETHOD(SetSceneBackgroundRGB)(THIS_ D3DVALUE red, D3DVALUE green, D3DVALUE blue) PURE;
559     STDMETHOD(SetSceneBackgroundDepth)(THIS_ LPDIRECTDRAWSURFACE) PURE;
560     STDMETHOD(SetSceneBackgroundImage)(THIS_ LPDIRECT3DRMTEXTURE) PURE;
561     STDMETHOD(SetSceneFogEnable)(THIS_ BOOL) PURE;
562     STDMETHOD(SetSceneFogColor)(THIS_ D3DCOLOR) PURE;
563     STDMETHOD(SetSceneFogMode)(THIS_ D3DRMFOGMODE) PURE;
564     STDMETHOD(SetSceneFogParams)(THIS_ D3DVALUE start, D3DVALUE end, D3DVALUE density) PURE;
565     STDMETHOD(SetColor)(THIS_ D3DCOLOR) PURE;
566     STDMETHOD(SetColorRGB)(THIS_ D3DVALUE red, D3DVALUE green, D3DVALUE blue) PURE;
567     STDMETHOD_(D3DRMZBUFFERMODE, GetZbufferMode)(THIS) PURE;
568     STDMETHOD(SetMaterialMode)(THIS_ D3DRMMATERIALMODE) PURE;
569     STDMETHOD(SetOrientation)
570     ( THIS_ LPDIRECT3DRMFRAME reference,
571     D3DVALUE dx, D3DVALUE dy, D3DVALUE dz,
572     D3DVALUE ux, D3DVALUE uy, D3DVALUE uz
573     ) PURE;
574     STDMETHOD(SetPosition)(THIS_ LPDIRECT3DRMFRAME reference, D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
575     STDMETHOD(SetRotation)(THIS_ LPDIRECT3DRMFRAME reference, D3DVALUE x, D3DVALUE y, D3DVALUE z, D3DVALUE theta) PURE;
576     STDMETHOD(SetSortMode)(THIS_ D3DRMSORTMODE) PURE;
577     STDMETHOD(SetTexture)(THIS_ LPDIRECT3DRMTEXTURE) PURE;
578     STDMETHOD(SetTextureTopology)(THIS_ BOOL wrap_u, BOOL wrap_v) PURE;
579     STDMETHOD(SetVelocity)(THIS_ LPDIRECT3DRMFRAME reference, D3DVALUE x, D3DVALUE y, D3DVALUE z, BOOL with_rotation) PURE;
580     STDMETHOD(SetZbufferMode)(THIS_ D3DRMZBUFFERMODE) PURE;
581     STDMETHOD(Transform)(THIS_ D3DVECTOR *d, D3DVECTOR *s) PURE;
582     };
583    
584     #undef INTERFACE
585     #define INTERFACE IDirect3DRMFrame2
586    
587     DECLARE_INTERFACE_(IDirect3DRMFrame2, IDirect3DRMFrame)
588     {
589     IUNKNOWN_METHODS(PURE);
590     IDIRECT3DRMOBJECT_METHODS(PURE);
591    
592     /*
593     * IDirect3DRMFrame methods
594     */
595     STDMETHOD(AddChild)(THIS_ LPDIRECT3DRMFRAME child) PURE;
596     STDMETHOD(AddLight)(THIS_ LPDIRECT3DRMLIGHT) PURE;
597     STDMETHOD(AddMoveCallback)(THIS_ D3DRMFRAMEMOVECALLBACK, VOID *arg) PURE;
598     STDMETHOD(AddTransform)(THIS_ D3DRMCOMBINETYPE, D3DRMMATRIX4D) PURE;
599     STDMETHOD(AddTranslation)(THIS_ D3DRMCOMBINETYPE, D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
600     STDMETHOD(AddScale)(THIS_ D3DRMCOMBINETYPE, D3DVALUE sx, D3DVALUE sy, D3DVALUE sz) PURE;
601     STDMETHOD(AddRotation)(THIS_ D3DRMCOMBINETYPE, D3DVALUE x, D3DVALUE y, D3DVALUE z, D3DVALUE theta) PURE;
602     STDMETHOD(AddVisual)(THIS_ LPDIRECT3DRMVISUAL) PURE;
603     STDMETHOD(GetChildren)(THIS_ LPDIRECT3DRMFRAMEARRAY *children) PURE;
604     STDMETHOD_(D3DCOLOR, GetColor)(THIS) PURE;
605     STDMETHOD(GetLights)(THIS_ LPDIRECT3DRMLIGHTARRAY *lights) PURE;
606     STDMETHOD_(D3DRMMATERIALMODE, GetMaterialMode)(THIS) PURE;
607     STDMETHOD(GetParent)(THIS_ LPDIRECT3DRMFRAME *) PURE;
608     STDMETHOD(GetPosition)(THIS_ LPDIRECT3DRMFRAME reference, LPD3DVECTOR return_position) PURE;
609     STDMETHOD(GetRotation)(THIS_ LPDIRECT3DRMFRAME reference, LPD3DVECTOR axis, LPD3DVALUE return_theta) PURE;
610     STDMETHOD(GetScene)(THIS_ LPDIRECT3DRMFRAME *) PURE;
611     STDMETHOD_(D3DRMSORTMODE, GetSortMode)(THIS) PURE;
612     STDMETHOD(GetTexture)(THIS_ LPDIRECT3DRMTEXTURE *) PURE;
613     STDMETHOD(GetTransform)(THIS_ D3DRMMATRIX4D return_matrix) PURE;
614     STDMETHOD(GetVelocity)(THIS_ LPDIRECT3DRMFRAME reference, LPD3DVECTOR return_velocity, BOOL with_rotation) PURE;
615     STDMETHOD(GetOrientation)(THIS_ LPDIRECT3DRMFRAME reference, LPD3DVECTOR dir, LPD3DVECTOR up) PURE;
616     STDMETHOD(GetVisuals)(THIS_ LPDIRECT3DRMVISUALARRAY *visuals) PURE;
617     STDMETHOD(GetTextureTopology)(THIS_ BOOL *wrap_u, BOOL *wrap_v) PURE;
618     STDMETHOD(InverseTransform)(THIS_ D3DVECTOR *d, D3DVECTOR *s) PURE;
619     STDMETHOD(Load)(THIS_ LPVOID filename, LPVOID name, D3DRMLOADOPTIONS loadflags, D3DRMLOADTEXTURECALLBACK, LPVOID lpArg)PURE;
620     STDMETHOD(LookAt)(THIS_ LPDIRECT3DRMFRAME target, LPDIRECT3DRMFRAME reference, D3DRMFRAMECONSTRAINT) PURE;
621     STDMETHOD(Move)(THIS_ D3DVALUE delta) PURE;
622     STDMETHOD(DeleteChild)(THIS_ LPDIRECT3DRMFRAME) PURE;
623     STDMETHOD(DeleteLight)(THIS_ LPDIRECT3DRMLIGHT) PURE;
624     STDMETHOD(DeleteMoveCallback)(THIS_ D3DRMFRAMEMOVECALLBACK, VOID *arg) PURE;
625     STDMETHOD(DeleteVisual)(THIS_ LPDIRECT3DRMVISUAL) PURE;
626     STDMETHOD_(D3DCOLOR, GetSceneBackground)(THIS) PURE;
627     STDMETHOD(GetSceneBackgroundDepth)(THIS_ LPDIRECTDRAWSURFACE *) PURE;
628     STDMETHOD_(D3DCOLOR, GetSceneFogColor)(THIS) PURE;
629     STDMETHOD_(BOOL, GetSceneFogEnable)(THIS) PURE;
630     STDMETHOD_(D3DRMFOGMODE, GetSceneFogMode)(THIS) PURE;
631     STDMETHOD(GetSceneFogParams)(THIS_ D3DVALUE *return_start, D3DVALUE *return_end, D3DVALUE *return_density) PURE;
632     STDMETHOD(SetSceneBackground)(THIS_ D3DCOLOR) PURE;
633     STDMETHOD(SetSceneBackgroundRGB)(THIS_ D3DVALUE red, D3DVALUE green, D3DVALUE blue) PURE;
634     STDMETHOD(SetSceneBackgroundDepth)(THIS_ LPDIRECTDRAWSURFACE) PURE;
635     STDMETHOD(SetSceneBackgroundImage)(THIS_ LPDIRECT3DRMTEXTURE) PURE;
636     STDMETHOD(SetSceneFogEnable)(THIS_ BOOL) PURE;
637     STDMETHOD(SetSceneFogColor)(THIS_ D3DCOLOR) PURE;
638     STDMETHOD(SetSceneFogMode)(THIS_ D3DRMFOGMODE) PURE;
639     STDMETHOD(SetSceneFogParams)(THIS_ D3DVALUE start, D3DVALUE end, D3DVALUE density) PURE;
640     STDMETHOD(SetColor)(THIS_ D3DCOLOR) PURE;
641     STDMETHOD(SetColorRGB)(THIS_ D3DVALUE red, D3DVALUE green, D3DVALUE blue) PURE;
642     STDMETHOD_(D3DRMZBUFFERMODE, GetZbufferMode)(THIS) PURE;
643     STDMETHOD(SetMaterialMode)(THIS_ D3DRMMATERIALMODE) PURE;
644     STDMETHOD(SetOrientation)
645     ( THIS_ LPDIRECT3DRMFRAME reference,
646     D3DVALUE dx, D3DVALUE dy, D3DVALUE dz,
647     D3DVALUE ux, D3DVALUE uy, D3DVALUE uz
648     ) PURE;
649     STDMETHOD(SetPosition)(THIS_ LPDIRECT3DRMFRAME reference, D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
650     STDMETHOD(SetRotation)(THIS_ LPDIRECT3DRMFRAME reference, D3DVALUE x, D3DVALUE y, D3DVALUE z, D3DVALUE theta) PURE;
651     STDMETHOD(SetSortMode)(THIS_ D3DRMSORTMODE) PURE;
652     STDMETHOD(SetTexture)(THIS_ LPDIRECT3DRMTEXTURE) PURE;
653     STDMETHOD(SetTextureTopology)(THIS_ BOOL wrap_u, BOOL wrap_v) PURE;
654     STDMETHOD(SetVelocity)(THIS_ LPDIRECT3DRMFRAME reference, D3DVALUE x, D3DVALUE y, D3DVALUE z, BOOL with_rotation) PURE;
655     STDMETHOD(SetZbufferMode)(THIS_ D3DRMZBUFFERMODE) PURE;
656     STDMETHOD(Transform)(THIS_ D3DVECTOR *d, D3DVECTOR *s) PURE;
657    
658     /*
659     * IDirect3DRMFrame2 methods
660     */
661     STDMETHOD(AddMoveCallback2)(THIS_ D3DRMFRAMEMOVECALLBACK, VOID *arg, DWORD dwFlags) PURE;
662     STDMETHOD(GetBox)(THIS_ LPD3DRMBOX) PURE;
663     STDMETHOD_(BOOL, GetBoxEnable)(THIS) PURE;
664     STDMETHOD(GetAxes)(THIS_ LPD3DVECTOR dir, LPD3DVECTOR up);
665     STDMETHOD(GetMaterial)(THIS_ LPDIRECT3DRMMATERIAL *) PURE;
666     STDMETHOD_(BOOL, GetInheritAxes)(THIS);
667     STDMETHOD(GetHierarchyBox)(THIS_ LPD3DRMBOX) PURE;
668    
669     STDMETHOD(SetBox)(THIS_ LPD3DRMBOX) PURE;
670     STDMETHOD(SetBoxEnable)(THIS_ BOOL) PURE;
671     STDMETHOD(SetAxes)(THIS_ D3DVALUE dx, D3DVALUE dy, D3DVALUE dz,
672     D3DVALUE ux, D3DVALUE uy, D3DVALUE uz);
673     STDMETHOD(SetInheritAxes)(THIS_ BOOL inherit_from_parent);
674     STDMETHOD(SetMaterial)(THIS_ LPDIRECT3DRMMATERIAL) PURE;
675     STDMETHOD(SetQuaternion)(THIS_ LPDIRECT3DRMFRAME reference, D3DRMQUATERNION *q) PURE;
676    
677     STDMETHOD(RayPick)(THIS_ LPDIRECT3DRMFRAME reference, LPD3DRMRAY ray, DWORD dwFlags, LPDIRECT3DRMPICKED2ARRAY *return_visuals) PURE;
678     STDMETHOD(Save)(THIS_ LPCSTR filename, D3DRMXOFFORMAT d3dFormat,
679     D3DRMSAVEOPTIONS d3dSaveFlags);
680     };
681    
682     #undef INTERFACE
683     #define INTERFACE IDirect3DRMFrame3
684    
685     DECLARE_INTERFACE_(IDirect3DRMFrame3, IDirect3DRMVisual)
686     {
687     IUNKNOWN_METHODS(PURE);
688     IDIRECT3DRMOBJECT_METHODS(PURE);
689    
690     /*
691     * IDirect3DRMFrame3 methods
692     */
693     STDMETHOD(AddChild)(THIS_ LPDIRECT3DRMFRAME3 child) PURE;
694     STDMETHOD(AddLight)(THIS_ LPDIRECT3DRMLIGHT) PURE;
695     STDMETHOD(AddMoveCallback)(THIS_ D3DRMFRAME3MOVECALLBACK, VOID *arg, DWORD dwFlags) PURE;
696     STDMETHOD(AddTransform)(THIS_ D3DRMCOMBINETYPE, D3DRMMATRIX4D) PURE;
697     STDMETHOD(AddTranslation)(THIS_ D3DRMCOMBINETYPE, D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
698     STDMETHOD(AddScale)(THIS_ D3DRMCOMBINETYPE, D3DVALUE sx, D3DVALUE sy, D3DVALUE sz) PURE;
699     STDMETHOD(AddRotation)(THIS_ D3DRMCOMBINETYPE, D3DVALUE x, D3DVALUE y, D3DVALUE z, D3DVALUE theta) PURE;
700     STDMETHOD(AddVisual)(THIS_ LPUNKNOWN) PURE;
701     STDMETHOD(GetChildren)(THIS_ LPDIRECT3DRMFRAMEARRAY *children) PURE;
702     STDMETHOD_(D3DCOLOR, GetColor)(THIS) PURE;
703     STDMETHOD(GetLights)(THIS_ LPDIRECT3DRMLIGHTARRAY *lights) PURE;
704     STDMETHOD_(D3DRMMATERIALMODE, GetMaterialMode)(THIS) PURE;
705     STDMETHOD(GetParent)(THIS_ LPDIRECT3DRMFRAME3 *) PURE;
706     STDMETHOD(GetPosition)(THIS_ LPDIRECT3DRMFRAME3 reference, LPD3DVECTOR return_position) PURE;
707     STDMETHOD(GetRotation)(THIS_ LPDIRECT3DRMFRAME3 reference, LPD3DVECTOR axis, LPD3DVALUE return_theta) PURE;
708     STDMETHOD(GetScene)(THIS_ LPDIRECT3DRMFRAME3 *) PURE;
709     STDMETHOD_(D3DRMSORTMODE, GetSortMode)(THIS) PURE;
710     STDMETHOD(GetTexture)(THIS_ LPDIRECT3DRMTEXTURE3 *) PURE;
711     STDMETHOD(GetTransform)(THIS_ LPDIRECT3DRMFRAME3 reference,
712     D3DRMMATRIX4D rmMatrix) PURE;
713     STDMETHOD(GetVelocity)(THIS_ LPDIRECT3DRMFRAME3 reference, LPD3DVECTOR return_velocity, BOOL with_rotation) PURE;
714     STDMETHOD(GetOrientation)(THIS_ LPDIRECT3DRMFRAME3 reference, LPD3DVECTOR dir, LPD3DVECTOR up) PURE;
715     STDMETHOD(GetVisuals)(THIS_ LPDWORD lpdwCount, LPUNKNOWN *) PURE;
716     STDMETHOD(InverseTransform)(THIS_ D3DVECTOR *d, D3DVECTOR *s) PURE;
717     STDMETHOD(Load)(THIS_ LPVOID filename, LPVOID name, D3DRMLOADOPTIONS loadflags, D3DRMLOADTEXTURE3CALLBACK, LPVOID lpArg)PURE;
718     STDMETHOD(LookAt)(THIS_ LPDIRECT3DRMFRAME3 target, LPDIRECT3DRMFRAME3 reference, D3DRMFRAMECONSTRAINT) PURE;
719     STDMETHOD(Move)(THIS_ D3DVALUE delta) PURE;
720     STDMETHOD(DeleteChild)(THIS_ LPDIRECT3DRMFRAME3) PURE;
721     STDMETHOD(DeleteLight)(THIS_ LPDIRECT3DRMLIGHT) PURE;
722     STDMETHOD(DeleteMoveCallback)(THIS_ D3DRMFRAME3MOVECALLBACK, VOID *arg) PURE;
723     STDMETHOD(DeleteVisual)(THIS_ LPUNKNOWN) PURE;
724     STDMETHOD_(D3DCOLOR, GetSceneBackground)(THIS) PURE;
725     STDMETHOD(GetSceneBackgroundDepth)(THIS_ LPDIRECTDRAWSURFACE *) PURE;
726     STDMETHOD_(D3DCOLOR, GetSceneFogColor)(THIS) PURE;
727     STDMETHOD_(BOOL, GetSceneFogEnable)(THIS) PURE;
728     STDMETHOD_(D3DRMFOGMODE, GetSceneFogMode)(THIS) PURE;
729     STDMETHOD(GetSceneFogParams)(THIS_ D3DVALUE *return_start, D3DVALUE *return_end, D3DVALUE *return_density) PURE;
730     STDMETHOD(SetSceneBackground)(THIS_ D3DCOLOR) PURE;
731     STDMETHOD(SetSceneBackgroundRGB)(THIS_ D3DVALUE red, D3DVALUE green, D3DVALUE blue) PURE;
732     STDMETHOD(SetSceneBackgroundDepth)(THIS_ LPDIRECTDRAWSURFACE) PURE;
733     STDMETHOD(SetSceneBackgroundImage)(THIS_ LPDIRECT3DRMTEXTURE3) PURE;
734     STDMETHOD(SetSceneFogEnable)(THIS_ BOOL) PURE;
735     STDMETHOD(SetSceneFogColor)(THIS_ D3DCOLOR) PURE;
736     STDMETHOD(SetSceneFogMode)(THIS_ D3DRMFOGMODE) PURE;
737     STDMETHOD(SetSceneFogParams)(THIS_ D3DVALUE start, D3DVALUE end, D3DVALUE density) PURE;
738     STDMETHOD(SetColor)(THIS_ D3DCOLOR) PURE;
739     STDMETHOD(SetColorRGB)(THIS_ D3DVALUE red, D3DVALUE green, D3DVALUE blue) PURE;
740     STDMETHOD_(D3DRMZBUFFERMODE, GetZbufferMode)(THIS) PURE;
741     STDMETHOD(SetMaterialMode)(THIS_ D3DRMMATERIALMODE) PURE;
742     STDMETHOD(SetOrientation)
743     ( THIS_ LPDIRECT3DRMFRAME3 reference,
744     D3DVALUE dx, D3DVALUE dy, D3DVALUE dz,
745     D3DVALUE ux, D3DVALUE uy, D3DVALUE uz
746     ) PURE;
747     STDMETHOD(SetPosition)(THIS_ LPDIRECT3DRMFRAME3 reference, D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
748     STDMETHOD(SetRotation)(THIS_ LPDIRECT3DRMFRAME3 reference, D3DVALUE x, D3DVALUE y, D3DVALUE z, D3DVALUE theta) PURE;
749     STDMETHOD(SetSortMode)(THIS_ D3DRMSORTMODE) PURE;
750     STDMETHOD(SetTexture)(THIS_ LPDIRECT3DRMTEXTURE3) PURE;
751     STDMETHOD(SetVelocity)(THIS_ LPDIRECT3DRMFRAME3 reference, D3DVALUE x, D3DVALUE y, D3DVALUE z, BOOL with_rotation) PURE;
752     STDMETHOD(SetZbufferMode)(THIS_ D3DRMZBUFFERMODE) PURE;
753     STDMETHOD(Transform)(THIS_ D3DVECTOR *d, D3DVECTOR *s) PURE;
754     STDMETHOD(GetBox)(THIS_ LPD3DRMBOX) PURE;
755     STDMETHOD_(BOOL, GetBoxEnable)(THIS) PURE;
756     STDMETHOD(GetAxes)(THIS_ LPD3DVECTOR dir, LPD3DVECTOR up);
757     STDMETHOD(GetMaterial)(THIS_ LPDIRECT3DRMMATERIAL2 *) PURE;
758     STDMETHOD_(BOOL, GetInheritAxes)(THIS);
759     STDMETHOD(GetHierarchyBox)(THIS_ LPD3DRMBOX) PURE;
760    
761     STDMETHOD(SetBox)(THIS_ LPD3DRMBOX) PURE;
762     STDMETHOD(SetBoxEnable)(THIS_ BOOL) PURE;
763     STDMETHOD(SetAxes)(THIS_ D3DVALUE dx, D3DVALUE dy, D3DVALUE dz,
764     D3DVALUE ux, D3DVALUE uy, D3DVALUE uz);
765     STDMETHOD(SetInheritAxes)(THIS_ BOOL inherit_from_parent);
766     STDMETHOD(SetMaterial)(THIS_ LPDIRECT3DRMMATERIAL2) PURE;
767     STDMETHOD(SetQuaternion)(THIS_ LPDIRECT3DRMFRAME3 reference, D3DRMQUATERNION *q) PURE;
768    
769     STDMETHOD(RayPick)(THIS_ LPDIRECT3DRMFRAME3 reference, LPD3DRMRAY ray, DWORD dwFlags, LPDIRECT3DRMPICKED2ARRAY *return_visuals) PURE;
770     STDMETHOD(Save)(THIS_ LPCSTR filename, D3DRMXOFFORMAT d3dFormat,
771     D3DRMSAVEOPTIONS d3dSaveFlags);
772     STDMETHOD(TransformVectors)(THIS_ LPDIRECT3DRMFRAME3 reference,
773     DWORD dwNumVectors,
774     LPD3DVECTOR lpDstVectors,
775     LPD3DVECTOR lpSrcVectors) PURE;
776     STDMETHOD(InverseTransformVectors)(THIS_ LPDIRECT3DRMFRAME3 reference,
777     DWORD dwNumVectors,
778     LPD3DVECTOR lpDstVectors,
779     LPD3DVECTOR lpSrcVectors) PURE;
780     STDMETHOD(SetTraversalOptions)(THIS_ DWORD dwFlags) PURE;
781     STDMETHOD(GetTraversalOptions)(THIS_ LPDWORD lpdwFlags) PURE;
782     STDMETHOD(SetSceneFogMethod)(THIS_ DWORD dwFlags) PURE;
783     STDMETHOD(GetSceneFogMethod)(THIS_ LPDWORD lpdwFlags) PURE;
784     STDMETHOD(SetMaterialOverride)(THIS_ LPD3DRMMATERIALOVERRIDE) PURE;
785     STDMETHOD(GetMaterialOverride)(THIS_ LPD3DRMMATERIALOVERRIDE) PURE;
786     };
787    
788     #undef INTERFACE
789     #define INTERFACE IDirect3DRMMesh
790    
791     DECLARE_INTERFACE_(IDirect3DRMMesh, IDirect3DRMVisual)
792     {
793     IUNKNOWN_METHODS(PURE);
794     IDIRECT3DRMOBJECT_METHODS(PURE);
795    
796     /*
797     * IDirect3DRMMesh methods
798     */
799     STDMETHOD(Scale)(THIS_ D3DVALUE sx, D3DVALUE sy, D3DVALUE sz) PURE;
800     STDMETHOD(Translate)(THIS_ D3DVALUE tx, D3DVALUE ty, D3DVALUE tz) PURE;
801     STDMETHOD(GetBox)(THIS_ D3DRMBOX *) PURE;
802     STDMETHOD(AddGroup)(THIS_ unsigned vCount, unsigned fCount, unsigned vPerFace, unsigned *fData, D3DRMGROUPINDEX *returnId) PURE;
803     STDMETHOD(SetVertices)(THIS_ D3DRMGROUPINDEX id, unsigned index, unsigned count, D3DRMVERTEX *values) PURE;
804     STDMETHOD(SetGroupColor)(THIS_ D3DRMGROUPINDEX id, D3DCOLOR value) PURE;
805     STDMETHOD(SetGroupColorRGB)(THIS_ D3DRMGROUPINDEX id, D3DVALUE red, D3DVALUE green, D3DVALUE blue) PURE;
806     STDMETHOD(SetGroupMapping)(THIS_ D3DRMGROUPINDEX id, D3DRMMAPPING value) PURE;
807     STDMETHOD(SetGroupQuality)(THIS_ D3DRMGROUPINDEX id, D3DRMRENDERQUALITY value) PURE;
808     STDMETHOD(SetGroupMaterial)(THIS_ D3DRMGROUPINDEX id, LPDIRECT3DRMMATERIAL value) PURE;
809     STDMETHOD(SetGroupTexture)(THIS_ D3DRMGROUPINDEX id, LPDIRECT3DRMTEXTURE value) PURE;
810    
811     STDMETHOD_(unsigned, GetGroupCount)(THIS) PURE;
812     STDMETHOD(GetGroup)(THIS_ D3DRMGROUPINDEX id, unsigned *vCount, unsigned *fCount, unsigned *vPerFace, DWORD *fDataSize, unsigned *fData) PURE;
813     STDMETHOD(GetVertices)(THIS_ D3DRMGROUPINDEX id, DWORD index, DWORD count, D3DRMVERTEX *returnPtr) PURE;
814     STDMETHOD_(D3DCOLOR, GetGroupColor)(THIS_ D3DRMGROUPINDEX id) PURE;
815     STDMETHOD_(D3DRMMAPPING, GetGroupMapping)(THIS_ D3DRMGROUPINDEX id) PURE;
816     STDMETHOD_(D3DRMRENDERQUALITY, GetGroupQuality)(THIS_ D3DRMGROUPINDEX id) PURE;
817     STDMETHOD(GetGroupMaterial)(THIS_ D3DRMGROUPINDEX id, LPDIRECT3DRMMATERIAL *returnPtr) PURE;
818     STDMETHOD(GetGroupTexture)(THIS_ D3DRMGROUPINDEX id, LPDIRECT3DRMTEXTURE *returnPtr) PURE;
819     };
820    
821     #undef INTERFACE
822     #define INTERFACE IDirect3DRMProgressiveMesh
823    
824     DECLARE_INTERFACE_(IDirect3DRMProgressiveMesh, IDirect3DRMVisual)
825     {
826     IUNKNOWN_METHODS(PURE);
827     IDIRECT3DRMOBJECT_METHODS(PURE);
828    
829     /*
830     * IDirect3DRMProgressiveMesh methods
831     */
832     STDMETHOD(Load) (THIS_ LPVOID lpObjLocation, LPVOID lpObjId,
833     D3DRMLOADOPTIONS dloLoadflags, D3DRMLOADTEXTURECALLBACK lpCallback,
834     LPVOID lpArg) PURE;
835     STDMETHOD(GetLoadStatus) (THIS_ LPD3DRMPMESHLOADSTATUS lpStatus) PURE;
836     STDMETHOD(SetMinRenderDetail) (THIS_ D3DVALUE d3dVal) PURE;
837     STDMETHOD(Abort) (THIS_ DWORD dwFlags) PURE;
838    
839     STDMETHOD(GetFaceDetail) (THIS_ LPDWORD lpdwCount) PURE;
840     STDMETHOD(GetVertexDetail) (THIS_ LPDWORD lpdwCount) PURE;
841     STDMETHOD(SetFaceDetail) (THIS_ DWORD dwCount) PURE;
842     STDMETHOD(SetVertexDetail) (THIS_ DWORD dwCount) PURE;
843     STDMETHOD(GetFaceDetailRange) (THIS_ LPDWORD lpdwMin, LPDWORD lpdwMax) PURE;
844     STDMETHOD(GetVertexDetailRange) (THIS_ LPDWORD lpdwMin, LPDWORD lpdwMax) PURE;
845     STDMETHOD(GetDetail) (THIS_ D3DVALUE *lpdvVal) PURE;
846     STDMETHOD(SetDetail) (THIS_ D3DVALUE d3dVal) PURE;
847    
848     STDMETHOD(RegisterEvents) (THIS_ HANDLE hEvent, DWORD dwFlags, DWORD dwReserved) PURE;
849     STDMETHOD(CreateMesh) (THIS_ LPDIRECT3DRMMESH *lplpD3DRMMesh) PURE;
850     STDMETHOD(Duplicate) (THIS_ LPDIRECT3DRMPROGRESSIVEMESH *lplpD3DRMPMesh) PURE;
851     STDMETHOD(GetBox) (THIS_ LPD3DRMBOX lpBBox) PURE;
852     STDMETHOD(SetQuality) (THIS_ D3DRMRENDERQUALITY) PURE;
853     STDMETHOD(GetQuality) (THIS_ LPD3DRMRENDERQUALITY lpdwquality) PURE;
854     };
855    
856     #undef INTERFACE
857     #define INTERFACE IDirect3DRMShadow
858    
859     DECLARE_INTERFACE_(IDirect3DRMShadow, IDirect3DRMVisual)
860     {
861     IUNKNOWN_METHODS(PURE);
862     IDIRECT3DRMOBJECT_METHODS(PURE);
863    
864     /*
865     * IDirect3DRMShadow methods
866     */
867     STDMETHOD(Init)
868     ( THIS_ LPDIRECT3DRMVISUAL visual, LPDIRECT3DRMLIGHT light,
869     D3DVALUE px, D3DVALUE py, D3DVALUE pz,
870     D3DVALUE nx, D3DVALUE ny, D3DVALUE nz
871     ) PURE;
872     };
873    
874     #undef INTERFACE
875     #define INTERFACE IDirect3DRMShadow2
876    
877     DECLARE_INTERFACE_(IDirect3DRMShadow2, IDirect3DRMVisual)
878     {
879     IUNKNOWN_METHODS(PURE);
880     IDIRECT3DRMOBJECT_METHODS(PURE);
881    
882     /*
883     * IDirect3DRMShadow methods
884     */
885     STDMETHOD(Init)
886     ( THIS_ LPUNKNOWN pUNK, LPDIRECT3DRMLIGHT light,
887     D3DVALUE px, D3DVALUE py, D3DVALUE pz,
888     D3DVALUE nx, D3DVALUE ny, D3DVALUE nz
889     ) PURE;
890    
891     /*
892     * IDirect3DRMShadow2 methods
893     */
894     STDMETHOD(GetVisual)(THIS_ LPDIRECT3DRMVISUAL *) PURE;
895     STDMETHOD(SetVisual)(THIS_ LPUNKNOWN pUNK, DWORD) PURE;
896     STDMETHOD(GetLight)(THIS_ LPDIRECT3DRMLIGHT *) PURE;
897     STDMETHOD(SetLight)(THIS_ LPDIRECT3DRMLIGHT, DWORD) PURE;
898     STDMETHOD(GetPlane)(THIS_ LPD3DVALUE px, LPD3DVALUE py, LPD3DVALUE pz,
899     LPD3DVALUE nx, LPD3DVALUE ny, LPD3DVALUE nz) PURE;
900     STDMETHOD(SetPlane)(THIS_ D3DVALUE px, D3DVALUE py, D3DVALUE pz,
901     D3DVALUE nx, D3DVALUE ny, D3DVALUE nz, DWORD) PURE;
902     STDMETHOD(GetOptions)(THIS_ LPDWORD) PURE;
903     STDMETHOD(SetOptions)(THIS_ DWORD) PURE;
904     };
905    
906     #undef INTERFACE
907     #define INTERFACE IDirect3DRMFace
908    
909     DECLARE_INTERFACE_(IDirect3DRMFace, IDirect3DRMObject)
910     {
911     IUNKNOWN_METHODS(PURE);
912     IDIRECT3DRMOBJECT_METHODS(PURE);
913    
914     /*
915     * IDirect3DRMFace methods
916     */
917     STDMETHOD(AddVertex)(THIS_ D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
918     STDMETHOD(AddVertexAndNormalIndexed)(THIS_ DWORD vertex, DWORD normal) PURE;
919     STDMETHOD(SetColorRGB)(THIS_ D3DVALUE, D3DVALUE, D3DVALUE) PURE;
920     STDMETHOD(SetColor)(THIS_ D3DCOLOR) PURE;
921     STDMETHOD(SetTexture)(THIS_ LPDIRECT3DRMTEXTURE) PURE;
922     STDMETHOD(SetTextureCoordinates)(THIS_ DWORD vertex, D3DVALUE u, D3DVALUE v) PURE;
923     STDMETHOD(SetMaterial)(THIS_ LPDIRECT3DRMMATERIAL) PURE;
924     STDMETHOD(SetTextureTopology)(THIS_ BOOL wrap_u, BOOL wrap_v) PURE;
925    
926     STDMETHOD(GetVertex)(THIS_ DWORD index, D3DVECTOR *vertex, D3DVECTOR *normal) PURE;
927     STDMETHOD(GetVertices)(THIS_ DWORD *vertex_count, D3DVECTOR *coords, D3DVECTOR *normals);
928     STDMETHOD(GetTextureCoordinates)(THIS_ DWORD vertex, D3DVALUE *u, D3DVALUE *v) PURE;
929     STDMETHOD(GetTextureTopology)(THIS_ BOOL *wrap_u, BOOL *wrap_v) PURE;
930     STDMETHOD(GetNormal)(THIS_ D3DVECTOR *) PURE;
931     STDMETHOD(GetTexture)(THIS_ LPDIRECT3DRMTEXTURE *) PURE;
932     STDMETHOD(GetMaterial)(THIS_ LPDIRECT3DRMMATERIAL *) PURE;
933    
934     STDMETHOD_(int, GetVertexCount)(THIS) PURE;
935     STDMETHOD_(int, GetVertexIndex)(THIS_ DWORD which) PURE;
936     STDMETHOD_(int, GetTextureCoordinateIndex)(THIS_ DWORD which) PURE;
937     STDMETHOD_(D3DCOLOR, GetColor)(THIS) PURE;
938     };
939    
940     #undef INTERFACE
941     #define INTERFACE IDirect3DRMFace2
942    
943     DECLARE_INTERFACE_(IDirect3DRMFace2, IDirect3DRMObject)
944     {
945     IUNKNOWN_METHODS(PURE);
946     IDIRECT3DRMOBJECT_METHODS(PURE);
947    
948     /*
949     * IDirect3DRMFace methods
950     */
951     STDMETHOD(AddVertex)(THIS_ D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
952     STDMETHOD(AddVertexAndNormalIndexed)(THIS_ DWORD vertex, DWORD normal) PURE;
953     STDMETHOD(SetColorRGB)(THIS_ D3DVALUE, D3DVALUE, D3DVALUE) PURE;
954     STDMETHOD(SetColor)(THIS_ D3DCOLOR) PURE;
955     STDMETHOD(SetTexture)(THIS_ LPDIRECT3DRMTEXTURE3) PURE;
956     STDMETHOD(SetTextureCoordinates)(THIS_ DWORD vertex, D3DVALUE u, D3DVALUE v) PURE;
957     STDMETHOD(SetMaterial)(THIS_ LPDIRECT3DRMMATERIAL2) PURE;
958     STDMETHOD(SetTextureTopology)(THIS_ BOOL wrap_u, BOOL wrap_v) PURE;
959    
960     STDMETHOD(GetVertex)(THIS_ DWORD index, D3DVECTOR *vertex, D3DVECTOR *normal) PURE;
961     STDMETHOD(GetVertices)(THIS_ DWORD *vertex_count, D3DVECTOR *coords, D3DVECTOR *normals);
962     STDMETHOD(GetTextureCoordinates)(THIS_ DWORD vertex, D3DVALUE *u, D3DVALUE *v) PURE;
963     STDMETHOD(GetTextureTopology)(THIS_ BOOL *wrap_u, BOOL *wrap_v) PURE;
964     STDMETHOD(GetNormal)(THIS_ D3DVECTOR *) PURE;
965     STDMETHOD(GetTexture)(THIS_ LPDIRECT3DRMTEXTURE3 *) PURE;
966     STDMETHOD(GetMaterial)(THIS_ LPDIRECT3DRMMATERIAL2 *) PURE;
967    
968     STDMETHOD_(int, GetVertexCount)(THIS) PURE;
969     STDMETHOD_(int, GetVertexIndex)(THIS_ DWORD which) PURE;
970     STDMETHOD_(int, GetTextureCoordinateIndex)(THIS_ DWORD which) PURE;
971     STDMETHOD_(D3DCOLOR, GetColor)(THIS) PURE;
972     };
973    
974     #undef INTERFACE
975     #define INTERFACE IDirect3DRMMeshBuilder
976    
977     DECLARE_INTERFACE_(IDirect3DRMMeshBuilder, IDirect3DRMVisual)
978     {
979     IUNKNOWN_METHODS(PURE);
980     IDIRECT3DRMOBJECT_METHODS(PURE);
981    
982     /*
983     * IDirect3DRMMeshBuilder methods
984     */
985     STDMETHOD(Load)(THIS_ LPVOID filename, LPVOID name, D3DRMLOADOPTIONS loadflags, D3DRMLOADTEXTURECALLBACK, LPVOID lpArg) PURE;
986     STDMETHOD(Save)(THIS_ const char *filename, D3DRMXOFFORMAT, D3DRMSAVEOPTIONS save) PURE;
987     STDMETHOD(Scale)(THIS_ D3DVALUE sx, D3DVALUE sy, D3DVALUE sz) PURE;
988     STDMETHOD(Translate)(THIS_ D3DVALUE tx, D3DVALUE ty, D3DVALUE tz) PURE;
989     STDMETHOD(SetColorSource)(THIS_ D3DRMCOLORSOURCE) PURE;
990     STDMETHOD(GetBox)(THIS_ D3DRMBOX *) PURE;
991     STDMETHOD(GenerateNormals)(THIS) PURE;
992     STDMETHOD_(D3DRMCOLORSOURCE, GetColorSource)(THIS) PURE;
993    
994     STDMETHOD(AddMesh)(THIS_ LPDIRECT3DRMMESH) PURE;
995     STDMETHOD(AddMeshBuilder)(THIS_ LPDIRECT3DRMMESHBUILDER) PURE;
996     STDMETHOD(AddFrame)(THIS_ LPDIRECT3DRMFRAME) PURE;
997     STDMETHOD(AddFace)(THIS_ LPDIRECT3DRMFACE) PURE;
998     STDMETHOD(AddFaces)
999     ( THIS_ DWORD vcount, D3DVECTOR *vertices, DWORD ncount, D3DVECTOR *normals,
1000     DWORD *data, LPDIRECT3DRMFACEARRAY*
1001     ) PURE;
1002     STDMETHOD(ReserveSpace)(THIS_ DWORD vertex_Count, DWORD normal_count, DWORD face_count) PURE;
1003     STDMETHOD(SetColorRGB)(THIS_ D3DVALUE red, D3DVALUE green, D3DVALUE blue) PURE;
1004     STDMETHOD(SetColor)(THIS_ D3DCOLOR) PURE;
1005     STDMETHOD(SetTexture)(THIS_ LPDIRECT3DRMTEXTURE) PURE;
1006     STDMETHOD(SetMaterial)(THIS_ LPDIRECT3DRMMATERIAL) PURE;
1007     STDMETHOD(SetTextureTopology)(THIS_ BOOL wrap_u, BOOL wrap_v) PURE;
1008     STDMETHOD(SetQuality)(THIS_ D3DRMRENDERQUALITY) PURE;
1009     STDMETHOD(SetPerspective)(THIS_ BOOL) PURE;
1010     STDMETHOD(SetVertex)(THIS_ DWORD index, D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
1011     STDMETHOD(SetNormal)(THIS_ DWORD index, D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
1012     STDMETHOD(SetTextureCoordinates)(THIS_ DWORD index, D3DVALUE u, D3DVALUE v) PURE;
1013     STDMETHOD(SetVertexColor)(THIS_ DWORD index, D3DCOLOR) PURE;
1014     STDMETHOD(SetVertexColorRGB)(THIS_ DWORD index, D3DVALUE red, D3DVALUE green, D3DVALUE blue) PURE;
1015    
1016     STDMETHOD(GetFaces)(THIS_ LPDIRECT3DRMFACEARRAY*) PURE;
1017     STDMETHOD(GetVertices)
1018     ( THIS_ DWORD *vcount, D3DVECTOR *vertices, DWORD *ncount, D3DVECTOR *normals, DWORD *face_data_size, DWORD *face_data
1019     ) PURE;
1020     STDMETHOD(GetTextureCoordinates)(THIS_ DWORD index, D3DVALUE *u, D3DVALUE *v) PURE;
1021    
1022     STDMETHOD_(int, AddVertex)(THIS_ D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
1023     STDMETHOD_(int, AddNormal)(THIS_ D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
1024     STDMETHOD(CreateFace)(THIS_ LPDIRECT3DRMFACE*) PURE;
1025     STDMETHOD_(D3DRMRENDERQUALITY, GetQuality)(THIS) PURE;
1026     STDMETHOD_(BOOL, GetPerspective)(THIS) PURE;
1027     STDMETHOD_(int, GetFaceCount)(THIS) PURE;
1028     STDMETHOD_(int, GetVertexCount)(THIS) PURE;
1029     STDMETHOD_(D3DCOLOR, GetVertexColor)(THIS_ DWORD index) PURE;
1030    
1031     STDMETHOD(CreateMesh)(THIS_ LPDIRECT3DRMMESH*) PURE;
1032     };
1033    
1034     #undef INTERFACE
1035     #define INTERFACE IDirect3DRMMeshBuilder2
1036    
1037     DECLARE_INTERFACE_(IDirect3DRMMeshBuilder2, IDirect3DRMMeshBuilder)
1038     {
1039     IUNKNOWN_METHODS(PURE);
1040     IDIRECT3DRMOBJECT_METHODS(PURE);
1041    
1042     /*
1043     * IDirect3DRMMeshBuilder methods
1044     */
1045     STDMETHOD(Load)(THIS_ LPVOID filename, LPVOID name, D3DRMLOADOPTIONS loadflags, D3DRMLOADTEXTURECALLBACK, LPVOID lpArg) PURE;
1046     STDMETHOD(Save)(THIS_ const char *filename, D3DRMXOFFORMAT, D3DRMSAVEOPTIONS save) PURE;
1047     STDMETHOD(Scale)(THIS_ D3DVALUE sx, D3DVALUE sy, D3DVALUE sz) PURE;
1048     STDMETHOD(Translate)(THIS_ D3DVALUE tx, D3DVALUE ty, D3DVALUE tz) PURE;
1049     STDMETHOD(SetColorSource)(THIS_ D3DRMCOLORSOURCE) PURE;
1050     STDMETHOD(GetBox)(THIS_ D3DRMBOX *) PURE;
1051     STDMETHOD(GenerateNormals)(THIS) PURE;
1052     STDMETHOD_(D3DRMCOLORSOURCE, GetColorSource)(THIS) PURE;
1053    
1054     STDMETHOD(AddMesh)(THIS_ LPDIRECT3DRMMESH) PURE;
1055     STDMETHOD(AddMeshBuilder)(THIS_ LPDIRECT3DRMMESHBUILDER) PURE;
1056     STDMETHOD(AddFrame)(THIS_ LPDIRECT3DRMFRAME) PURE;
1057     STDMETHOD(AddFace)(THIS_ LPDIRECT3DRMFACE) PURE;
1058     STDMETHOD(AddFaces)
1059     ( THIS_ DWORD vcount, D3DVECTOR *vertices, DWORD ncount, D3DVECTOR *normals,
1060     DWORD *data, LPDIRECT3DRMFACEARRAY*
1061     ) PURE;
1062     STDMETHOD(ReserveSpace)(THIS_ DWORD vertex_Count, DWORD normal_count, DWORD face_count) PURE;
1063     STDMETHOD(SetColorRGB)(THIS_ D3DVALUE red, D3DVALUE green, D3DVALUE blue) PURE;
1064     STDMETHOD(SetColor)(THIS_ D3DCOLOR) PURE;
1065     STDMETHOD(SetTexture)(THIS_ LPDIRECT3DRMTEXTURE) PURE;
1066     STDMETHOD(SetMaterial)(THIS_ LPDIRECT3DRMMATERIAL) PURE;
1067     STDMETHOD(SetTextureTopology)(THIS_ BOOL wrap_u, BOOL wrap_v) PURE;
1068     STDMETHOD(SetQuality)(THIS_ D3DRMRENDERQUALITY) PURE;
1069     STDMETHOD(SetPerspective)(THIS_ BOOL) PURE;
1070     STDMETHOD(SetVertex)(THIS_ DWORD index, D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
1071     STDMETHOD(SetNormal)(THIS_ DWORD index, D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
1072     STDMETHOD(SetTextureCoordinates)(THIS_ DWORD index, D3DVALUE u, D3DVALUE v) PURE;
1073     STDMETHOD(SetVertexColor)(THIS_ DWORD index, D3DCOLOR) PURE;
1074     STDMETHOD(SetVertexColorRGB)(THIS_ DWORD index, D3DVALUE red, D3DVALUE green, D3DVALUE blue) PURE;
1075    
1076     STDMETHOD(GetFaces)(THIS_ LPDIRECT3DRMFACEARRAY*) PURE;
1077     STDMETHOD(GetVertices)
1078     ( THIS_ DWORD *vcount, D3DVECTOR *vertices, DWORD *ncount, D3DVECTOR *normals, DWORD *face_data_size, DWORD *face_data
1079     ) PURE;
1080     STDMETHOD(GetTextureCoordinates)(THIS_ DWORD index, D3DVALUE *u, D3DVALUE *v) PURE;
1081    
1082     STDMETHOD_(int, AddVertex)(THIS_ D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
1083     STDMETHOD_(int, AddNormal)(THIS_ D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
1084     STDMETHOD(CreateFace)(THIS_ LPDIRECT3DRMFACE*) PURE;
1085     STDMETHOD_(D3DRMRENDERQUALITY, GetQuality)(THIS) PURE;
1086     STDMETHOD_(BOOL, GetPerspective)(THIS) PURE;
1087     STDMETHOD_(int, GetFaceCount)(THIS) PURE;
1088     STDMETHOD_(int, GetVertexCount)(THIS) PURE;
1089     STDMETHOD_(D3DCOLOR, GetVertexColor)(THIS_ DWORD index) PURE;
1090    
1091     STDMETHOD(CreateMesh)(THIS_ LPDIRECT3DRMMESH*) PURE;
1092    
1093     /*
1094     * IDirect3DRMMeshBuilder2 methods
1095     */
1096     STDMETHOD(GenerateNormals2)(THIS_ D3DVALUE crease, DWORD dwFlags) PURE;
1097     STDMETHOD(GetFace)(THIS_ DWORD index, LPDIRECT3DRMFACE*) PURE;
1098     };
1099    
1100     #undef INTERFACE
1101     #define INTERFACE IDirect3DRMMeshBuilder3
1102    
1103     DECLARE_INTERFACE_(IDirect3DRMMeshBuilder3, IDirect3DRMVisual)
1104     {
1105     IUNKNOWN_METHODS(PURE);
1106     IDIRECT3DRMOBJECT_METHODS(PURE);
1107    
1108     /*
1109     * IDirect3DRMMeshBuilder3 methods
1110     */
1111     STDMETHOD(Load)(THIS_ LPVOID filename, LPVOID name, D3DRMLOADOPTIONS loadflags, D3DRMLOADTEXTURE3CALLBACK, LPVOID lpArg) PURE;
1112     STDMETHOD(Save)(THIS_ const char *filename, D3DRMXOFFORMAT, D3DRMSAVEOPTIONS save) PURE;
1113     STDMETHOD(Scale)(THIS_ D3DVALUE sx, D3DVALUE sy, D3DVALUE sz) PURE;
1114     STDMETHOD(Translate)(THIS_ D3DVALUE tx, D3DVALUE ty, D3DVALUE tz) PURE;
1115     STDMETHOD(SetColorSource)(THIS_ D3DRMCOLORSOURCE) PURE;
1116     STDMETHOD(GetBox)(THIS_ D3DRMBOX *) PURE;
1117     STDMETHOD(GenerateNormals)(THIS_ D3DVALUE crease, DWORD dwFlags) PURE;
1118     STDMETHOD_(D3DRMCOLORSOURCE, GetColorSource)(THIS) PURE;
1119    
1120     STDMETHOD(AddMesh)(THIS_ LPDIRECT3DRMMESH) PURE;
1121     STDMETHOD(AddMeshBuilder)(THIS_ LPDIRECT3DRMMESHBUILDER3, DWORD dwFlags) PURE;
1122     STDMETHOD(AddFrame)(THIS_ LPDIRECT3DRMFRAME3) PURE;
1123     STDMETHOD(AddFace)(THIS_ LPDIRECT3DRMFACE2) PURE;
1124     STDMETHOD(AddFaces)
1125     ( THIS_ DWORD vcount, D3DVECTOR *vertices, DWORD ncount, D3DVECTOR *normals,
1126     DWORD *data, LPDIRECT3DRMFACEARRAY*
1127     ) PURE;
1128     STDMETHOD(ReserveSpace)(THIS_ DWORD vertex_Count, DWORD normal_count, DWORD face_count) PURE;
1129     STDMETHOD(SetColorRGB)(THIS_ D3DVALUE red, D3DVALUE green, D3DVALUE blue) PURE;
1130     STDMETHOD(SetColor)(THIS_ D3DCOLOR) PURE;
1131     STDMETHOD(SetTexture)(THIS_ LPDIRECT3DRMTEXTURE3) PURE;
1132     STDMETHOD(SetMaterial)(THIS_ LPDIRECT3DRMMATERIAL2) PURE;
1133     STDMETHOD(SetTextureTopology)(THIS_ BOOL wrap_u, BOOL wrap_v) PURE;
1134     STDMETHOD(SetQuality)(THIS_ D3DRMRENDERQUALITY) PURE;
1135     STDMETHOD(SetPerspective)(THIS_ BOOL) PURE;
1136     STDMETHOD(SetVertex)(THIS_ DWORD index, D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
1137     STDMETHOD(SetNormal)(THIS_ DWORD index, D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
1138     STDMETHOD(SetTextureCoordinates)(THIS_ DWORD index, D3DVALUE u, D3DVALUE v) PURE;
1139     STDMETHOD(SetVertexColor)(THIS_ DWORD index, D3DCOLOR) PURE;
1140     STDMETHOD(SetVertexColorRGB)(THIS_ DWORD index, D3DVALUE red, D3DVALUE green, D3DVALUE blue) PURE;
1141     STDMETHOD(GetFaces)(THIS_ LPDIRECT3DRMFACEARRAY*) PURE;
1142     STDMETHOD(GetGeometry)
1143     ( THIS_ DWORD *vcount, D3DVECTOR *vertices, DWORD *ncount, D3DVECTOR *normals, DWORD *face_data_size, DWORD *face_data
1144     ) PURE;
1145     STDMETHOD(GetTextureCoordinates)(THIS_ DWORD index, D3DVALUE *u, D3DVALUE *v) PURE;
1146     STDMETHOD_(int, AddVertex)(THIS_ D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
1147     STDMETHOD_(int, AddNormal)(THIS_ D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
1148     STDMETHOD(CreateFace)(THIS_ LPDIRECT3DRMFACE2 *) PURE;
1149     STDMETHOD_(D3DRMRENDERQUALITY, GetQuality)(THIS) PURE;
1150     STDMETHOD_(BOOL, GetPerspective)(THIS) PURE;
1151     STDMETHOD_(int, GetFaceCount)(THIS) PURE;
1152     STDMETHOD_(int, GetVertexCount)(THIS) PURE;
1153     STDMETHOD_(D3DCOLOR, GetVertexColor)(THIS_ DWORD index) PURE;
1154     STDMETHOD(CreateMesh)(THIS_ LPDIRECT3DRMMESH*) PURE;
1155     STDMETHOD(GetFace)(THIS_ DWORD index, LPDIRECT3DRMFACE2 *) PURE;
1156     STDMETHOD(GetVertex)(THIS_ DWORD dwIndex, LPD3DVECTOR lpVector) PURE;
1157     STDMETHOD(GetNormal)(THIS_ DWORD dwIndex, LPD3DVECTOR lpVector) PURE;
1158     STDMETHOD(DeleteVertices)(THIS_ DWORD dwIndexFirst, DWORD dwCount) PURE;
1159     STDMETHOD(DeleteNormals)(THIS_ DWORD dwIndexFirst, DWORD dwCount) PURE;
1160     STDMETHOD(DeleteFace)(THIS_ LPDIRECT3DRMFACE2) PURE;
1161     STDMETHOD(Empty)(THIS_ DWORD dwFlags) PURE;
1162     STDMETHOD(Optimize)(THIS_ DWORD dwFlags) PURE;
1163     STDMETHOD(AddFacesIndexed)(THIS_ DWORD dwFlags, DWORD *lpdwvIndices, DWORD *dwIndexFirst, DWORD *dwCount) PURE;
1164     STDMETHOD(CreateSubMesh)(THIS_ LPUNKNOWN *) PURE;
1165     STDMETHOD(GetParentMesh)(THIS_ DWORD, LPUNKNOWN *) PURE;
1166     STDMETHOD(GetSubMeshes)(THIS_ LPDWORD lpdwCount, LPUNKNOWN *) PURE;
1167     STDMETHOD(DeleteSubMesh)(THIS_ LPUNKNOWN) PURE;
1168     STDMETHOD(Enable)(THIS_ DWORD) PURE;
1169     STDMETHOD(GetEnable)(THIS_ DWORD *) PURE;
1170     STDMETHOD(AddTriangles)(THIS_ DWORD dwFlags, DWORD dwFormat,
1171     DWORD dwVertexCount, LPVOID lpvData) PURE;
1172     STDMETHOD(SetVertices)(THIS_ DWORD dwIndexFirst, DWORD dwCount, LPD3DVECTOR) PURE;
1173     STDMETHOD(GetVertices)(THIS_ DWORD dwIndexFirst, LPDWORD lpdwCount, LPD3DVECTOR) PURE;
1174     STDMETHOD(SetNormals)(THIS_ DWORD dwIndexFirst, DWORD dwCount, LPD3DVECTOR) PURE;
1175     STDMETHOD(GetNormals)(THIS_ DWORD dwIndexFirst, LPDWORD lpdwCount, LPD3DVECTOR) PURE;
1176     STDMETHOD_(int, GetNormalCount)(THIS) PURE;
1177     };
1178    
1179     #undef INTERFACE
1180     #define INTERFACE IDirect3DRMLight
1181    
1182     DECLARE_INTERFACE_(IDirect3DRMLight, IDirect3DRMObject)
1183     {
1184     IUNKNOWN_METHODS(PURE);
1185     IDIRECT3DRMOBJECT_METHODS(PURE);
1186    
1187     /*
1188     * IDirect3DRMLight methods
1189     */
1190     STDMETHOD(SetType)(THIS_ D3DRMLIGHTTYPE) PURE;
1191     STDMETHOD(SetColor)(THIS_ D3DCOLOR) PURE;
1192     STDMETHOD(SetColorRGB)(THIS_ D3DVALUE red, D3DVALUE green, D3DVALUE blue) PURE;
1193     STDMETHOD(SetRange)(THIS_ D3DVALUE) PURE;
1194     STDMETHOD(SetUmbra)(THIS_ D3DVALUE) PURE;
1195     STDMETHOD(SetPenumbra)(THIS_ D3DVALUE) PURE;
1196     STDMETHOD(SetConstantAttenuation)(THIS_ D3DVALUE) PURE;
1197     STDMETHOD(SetLinearAttenuation)(THIS_ D3DVALUE) PURE;
1198     STDMETHOD(SetQuadraticAttenuation)(THIS_ D3DVALUE) PURE;
1199    
1200     STDMETHOD_(D3DVALUE, GetRange)(THIS) PURE;
1201     STDMETHOD_(D3DVALUE, GetUmbra)(THIS) PURE;
1202     STDMETHOD_(D3DVALUE, GetPenumbra)(THIS) PURE;
1203     STDMETHOD_(D3DVALUE, GetConstantAttenuation)(THIS) PURE;
1204     STDMETHOD_(D3DVALUE, GetLinearAttenuation)(THIS) PURE;
1205     STDMETHOD_(D3DVALUE, GetQuadraticAttenuation)(THIS) PURE;
1206     STDMETHOD_(D3DCOLOR, GetColor)(THIS) PURE;
1207     STDMETHOD_(D3DRMLIGHTTYPE, GetType)(THIS) PURE;
1208    
1209     STDMETHOD(SetEnableFrame)(THIS_ LPDIRECT3DRMFRAME) PURE;
1210     STDMETHOD(GetEnableFrame)(THIS_ LPDIRECT3DRMFRAME*) PURE;
1211     };
1212    
1213     #undef INTERFACE
1214     #define INTERFACE IDirect3DRMTexture
1215    
1216     DECLARE_INTERFACE_(IDirect3DRMTexture, IDirect3DRMVisual)
1217     {
1218     IUNKNOWN_METHODS(PURE);
1219     IDIRECT3DRMOBJECT_METHODS(PURE);
1220    
1221     /*
1222     * IDirect3DRMTexture methods
1223     */
1224     STDMETHOD(InitFromFile)(THIS_ const char *filename) PURE;
1225     STDMETHOD(InitFromSurface)(THIS_ LPDIRECTDRAWSURFACE lpDDS) PURE;
1226     STDMETHOD(InitFromResource)(THIS_ HRSRC) PURE;
1227     STDMETHOD(Changed)(THIS_ BOOL pixels, BOOL palette) PURE;
1228    
1229     STDMETHOD(SetColors)(THIS_ DWORD) PURE;
1230     STDMETHOD(SetShades)(THIS_ DWORD) PURE;
1231     STDMETHOD(SetDecalSize)(THIS_ D3DVALUE width, D3DVALUE height) PURE;
1232     STDMETHOD(SetDecalOrigin)(THIS_ LONG x, LONG y) PURE;
1233     STDMETHOD(SetDecalScale)(THIS_ DWORD) PURE;
1234     STDMETHOD(SetDecalTransparency)(THIS_ BOOL) PURE;
1235     STDMETHOD(SetDecalTransparentColor)(THIS_ D3DCOLOR) PURE;
1236    
1237     STDMETHOD(GetDecalSize)(THIS_ D3DVALUE *width_return, D3DVALUE *height_return) PURE;
1238     STDMETHOD(GetDecalOrigin)(THIS_ LONG *x_return, LONG *y_return) PURE;
1239    
1240     STDMETHOD_(D3DRMIMAGE *, GetImage)(THIS) PURE;
1241     STDMETHOD_(DWORD, GetShades)(THIS) PURE;
1242     STDMETHOD_(DWORD, GetColors)(THIS) PURE;
1243     STDMETHOD_(DWORD, GetDecalScale)(THIS) PURE;
1244     STDMETHOD_(BOOL, GetDecalTransparency)(THIS) PURE;
1245     STDMETHOD_(D3DCOLOR, GetDecalTransparentColor)(THIS) PURE;
1246     };
1247    
1248     #undef INTERFACE
1249     #define INTERFACE IDirect3DRMTexture2
1250    
1251     DECLARE_INTERFACE_(IDirect3DRMTexture2, IDirect3DRMTexture)
1252     {
1253     IUNKNOWN_METHODS(PURE);
1254     IDIRECT3DRMOBJECT_METHODS(PURE);
1255    
1256     /*
1257     * IDirect3DRMTexture methods
1258     */
1259     STDMETHOD(InitFromFile)(THIS_ const char *filename) PURE;
1260     STDMETHOD(InitFromSurface)(THIS_ LPDIRECTDRAWSURFACE lpDDS) PURE;
1261     STDMETHOD(InitFromResource)(THIS_ HRSRC) PURE;
1262     STDMETHOD(Changed)(THIS_ BOOL pixels, BOOL palette) PURE;
1263    
1264     STDMETHOD(SetColors)(THIS_ DWORD) PURE;
1265     STDMETHOD(SetShades)(THIS_ DWORD) PURE;
1266     STDMETHOD(SetDecalSize)(THIS_ D3DVALUE width, D3DVALUE height) PURE;
1267     STDMETHOD(SetDecalOrigin)(THIS_ LONG x, LONG y) PURE;
1268     STDMETHOD(SetDecalScale)(THIS_ DWORD) PURE;
1269     STDMETHOD(SetDecalTransparency)(THIS_ BOOL) PURE;
1270     STDMETHOD(SetDecalTransparentColor)(THIS_ D3DCOLOR) PURE;
1271    
1272     STDMETHOD(GetDecalSize)(THIS_ D3DVALUE *width_return, D3DVALUE *height_return) PURE;
1273     STDMETHOD(GetDecalOrigin)(THIS_ LONG *x_return, LONG *y_return) PURE;
1274    
1275     STDMETHOD_(D3DRMIMAGE *, GetImage)(THIS) PURE;
1276     STDMETHOD_(DWORD, GetShades)(THIS) PURE;
1277     STDMETHOD_(DWORD, GetColors)(THIS) PURE;
1278     STDMETHOD_(DWORD, GetDecalScale)(THIS) PURE;
1279     STDMETHOD_(BOOL, GetDecalTransparency)(THIS) PURE;
1280     STDMETHOD_(D3DCOLOR, GetDecalTransparentColor)(THIS) PURE;
1281    
1282     /*
1283     * IDirect3DRMTexture2 methods
1284     */
1285     STDMETHOD(InitFromImage)(THIS_ LPD3DRMIMAGE) PURE;
1286     STDMETHOD(InitFromResource2)(THIS_ HMODULE hModule, LPCTSTR strName, LPCTSTR strType) PURE;
1287     STDMETHOD(GenerateMIPMap)(THIS_ DWORD) PURE;
1288     };
1289    
1290     #undef INTERFACE
1291     #define INTERFACE IDirect3DRMTexture3
1292    
1293     DECLARE_INTERFACE_(IDirect3DRMTexture3, IDirect3DRMVisual)
1294     {
1295     IUNKNOWN_METHODS(PURE);
1296     IDIRECT3DRMOBJECT_METHODS(PURE);
1297    
1298     /*
1299     * IDirect3DRMTexture3 methods
1300     */
1301     STDMETHOD(InitFromFile)(THIS_ const char *filename) PURE;
1302     STDMETHOD(InitFromSurface)(THIS_ LPDIRECTDRAWSURFACE lpDDS) PURE;
1303     STDMETHOD(InitFromResource)(THIS_ HRSRC) PURE;
1304     STDMETHOD(Changed)(THIS_ DWORD dwFlags, DWORD dwcRects, LPRECT pRects) PURE;
1305     STDMETHOD(SetColors)(THIS_ DWORD) PURE;
1306     STDMETHOD(SetShades)(THIS_ DWORD) PURE;
1307     STDMETHOD(SetDecalSize)(THIS_ D3DVALUE width, D3DVALUE height) PURE;
1308     STDMETHOD(SetDecalOrigin)(THIS_ LONG x, LONG y) PURE;
1309     STDMETHOD(SetDecalScale)(THIS_ DWORD) PURE;
1310     STDMETHOD(SetDecalTransparency)(THIS_ BOOL) PURE;
1311     STDMETHOD(SetDecalTransparentColor)(THIS_ D3DCOLOR) PURE;
1312    
1313     STDMETHOD(GetDecalSize)(THIS_ D3DVALUE *width_return, D3DVALUE *height_return) PURE;
1314     STDMETHOD(GetDecalOrigin)(THIS_ LONG *x_return, LONG *y_return) PURE;
1315    
1316     STDMETHOD_(D3DRMIMAGE *, GetImage)(THIS) PURE;
1317     STDMETHOD_(DWORD, GetShades)(THIS) PURE;
1318     STDMETHOD_(DWORD, GetColors)(THIS) PURE;
1319     STDMETHOD_(DWORD, GetDecalScale)(THIS) PURE;
1320     STDMETHOD_(BOOL, GetDecalTransparency)(THIS) PURE;
1321     STDMETHOD_(D3DCOLOR, GetDecalTransparentColor)(THIS) PURE;
1322     STDMETHOD(InitFromImage)(THIS_ LPD3DRMIMAGE) PURE;
1323     STDMETHOD(InitFromResource2)(THIS_ HMODULE hModule, LPCTSTR strName, LPCTSTR strType) PURE;
1324     STDMETHOD(GenerateMIPMap)(THIS_ DWORD) PURE;
1325     STDMETHOD(GetSurface)(THIS_ DWORD dwFlags, LPDIRECTDRAWSURFACE* lplpDDS) PURE;
1326     STDMETHOD(SetCacheOptions)(THIS_ LONG lImportance, DWORD dwFlags) PURE;
1327     STDMETHOD(GetCacheOptions)(THIS_ LPLONG lplImportance, LPDWORD lpdwFlags) PURE;
1328     STDMETHOD(SetDownsampleCallback)(THIS_ D3DRMDOWNSAMPLECALLBACK pCallback, LPVOID pArg) PURE;
1329     STDMETHOD(SetValidationCallback)(THIS_ D3DRMVALIDATIONCALLBACK pCallback, LPVOID pArg) PURE;
1330     };
1331    
1332    
1333     #undef INTERFACE
1334     #define INTERFACE IDirect3DRMWrap
1335    
1336     DECLARE_INTERFACE_(IDirect3DRMWrap, IDirect3DRMObject)
1337     {
1338     IUNKNOWN_METHODS(PURE);
1339     IDIRECT3DRMOBJECT_METHODS(PURE);
1340    
1341     /*
1342     * IDirect3DRMWrap methods
1343     */
1344     STDMETHOD(Init)
1345     ( THIS_ D3DRMWRAPTYPE, LPDIRECT3DRMFRAME ref,
1346     D3DVALUE ox, D3DVALUE oy, D3DVALUE oz,
1347     D3DVALUE dx, D3DVALUE dy, D3DVALUE dz,
1348     D3DVALUE ux, D3DVALUE uy, D3DVALUE uz,
1349     D3DVALUE ou, D3DVALUE ov,
1350     D3DVALUE su, D3DVALUE sv
1351     ) PURE;
1352     STDMETHOD(Apply)(THIS_ LPDIRECT3DRMOBJECT) PURE;
1353     STDMETHOD(ApplyRelative)(THIS_ LPDIRECT3DRMFRAME frame, LPDIRECT3DRMOBJECT) PURE;
1354     };
1355    
1356     #undef INTERFACE
1357     #define INTERFACE IDirect3DRMMaterial
1358    
1359     DECLARE_INTERFACE_(IDirect3DRMMaterial, IDirect3DRMObject)
1360     {
1361     IUNKNOWN_METHODS(PURE);
1362     IDIRECT3DRMOBJECT_METHODS(PURE);
1363    
1364     /*
1365     * IDirect3DRMMaterial methods
1366     */
1367     STDMETHOD(SetPower)(THIS_ D3DVALUE power) PURE;
1368     STDMETHOD(SetSpecular)(THIS_ D3DVALUE r, D3DVALUE g, D3DVALUE b) PURE;
1369     STDMETHOD(SetEmissive)(THIS_ D3DVALUE r, D3DVALUE g, D3DVALUE b) PURE;
1370    
1371     STDMETHOD_(D3DVALUE, GetPower)(THIS) PURE;
1372     STDMETHOD(GetSpecular)(THIS_ D3DVALUE* r, D3DVALUE* g, D3DVALUE* b) PURE;
1373     STDMETHOD(GetEmissive)(THIS_ D3DVALUE* r, D3DVALUE* g, D3DVALUE* b) PURE;
1374     };
1375    
1376    
1377     #undef INTERFACE
1378     #define INTERFACE IDirect3DRMMaterial2
1379    
1380     DECLARE_INTERFACE_(IDirect3DRMMaterial2, IDirect3DRMObject)
1381     {
1382     IUNKNOWN_METHODS(PURE);
1383     IDIRECT3DRMOBJECT_METHODS(PURE);
1384    
1385     /*
1386     * IDirect3DRMMaterial2 methods
1387     */
1388     STDMETHOD(SetPower)(THIS_ D3DVALUE power) PURE;
1389     STDMETHOD(SetSpecular)(THIS_ D3DVALUE r, D3DVALUE g, D3DVALUE b) PURE;
1390     STDMETHOD(SetEmissive)(THIS_ D3DVALUE r, D3DVALUE g, D3DVALUE b) PURE;
1391     STDMETHOD_(D3DVALUE, GetPower)(THIS) PURE;
1392     STDMETHOD(GetSpecular)(THIS_ D3DVALUE* r, D3DVALUE* g, D3DVALUE* b) PURE;
1393     STDMETHOD(GetEmissive)(THIS_ D3DVALUE* r, D3DVALUE* g, D3DVALUE* b) PURE;
1394     STDMETHOD(GetAmbient)(THIS_ D3DVALUE* r, D3DVALUE* g, D3DVALUE* b) PURE;
1395     STDMETHOD(SetAmbient)(THIS_ D3DVALUE r, D3DVALUE g, D3DVALUE b) PURE;
1396     };
1397    
1398    
1399     #undef INTERFACE
1400     #define INTERFACE IDirect3DRMAnimation
1401    
1402     DECLARE_INTERFACE_(IDirect3DRMAnimation, IDirect3DRMObject)
1403     {
1404     IUNKNOWN_METHODS(PURE);
1405     IDIRECT3DRMOBJECT_METHODS(PURE);
1406    
1407     /*
1408     * IDirect3DRMAnimation methods
1409     */
1410     STDMETHOD(SetOptions)(THIS_ D3DRMANIMATIONOPTIONS flags) PURE;
1411     STDMETHOD(AddRotateKey)(THIS_ D3DVALUE time, D3DRMQUATERNION *q) PURE;
1412     STDMETHOD(AddPositionKey)(THIS_ D3DVALUE time, D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
1413     STDMETHOD(AddScaleKey)(THIS_ D3DVALUE time, D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
1414     STDMETHOD(DeleteKey)(THIS_ D3DVALUE time) PURE;
1415     STDMETHOD(SetFrame)(THIS_ LPDIRECT3DRMFRAME frame) PURE;
1416     STDMETHOD(SetTime)(THIS_ D3DVALUE time) PURE;
1417    
1418     STDMETHOD_(D3DRMANIMATIONOPTIONS, GetOptions)(THIS) PURE;
1419     };
1420    
1421     #undef INTERFACE
1422     #define INTERFACE IDirect3DRMAnimation2
1423    
1424     DECLARE_INTERFACE_(IDirect3DRMAnimation2, IDirect3DRMObject)
1425     {
1426     IUNKNOWN_METHODS(PURE);
1427     IDIRECT3DRMOBJECT_METHODS(PURE);
1428    
1429     /*
1430     * IDirect3DRMAnimation2 methods
1431     */
1432     STDMETHOD(SetOptions)(THIS_ D3DRMANIMATIONOPTIONS flags) PURE;
1433     STDMETHOD(AddRotateKey)(THIS_ D3DVALUE time, D3DRMQUATERNION *q) PURE;
1434     STDMETHOD(AddPositionKey)(THIS_ D3DVALUE time, D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
1435     STDMETHOD(AddScaleKey)(THIS_ D3DVALUE time, D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
1436     STDMETHOD(DeleteKey)(THIS_ D3DVALUE time) PURE;
1437     STDMETHOD(SetFrame)(THIS_ LPDIRECT3DRMFRAME3 frame) PURE;
1438     STDMETHOD(SetTime)(THIS_ D3DVALUE time) PURE;
1439    
1440     STDMETHOD_(D3DRMANIMATIONOPTIONS, GetOptions)(THIS) PURE;
1441     STDMETHOD(GetFrame)(THIS_ LPDIRECT3DRMFRAME3 *lpD3DFrame) PURE;
1442     STDMETHOD(DeleteKeyByID)(THIS_ DWORD dwID) PURE;
1443     STDMETHOD(AddKey)(THIS_ LPD3DRMANIMATIONKEY lpKey) PURE;
1444     STDMETHOD(ModifyKey)(THIS_ LPD3DRMANIMATIONKEY lpKey) PURE;
1445     STDMETHOD(GetKeys)(THIS_ D3DVALUE dvTimeMin,
1446     D3DVALUE dvTimeMax, LPDWORD lpdwNumKeys,
1447     LPD3DRMANIMATIONKEY lpKey);
1448     };
1449    
1450     #undef INTERFACE
1451     #define INTERFACE IDirect3DRMAnimationSet
1452    
1453     DECLARE_INTERFACE_(IDirect3DRMAnimationSet, IDirect3DRMObject)
1454     {
1455     IUNKNOWN_METHODS(PURE);
1456     IDIRECT3DRMOBJECT_METHODS(PURE);
1457    
1458     /*
1459     * IDirect3DRMAnimationSet methods
1460     */
1461     STDMETHOD(AddAnimation)(THIS_ LPDIRECT3DRMANIMATION aid) PURE;
1462     STDMETHOD(Load)(THIS_ LPVOID filename, LPVOID name, D3DRMLOADOPTIONS loadflags, D3DRMLOADTEXTURECALLBACK, LPVOID lpArg, LPDIRECT3DRMFRAME parent)PURE;
1463     STDMETHOD(DeleteAnimation)(THIS_ LPDIRECT3DRMANIMATION aid) PURE;
1464     STDMETHOD(SetTime)(THIS_ D3DVALUE time) PURE;
1465     };
1466    
1467     #undef INTERFACE
1468     #define INTERFACE IDirect3DRMAnimationSet2
1469    
1470     DECLARE_INTERFACE_(IDirect3DRMAnimationSet2, IDirect3DRMObject)
1471     {
1472     IUNKNOWN_METHODS(PURE);
1473     IDIRECT3DRMOBJECT_METHODS(PURE);
1474    
1475     /*
1476     * IDirect3DRMAnimationSet2 methods
1477     */
1478     STDMETHOD(AddAnimation)(THIS_ LPDIRECT3DRMANIMATION2 aid) PURE;
1479     STDMETHOD(Load)(THIS_ LPVOID filename, LPVOID name, D3DRMLOADOPTIONS loadflags, D3DRMLOADTEXTURE3CALLBACK, LPVOID lpArg, LPDIRECT3DRMFRAME3 parent)PURE;
1480     STDMETHOD(DeleteAnimation)(THIS_ LPDIRECT3DRMANIMATION2 aid) PURE;
1481     STDMETHOD(SetTime)(THIS_ D3DVALUE time) PURE;
1482     STDMETHOD(GetAnimations)(THIS_ LPDIRECT3DRMANIMATIONARRAY *) PURE;
1483     };
1484    
1485    
1486     #undef INTERFACE
1487     #define INTERFACE IDirect3DRMUserVisual
1488    
1489     DECLARE_INTERFACE_(IDirect3DRMUserVisual, IDirect3DRMVisual)
1490     {
1491     IUNKNOWN_METHODS(PURE);
1492     IDIRECT3DRMOBJECT_METHODS(PURE);
1493    
1494     /*
1495     * IDirect3DRMUserVisual methods
1496     */
1497     STDMETHOD(Init)(THIS_ D3DRMUSERVISUALCALLBACK fn, void *arg) PURE;
1498     };
1499    
1500     #undef INTERFACE
1501     #define INTERFACE IDirect3DRMArray
1502    
1503     DECLARE_INTERFACE_(IDirect3DRMArray, IUnknown)
1504     {
1505     IUNKNOWN_METHODS(PURE);
1506    
1507     STDMETHOD_(DWORD, GetSize)(THIS) PURE;
1508     /* No GetElement method as it would get overloaded
1509     * in derived classes, and overloading is
1510     * a no-no in COM
1511     */
1512     };
1513    
1514     #undef INTERFACE
1515     #define INTERFACE IDirect3DRMObjectArray
1516    
1517     DECLARE_INTERFACE_(IDirect3DRMObjectArray, IDirect3DRMArray)
1518     {
1519     IUNKNOWN_METHODS(PURE);
1520    
1521     STDMETHOD_(DWORD, GetSize)(THIS) PURE;
1522     STDMETHOD(GetElement)(THIS_ DWORD index, LPDIRECT3DRMOBJECT *) PURE;
1523     };
1524    
1525     #undef INTERFACE
1526     #define INTERFACE IDirect3DRMDeviceArray
1527    
1528     DECLARE_INTERFACE_(IDirect3DRMDeviceArray, IDirect3DRMArray)
1529     {
1530     IUNKNOWN_METHODS(PURE);
1531    
1532     STDMETHOD_(DWORD, GetSize)(THIS) PURE;
1533     STDMETHOD(GetElement)(THIS_ DWORD index, LPDIRECT3DRMDEVICE *) PURE;
1534     };
1535    
1536     #undef INTERFACE
1537     #define INTERFACE IDirect3DRMFrameArray
1538    
1539     DECLARE_INTERFACE_(IDirect3DRMFrameArray, IDirect3DRMArray)
1540     {
1541     IUNKNOWN_METHODS(PURE);
1542    
1543     STDMETHOD_(DWORD, GetSize)(THIS) PURE;
1544     STDMETHOD(GetElement)(THIS_ DWORD index, LPDIRECT3DRMFRAME *) PURE;
1545     };
1546    
1547     #undef INTERFACE
1548     #define INTERFACE IDirect3DRMViewportArray
1549    
1550     DECLARE_INTERFACE_(IDirect3DRMViewportArray, IDirect3DRMArray)
1551     {
1552     IUNKNOWN_METHODS(PURE);
1553    
1554     STDMETHOD_(DWORD, GetSize)(THIS) PURE;
1555     STDMETHOD(GetElement)(THIS_ DWORD index, LPDIRECT3DRMVIEWPORT *) PURE;
1556     };
1557    
1558     #undef INTERFACE
1559     #define INTERFACE IDirect3DRMVisualArray
1560    
1561     DECLARE_INTERFACE_(IDirect3DRMVisualArray, IDirect3DRMArray)
1562     {
1563     IUNKNOWN_METHODS(PURE);
1564    
1565     STDMETHOD_(DWORD, GetSize)(THIS) PURE;
1566     STDMETHOD(GetElement)(THIS_ DWORD index, LPDIRECT3DRMVISUAL *) PURE;
1567     };
1568    
1569     #undef INTERFACE
1570     #define INTERFACE IDirect3DRMAnimationArray
1571    
1572     DECLARE_INTERFACE_(IDirect3DRMAnimationArray, IDirect3DRMArray)
1573     {
1574     IUNKNOWN_METHODS(PURE);
1575    
1576     STDMETHOD_(DWORD, GetSize)(THIS) PURE;
1577     STDMETHOD(GetElement)(THIS_ DWORD index, LPDIRECT3DRMANIMATION2 *) PURE;
1578     };
1579    
1580     #undef INTERFACE
1581     #define INTERFACE IDirect3DRMPickedArray
1582    
1583     DECLARE_INTERFACE_(IDirect3DRMPickedArray, IDirect3DRMArray)
1584     {
1585     IUNKNOWN_METHODS(PURE);
1586    
1587     STDMETHOD_(DWORD, GetSize)(THIS) PURE;
1588     STDMETHOD(GetPick)(THIS_ DWORD index, LPDIRECT3DRMVISUAL *, LPDIRECT3DRMFRAMEARRAY *, LPD3DRMPICKDESC) PURE;
1589     };
1590    
1591     #undef INTERFACE
1592     #define INTERFACE IDirect3DRMLightArray
1593    
1594     DECLARE_INTERFACE_(IDirect3DRMLightArray, IDirect3DRMArray)
1595     {
1596     IUNKNOWN_METHODS(PURE);
1597    
1598     STDMETHOD_(DWORD, GetSize)(THIS) PURE;
1599     STDMETHOD(GetElement)(THIS_ DWORD index, LPDIRECT3DRMLIGHT *) PURE;
1600     };
1601    
1602     #undef INTERFACE
1603     #define INTERFACE IDirect3DRMFaceArray
1604    
1605     DECLARE_INTERFACE_(IDirect3DRMFaceArray, IDirect3DRMArray)
1606     {
1607     IUNKNOWN_METHODS(PURE);
1608    
1609     STDMETHOD_(DWORD, GetSize)(THIS) PURE;
1610     STDMETHOD(GetElement)(THIS_ DWORD index, LPDIRECT3DRMFACE *) PURE;
1611     };
1612    
1613     #undef INTERFACE
1614     #define INTERFACE IDirect3DRMPicked2Array
1615    
1616     DECLARE_INTERFACE_(IDirect3DRMPicked2Array, IDirect3DRMArray)
1617     {
1618     IUNKNOWN_METHODS(PURE);
1619    
1620     STDMETHOD_(DWORD, GetSize)(THIS) PURE;
1621     STDMETHOD(GetPick)(THIS_ DWORD index, LPDIRECT3DRMVISUAL *, LPDIRECT3DRMFRAMEARRAY *, LPD3DRMPICKDESC2) PURE;
1622     };
1623    
1624     #undef INTERFACE
1625     #define INTERFACE IDirect3DRMInterpolator
1626    
1627     DECLARE_INTERFACE_(IDirect3DRMInterpolator, IDirect3DRMObject)
1628     {
1629     IUNKNOWN_METHODS(PURE);
1630     IDIRECT3DRMOBJECT_METHODS(PURE);
1631    
1632     /*
1633     * IDirect3DRMInterpolator methods
1634     */
1635     STDMETHOD(AttachObject)(THIS_ LPDIRECT3DRMOBJECT) PURE;
1636     STDMETHOD(GetAttachedObjects)(THIS_ LPDIRECT3DRMOBJECTARRAY *) PURE;
1637     STDMETHOD(DetachObject)(THIS_ LPDIRECT3DRMOBJECT) PURE;
1638     STDMETHOD(SetIndex)(THIS_ D3DVALUE) PURE;
1639     STDMETHOD_(D3DVALUE, GetIndex)(THIS) PURE;
1640     STDMETHOD(Interpolate)(THIS_ D3DVALUE, LPDIRECT3DRMOBJECT, D3DRMINTERPOLATIONOPTIONS) PURE;
1641     };
1642    
1643     #undef INTERFACE
1644     #define INTERFACE IDirect3DRMClippedVisual
1645    
1646     DECLARE_INTERFACE_(IDirect3DRMClippedVisual, IDirect3DRMVisual)
1647     {
1648     IUNKNOWN_METHODS(PURE);
1649     IDIRECT3DRMOBJECT_METHODS(PURE);
1650    
1651     /*
1652     * IDirect3DRMClippedVisual methods
1653     */
1654     STDMETHOD(Init) (THIS_ LPDIRECT3DRMVISUAL) PURE;
1655     STDMETHOD(AddPlane) (THIS_ LPDIRECT3DRMFRAME3, LPD3DVECTOR, LPD3DVECTOR, DWORD, LPDWORD) PURE;
1656     STDMETHOD(DeletePlane)(THIS_ DWORD, DWORD) PURE;
1657     STDMETHOD(GetPlaneIDs)(THIS_ LPDWORD, LPDWORD, DWORD) PURE;
1658     STDMETHOD(GetPlane) (THIS_ DWORD, LPDIRECT3DRMFRAME3, LPD3DVECTOR, LPD3DVECTOR, DWORD) PURE;
1659     STDMETHOD(SetPlane) (THIS_ DWORD, LPDIRECT3DRMFRAME3, LPD3DVECTOR, LPD3DVECTOR, DWORD) PURE;
1660     };
1661    
1662     #ifdef __cplusplus
1663     };
1664     #endif
1665     #endif /* _D3DRMOBJ_H_ */
1666    

root@recompile.se
ViewVC Help
Powered by ViewVC 1.1.26