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