[DDK]
[reactos.git] / reactos / include / psdk / ddrawint.h
1 /*
2 * DirectDraw NT driver interface
3 */
4
5 #ifndef __DD_INCLUDED__
6 #define __DD_INCLUDED__
7
8 DEFINE_GUID( GUID_MiscellaneousCallbacks, 0xEFD60CC0, 0x49e7, 0x11d0, 0x88, 0x9d, 0x0, 0xaa, 0x0, 0xbb, 0xb7, 0x6a);
9 DEFINE_GUID( GUID_Miscellaneous2Callbacks, 0x406B2F00, 0x3E5A, 0x11D1, 0xB6, 0x40, 0x00, 0xAA, 0x00, 0xA1, 0xF9, 0x6A);
10 DEFINE_GUID( GUID_VideoPortCallbacks, 0xefd60cc1, 0x49e7, 0x11d0, 0x88, 0x9d, 0x0, 0xaa, 0x0, 0xbb, 0xb7, 0x6a);
11 DEFINE_GUID( GUID_ColorControlCallbacks, 0xefd60cc2, 0x49e7, 0x11d0, 0x88, 0x9d, 0x0, 0xaa, 0x0, 0xbb, 0xb7, 0x6a);
12 DEFINE_GUID( GUID_MotionCompCallbacks, 0xb1122b40, 0x5dA5, 0x11d1, 0x8f, 0xcF, 0x00, 0xc0, 0x4f, 0xc2, 0x9b, 0x4e);
13 DEFINE_GUID( GUID_VideoPortCaps, 0xefd60cc3, 0x49e7, 0x11d0, 0x88, 0x9d, 0x0, 0xaa, 0x0, 0xbb, 0xb7, 0x6a);
14 DEFINE_GUID( GUID_D3DCaps, 0x7bf06991, 0x8794, 0x11d0, 0x91, 0x39, 0x08, 0x00, 0x36, 0xd2, 0xef, 0x02);
15 DEFINE_GUID( GUID_D3DExtendedCaps, 0x7de41f80, 0x9d93, 0x11d0, 0x89, 0xab, 0x00, 0xa0, 0xc9, 0x05, 0x41, 0x29);
16 DEFINE_GUID( GUID_D3DCallbacks, 0x7bf06990, 0x8794, 0x11d0, 0x91, 0x39, 0x08, 0x00, 0x36, 0xd2, 0xef, 0x02);
17 DEFINE_GUID( GUID_D3DCallbacks2, 0xba584e1, 0x70b6, 0x11d0, 0x88, 0x9d, 0x0, 0xaa, 0x0, 0xbb, 0xb7, 0x6a);
18 DEFINE_GUID( GUID_D3DCallbacks3, 0xddf41230, 0xec0a, 0x11d0, 0xa9, 0xb6, 0x00, 0xaa, 0x00, 0xc0, 0x99, 0x3e);
19 DEFINE_GUID( GUID_NonLocalVidMemCaps, 0x86c4fa80, 0x8d84, 0x11d0, 0x94, 0xe8, 0x00, 0xc0, 0x4f, 0xc3, 0x41, 0x37);
20 DEFINE_GUID( GUID_KernelCallbacks, 0x80863800, 0x6B06, 0x11D0, 0x9B, 0x06, 0x0, 0xA0, 0xC9, 0x03, 0xA3, 0xB8);
21 DEFINE_GUID( GUID_KernelCaps, 0xFFAA7540, 0x7AA8, 0x11D0, 0x9B, 0x06, 0x00, 0xA0, 0xC9, 0x03, 0xA3, 0xB8);
22 DEFINE_GUID( GUID_ZPixelFormats, 0x93869880, 0x36cf, 0x11d1, 0x9b, 0x1b, 0x0, 0xaa, 0x0, 0xbb, 0xb8, 0xae);
23 DEFINE_GUID( GUID_DDMoreCaps, 0x880baf30, 0xb030, 0x11d0, 0x8e, 0xa7, 0x00, 0x60, 0x97, 0x97, 0xea, 0x5b);
24 DEFINE_GUID( GUID_D3DParseUnknownCommandCallback, 0x2e04ffa0, 0x98e4, 0x11d1, 0x8c, 0xe1, 0x0, 0xa0, 0xc9, 0x6, 0x29, 0xa8);
25 DEFINE_GUID( GUID_NTCallbacks, 0x6fe9ecde, 0xdf89, 0x11d1, 0x9d, 0xb0, 0x00, 0x60, 0x08, 0x27, 0x71, 0xba);
26 DEFINE_GUID( GUID_DDMoreSurfaceCaps, 0x3b8a0466, 0xf269, 0x11d1, 0x88, 0x0b, 0x0, 0xc0, 0x4f, 0xd9, 0x30, 0xc5);
27 DEFINE_GUID( GUID_GetHeapAlignment, 0x42e02f16, 0x7b41, 0x11d2, 0x8b, 0xff, 0x0, 0xa0, 0xc9, 0x83, 0xea, 0xf6);
28 DEFINE_GUID( GUID_UpdateNonLocalHeap, 0x42e02f17, 0x7b41, 0x11d2, 0x8b, 0xff, 0x0, 0xa0, 0xc9, 0x83, 0xea, 0xf6);
29 DEFINE_GUID( GUID_NTPrivateDriverCaps, 0xfad16a23, 0x7b66, 0x11d2, 0x83, 0xd7, 0x0, 0xc0, 0x4f, 0x7c, 0xe5, 0x8c);
30 DEFINE_GUID( GUID_DDStereoMode, 0xf828169c, 0xa8e8, 0x11d2, 0xa1, 0xf2, 0x0, 0xa0, 0xc9, 0x83, 0xea, 0xf6);
31 DEFINE_GUID( GUID_VPE2Callbacks, 0x52882147, 0x2d47, 0x469a, 0xa0, 0xd1, 0x3, 0x45, 0x58, 0x90, 0xf6, 0xc8);
32
33
34 #ifndef GUID_DEFS_ONLY
35
36 #ifndef _NO_DDRAWINT_NO_COM
37 #ifndef _NO_COM
38 #define _NO_COM
39 #include <ddraw.h>
40 #include <dvp.h>
41 #undef _NO_COM
42 #else
43 #include <ddraw.h>
44 #include <dvp.h>
45 #endif
46 #else
47 #include <ddraw.h>
48 #include <dvp.h>
49 #endif
50
51 #ifdef __cplusplus
52 extern "C" {
53 #endif
54
55 #ifndef MAKE_HRESULT // fixme this if statment should not be here, but MAKE_HRESULT should be here
56 #define MAKE_HRESULT(sev,fac,code) ((HRESULT) (((unsigned long)(sev)<<31) | ((unsigned long)(fac)<<16) | ((unsigned long)(code))) )
57 #endif
58
59 #ifndef FLATPTR_DEFINED
60 typedef ULONG_PTR FLATPTR;
61 #define FLATPTR_DEFINED
62 #endif
63
64 typedef struct _DD_VIDEOPORT_LOCAL *PDD_VIDEOPORT_LOCAL;
65
66 /************************************************************************/
67 /* _DD_GETHEAPALIGNMENTDATA is defined in dmemmgr.h */
68 /************************************************************************/
69 struct _DD_GETHEAPALIGNMENTDATA;
70 #ifndef DD_GETHEAPALIGNMENTDATA_DECLARED
71 typedef struct _DD_GETHEAPALIGNMENTDATA *PDD_GETHEAPALIGNMENTDATA;
72 #define DD_GETHEAPALIGNMENTDATA_DECLARED
73 #endif
74
75 /************************************************************************/
76 /* Video memory info structures */
77 /************************************************************************/
78
79 typedef struct _VIDEOMEMORY {
80 DWORD dwFlags;
81 FLATPTR fpStart;
82 __GNU_EXTENSION union {
83 FLATPTR fpEnd;
84 DWORD dwWidth;
85 };
86 DDSCAPS ddsCaps;
87 DDSCAPS ddsCapsAlt;
88 __GNU_EXTENSION union {
89 struct _VMEMHEAP *lpHeap;
90 DWORD dwHeight;
91 };
92 } VIDEOMEMORY, *PVIDEOMEMORY;
93
94 typedef struct _VIDEOMEMORYINFO {
95 FLATPTR fpPrimary;
96 DWORD dwFlags;
97 DWORD dwDisplayWidth;
98 DWORD dwDisplayHeight;
99 LONG lDisplayPitch;
100 DDPIXELFORMAT ddpfDisplay;
101 DWORD dwOffscreenAlign;
102 DWORD dwOverlayAlign;
103 DWORD dwTextureAlign;
104 DWORD dwZBufferAlign;
105 DWORD dwAlphaAlign;
106 PVOID pvPrimary;
107 } VIDEOMEMORYINFO, *LPVIDEOMEMORYINFO;
108
109 typedef struct _DD_DIRECTDRAW_GLOBAL {
110 PVOID dhpdev;
111 ULONG_PTR dwReserved1;
112 ULONG_PTR dwReserved2;
113 LPDDVIDEOPORTCAPS lpDDVideoPortCaps;
114 } DD_DIRECTDRAW_GLOBAL, *PDD_DIRECTDRAW_GLOBAL;
115
116 typedef struct _DD_DIRECTDRAW_LOCAL {
117 PDD_DIRECTDRAW_GLOBAL lpGbl;
118 } DD_DIRECTDRAW_LOCAL, *PDD_DIRECTDRAW_LOCAL;
119
120 typedef struct _DD_SURFACE_GLOBAL {
121 __GNU_EXTENSION union {
122 DWORD dwBlockSizeY;
123 LONG lSlicePitch;
124 };
125 __GNU_EXTENSION union {
126 PVIDEOMEMORY lpVidMemHeap;
127 DWORD dwBlockSizeX;
128 DWORD dwUserMemSize;
129 };
130 FLATPTR fpVidMem;
131 __GNU_EXTENSION union {
132 LONG lPitch;
133 DWORD dwLinearSize;
134 };
135 LONG yHint;
136 LONG xHint;
137 DWORD wHeight;
138 DWORD wWidth;
139 ULONG_PTR dwReserved1;
140 DDPIXELFORMAT ddpfSurface;
141 FLATPTR fpHeapOffset;
142 HANDLE hCreatorProcess;
143 } DD_SURFACE_GLOBAL, *PDD_SURFACE_GLOBAL;
144
145 typedef struct _DD_SURFACE_MORE {
146 DWORD dwMipMapCount;
147 PDD_VIDEOPORT_LOCAL lpVideoPort;
148 DWORD dwOverlayFlags;
149 DDSCAPSEX ddsCapsEx;
150 DWORD dwSurfaceHandle;
151 } DD_SURFACE_MORE, *PDD_SURFACE_MORE;
152
153 typedef struct _DD_ATTACHLIST *PDD_ATTACHLIST;
154
155 typedef struct _DD_SURFACE_LOCAL {
156 PDD_SURFACE_GLOBAL lpGbl;
157 DWORD dwFlags;
158 DDSCAPS ddsCaps;
159 ULONG_PTR dwReserved1;
160 __GNU_EXTENSION union {
161 DDCOLORKEY ddckCKSrcOverlay;
162 DDCOLORKEY ddckCKSrcBlt;
163 };
164 __GNU_EXTENSION union {
165 DDCOLORKEY ddckCKDestOverlay;
166 DDCOLORKEY ddckCKDestBlt;
167 };
168 PDD_SURFACE_MORE lpSurfMore;
169 PDD_ATTACHLIST lpAttachList;
170 PDD_ATTACHLIST lpAttachListFrom;
171 RECT rcOverlaySrc;
172 } DD_SURFACE_LOCAL, *PDD_SURFACE_LOCAL;
173
174 typedef struct _DD_ATTACHLIST {
175 PDD_ATTACHLIST lpLink;
176 PDD_SURFACE_LOCAL lpAttached;
177 } DD_ATTACHLIST;
178
179 typedef struct _DD_SURFACE_INT {
180 PDD_SURFACE_LOCAL lpLcl;
181 } DD_SURFACE_INT, *PDD_SURFACE_INT;
182
183 /************************************************************************/
184 /* DDI representation of the DirectDrawPalette object */
185 /************************************************************************/
186
187 typedef struct _DD_PALETTE_GLOBAL {
188 ULONG_PTR Reserved1;
189 } DD_PALETTE_GLOBAL, *PDD_PALETTE_GLOBAL;
190
191 /************************************************************************/
192 /* DDI representation of the DirectDrawVideo object */
193 /************************************************************************/
194
195 typedef struct {
196 PDD_DIRECTDRAW_LOCAL lpDD;
197 GUID guid;
198 DWORD dwUncompWidth;
199 DWORD dwUncompHeight;
200 DDPIXELFORMAT ddUncompPixelFormat;
201 DWORD dwDriverReserved1;
202 DWORD dwDriverReserved2;
203 DWORD dwDriverReserved3;
204 LPVOID lpDriverReserved1;
205 LPVOID lpDriverReserved2;
206 LPVOID lpDriverReserved3;
207 } DD_MOTIONCOMP_LOCAL, *PDD_MOTIONCOMP_LOCAL;
208
209 typedef struct _DD_VIDEOPORT_LOCAL {
210 PDD_DIRECTDRAW_LOCAL lpDD;
211 DDVIDEOPORTDESC ddvpDesc;
212 DDVIDEOPORTINFO ddvpInfo;
213 PDD_SURFACE_INT lpSurface;
214 PDD_SURFACE_INT lpVBISurface;
215 DWORD dwNumAutoflip;
216 DWORD dwNumVBIAutoflip;
217 ULONG_PTR dwReserved1;
218 ULONG_PTR dwReserved2;
219 ULONG_PTR dwReserved3;
220 } DD_VIDEOPORT_LOCAL;
221
222 /************************************************************************/
223 /* IDirectDrawSurface callbacks */
224 /************************************************************************/
225
226 typedef struct _DD_LOCKDATA {
227 PDD_DIRECTDRAW_GLOBAL lpDD;
228 PDD_SURFACE_LOCAL lpDDSurface;
229 DWORD bHasRect;
230 RECTL rArea;
231 LPVOID lpSurfData;
232 HRESULT ddRVal;
233 PVOID Lock;
234 DWORD dwFlags;
235 FLATPTR fpProcess;
236 } DD_LOCKDATA, *PDD_LOCKDATA;
237 typedef DWORD (WINAPI *PDD_SURFCB_LOCK)(PDD_LOCKDATA);
238
239 typedef struct _DD_UNLOCKDATA {
240 PDD_DIRECTDRAW_GLOBAL lpDD;
241 PDD_SURFACE_LOCAL lpDDSurface;
242 HRESULT ddRVal;
243 PVOID Unlock;
244 } DD_UNLOCKDATA, *PDD_UNLOCKDATA;
245 typedef DWORD (WINAPI *PDD_SURFCB_UNLOCK)(PDD_UNLOCKDATA);
246
247 #define DDABLT_SRCOVERDEST 0x00000001
248 #define DDBLT_AFLAGS 0x80000000
249
250 typedef struct _DD_BLTDATA {
251 PDD_DIRECTDRAW_GLOBAL lpDD;
252 PDD_SURFACE_LOCAL lpDDDestSurface;
253 RECTL rDest;
254 PDD_SURFACE_LOCAL lpDDSrcSurface;
255 RECTL rSrc;
256 DWORD dwFlags;
257 DWORD dwROPFlags;
258 DDBLTFX bltFX;
259 HRESULT ddRVal;
260 PVOID Blt;
261 BOOL IsClipped;
262 RECTL rOrigDest;
263 RECTL rOrigSrc;
264 DWORD dwRectCnt;
265 LPRECT prDestRects;
266 DWORD dwAFlags;
267 DDARGB ddargbScaleFactors;
268 } DD_BLTDATA, *PDD_BLTDATA;
269 typedef DWORD (WINAPI *PDD_SURFCB_BLT)(PDD_BLTDATA);
270
271 typedef struct _DD_UPDATEOVERLAYDATA {
272 PDD_DIRECTDRAW_GLOBAL lpDD;
273 PDD_SURFACE_LOCAL lpDDDestSurface;
274 RECTL rDest;
275 PDD_SURFACE_LOCAL lpDDSrcSurface;
276 RECTL rSrc;
277 DWORD dwFlags;
278 DDOVERLAYFX overlayFX;
279 HRESULT ddRVal;
280 PVOID UpdateOverlay;
281 } DD_UPDATEOVERLAYDATA, *PDD_UPDATEOVERLAYDATA;
282 typedef DWORD (WINAPI *PDD_SURFCB_UPDATEOVERLAY)(PDD_UPDATEOVERLAYDATA);
283
284 typedef struct _DD_SETOVERLAYPOSITIONDATA {
285 PDD_DIRECTDRAW_GLOBAL lpDD;
286 PDD_SURFACE_LOCAL lpDDSrcSurface;
287 PDD_SURFACE_LOCAL lpDDDestSurface;
288 LONG lXPos;
289 LONG lYPos;
290 HRESULT ddRVal;
291 PVOID SetOverlayPosition;
292 } DD_SETOVERLAYPOSITIONDATA, *PDD_SETOVERLAYPOSITIONDATA;
293 typedef DWORD (WINAPI *PDD_SURFCB_SETOVERLAYPOSITION)(PDD_SETOVERLAYPOSITIONDATA);
294
295 typedef struct _DD_SETPALETTEDATA {
296 PDD_DIRECTDRAW_GLOBAL lpDD;
297 PDD_SURFACE_LOCAL lpDDSurface;
298 PDD_PALETTE_GLOBAL lpDDPalette;
299 HRESULT ddRVal;
300 PVOID SetPalette;
301 BOOL Attach;
302 } DD_SETPALETTEDATA, *PDD_SETPALETTEDATA;
303 typedef DWORD (WINAPI *PDD_SURFCB_SETPALETTE)(PDD_SETPALETTEDATA);
304
305 typedef struct _DD_FLIPDATA {
306 PDD_DIRECTDRAW_GLOBAL lpDD;
307 PDD_SURFACE_LOCAL lpSurfCurr;
308 PDD_SURFACE_LOCAL lpSurfTarg;
309 DWORD dwFlags;
310 HRESULT ddRVal;
311 PVOID Flip;
312 PDD_SURFACE_LOCAL lpSurfCurrLeft;
313 PDD_SURFACE_LOCAL lpSurfTargLeft;
314 } DD_FLIPDATA, *PDD_FLIPDATA;
315 typedef DWORD (WINAPI *PDD_SURFCB_FLIP)(PDD_FLIPDATA);
316
317 typedef struct _DD_DESTROYSURFACEDATA {
318 PDD_DIRECTDRAW_GLOBAL lpDD;
319 PDD_SURFACE_LOCAL lpDDSurface;
320 HRESULT ddRVal;
321 PVOID DestroySurface;
322 } DD_DESTROYSURFACEDATA, *PDD_DESTROYSURFACEDATA;
323 typedef DWORD (WINAPI *PDD_SURFCB_DESTROYSURFACE)(PDD_DESTROYSURFACEDATA);
324
325 typedef struct _DD_SETCLIPLISTDATA {
326 PDD_DIRECTDRAW_GLOBAL lpDD;
327 PDD_SURFACE_LOCAL lpDDSurface;
328 HRESULT ddRVal;
329 PVOID SetClipList;
330 } DD_SETCLIPLISTDATA, *PDD_SETCLIPLISTDATA;
331 typedef DWORD (WINAPI *PDD_SURFCB_SETCLIPLIST)(PDD_SETCLIPLISTDATA);
332
333 typedef struct _DD_ADDATTACHEDSURFACEDATA {
334 PDD_DIRECTDRAW_GLOBAL lpDD;
335 PDD_SURFACE_LOCAL lpDDSurface;
336 PDD_SURFACE_LOCAL lpSurfAttached;
337 HRESULT ddRVal;
338 PVOID AddAttachedSurface;
339 } DD_ADDATTACHEDSURFACEDATA, *PDD_ADDATTACHEDSURFACEDATA;
340 typedef DWORD (WINAPI *PDD_SURFCB_ADDATTACHEDSURFACE)(PDD_ADDATTACHEDSURFACEDATA);
341
342 typedef struct _DD_SETCOLORKEYDATA {
343 PDD_DIRECTDRAW_GLOBAL lpDD;
344 PDD_SURFACE_LOCAL lpDDSurface;
345 DWORD dwFlags;
346 DDCOLORKEY ckNew;
347 HRESULT ddRVal;
348 PVOID SetColorKey;
349 } DD_SETCOLORKEYDATA, *PDD_SETCOLORKEYDATA;
350 typedef DWORD (WINAPI *PDD_SURFCB_SETCOLORKEY)(PDD_SETCOLORKEYDATA);
351
352 typedef struct _DD_GETBLTSTATUSDATA {
353 PDD_DIRECTDRAW_GLOBAL lpDD;
354 PDD_SURFACE_LOCAL lpDDSurface;
355 DWORD dwFlags;
356 HRESULT ddRVal;
357 PVOID GetBltStatus;
358 } DD_GETBLTSTATUSDATA, *PDD_GETBLTSTATUSDATA;
359 typedef DWORD (WINAPI *PDD_SURFCB_GETBLTSTATUS)(PDD_GETBLTSTATUSDATA);
360
361 typedef struct _DD_GETFLIPSTATUSDATA {
362 PDD_DIRECTDRAW_GLOBAL lpDD;
363 PDD_SURFACE_LOCAL lpDDSurface;
364 DWORD dwFlags;
365 HRESULT ddRVal;
366 PVOID GetFlipStatus;
367 } DD_GETFLIPSTATUSDATA, *PDD_GETFLIPSTATUSDATA;
368 typedef DWORD (WINAPI *PDD_SURFCB_GETFLIPSTATUS)(PDD_GETFLIPSTATUSDATA);
369
370 typedef struct DD_SURFACECALLBACKS {
371 DWORD dwSize;
372 DWORD dwFlags;
373 PDD_SURFCB_DESTROYSURFACE DestroySurface;
374 PDD_SURFCB_FLIP Flip;
375 PDD_SURFCB_SETCLIPLIST SetClipList;
376 PDD_SURFCB_LOCK Lock;
377 PDD_SURFCB_UNLOCK Unlock;
378 PDD_SURFCB_BLT Blt;
379 PDD_SURFCB_SETCOLORKEY SetColorKey;
380 PDD_SURFCB_ADDATTACHEDSURFACE AddAttachedSurface;
381 PDD_SURFCB_GETBLTSTATUS GetBltStatus;
382 PDD_SURFCB_GETFLIPSTATUS GetFlipStatus;
383 PDD_SURFCB_UPDATEOVERLAY UpdateOverlay;
384 PDD_SURFCB_SETOVERLAYPOSITION SetOverlayPosition;
385 PVOID reserved4;
386 PDD_SURFCB_SETPALETTE SetPalette;
387 } DD_SURFACECALLBACKS, *PDD_SURFACECALLBACKS;
388
389 #define DDHAL_SURFCB32_DESTROYSURFACE 0x00000001
390 #define DDHAL_SURFCB32_FLIP 0x00000002
391 #define DDHAL_SURFCB32_SETCLIPLIST 0x00000004
392 #define DDHAL_SURFCB32_LOCK 0x00000008
393 #define DDHAL_SURFCB32_UNLOCK 0x00000010
394 #define DDHAL_SURFCB32_BLT 0x00000020
395 #define DDHAL_SURFCB32_SETCOLORKEY 0x00000040
396 #define DDHAL_SURFCB32_ADDATTACHEDSURFACE 0x00000080
397 #define DDHAL_SURFCB32_GETBLTSTATUS 0x00000100
398 #define DDHAL_SURFCB32_GETFLIPSTATUS 0x00000200
399 #define DDHAL_SURFCB32_UPDATEOVERLAY 0x00000400
400 #define DDHAL_SURFCB32_SETOVERLAYPOSITION 0x00000800
401 #define DDHAL_SURFCB32_RESERVED4 0x00001000
402 #define DDHAL_SURFCB32_SETPALETTE 0x00002000
403
404 /************************************************************************/
405 /* IDirectDraw callbacks */
406 /************************************************************************/
407
408 typedef struct _DD_CREATESURFACEDATA {
409 PDD_DIRECTDRAW_GLOBAL lpDD;
410 DDSURFACEDESC *lpDDSurfaceDesc;
411 PDD_SURFACE_LOCAL *lplpSList;
412 DWORD dwSCnt;
413 HRESULT ddRVal;
414 PVOID CreateSurface;
415 } DD_CREATESURFACEDATA, *PDD_CREATESURFACEDATA;
416 typedef DWORD (WINAPI *PDD_CREATESURFACE)(PDD_CREATESURFACEDATA);
417
418 typedef struct _DD_DRVSETCOLORKEYDATA {
419 PDD_SURFACE_LOCAL lpDDSurface;
420 DWORD dwFlags;
421 DDCOLORKEY ckNew;
422 HRESULT ddRVal;
423 PVOID SetColorKey;
424 } DD_DRVSETCOLORKEYDATA, *PDD_DRVSETCOLORKEYDATA;
425 typedef DWORD (WINAPI *PDD_SETCOLORKEY)(PDD_DRVSETCOLORKEYDATA);
426
427 #define DDWAITVB_I_TESTVB 0x80000006
428
429 typedef struct _DD_WAITFORVERTICALBLANKDATA {
430 PDD_DIRECTDRAW_GLOBAL lpDD;
431 DWORD dwFlags;
432 DWORD bIsInVB;
433 DWORD hEvent;
434 HRESULT ddRVal;
435 PVOID WaitForVerticalBlank;
436 } DD_WAITFORVERTICALBLANKDATA, *PDD_WAITFORVERTICALBLANKDATA;
437 typedef DWORD (WINAPI *PDD_WAITFORVERTICALBLANK)(PDD_WAITFORVERTICALBLANKDATA);
438
439 typedef struct _DD_CANCREATESURFACEDATA {
440 PDD_DIRECTDRAW_GLOBAL lpDD;
441 DDSURFACEDESC *lpDDSurfaceDesc;
442 DWORD bIsDifferentPixelFormat;
443 HRESULT ddRVal;
444 PVOID CanCreateSurface;
445 } DD_CANCREATESURFACEDATA, *PDD_CANCREATESURFACEDATA;
446 typedef DWORD (WINAPI *PDD_CANCREATESURFACE)(PDD_CANCREATESURFACEDATA);
447
448 typedef struct _DD_CREATEPALETTEDATA {
449 PDD_DIRECTDRAW_GLOBAL lpDD;
450 PDD_PALETTE_GLOBAL lpDDPalette;
451 LPPALETTEENTRY lpColorTable;
452 HRESULT ddRVal;
453 PVOID CreatePalette;
454 BOOL is_excl;
455 } DD_CREATEPALETTEDATA, *PDD_CREATEPALETTEDATA;
456 typedef DWORD (WINAPI *PDD_CREATEPALETTE)(PDD_CREATEPALETTEDATA);
457
458 typedef struct _DD_GETSCANLINEDATA {
459 PDD_DIRECTDRAW_GLOBAL lpDD;
460 DWORD dwScanLine;
461 HRESULT ddRVal;
462 PVOID GetScanLine;
463 } DD_GETSCANLINEDATA, *PDD_GETSCANLINEDATA;
464 typedef DWORD (WINAPI *PDD_GETSCANLINE)(PDD_GETSCANLINEDATA);
465
466 typedef struct _DD_MAPMEMORYDATA {
467 PDD_DIRECTDRAW_GLOBAL lpDD;
468 BOOL bMap;
469 HANDLE hProcess;
470 FLATPTR fpProcess;
471 HRESULT ddRVal;
472 } DD_MAPMEMORYDATA, *PDD_MAPMEMORYDATA;
473 typedef DWORD (WINAPI *PDD_MAPMEMORY)(PDD_MAPMEMORYDATA);
474
475 typedef struct _DD_DESTROYDRIVERDATA *PDD_DESTROYDRIVERDATA;
476 typedef struct _DD_SETMODEDATA *PDD_SETMODEDATA;
477
478 typedef DWORD (APIENTRY *PDD_DESTROYDRIVER)(PDD_DESTROYDRIVERDATA);
479 typedef DWORD (APIENTRY *PDD_SETMODE)(PDD_SETMODEDATA);
480
481 typedef struct DD_CALLBACKS {
482 DWORD dwSize;
483 DWORD dwFlags;
484 PDD_DESTROYDRIVER DestroyDriver;
485 PDD_CREATESURFACE CreateSurface;
486 PDD_SETCOLORKEY SetColorKey;
487 PDD_SETMODE SetMode;
488 PDD_WAITFORVERTICALBLANK WaitForVerticalBlank;
489 PDD_CANCREATESURFACE CanCreateSurface;
490 PDD_CREATEPALETTE CreatePalette;
491 PDD_GETSCANLINE GetScanLine;
492 PDD_MAPMEMORY MapMemory;
493 } DD_CALLBACKS, *PDD_CALLBACKS;
494
495 #define DDHAL_CB32_DESTROYDRIVER 0x00000001l
496 #define DDHAL_CB32_CREATESURFACE 0x00000002l
497 #define DDHAL_CB32_SETCOLORKEY 0x00000004l
498 #define DDHAL_CB32_SETMODE 0x00000008l
499 #define DDHAL_CB32_WAITFORVERTICALBLANK 0x00000010l
500 #define DDHAL_CB32_CANCREATESURFACE 0x00000020l
501 #define DDHAL_CB32_CREATEPALETTE 0x00000040l
502 #define DDHAL_CB32_GETSCANLINE 0x00000080l
503 #define DDHAL_CB32_MAPMEMORY 0x80000000l
504
505 typedef struct _DD_GETAVAILDRIVERMEMORYDATA {
506 PDD_DIRECTDRAW_GLOBAL lpDD;
507 DDSCAPS DDSCaps;
508 DWORD dwTotal;
509 DWORD dwFree;
510 HRESULT ddRVal;
511 PVOID GetAvailDriverMemory;
512 } DD_GETAVAILDRIVERMEMORYDATA, *PDD_GETAVAILDRIVERMEMORYDATA;
513 typedef DWORD (WINAPI *PDD_GETAVAILDRIVERMEMORY)(PDD_GETAVAILDRIVERMEMORYDATA);
514
515 typedef struct _DD_MISCELLANEOUSCALLBACKS {
516 DWORD dwSize;
517 DWORD dwFlags;
518 PDD_GETAVAILDRIVERMEMORY GetAvailDriverMemory;
519 } DD_MISCELLANEOUSCALLBACKS, *PDD_MISCELLANEOUSCALLBACKS;
520
521 #define DDHAL_MISCCB32_GETAVAILDRIVERMEMORY 0x00000001
522
523 typedef DWORD (WINAPI *PDD_ALPHABLT)(PDD_BLTDATA);
524
525 typedef struct _DD_CREATESURFACEEXDATA {
526 DWORD dwFlags;
527 PDD_DIRECTDRAW_LOCAL lpDDLcl;
528 PDD_SURFACE_LOCAL lpDDSLcl;
529 HRESULT ddRVal;
530 } DD_CREATESURFACEEXDATA, *PDD_CREATESURFACEEXDATA;
531 typedef DWORD (WINAPI *PDD_CREATESURFACEEX)(PDD_CREATESURFACEEXDATA);
532
533 typedef struct _DD_GETDRIVERSTATEDATA {
534 DWORD dwFlags;
535 __GNU_EXTENSION union {
536 PDD_DIRECTDRAW_GLOBAL lpDD;
537 DWORD_PTR dwhContext;
538 };
539 LPDWORD lpdwStates;
540 DWORD dwLength;
541 HRESULT ddRVal;
542 } DD_GETDRIVERSTATEDATA, *PDD_GETDRIVERSTATEDATA;
543 typedef DWORD (WINAPI *PDD_GETDRIVERSTATE)(PDD_GETDRIVERSTATEDATA);
544
545 typedef struct _DD_DESTROYDDLOCALDATA {
546 DWORD dwFlags;
547 PDD_DIRECTDRAW_LOCAL pDDLcl;
548 HRESULT ddRVal;
549 } DD_DESTROYDDLOCALDATA, *PDD_DESTROYDDLOCALDATA;
550 typedef DWORD (WINAPI *PDD_DESTROYDDLOCAL)(PDD_DESTROYDDLOCALDATA);
551
552 typedef struct _DD_MISCELLANEOUS2CALLBACKS {
553 DWORD dwSize;
554 DWORD dwFlags;
555 PDD_ALPHABLT AlphaBlt;
556 PDD_CREATESURFACEEX CreateSurfaceEx;
557 PDD_GETDRIVERSTATE GetDriverState;
558 PDD_DESTROYDDLOCAL DestroyDDLocal;
559 } DD_MISCELLANEOUS2CALLBACKS, *PDD_MISCELLANEOUS2CALLBACKS;
560
561 #define DDHAL_MISC2CB32_ALPHABLT 0x00000001
562 #define DDHAL_MISC2CB32_CREATESURFACEEX 0x00000002
563 #define DDHAL_MISC2CB32_GETDRIVERSTATE 0x00000004
564 #define DDHAL_MISC2CB32_DESTROYDDLOCAL 0x00000008
565
566 typedef struct _DD_FREEDRIVERMEMORYDATA {
567 PDD_DIRECTDRAW_GLOBAL lpDD;
568 PDD_SURFACE_LOCAL lpDDSurface;
569 HRESULT ddRVal;
570 PVOID FreeDriverMemory;
571 } DD_FREEDRIVERMEMORYDATA, *PDD_FREEDRIVERMEMORYDATA;
572 typedef DWORD (WINAPI *PDD_FREEDRIVERMEMORY)(PDD_FREEDRIVERMEMORYDATA);
573
574 typedef struct _DD_SETEXCLUSIVEMODEDATA {
575 PDD_DIRECTDRAW_GLOBAL lpDD;
576 DWORD dwEnterExcl;
577 DWORD dwReserved;
578 HRESULT ddRVal;
579 PVOID SetExclusiveMode;
580 } DD_SETEXCLUSIVEMODEDATA, *PDD_SETEXCLUSIVEMODEDATA;
581 typedef DWORD (WINAPI *PDD_SETEXCLUSIVEMODE)(PDD_SETEXCLUSIVEMODEDATA);
582
583 typedef struct _DD_FLIPTOGDISURFACEDATA {
584 PDD_DIRECTDRAW_GLOBAL lpDD;
585 DWORD dwToGDI;
586 DWORD dwReserved;
587 HRESULT ddRVal;
588 PVOID FlipToGDISurface;
589 } DD_FLIPTOGDISURFACEDATA, *PDD_FLIPTOGDISURFACEDATA;
590 typedef DWORD (WINAPI *PDD_FLIPTOGDISURFACE)(PDD_FLIPTOGDISURFACEDATA);
591
592 typedef struct _DD_NTCALLBACKS {
593 DWORD dwSize;
594 DWORD dwFlags;
595 PDD_FREEDRIVERMEMORY FreeDriverMemory;
596 PDD_SETEXCLUSIVEMODE SetExclusiveMode;
597 PDD_FLIPTOGDISURFACE FlipToGDISurface;
598 } DD_NTCALLBACKS, *PDD_NTCALLBACKS;
599
600 #define DDHAL_NTCB32_FREEDRIVERMEMORY 0x00000001
601 #define DDHAL_NTCB32_SETEXCLUSIVEMODE 0x00000002
602 #define DDHAL_NTCB32_FLIPTOGDISURFACE 0x00000004
603
604 /************************************************************************/
605 /* IDirectDrawPalette callbacks */
606 /************************************************************************/
607
608 typedef struct _DD_DESTROYPALETTEDATA {
609 PDD_DIRECTDRAW_GLOBAL lpDD;
610 PDD_PALETTE_GLOBAL lpDDPalette;
611 HRESULT ddRVal;
612 PVOID DestroyPalette;
613 } DD_DESTROYPALETTEDATA, *PDD_DESTROYPALETTEDATA;
614 typedef DWORD (WINAPI *PDD_PALCB_DESTROYPALETTE)(PDD_DESTROYPALETTEDATA);
615
616 typedef struct _DD_SETENTRIESDATA {
617 PDD_DIRECTDRAW_GLOBAL lpDD;
618 PDD_PALETTE_GLOBAL lpDDPalette;
619 DWORD dwBase;
620 DWORD dwNumEntries;
621 LPPALETTEENTRY lpEntries;
622 HRESULT ddRVal;
623 PVOID SetEntries;
624 } DD_SETENTRIESDATA, *PDD_SETENTRIESDATA;
625 typedef DWORD (WINAPI *PDD_PALCB_SETENTRIES)(PDD_SETENTRIESDATA);
626
627 typedef struct DD_PALETTECALLBACKS {
628 DWORD dwSize;
629 DWORD dwFlags;
630 PDD_PALCB_DESTROYPALETTE DestroyPalette;
631 PDD_PALCB_SETENTRIES SetEntries;
632 } DD_PALETTECALLBACKS, *PDD_PALETTECALLBACKS;
633
634 #define DDHAL_PALCB32_DESTROYPALETTE 0x00000001l
635 #define DDHAL_PALCB32_SETENTRIES 0x00000002l
636
637 /************************************************************************/
638 /* IDirectDrawVideoport callbacks */
639 /************************************************************************/
640
641 typedef struct _DD_CANCREATEVPORTDATA {
642 PDD_DIRECTDRAW_LOCAL lpDD;
643 LPDDVIDEOPORTDESC lpDDVideoPortDesc;
644 HRESULT ddRVal;
645 PVOID CanCreateVideoPort;
646 } DD_CANCREATEVPORTDATA, *PDD_CANCREATEVPORTDATA;
647 typedef DWORD (WINAPI *PDD_VPORTCB_CANCREATEVIDEOPORT)(PDD_CANCREATEVPORTDATA);
648
649 typedef struct _DD_CREATEVPORTDATA {
650 PDD_DIRECTDRAW_LOCAL lpDD;
651 LPDDVIDEOPORTDESC lpDDVideoPortDesc;
652 PDD_VIDEOPORT_LOCAL lpVideoPort;
653 HRESULT ddRVal;
654 PVOID CreateVideoPort;
655 } DD_CREATEVPORTDATA, *PDD_CREATEVPORTDATA;
656 typedef DWORD (WINAPI *PDD_VPORTCB_CREATEVIDEOPORT)(PDD_CREATEVPORTDATA);
657
658 typedef struct _DD_FLIPVPORTDATA {
659 PDD_DIRECTDRAW_LOCAL lpDD;
660 PDD_VIDEOPORT_LOCAL lpVideoPort;
661 PDD_SURFACE_LOCAL lpSurfCurr;
662 PDD_SURFACE_LOCAL lpSurfTarg;
663 HRESULT ddRVal;
664 PVOID FlipVideoPort;
665 } DD_FLIPVPORTDATA, *PDD_FLIPVPORTDATA;
666 typedef DWORD (WINAPI *PDD_VPORTCB_FLIP)(PDD_FLIPVPORTDATA);
667
668 typedef struct _DD_GETVPORTBANDWIDTHDATA {
669 PDD_DIRECTDRAW_LOCAL lpDD;
670 PDD_VIDEOPORT_LOCAL lpVideoPort;
671 LPDDPIXELFORMAT lpddpfFormat;
672 DWORD dwWidth;
673 DWORD dwHeight;
674 DWORD dwFlags;
675 LPDDVIDEOPORTBANDWIDTH lpBandwidth;
676 HRESULT ddRVal;
677 PVOID GetVideoPortBandwidth;
678 } DD_GETVPORTBANDWIDTHDATA, *PDD_GETVPORTBANDWIDTHDATA;
679 typedef DWORD (WINAPI *PDD_VPORTCB_GETBANDWIDTH)(PDD_GETVPORTBANDWIDTHDATA);
680
681 typedef struct _DD_GETVPORTINPUTFORMATDATA {
682 PDD_DIRECTDRAW_LOCAL lpDD;
683 PDD_VIDEOPORT_LOCAL lpVideoPort;
684 DWORD dwFlags;
685 LPDDPIXELFORMAT lpddpfFormat;
686 DWORD dwNumFormats;
687 HRESULT ddRVal;
688 PVOID GetVideoPortInputFormats;
689 } DD_GETVPORTINPUTFORMATDATA, *PDD_GETVPORTINPUTFORMATDATA;
690 typedef DWORD (WINAPI *PDD_VPORTCB_GETINPUTFORMATS)(PDD_GETVPORTINPUTFORMATDATA);
691
692 typedef struct _DD_GETVPORTOUTPUTFORMATDATA {
693 PDD_DIRECTDRAW_LOCAL lpDD;
694 PDD_VIDEOPORT_LOCAL lpVideoPort;
695 DWORD dwFlags;
696 LPDDPIXELFORMAT lpddpfInputFormat;
697 LPDDPIXELFORMAT lpddpfOutputFormats;
698 DWORD dwNumFormats;
699 HRESULT ddRVal;
700 PVOID GetVideoPortInputFormats;
701 } DD_GETVPORTOUTPUTFORMATDATA, *PDD_GETVPORTOUTPUTFORMATDATA;
702 typedef DWORD (WINAPI *PDD_VPORTCB_GETOUTPUTFORMATS)(PDD_GETVPORTOUTPUTFORMATDATA);
703
704 typedef struct _DD_GETVPORTFIELDDATA {
705 PDD_DIRECTDRAW_LOCAL lpDD;
706 PDD_VIDEOPORT_LOCAL lpVideoPort;
707 BOOL bField;
708 HRESULT ddRVal;
709 PVOID GetVideoPortField;
710 } DD_GETVPORTFIELDDATA, *PDD_GETVPORTFIELDDATA;
711 typedef DWORD (WINAPI *PDD_VPORTCB_GETFIELD)(PDD_GETVPORTFIELDDATA);
712
713 typedef struct _DD_GETVPORTLINEDATA {
714 PDD_DIRECTDRAW_LOCAL lpDD;
715 PDD_VIDEOPORT_LOCAL lpVideoPort;
716 DWORD dwLine;
717 HRESULT ddRVal;
718 PVOID GetVideoPortLine;
719 } DD_GETVPORTLINEDATA, *PDD_GETVPORTLINEDATA;
720 typedef DWORD (WINAPI *PDD_VPORTCB_GETLINE)(PDD_GETVPORTLINEDATA);
721
722 typedef struct _DD_GETVPORTCONNECTDATA {
723 PDD_DIRECTDRAW_LOCAL lpDD;
724 DWORD dwPortId;
725 LPDDVIDEOPORTCONNECT lpConnect;
726 DWORD dwNumEntries;
727 HRESULT ddRVal;
728 PVOID GetVideoPortConnectInfo;
729 } DD_GETVPORTCONNECTDATA, *PDD_GETVPORTCONNECTDATA;
730 typedef DWORD (WINAPI *PDD_VPORTCB_GETVPORTCONNECT)(PDD_GETVPORTCONNECTDATA);
731
732 typedef struct _DD_DESTROYVPORTDATA {
733 PDD_DIRECTDRAW_LOCAL lpDD;
734 PDD_VIDEOPORT_LOCAL lpVideoPort;
735 HRESULT ddRVal;
736 PVOID DestroyVideoPort;
737 } DD_DESTROYVPORTDATA, *PDD_DESTROYVPORTDATA;
738 typedef DWORD (WINAPI *PDD_VPORTCB_DESTROYVPORT)(PDD_DESTROYVPORTDATA);
739
740 typedef struct _DD_GETVPORTFLIPSTATUSDATA {
741 PDD_DIRECTDRAW_LOCAL lpDD;
742 FLATPTR fpSurface;
743 HRESULT ddRVal;
744 PVOID GetVideoPortFlipStatus;
745 } DD_GETVPORTFLIPSTATUSDATA, *PDD_GETVPORTFLIPSTATUSDATA;
746 typedef DWORD (WINAPI *PDD_VPORTCB_GETFLIPSTATUS)(PDD_GETVPORTFLIPSTATUSDATA);
747
748 typedef struct _DD_UPDATEVPORTDATA {
749 PDD_DIRECTDRAW_LOCAL lpDD;
750 PDD_VIDEOPORT_LOCAL lpVideoPort;
751 PDD_SURFACE_INT *lplpDDSurface;
752 PDD_SURFACE_INT *lplpDDVBISurface;
753 LPDDVIDEOPORTINFO lpVideoInfo;
754 DWORD dwFlags;
755 DWORD dwNumAutoflip;
756 DWORD dwNumVBIAutoflip;
757 HRESULT ddRVal;
758 PVOID UpdateVideoPort;
759 } DD_UPDATEVPORTDATA, *PDD_UPDATEVPORTDATA;
760 typedef DWORD (WINAPI *PDD_VPORTCB_UPDATE)(PDD_UPDATEVPORTDATA);
761
762 typedef struct _DD_WAITFORVPORTSYNCDATA {
763 PDD_DIRECTDRAW_LOCAL lpDD;
764 PDD_VIDEOPORT_LOCAL lpVideoPort;
765 DWORD dwFlags;
766 DWORD dwLine;
767 DWORD dwTimeOut;
768 HRESULT ddRVal;
769 PVOID UpdateVideoPort;
770 } DD_WAITFORVPORTSYNCDATA, *PDD_WAITFORVPORTSYNCDATA;
771 typedef DWORD (WINAPI *PDD_VPORTCB_WAITFORSYNC)(PDD_WAITFORVPORTSYNCDATA);
772
773 typedef struct _DD_GETVPORTSIGNALDATA {
774 PDD_DIRECTDRAW_LOCAL lpDD;
775 PDD_VIDEOPORT_LOCAL lpVideoPort;
776 DWORD dwStatus;
777 HRESULT ddRVal;
778 PVOID GetVideoSignalStatus;
779 } DD_GETVPORTSIGNALDATA, *PDD_GETVPORTSIGNALDATA;
780 typedef DWORD (WINAPI *PDD_VPORTCB_GETSIGNALSTATUS)(PDD_GETVPORTSIGNALDATA);
781
782 typedef struct _DD_VPORTCOLORDATA {
783 PDD_DIRECTDRAW_LOCAL lpDD;
784 PDD_VIDEOPORT_LOCAL lpVideoPort;
785 DWORD dwFlags;
786 LPDDCOLORCONTROL lpColorData;
787 HRESULT ddRVal;
788 PVOID ColorControl;
789 } DD_VPORTCOLORDATA, *PDD_VPORTCOLORDATA;
790 typedef DWORD (WINAPI *PDD_VPORTCB_COLORCONTROL)(PDD_VPORTCOLORDATA);
791
792 typedef struct DD_VIDEOPORTCALLBACKS {
793 DWORD dwSize;
794 DWORD dwFlags;
795 PDD_VPORTCB_CANCREATEVIDEOPORT CanCreateVideoPort;
796 PDD_VPORTCB_CREATEVIDEOPORT CreateVideoPort;
797 PDD_VPORTCB_FLIP FlipVideoPort;
798 PDD_VPORTCB_GETBANDWIDTH GetVideoPortBandwidth;
799 PDD_VPORTCB_GETINPUTFORMATS GetVideoPortInputFormats;
800 PDD_VPORTCB_GETOUTPUTFORMATS GetVideoPortOutputFormats;
801 PVOID lpReserved1;
802 PDD_VPORTCB_GETFIELD GetVideoPortField;
803 PDD_VPORTCB_GETLINE GetVideoPortLine;
804 PDD_VPORTCB_GETVPORTCONNECT GetVideoPortConnectInfo;
805 PDD_VPORTCB_DESTROYVPORT DestroyVideoPort;
806 PDD_VPORTCB_GETFLIPSTATUS GetVideoPortFlipStatus;
807 PDD_VPORTCB_UPDATE UpdateVideoPort;
808 PDD_VPORTCB_WAITFORSYNC WaitForVideoPortSync;
809 PDD_VPORTCB_GETSIGNALSTATUS GetVideoSignalStatus;
810 PDD_VPORTCB_COLORCONTROL ColorControl;
811 } DD_VIDEOPORTCALLBACKS, *PDD_VIDEOPORTCALLBACKS;
812
813 #define DDHAL_VPORT32_CANCREATEVIDEOPORT 0x00000001
814 #define DDHAL_VPORT32_CREATEVIDEOPORT 0x00000002
815 #define DDHAL_VPORT32_FLIP 0x00000004
816 #define DDHAL_VPORT32_GETBANDWIDTH 0x00000008
817 #define DDHAL_VPORT32_GETINPUTFORMATS 0x00000010
818 #define DDHAL_VPORT32_GETOUTPUTFORMATS 0x00000020
819 #define DDHAL_VPORT32_GETFIELD 0x00000080
820 #define DDHAL_VPORT32_GETLINE 0x00000100
821 #define DDHAL_VPORT32_GETCONNECT 0x00000200
822 #define DDHAL_VPORT32_DESTROY 0x00000400
823 #define DDHAL_VPORT32_GETFLIPSTATUS 0x00000800
824 #define DDHAL_VPORT32_UPDATE 0x00001000
825 #define DDHAL_VPORT32_WAITFORSYNC 0x00002000
826 #define DDHAL_VPORT32_GETSIGNALSTATUS 0x00004000
827 #define DDHAL_VPORT32_COLORCONTROL 0x00008000
828
829
830 /************************************************************************/
831 /* IDirectDrawColorControl callbacks */
832 /************************************************************************/
833
834 #define DDRAWI_GETCOLOR 0x0001
835 #define DDRAWI_SETCOLOR 0x0002
836
837 typedef struct _DD_COLORCONTROLDATA {
838 PDD_DIRECTDRAW_GLOBAL lpDD;
839 PDD_SURFACE_LOCAL lpDDSurface;
840 LPDDCOLORCONTROL lpColorData;
841 DWORD dwFlags;
842 HRESULT ddRVal;
843 PVOID ColorControl;
844 } DD_COLORCONTROLDATA, *PDD_COLORCONTROLDATA;
845 typedef DWORD (WINAPI *PDD_COLORCB_COLORCONTROL)(PDD_COLORCONTROLDATA);
846
847 typedef struct _DD_COLORCONTROLCALLBACKS {
848 DWORD dwSize;
849 DWORD dwFlags;
850 PDD_COLORCB_COLORCONTROL ColorControl;
851 } DD_COLORCONTROLCALLBACKS, *PDD_COLORCONTROLCALLBACKS;
852
853 #define DDHAL_COLOR_COLORCONTROL 0x00000001
854
855 /************************************************************************/
856 /* IDirectDrawVideo callbacks */
857 /************************************************************************/
858
859 typedef struct _DD_GETMOCOMPGUIDSDATA {
860 PDD_DIRECTDRAW_LOCAL lpDD;
861 DWORD dwNumGuids;
862 GUID *lpGuids;
863 HRESULT ddRVal;
864 } DD_GETMOCOMPGUIDSDATA, *PDD_GETMOCOMPGUIDSDATA;
865 typedef DWORD (WINAPI *PDD_MOCOMPCB_GETGUIDS)(PDD_GETMOCOMPGUIDSDATA);
866
867 typedef struct _DD_GETMOCOMPFORMATSDATA {
868 PDD_DIRECTDRAW_LOCAL lpDD;
869 GUID *lpGuid;
870 DWORD dwNumFormats;
871 LPDDPIXELFORMAT lpFormats;
872 HRESULT ddRVal;
873 } DD_GETMOCOMPFORMATSDATA, *PDD_GETMOCOMPFORMATSDATA;
874 typedef DWORD (WINAPI *PDD_MOCOMPCB_GETFORMATS)(PDD_GETMOCOMPFORMATSDATA);
875
876 typedef struct _DD_CREATEMOCOMPDATA {
877 PDD_DIRECTDRAW_LOCAL lpDD;
878 PDD_MOTIONCOMP_LOCAL lpMoComp;
879 GUID *lpGuid;
880 DWORD dwUncompWidth;
881 DWORD dwUncompHeight;
882 DDPIXELFORMAT ddUncompPixelFormat;
883 LPVOID lpData;
884 DWORD dwDataSize;
885 HRESULT ddRVal;
886 } DD_CREATEMOCOMPDATA, *PDD_CREATEMOCOMPDATA;
887 typedef DWORD (WINAPI *PDD_MOCOMPCB_CREATE)(PDD_CREATEMOCOMPDATA);
888
889 typedef struct _DDCOMPBUFFERINFO {
890 DWORD dwSize;
891 DWORD dwNumCompBuffers;
892 DWORD dwWidthToCreate;
893 DWORD dwHeightToCreate;
894 DWORD dwBytesToAllocate;
895 DDSCAPS2 ddCompCaps;
896 DDPIXELFORMAT ddPixelFormat;
897 } DDCOMPBUFFERINFO, *LPDDCOMPBUFFERINFO;
898
899 typedef struct _DD_GETMOCOMPCOMPBUFFDATA {
900 PDD_DIRECTDRAW_LOCAL lpDD;
901 GUID *lpGuid;
902 DWORD dwWidth;
903 DWORD dwHeight;
904 DDPIXELFORMAT ddPixelFormat;
905 DWORD dwNumTypesCompBuffs;
906 LPDDCOMPBUFFERINFO lpCompBuffInfo;
907 HRESULT ddRVal;
908 } DD_GETMOCOMPCOMPBUFFDATA, *PDD_GETMOCOMPCOMPBUFFDATA;
909 typedef DWORD (WINAPI *PDD_MOCOMPCB_GETCOMPBUFFINFO)(PDD_GETMOCOMPCOMPBUFFDATA);
910
911 typedef struct _DD_GETINTERNALMOCOMPDATA {
912 PDD_DIRECTDRAW_LOCAL lpDD;
913 GUID *lpGuid;
914 DWORD dwWidth;
915 DWORD dwHeight;
916 DDPIXELFORMAT ddPixelFormat;
917 DWORD dwScratchMemAlloc;
918 HRESULT ddRVal;
919 } DD_GETINTERNALMOCOMPDATA, *PDD_GETINTERNALMOCOMPDATA;
920 typedef DWORD (WINAPI *PDD_MOCOMPCB_GETINTERNALINFO)(PDD_GETINTERNALMOCOMPDATA);
921
922 typedef struct _DD_BEGINMOCOMPFRAMEDATA {
923 PDD_DIRECTDRAW_LOCAL lpDD;
924 PDD_MOTIONCOMP_LOCAL lpMoComp;
925 PDD_SURFACE_LOCAL lpDestSurface;
926 DWORD dwInputDataSize;
927 LPVOID lpInputData;
928 DWORD dwOutputDataSize;
929 LPVOID lpOutputData;
930 HRESULT ddRVal;
931 } DD_BEGINMOCOMPFRAMEDATA, *PDD_BEGINMOCOMPFRAMEDATA;
932 typedef DWORD (WINAPI *PDD_MOCOMPCB_BEGINFRAME)(PDD_BEGINMOCOMPFRAMEDATA);
933
934 typedef struct _DD_ENDMOCOMPFRAMEDATA {
935 PDD_DIRECTDRAW_LOCAL lpDD;
936 PDD_MOTIONCOMP_LOCAL lpMoComp;
937 LPVOID lpInputData;
938 DWORD dwInputDataSize;
939 HRESULT ddRVal;
940 } DD_ENDMOCOMPFRAMEDATA, *PDD_ENDMOCOMPFRAMEDATA;
941 typedef DWORD (WINAPI *PDD_MOCOMPCB_ENDFRAME)(PDD_ENDMOCOMPFRAMEDATA);
942
943 typedef struct _DDMOCOMPBUFFERINFO {
944 DWORD dwSize;
945 PDD_SURFACE_LOCAL lpCompSurface;
946 DWORD dwDataOffset;
947 DWORD dwDataSize;
948 LPVOID lpPrivate;
949 } DDMOCOMPBUFFERINFO, *LPDDMOCOMPBUFFERINFO;
950
951 typedef struct _DD_RENDERMOCOMPDATA {
952 PDD_DIRECTDRAW_LOCAL lpDD;
953 PDD_MOTIONCOMP_LOCAL lpMoComp;
954 DWORD dwNumBuffers;
955 LPDDMOCOMPBUFFERINFO lpBufferInfo;
956 DWORD dwFunction;
957 LPVOID lpInputData;
958 DWORD dwInputDataSize;
959 LPVOID lpOutputData;
960 DWORD dwOutputDataSize;
961 HRESULT ddRVal;
962 } DD_RENDERMOCOMPDATA, *PDD_RENDERMOCOMPDATA;
963 typedef DWORD (WINAPI *PDD_MOCOMPCB_RENDER)(PDD_RENDERMOCOMPDATA);
964
965 #define DDMCQUERY_READ 0x00000001
966
967 typedef struct _DD_QUERYMOCOMPSTATUSDATA {
968 PDD_DIRECTDRAW_LOCAL lpDD;
969 PDD_MOTIONCOMP_LOCAL lpMoComp;
970 PDD_SURFACE_LOCAL lpSurface;
971 DWORD dwFlags;
972 HRESULT ddRVal;
973 } DD_QUERYMOCOMPSTATUSDATA, *PDD_QUERYMOCOMPSTATUSDATA;
974 typedef DWORD (WINAPI *PDD_MOCOMPCB_QUERYSTATUS)(PDD_QUERYMOCOMPSTATUSDATA);
975
976 typedef struct _DD_DESTROYMOCOMPDATA {
977 PDD_DIRECTDRAW_LOCAL lpDD;
978 PDD_MOTIONCOMP_LOCAL lpMoComp;
979 HRESULT ddRVal;
980 } DD_DESTROYMOCOMPDATA, *PDD_DESTROYMOCOMPDATA;
981 typedef DWORD (WINAPI *PDD_MOCOMPCB_DESTROY)(PDD_DESTROYMOCOMPDATA);
982
983 typedef struct DD_MOTIONCOMPCALLBACKS {
984 DWORD dwSize;
985 DWORD dwFlags;
986 PDD_MOCOMPCB_GETGUIDS GetMoCompGuids;
987 PDD_MOCOMPCB_GETFORMATS GetMoCompFormats;
988 PDD_MOCOMPCB_CREATE CreateMoComp;
989 PDD_MOCOMPCB_GETCOMPBUFFINFO GetMoCompBuffInfo;
990 PDD_MOCOMPCB_GETINTERNALINFO GetInternalMoCompInfo;
991 PDD_MOCOMPCB_BEGINFRAME BeginMoCompFrame;
992 PDD_MOCOMPCB_ENDFRAME EndMoCompFrame;
993 PDD_MOCOMPCB_RENDER RenderMoComp;
994 PDD_MOCOMPCB_QUERYSTATUS QueryMoCompStatus;
995 PDD_MOCOMPCB_DESTROY DestroyMoComp;
996 } DD_MOTIONCOMPCALLBACKS, *PDD_MOTIONCOMPCALLBACKS;
997
998 #define DDHAL_MOCOMP32_GETGUIDS 0x00000001
999 #define DDHAL_MOCOMP32_GETFORMATS 0x00000002
1000 #define DDHAL_MOCOMP32_CREATE 0x00000004
1001 #define DDHAL_MOCOMP32_GETCOMPBUFFINFO 0x00000008
1002 #define DDHAL_MOCOMP32_GETINTERNALINFO 0x00000010
1003 #define DDHAL_MOCOMP32_BEGINFRAME 0x00000020
1004 #define DDHAL_MOCOMP32_ENDFRAME 0x00000040
1005 #define DDHAL_MOCOMP32_RENDER 0x00000080
1006 #define DDHAL_MOCOMP32_QUERYSTATUS 0x00000100
1007 #define DDHAL_MOCOMP32_DESTROY 0x00000200
1008
1009 /************************************************************************/
1010 /* D3D buffer callbacks */
1011 /************************************************************************/
1012
1013 typedef struct _DD_D3DBUFCALLBACKS {
1014 DWORD dwSize;
1015 DWORD dwFlags;
1016 PDD_CANCREATESURFACE CanCreateD3DBuffer;
1017 PDD_CREATESURFACE CreateD3DBuffer;
1018 PDD_SURFCB_DESTROYSURFACE DestroyD3DBuffer;
1019 PDD_SURFCB_LOCK LockD3DBuffer;
1020 PDD_SURFCB_UNLOCK UnlockD3DBuffer;
1021 } DD_D3DBUFCALLBACKS, *PDD_D3DBUFCALLBACKS;
1022
1023 /************************************************************************/
1024 /* DdGetDriverInfo callback */
1025 /************************************************************************/
1026
1027 typedef struct _DD_GETDRIVERINFODATA {
1028 // Input:
1029 PVOID dhpdev;
1030 DWORD dwSize;
1031 DWORD dwFlags;
1032 GUID guidInfo;
1033 DWORD dwExpectedSize;
1034 PVOID lpvData;
1035 // Output:
1036 DWORD dwActualSize;
1037 HRESULT ddRVal;
1038 } DD_GETDRIVERINFODATA, *PDD_GETDRIVERINFODATA;
1039 typedef DWORD (WINAPI *PDD_GETDRIVERINFO)(PDD_GETDRIVERINFODATA);
1040
1041 /************************************************************************/
1042 /* Driver info structures */
1043 /************************************************************************/
1044
1045 typedef struct _DDNTCORECAPS {
1046 DWORD dwSize;
1047 DWORD dwCaps;
1048 DWORD dwCaps2;
1049 DWORD dwCKeyCaps;
1050 DWORD dwFXCaps;
1051 DWORD dwFXAlphaCaps;
1052 DWORD dwPalCaps;
1053 DWORD dwSVCaps;
1054 DWORD dwAlphaBltConstBitDepths;
1055 DWORD dwAlphaBltPixelBitDepths;
1056 DWORD dwAlphaBltSurfaceBitDepths;
1057 DWORD dwAlphaOverlayConstBitDepths;
1058 DWORD dwAlphaOverlayPixelBitDepths;
1059 DWORD dwAlphaOverlaySurfaceBitDepths;
1060 DWORD dwZBufferBitDepths;
1061 DWORD dwVidMemTotal;
1062 DWORD dwVidMemFree;
1063 DWORD dwMaxVisibleOverlays;
1064 DWORD dwCurrVisibleOverlays;
1065 DWORD dwNumFourCCCodes;
1066 DWORD dwAlignBoundarySrc;
1067 DWORD dwAlignSizeSrc;
1068 DWORD dwAlignBoundaryDest;
1069 DWORD dwAlignSizeDest;
1070 DWORD dwAlignStrideAlign;
1071 DWORD dwRops[DD_ROP_SPACE];
1072 DDSCAPS ddsCaps;
1073 DWORD dwMinOverlayStretch;
1074 DWORD dwMaxOverlayStretch;
1075 DWORD dwMinLiveVideoStretch;
1076 DWORD dwMaxLiveVideoStretch;
1077 DWORD dwMinHwCodecStretch;
1078 DWORD dwMaxHwCodecStretch;
1079 DWORD dwReserved1;
1080 DWORD dwReserved2;
1081 DWORD dwReserved3;
1082 DWORD dwSVBCaps;
1083 DWORD dwSVBCKeyCaps;
1084 DWORD dwSVBFXCaps;
1085 DWORD dwSVBRops[DD_ROP_SPACE];
1086 DWORD dwVSBCaps;
1087 DWORD dwVSBCKeyCaps;
1088 DWORD dwVSBFXCaps;
1089 DWORD dwVSBRops[DD_ROP_SPACE];
1090 DWORD dwSSBCaps;
1091 DWORD dwSSBCKeyCaps;
1092 DWORD dwSSBFXCaps;
1093 DWORD dwSSBRops[DD_ROP_SPACE];
1094 DWORD dwMaxVideoPorts;
1095 DWORD dwCurrVideoPorts;
1096 DWORD dwSVBCaps2;
1097 } DDNTCORECAPS, *PDDNTCORECAPS;
1098
1099 typedef struct _DD_HALINFO_V4 {
1100 DWORD dwSize;
1101 VIDEOMEMORYINFO vmiData;
1102 DDNTCORECAPS ddCaps;
1103 PDD_GETDRIVERINFO GetDriverInfo;
1104 DWORD dwFlags;
1105 } DD_HALINFO_V4, *PDD_HALINFO_V4;
1106
1107 typedef struct _DD_HALINFO {
1108 DWORD dwSize;
1109 VIDEOMEMORYINFO vmiData;
1110 DDNTCORECAPS ddCaps;
1111 PDD_GETDRIVERINFO GetDriverInfo;
1112 DWORD dwFlags;
1113 PVOID lpD3DGlobalDriverData;
1114 PVOID lpD3DHALCallbacks;
1115 PDD_D3DBUFCALLBACKS lpD3DBufCallbacks;
1116 } DD_HALINFO, *PDD_HALINFO;
1117
1118 typedef struct _DD_NONLOCALVIDMEMCAPS {
1119 DWORD dwSize;
1120 DWORD dwNLVBCaps;
1121 DWORD dwNLVBCaps2;
1122 DWORD dwNLVBCKeyCaps;
1123 DWORD dwNLVBFXCaps;
1124 DWORD dwNLVBRops[DD_ROP_SPACE];
1125 } DD_NONLOCALVIDMEMCAPS, *PDD_NONLOCALVIDMEMCAPS;
1126
1127 typedef struct _DD_MORESURFACECAPS {
1128 DWORD dwSize;
1129 DDSCAPSEX ddsCapsMore;
1130 struct tagNTExtendedHeapRestrictions {
1131 DDSCAPSEX ddsCapsEx;
1132 DDSCAPSEX ddsCapsExAlt;
1133 } ddsExtendedHeapRestrictions[1];
1134 } DD_MORESURFACECAPS, *PDD_MORESURFACECAPS;
1135
1136
1137 /*********************************************************/
1138 /* Kernel Callbacks */
1139 /*********************************************************/
1140 typedef struct _DD_SYNCSURFACEDATA {
1141 PDD_DIRECTDRAW_LOCAL lpDD;
1142 PDD_SURFACE_LOCAL lpDDSurface;
1143 DWORD dwSurfaceOffset;
1144 ULONG_PTR fpLockPtr;
1145 LONG lPitch;
1146 DWORD dwOverlayOffset;
1147 ULONG dwDriverReserved1;
1148 ULONG dwDriverReserved2;
1149 ULONG dwDriverReserved3;
1150 ULONG dwDriverReserved4;
1151 HRESULT ddRVal;
1152 } DD_SYNCSURFACEDATA, *PDD_SYNCSURFACEDATA;
1153 typedef DWORD (WINAPI *PDD_KERNELCB_SYNCSURFACE)(PDD_SYNCSURFACEDATA);
1154
1155 typedef struct _DD_SYNCVIDEOPORTDATA {
1156 PDD_DIRECTDRAW_LOCAL lpDD;
1157 PDD_VIDEOPORT_LOCAL lpVideoPort;
1158 DWORD dwOriginOffset;
1159 DWORD dwHeight;
1160 DWORD dwVBIHeight;
1161 ULONG dwDriverReserved1;
1162 ULONG dwDriverReserved2;
1163 ULONG dwDriverReserved3;
1164 HRESULT ddRVal;
1165 } DD_SYNCVIDEOPORTDATA, *PDD_SYNCVIDEOPORTDATA;
1166 typedef DWORD (WINAPI *PDD_KERNELCB_SYNCVIDEOPORT)(PDD_SYNCVIDEOPORTDATA);
1167
1168 typedef struct DD_NTPRIVATEDRIVERCAPS {
1169 DWORD dwSize;
1170 DWORD dwPrivateCaps;
1171 } DD_NTPRIVATEDRIVERCAPS;
1172
1173 typedef struct _DD_UPDATENONLOCALHEAPDATA {
1174 PDD_DIRECTDRAW_GLOBAL lpDD;
1175 DWORD dwHeap;
1176 FLATPTR fpGARTLin;
1177 FLATPTR fpGARTDev;
1178 ULONG_PTR ulPolicyMaxBytes;
1179 HRESULT ddRVal;
1180 VOID* UpdateNonLocalHeap;
1181 } DD_UPDATENONLOCALHEAPDATA, *PDD_UPDATENONLOCALHEAPDATA;
1182
1183 typedef struct _DD_STEREOMODE {
1184 DWORD dwSize;
1185 DWORD dwHeight;
1186 DWORD dwWidth;
1187 DWORD dwBpp;
1188 DWORD dwRefreshRate;
1189 BOOL bSupported;
1190 } DD_STEREOMODE, *PDD_STEREOMODE;
1191
1192 typedef struct _DD_MORECAPS {
1193 DWORD dwSize;
1194 DWORD dwAlphaCaps;
1195 DWORD dwSVBAlphaCaps;
1196 DWORD dwVSBAlphaCaps;
1197 DWORD dwSSBAlphaCaps;
1198 DWORD dwFilterCaps;
1199 DWORD dwSVBFilterCaps;
1200 DWORD dwVSBFilterCaps;
1201 DWORD dwSSBFilterCaps;
1202 } DD_MORECAPS, *PDD_MORECAPS;
1203
1204 typedef struct _DD_CLIPPER_GLOBAL {
1205 ULONG_PTR dwReserved1;
1206 } DD_CLIPPER_GLOBAL;
1207
1208 typedef struct _DD_CLIPPER_LOCAL {
1209 ULONG_PTR dwReserved1;
1210 } DD_CLIPPER_LOCAL;
1211
1212 typedef struct _DD_PALETTE_LOCAL {
1213 ULONG dwReserved0;
1214 ULONG_PTR dwReserved1;
1215 } DD_PALETTE_LOCAL;
1216
1217 typedef struct DD_KERNELCALLBACKS {
1218 DWORD dwSize;
1219 DWORD dwFlags;
1220 PDD_KERNELCB_SYNCSURFACE SyncSurfaceData;
1221 PDD_KERNELCB_SYNCVIDEOPORT SyncVideoPortData;
1222 } DD_KERNELCALLBACKS, *PDD_KERNELCALLBACKS;
1223
1224 #define MAX_AUTOFLIP_BUFFERS 10
1225 #define DDSCAPS_EXECUTEBUFFER DDSCAPS_RESERVED2
1226 #define DDSCAPS_COMMANDBUFFER DDSCAPS_RESERVED3
1227 #define DDSCAPS_VERTEXBUFFER DDSCAPS_RESERVED4
1228 #define DDPF_D3DFORMAT 0x00200000l
1229 #define D3DFORMAT_OP_TEXTURE 0x00000001L
1230 #define D3DFORMAT_OP_VOLUMETEXTURE 0x00000002L
1231 #define D3DFORMAT_OP_CUBETEXTURE 0x00000004L
1232 #define D3DFORMAT_OP_OFFSCREEN_RENDERTARGET 0x00000008L
1233 #define D3DFORMAT_OP_SAME_FORMAT_RENDERTARGET 0x00000010L
1234 #define D3DFORMAT_OP_ZSTENCIL 0x00000040L
1235 #define D3DFORMAT_OP_ZSTENCIL_WITH_ARBITRARY_COLOR_DEPTH 0x00000080L
1236 #define D3DFORMAT_OP_SAME_FORMAT_UP_TO_ALPHA_RENDERTARGET 0x00000100L
1237 #define D3DFORMAT_OP_DISPLAYMODE 0x00000400L
1238 #define D3DFORMAT_OP_3DACCELERATION 0x00000800L
1239 #define D3DFORMAT_OP_PIXELSIZE 0x00001000L
1240 #define D3DFORMAT_OP_CONVERT_TO_ARGB 0x00002000L
1241 #define D3DFORMAT_OP_OFFSCREENPLAIN 0x00004000L
1242 #define D3DFORMAT_OP_SRGBREAD 0x00008000L
1243 #define D3DFORMAT_OP_BUMPMAP 0x00010000L
1244 #define D3DFORMAT_OP_DMAP 0x00020000L
1245 #define D3DFORMAT_OP_NOFILTER 0x00040000L
1246 #define D3DFORMAT_MEMBEROFGROUP_ARGB 0x00080000L
1247 #define D3DFORMAT_OP_SRGBWRITE 0x00100000L
1248 #define D3DFORMAT_OP_NOALPHABLEND 0x00200000L
1249 #define D3DFORMAT_OP_AUTOGENMIPMAP 0x00400000L
1250 #define D3DFORMAT_OP_VERTEXTEXTURE 0x00800000L
1251 #define D3DFORMAT_OP_NOTEXCOORDWRAPNORMIP 0x01000000L
1252 #define DDHAL_PLEASEALLOC_BLOCKSIZE 0x00000002l
1253 #define DDHAL_PLEASEALLOC_USERMEM 0x00000004l
1254
1255 #define VIDMEM_ISLINEAR 0x00000001l
1256 #define VIDMEM_ISRECTANGULAR 0x00000002l
1257 #define VIDMEM_ISHEAP 0x00000004l
1258 #define VIDMEM_ISNONLOCAL 0x00000008l
1259 #define VIDMEM_ISWC 0x00000010l
1260 #define VIDMEM_HEAPDISABLED 0x00000020l
1261
1262 #define DDHAL_CREATESURFACEEX_SWAPHANDLES 0x00000001l
1263
1264 #define DDHAL_KERNEL_SYNCSURFACEDATA 0x00000001l
1265 #define DDHAL_KERNEL_SYNCVIDEOPORTDATA 0x00000002l
1266
1267 #define DDHAL_DRIVER_NOTHANDLED 0x00000000l
1268 #define DDHAL_DRIVER_HANDLED 0x00000001l
1269 #define DDHAL_DRIVER_NOCKEYHW 0x00000002l
1270
1271 #define DDRAWISURF_HASCKEYSRCBLT 0x00000800L
1272 #define DDRAWISURF_HASPIXELFORMAT 0x00002000L
1273 #define DDRAWISURF_HASOVERLAYDATA 0x00004000L
1274 #define DDRAWISURF_FRONTBUFFER 0x04000000L
1275 #define DDRAWISURF_BACKBUFFER 0x08000000L
1276 #define DDRAWISURF_INVALID 0x10000000L
1277 #define DDRAWISURF_DRIVERMANAGED 0x40000000L
1278
1279 #define ROP_HAS_SOURCE 0x00000001l
1280 #define ROP_HAS_PATTERN 0x00000002l
1281 #define ROP_HAS_SOURCEPATTERN ROP_HAS_SOURCE | ROP_HAS_PATTERN
1282
1283 #define DDHAL_EXEBUFCB32_CANCREATEEXEBUF 0x00000001l
1284 #define DDHAL_EXEBUFCB32_CREATEEXEBUF 0x00000002l
1285 #define DDHAL_EXEBUFCB32_DESTROYEXEBUF 0x00000004l
1286 #define DDHAL_EXEBUFCB32_LOCKEXEBUF 0x00000008l
1287 #define DDHAL_EXEBUFCB32_UNLOCKEXEBUF 0x00000010l
1288
1289 #define DDHAL_D3DBUFCB32_CANCREATED3DBUF DDHAL_EXEBUFCB32_CANCREATEEXEBUF
1290 #define DDHAL_D3DBUFCB32_CREATED3DBUF DDHAL_EXEBUFCB32_CREATEEXEBUF
1291 #define DDHAL_D3DBUFCB32_DESTROYD3DBUF DDHAL_EXEBUFCB32_DESTROYEXEBUF
1292 #define DDHAL_D3DBUFCB32_LOCKD3DBUF DDHAL_EXEBUFCB32_LOCKEXEBUF
1293 #define DDHAL_D3DBUFCB32_UNLOCKD3DBUF DDHAL_EXEBUFCB32_UNLOCKEXEBUF
1294
1295 #define DDHALINFO_ISPRIMARYDISPLAY 0x00000001
1296 #define DDHALINFO_MODEXILLEGAL 0x00000002
1297 #define DDHALINFO_GETDRIVERINFOSET 0x00000004
1298 #define DDHALINFO_GETDRIVERINFO2 0x00000008
1299
1300 #define DDRAWIVPORT_ON 0x00000001
1301 #define DDRAWIVPORT_SOFTWARE_AUTOFLIP 0x00000002
1302 #define DDRAWIVPORT_COLORKEYANDINTERP 0x00000004
1303
1304 #define DDHAL_PRIVATECAP_ATOMICSURFACECREATION 0x00000001l
1305 #define DDHAL_PRIVATECAP_NOTIFYPRIMARYCREATION 0x00000002l
1306 #define DDHAL_PRIVATECAP_RESERVED1 0x00000004l
1307
1308 #define DDRAWI_VPORTSTART 0x0001
1309 #define DDRAWI_VPORTSTOP 0x0002
1310 #define DDRAWI_VPORTUPDATE 0x0003
1311 #define DDRAWI_VPORTGETCOLOR 0x0001
1312 #define DDRAWI_VPORTSETCOLOR 0x0002
1313
1314 #ifdef __cplusplus
1315 } /* extern "C" */
1316 #endif
1317
1318 #endif /* GUID_DEFS_ONLY */
1319
1320 #endif /* __DD_INCLUDED__ */