1 /*==========================================================================;
3 * Copyright (C) 1995-1997 Microsoft Corporation. All Rights Reserved.
6 * Content: Direct3DRM include file
8 ***************************************************************************/
14 #include "vd3drmobj.h"
22 DEFINE_GUID(IID_IDirect3DRM, 0x2bc49361, 0x8327, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
23 DEFINE_GUID(IID_IDirect3DRM2, 0x4516ecc8, 0x8f20, 0x11d0, 0x9b, 0x6d, 0x00, 0x00, 0xc0, 0x78, 0x1b, 0xc3);
24 WIN_TYPES(IDirect3DRM, DIRECT3DRM);
25 WIN_TYPES(IDirect3DRM2, DIRECT3DRM2);
28 /* Create a Direct3DRM API */
29 STDAPI Direct3DRMCreate(LPDIRECT3DRM FAR *lplpDirect3DRM);
32 #define INTERFACE IDirect3DRM
34 DECLARE_INTERFACE_(IDirect3DRM, IUnknown)
36 IUNKNOWN_METHODS(PURE);
38 STDMETHOD(CreateObject)
39 (THIS_ REFCLSID rclsid, LPUNKNOWN pUnkOuter, REFIID riid, LPVOID FAR* ppv) PURE;
40 STDMETHOD(CreateFrame) (THIS_ LPDIRECT3DRMFRAME, LPDIRECT3DRMFRAME *) PURE;
41 STDMETHOD(CreateMesh) (THIS_ LPDIRECT3DRMMESH *) PURE;
42 STDMETHOD(CreateMeshBuilder)(THIS_ LPDIRECT3DRMMESHBUILDER *) PURE;
43 STDMETHOD(CreateFace) (THIS_ LPDIRECT3DRMFACE *) PURE;
44 STDMETHOD(CreateAnimation) (THIS_ LPDIRECT3DRMANIMATION *) PURE;
45 STDMETHOD(CreateAnimationSet)(THIS_ LPDIRECT3DRMANIMATIONSET *) PURE;
46 STDMETHOD(CreateTexture) (THIS_ LPD3DRMIMAGE, LPDIRECT3DRMTEXTURE *) PURE;
47 STDMETHOD(CreateLight) (THIS_ D3DRMLIGHTTYPE, D3DCOLOR, LPDIRECT3DRMLIGHT *) PURE;
48 STDMETHOD(CreateLightRGB)
49 (THIS_ D3DRMLIGHTTYPE, D3DVALUE, D3DVALUE, D3DVALUE, LPDIRECT3DRMLIGHT *) PURE;
50 STDMETHOD(CreateMaterial) (THIS_ D3DVALUE, LPDIRECT3DRMMATERIAL *) PURE;
51 STDMETHOD(CreateDevice) (THIS_ DWORD, DWORD, LPDIRECT3DRMDEVICE *) PURE;
53 /* Create a Windows Device using DirectDraw surfaces */
54 STDMETHOD(CreateDeviceFromSurface)
55 ( THIS_ LPGUID lpGUID, LPDIRECTDRAW lpDD,
56 LPDIRECTDRAWSURFACE lpDDSBack, LPDIRECT3DRMDEVICE *
59 /* Create a Windows Device using D3D objects */
60 STDMETHOD(CreateDeviceFromD3D)
61 ( THIS_ LPDIRECT3D lpD3D, LPDIRECT3DDEVICE lpD3DDev,
65 STDMETHOD(CreateDeviceFromClipper)
66 ( THIS_ LPDIRECTDRAWCLIPPER lpDDClipper, LPGUID lpGUID,
67 int width, int height, LPDIRECT3DRMDEVICE *) PURE;
69 STDMETHOD(CreateTextureFromSurface)(THIS_ LPDIRECTDRAWSURFACE lpDDS, LPDIRECT3DRMTEXTURE *) PURE;
71 STDMETHOD(CreateShadow)
72 ( THIS_ LPDIRECT3DRMVISUAL, LPDIRECT3DRMLIGHT,
73 D3DVALUE px, D3DVALUE py, D3DVALUE pz,
74 D3DVALUE nx, D3DVALUE ny, D3DVALUE nz,
77 STDMETHOD(CreateViewport)
78 ( THIS_ LPDIRECT3DRMDEVICE, LPDIRECT3DRMFRAME, DWORD, DWORD,
79 DWORD, DWORD, LPDIRECT3DRMVIEWPORT *
82 ( THIS_ D3DRMWRAPTYPE, LPDIRECT3DRMFRAME,
83 D3DVALUE ox, D3DVALUE oy, D3DVALUE oz,
84 D3DVALUE dx, D3DVALUE dy, D3DVALUE dz,
85 D3DVALUE ux, D3DVALUE uy, D3DVALUE uz,
86 D3DVALUE ou, D3DVALUE ov,
87 D3DVALUE su, D3DVALUE sv,
90 STDMETHOD(CreateUserVisual) (THIS_ D3DRMUSERVISUALCALLBACK, LPVOID lPArg, LPDIRECT3DRMUSERVISUAL *) PURE;
91 STDMETHOD(LoadTexture) (THIS_ const char *, LPDIRECT3DRMTEXTURE *) PURE;
92 STDMETHOD(LoadTextureFromResource) (THIS_ HRSRC rs, LPDIRECT3DRMTEXTURE *) PURE;
94 STDMETHOD(SetSearchPath) (THIS_ LPCSTR) PURE;
95 STDMETHOD(AddSearchPath) (THIS_ LPCSTR) PURE;
96 STDMETHOD(GetSearchPath) (THIS_ DWORD *size_return, LPSTR path_return) PURE;
97 STDMETHOD(SetDefaultTextureColors)(THIS_ DWORD) PURE;
98 STDMETHOD(SetDefaultTextureShades)(THIS_ DWORD) PURE;
100 STDMETHOD(GetDevices) (THIS_ LPDIRECT3DRMDEVICEARRAY *) PURE;
101 STDMETHOD(GetNamedObject) (THIS_ const char *, LPDIRECT3DRMOBJECT *) PURE;
103 STDMETHOD(EnumerateObjects) (THIS_ D3DRMOBJECTCALLBACK, LPVOID) PURE;
106 ( THIS_ LPVOID, LPVOID, LPIID *, DWORD, D3DRMLOADOPTIONS,
107 D3DRMLOADCALLBACK, LPVOID, D3DRMLOADTEXTURECALLBACK, LPVOID,
110 STDMETHOD(Tick) (THIS_ D3DVALUE) PURE;
114 #define INTERFACE IDirect3DRM2
116 DECLARE_INTERFACE_(IDirect3DRM2, IUnknown)
118 IUNKNOWN_METHODS(PURE);
120 STDMETHOD(CreateObject)
121 (THIS_ REFCLSID rclsid, LPUNKNOWN pUnkOuter, REFIID riid, LPVOID FAR* ppv) PURE;
122 STDMETHOD(CreateFrame) (THIS_ LPDIRECT3DRMFRAME, LPDIRECT3DRMFRAME2 *) PURE;
123 STDMETHOD(CreateMesh) (THIS_ LPDIRECT3DRMMESH *) PURE;
124 STDMETHOD(CreateMeshBuilder)(THIS_ LPDIRECT3DRMMESHBUILDER2 *) PURE;
125 STDMETHOD(CreateFace) (THIS_ LPDIRECT3DRMFACE *) PURE;
126 STDMETHOD(CreateAnimation) (THIS_ LPDIRECT3DRMANIMATION *) PURE;
127 STDMETHOD(CreateAnimationSet)(THIS_ LPDIRECT3DRMANIMATIONSET *) PURE;
128 STDMETHOD(CreateTexture) (THIS_ LPD3DRMIMAGE, LPDIRECT3DRMTEXTURE2 *) PURE;
129 STDMETHOD(CreateLight) (THIS_ D3DRMLIGHTTYPE, D3DCOLOR, LPDIRECT3DRMLIGHT *) PURE;
130 STDMETHOD(CreateLightRGB)
131 (THIS_ D3DRMLIGHTTYPE, D3DVALUE, D3DVALUE, D3DVALUE, LPDIRECT3DRMLIGHT *) PURE;
132 STDMETHOD(CreateMaterial) (THIS_ D3DVALUE, LPDIRECT3DRMMATERIAL *) PURE;
133 STDMETHOD(CreateDevice) (THIS_ DWORD, DWORD, LPDIRECT3DRMDEVICE2 *) PURE;
135 /* Create a Windows Device using DirectDraw surfaces */
136 STDMETHOD(CreateDeviceFromSurface)
137 ( THIS_ LPGUID lpGUID, LPDIRECTDRAW lpDD,
138 LPDIRECTDRAWSURFACE lpDDSBack, LPDIRECT3DRMDEVICE2 *
141 /* Create a Windows Device using D3D objects */
142 STDMETHOD(CreateDeviceFromD3D)
143 ( THIS_ LPDIRECT3D2 lpD3D, LPDIRECT3DDEVICE2 lpD3DDev,
144 LPDIRECT3DRMDEVICE2 *
147 STDMETHOD(CreateDeviceFromClipper)
148 ( THIS_ LPDIRECTDRAWCLIPPER lpDDClipper, LPGUID lpGUID,
149 int width, int height, LPDIRECT3DRMDEVICE2 *) PURE;
151 STDMETHOD(CreateTextureFromSurface)(THIS_ LPDIRECTDRAWSURFACE lpDDS, LPDIRECT3DRMTEXTURE2 *) PURE;
153 STDMETHOD(CreateShadow)
154 ( THIS_ LPDIRECT3DRMVISUAL, LPDIRECT3DRMLIGHT,
155 D3DVALUE px, D3DVALUE py, D3DVALUE pz,
156 D3DVALUE nx, D3DVALUE ny, D3DVALUE nz,
159 STDMETHOD(CreateViewport)
160 ( THIS_ LPDIRECT3DRMDEVICE, LPDIRECT3DRMFRAME, DWORD, DWORD,
161 DWORD, DWORD, LPDIRECT3DRMVIEWPORT *
163 STDMETHOD(CreateWrap)
164 ( THIS_ D3DRMWRAPTYPE, LPDIRECT3DRMFRAME,
165 D3DVALUE ox, D3DVALUE oy, D3DVALUE oz,
166 D3DVALUE dx, D3DVALUE dy, D3DVALUE dz,
167 D3DVALUE ux, D3DVALUE uy, D3DVALUE uz,
168 D3DVALUE ou, D3DVALUE ov,
169 D3DVALUE su, D3DVALUE sv,
172 STDMETHOD(CreateUserVisual) (THIS_ D3DRMUSERVISUALCALLBACK, LPVOID lPArg, LPDIRECT3DRMUSERVISUAL *) PURE;
173 STDMETHOD(LoadTexture) (THIS_ const char *, LPDIRECT3DRMTEXTURE2 *) PURE;
174 STDMETHOD(LoadTextureFromResource) (THIS_ HMODULE hModule, LPCTSTR strName, LPCTSTR strType, LPDIRECT3DRMTEXTURE2 *) PURE;
176 STDMETHOD(SetSearchPath) (THIS_ LPCSTR) PURE;
177 STDMETHOD(AddSearchPath) (THIS_ LPCSTR) PURE;
178 STDMETHOD(GetSearchPath) (THIS_ DWORD *size_return, LPSTR path_return) PURE;
179 STDMETHOD(SetDefaultTextureColors)(THIS_ DWORD) PURE;
180 STDMETHOD(SetDefaultTextureShades)(THIS_ DWORD) PURE;
182 STDMETHOD(GetDevices) (THIS_ LPDIRECT3DRMDEVICEARRAY *) PURE;
183 STDMETHOD(GetNamedObject) (THIS_ const char *, LPDIRECT3DRMOBJECT *) PURE;
185 STDMETHOD(EnumerateObjects) (THIS_ D3DRMOBJECTCALLBACK, LPVOID) PURE;
188 ( THIS_ LPVOID, LPVOID, LPIID *, DWORD, D3DRMLOADOPTIONS,
189 D3DRMLOADCALLBACK, LPVOID, D3DRMLOADTEXTURECALLBACK, LPVOID,
192 STDMETHOD(Tick) (THIS_ D3DVALUE) PURE;
194 STDMETHOD(CreateProgressiveMesh)(THIS_ LPDIRECT3DRMPROGRESSIVEMESH *) PURE;
197 #define D3DRM_OK DD_OK
198 #define D3DRMERR_BADOBJECT MAKE_DDHRESULT(781)
199 #define D3DRMERR_BADTYPE MAKE_DDHRESULT(782)
200 #define D3DRMERR_BADALLOC MAKE_DDHRESULT(783)
201 #define D3DRMERR_FACEUSED MAKE_DDHRESULT(784)
202 #define D3DRMERR_NOTFOUND MAKE_DDHRESULT(785)
203 #define D3DRMERR_NOTDONEYET MAKE_DDHRESULT(786)
204 #define D3DRMERR_FILENOTFOUND MAKE_DDHRESULT(787)
205 #define D3DRMERR_BADFILE MAKE_DDHRESULT(788)
206 #define D3DRMERR_BADDEVICE MAKE_DDHRESULT(789)
207 #define D3DRMERR_BADVALUE MAKE_DDHRESULT(790)
208 #define D3DRMERR_BADMAJORVERSION MAKE_DDHRESULT(791)
209 #define D3DRMERR_BADMINORVERSION MAKE_DDHRESULT(792)
210 #define D3DRMERR_UNABLETOEXECUTE MAKE_DDHRESULT(793)
211 #define D3DRMERR_LIBRARYNOTFOUND MAKE_DDHRESULT(794)
212 #define D3DRMERR_INVALIDLIBRARY MAKE_DDHRESULT(795)
213 #define D3DRMERR_PENDING MAKE_DDHRESULT(796)
214 #define D3DRMERR_NOTENOUGHDATA MAKE_DDHRESULT(797)
215 #define D3DRMERR_REQUESTTOOLARGE MAKE_DDHRESULT(798)
216 #define D3DRMERR_REQUESTTOOSMALL MAKE_DDHRESULT(799)
217 #define D3DRMERR_CONNECTIONLOST MAKE_DDHRESULT(800)
218 #define D3DRMERR_LOADABORTED MAKE_DDHRESULT(801)
219 #define D3DRMERR_NOINTERNET MAKE_DDHRESULT(802)
220 #define D3DRMERR_BADCACHEFILE MAKE_DDHRESULT(803)
221 #define D3DRMERR_BOXNOTSET MAKE_DDHRESULT(804)
222 #define D3DRMERR_BADPMDATA MAKE_DDHRESULT(805)
228 #endif /* _D3DRMAPI_H_ */