135c4bbdfSmrg#ifdef __MINGW64_VERSION_MAJOR 235c4bbdfSmrg#include_next <ddraw.h> 335c4bbdfSmrg#define __XWIN_DDRAW_H 435c4bbdfSmrg#endif 505b261ecSmrg#ifndef __XWIN_DDRAW_H 605b261ecSmrg#define __XWIN_DDRAW_H 705b261ecSmrg 805b261ecSmrg#include <winnt.h> 905b261ecSmrg#include <wingdi.h> 1005b261ecSmrg#include <objbase.h> 1105b261ecSmrg 1205b261ecSmrg#if defined(NONAMELESSUNION) && !defined(DUMMYUNIONNAME1) 1305b261ecSmrg#define DUMMYUNIONNAME1 u1 1405b261ecSmrg#endif 1505b261ecSmrg 1605b261ecSmrg#define ICOM_CALL_( xfn, p, args) (p)->lpVtbl->xfn args 1705b261ecSmrg 1835c4bbdfSmrg#ifdef UNICODE 1935c4bbdfSmrg#define WINELIB_NAME_AW(func) func##W 2035c4bbdfSmrg#else 2135c4bbdfSmrg#define WINELIB_NAME_AW(func) func##A 2235c4bbdfSmrg#endif /* UNICODE */ 2305b261ecSmrg#define DECL_WINELIB_TYPE_AW(type) typedef WINELIB_NAME_AW(type) type; 2405b261ecSmrg 2505b261ecSmrg#ifdef __cplusplus 2605b261ecSmrgextern "C" { 2735c4bbdfSmrg#endif /* defined(__cplusplus) */ 2805b261ecSmrg 2905b261ecSmrg#ifndef DIRECTDRAW_VERSION 3005b261ecSmrg#define DIRECTDRAW_VERSION 0x0700 3135c4bbdfSmrg#endif /* DIRECTDRAW_VERSION */ 3205b261ecSmrg 3305b261ecSmrg/***************************************************************************** 3405b261ecSmrg * Predeclare the interfaces 3505b261ecSmrg */ 3635c4bbdfSmrg DEFINE_GUID(CLSID_DirectDraw, 0xD7B70EE0, 0x4340, 0x11CF, 0xB0, 0x63, 0x00, 3735c4bbdfSmrg 0x20, 0xAF, 0xC2, 0xCD, 0x35); 3835c4bbdfSmrg DEFINE_GUID(CLSID_DirectDraw7, 0x3C305196, 0x50DB, 0x11D3, 0x9C, 0xFE, 0x00, 3935c4bbdfSmrg 0xC0, 0x4F, 0xD9, 0x30, 0xC5); 4035c4bbdfSmrg DEFINE_GUID(CLSID_DirectDrawClipper, 0x593817A0, 0x7DB3, 0x11CF, 0xA2, 0xDE, 4135c4bbdfSmrg 0x00, 0xAA, 0x00, 0xb9, 0x33, 0x56); 4235c4bbdfSmrg DEFINE_GUID(IID_IDirectDraw, 0x6C14DB80, 0xA733, 0x11CE, 0xA5, 0x21, 0x00, 4335c4bbdfSmrg 0x20, 0xAF, 0x0B, 0xE5, 0x60); 4435c4bbdfSmrg DEFINE_GUID(IID_IDirectDraw2, 0xB3A6F3E0, 0x2B43, 0x11CF, 0xA2, 0xDE, 0x00, 4535c4bbdfSmrg 0xAA, 0x00, 0xB9, 0x33, 0x56); 4635c4bbdfSmrg DEFINE_GUID(IID_IDirectDraw4, 0x9c59509a, 0x39bd, 0x11d1, 0x8c, 0x4a, 0x00, 4735c4bbdfSmrg 0xc0, 0x4f, 0xd9, 0x30, 0xc5); 4835c4bbdfSmrg DEFINE_GUID(IID_IDirectDraw7, 0x15e65ec0, 0x3b9c, 0x11d2, 0xb9, 0x2f, 0x00, 4935c4bbdfSmrg 0x60, 0x97, 0x97, 0xea, 0x5b); 5035c4bbdfSmrg DEFINE_GUID(IID_IDirectDrawSurface, 0x6C14DB81, 0xA733, 0x11CE, 0xA5, 0x21, 5135c4bbdfSmrg 0x00, 0x20, 0xAF, 0x0B, 0xE5, 0x60); 5235c4bbdfSmrg DEFINE_GUID(IID_IDirectDrawSurface2, 0x57805885, 0x6eec, 0x11cf, 0x94, 0x41, 5335c4bbdfSmrg 0xa8, 0x23, 0x03, 0xc1, 0x0e, 0x27); 5435c4bbdfSmrg DEFINE_GUID(IID_IDirectDrawSurface3, 0xDA044E00, 0x69B2, 0x11D0, 0xA1, 0xD5, 5535c4bbdfSmrg 0x00, 0xAA, 0x00, 0xB8, 0xDF, 0xBB); 5635c4bbdfSmrg DEFINE_GUID(IID_IDirectDrawSurface4, 0x0B2B8630, 0xAD35, 0x11D0, 0x8E, 0xA6, 5735c4bbdfSmrg 0x00, 0x60, 0x97, 0x97, 0xEA, 0x5B); 5835c4bbdfSmrg DEFINE_GUID(IID_IDirectDrawSurface7, 0x06675a80, 0x3b9b, 0x11d2, 0xb9, 0x2f, 5935c4bbdfSmrg 0x00, 0x60, 0x97, 0x97, 0xea, 0x5b); 6035c4bbdfSmrg DEFINE_GUID(IID_IDirectDrawPalette, 0x6C14DB84, 0xA733, 0x11CE, 0xA5, 0x21, 6135c4bbdfSmrg 0x00, 0x20, 0xAF, 0x0B, 0xE5, 0x60); 6235c4bbdfSmrg DEFINE_GUID(IID_IDirectDrawClipper, 0x6C14DB85, 0xA733, 0x11CE, 0xA5, 0x21, 6335c4bbdfSmrg 0x00, 0x20, 0xAF, 0x0B, 0xE5, 0x60); 6435c4bbdfSmrg DEFINE_GUID(IID_IDirectDrawColorControl, 0x4B9F0EE0, 0x0D7E, 0x11D0, 0x9B, 6535c4bbdfSmrg 0x06, 0x00, 0xA0, 0xC9, 0x03, 0xA3, 0xB8); 6635c4bbdfSmrg DEFINE_GUID(IID_IDirectDrawGammaControl, 0x69C11C3E, 0xB46B, 0x11D1, 0xAD, 6735c4bbdfSmrg 0x7A, 0x00, 0xC0, 0x4F, 0xC2, 0x9B, 0x4E); 6835c4bbdfSmrg 6935c4bbdfSmrg typedef struct IDirectDraw *LPDIRECTDRAW; 7035c4bbdfSmrg typedef struct IDirectDraw2 *LPDIRECTDRAW2; 7135c4bbdfSmrg typedef struct IDirectDraw4 *LPDIRECTDRAW4; 7235c4bbdfSmrg typedef struct IDirectDraw7 *LPDIRECTDRAW7; 7335c4bbdfSmrg typedef struct IDirectDrawClipper *LPDIRECTDRAWCLIPPER; 7435c4bbdfSmrg typedef struct IDirectDrawPalette *LPDIRECTDRAWPALETTE; 7535c4bbdfSmrg typedef struct IDirectDrawSurface *LPDIRECTDRAWSURFACE; 7635c4bbdfSmrg typedef struct IDirectDrawSurface2 *LPDIRECTDRAWSURFACE2; 7735c4bbdfSmrg typedef struct IDirectDrawSurface3 *LPDIRECTDRAWSURFACE3; 7835c4bbdfSmrg typedef struct IDirectDrawSurface4 *LPDIRECTDRAWSURFACE4; 7935c4bbdfSmrg typedef struct IDirectDrawSurface7 *LPDIRECTDRAWSURFACE7; 8035c4bbdfSmrg typedef struct IDirectDrawColorControl *LPDIRECTDRAWCOLORCONTROL; 8135c4bbdfSmrg typedef struct IDirectDrawGammaControl *LPDIRECTDRAWGAMMACONTROL; 8205b261ecSmrg 8305b261ecSmrg#define DDENUMRET_CANCEL 0 8405b261ecSmrg#define DDENUMRET_OK 1 8505b261ecSmrg 8605b261ecSmrg#define DD_OK 0 8705b261ecSmrg 8805b261ecSmrg#define _FACDD 0x876 8905b261ecSmrg#define MAKE_DDHRESULT( code ) MAKE_HRESULT( 1, _FACDD, code ) 9005b261ecSmrg 9105b261ecSmrg#define DDERR_ALREADYINITIALIZED MAKE_DDHRESULT( 5 ) 9205b261ecSmrg#define DDERR_CANNOTATTACHSURFACE MAKE_DDHRESULT( 10 ) 9305b261ecSmrg#define DDERR_CANNOTDETACHSURFACE MAKE_DDHRESULT( 20 ) 9405b261ecSmrg#define DDERR_CURRENTLYNOTAVAIL MAKE_DDHRESULT( 40 ) 9505b261ecSmrg#define DDERR_EXCEPTION MAKE_DDHRESULT( 55 ) 9605b261ecSmrg#define DDERR_GENERIC E_FAIL 9705b261ecSmrg#define DDERR_HEIGHTALIGN MAKE_DDHRESULT( 90 ) 9805b261ecSmrg#define DDERR_INCOMPATIBLEPRIMARY MAKE_DDHRESULT( 95 ) 9905b261ecSmrg#define DDERR_INVALIDCAPS MAKE_DDHRESULT( 100 ) 10005b261ecSmrg#define DDERR_INVALIDCLIPLIST MAKE_DDHRESULT( 110 ) 10105b261ecSmrg#define DDERR_INVALIDMODE MAKE_DDHRESULT( 120 ) 10205b261ecSmrg#define DDERR_INVALIDOBJECT MAKE_DDHRESULT( 130 ) 10305b261ecSmrg#define DDERR_INVALIDPARAMS E_INVALIDARG 10405b261ecSmrg#define DDERR_INVALIDPIXELFORMAT MAKE_DDHRESULT( 145 ) 10505b261ecSmrg#define DDERR_INVALIDRECT MAKE_DDHRESULT( 150 ) 10605b261ecSmrg#define DDERR_LOCKEDSURFACES MAKE_DDHRESULT( 160 ) 10705b261ecSmrg#define DDERR_NO3D MAKE_DDHRESULT( 170 ) 10805b261ecSmrg#define DDERR_NOALPHAHW MAKE_DDHRESULT( 180 ) 10905b261ecSmrg#define DDERR_NOSTEREOHARDWARE MAKE_DDHRESULT( 181 ) 11005b261ecSmrg#define DDERR_NOSURFACELEFT MAKE_DDHRESULT( 182 ) 11105b261ecSmrg#define DDERR_NOCLIPLIST MAKE_DDHRESULT( 205 ) 11205b261ecSmrg#define DDERR_NOCOLORCONVHW MAKE_DDHRESULT( 210 ) 11305b261ecSmrg#define DDERR_NOCOOPERATIVELEVELSET MAKE_DDHRESULT( 212 ) 11405b261ecSmrg#define DDERR_NOCOLORKEY MAKE_DDHRESULT( 215 ) 11505b261ecSmrg#define DDERR_NOCOLORKEYHW MAKE_DDHRESULT( 220 ) 11605b261ecSmrg#define DDERR_NODIRECTDRAWSUPPORT MAKE_DDHRESULT( 222 ) 11705b261ecSmrg#define DDERR_NOEXCLUSIVEMODE MAKE_DDHRESULT( 225 ) 11805b261ecSmrg#define DDERR_NOFLIPHW MAKE_DDHRESULT( 230 ) 11905b261ecSmrg#define DDERR_NOGDI MAKE_DDHRESULT( 240 ) 12005b261ecSmrg#define DDERR_NOMIRRORHW MAKE_DDHRESULT( 250 ) 12105b261ecSmrg#define DDERR_NOTFOUND MAKE_DDHRESULT( 255 ) 12205b261ecSmrg#define DDERR_NOOVERLAYHW MAKE_DDHRESULT( 260 ) 12305b261ecSmrg#define DDERR_OVERLAPPINGRECTS MAKE_DDHRESULT( 270 ) 12405b261ecSmrg#define DDERR_NORASTEROPHW MAKE_DDHRESULT( 280 ) 12505b261ecSmrg#define DDERR_NOROTATIONHW MAKE_DDHRESULT( 290 ) 12605b261ecSmrg#define DDERR_NOSTRETCHHW MAKE_DDHRESULT( 310 ) 12705b261ecSmrg#define DDERR_NOT4BITCOLOR MAKE_DDHRESULT( 316 ) 12805b261ecSmrg#define DDERR_NOT4BITCOLORINDEX MAKE_DDHRESULT( 317 ) 12905b261ecSmrg#define DDERR_NOT8BITCOLOR MAKE_DDHRESULT( 320 ) 13005b261ecSmrg#define DDERR_NOTEXTUREHW MAKE_DDHRESULT( 330 ) 13105b261ecSmrg#define DDERR_NOVSYNCHW MAKE_DDHRESULT( 335 ) 13205b261ecSmrg#define DDERR_NOZBUFFERHW MAKE_DDHRESULT( 340 ) 13305b261ecSmrg#define DDERR_NOZOVERLAYHW MAKE_DDHRESULT( 350 ) 13405b261ecSmrg#define DDERR_OUTOFCAPS MAKE_DDHRESULT( 360 ) 13505b261ecSmrg#define DDERR_OUTOFMEMORY E_OUTOFMEMORY 13605b261ecSmrg#define DDERR_OUTOFVIDEOMEMORY MAKE_DDHRESULT( 380 ) 13705b261ecSmrg#define DDERR_OVERLAYCANTCLIP MAKE_DDHRESULT( 382 ) 13805b261ecSmrg#define DDERR_OVERLAYCOLORKEYONLYONEACTIVE MAKE_DDHRESULT( 384 ) 13905b261ecSmrg#define DDERR_PALETTEBUSY MAKE_DDHRESULT( 387 ) 14005b261ecSmrg#define DDERR_COLORKEYNOTSET MAKE_DDHRESULT( 400 ) 14105b261ecSmrg#define DDERR_SURFACEALREADYATTACHED MAKE_DDHRESULT( 410 ) 14205b261ecSmrg#define DDERR_SURFACEALREADYDEPENDENT MAKE_DDHRESULT( 420 ) 14305b261ecSmrg#define DDERR_SURFACEBUSY MAKE_DDHRESULT( 430 ) 14405b261ecSmrg#define DDERR_CANTLOCKSURFACE MAKE_DDHRESULT( 435 ) 14505b261ecSmrg#define DDERR_SURFACEISOBSCURED MAKE_DDHRESULT( 440 ) 14605b261ecSmrg#define DDERR_SURFACELOST MAKE_DDHRESULT( 450 ) 14705b261ecSmrg#define DDERR_SURFACENOTATTACHED MAKE_DDHRESULT( 460 ) 14805b261ecSmrg#define DDERR_TOOBIGHEIGHT MAKE_DDHRESULT( 470 ) 14905b261ecSmrg#define DDERR_TOOBIGSIZE MAKE_DDHRESULT( 480 ) 15005b261ecSmrg#define DDERR_TOOBIGWIDTH MAKE_DDHRESULT( 490 ) 15105b261ecSmrg#define DDERR_UNSUPPORTED E_NOTIMPL 15205b261ecSmrg#define DDERR_UNSUPPORTEDFORMAT MAKE_DDHRESULT( 510 ) 15305b261ecSmrg#define DDERR_UNSUPPORTEDMASK MAKE_DDHRESULT( 520 ) 15405b261ecSmrg#define DDERR_INVALIDSTREAM MAKE_DDHRESULT( 521 ) 15505b261ecSmrg#define DDERR_VERTICALBLANKINPROGRESS MAKE_DDHRESULT( 537 ) 15605b261ecSmrg#define DDERR_WASSTILLDRAWING MAKE_DDHRESULT( 540 ) 15705b261ecSmrg#define DDERR_DDSCAPSCOMPLEXREQUIRED MAKE_DDHRESULT( 542 ) 15805b261ecSmrg#define DDERR_XALIGN MAKE_DDHRESULT( 560 ) 15905b261ecSmrg#define DDERR_INVALIDDIRECTDRAWGUID MAKE_DDHRESULT( 561 ) 16005b261ecSmrg#define DDERR_DIRECTDRAWALREADYCREATED MAKE_DDHRESULT( 562 ) 16105b261ecSmrg#define DDERR_NODIRECTDRAWHW MAKE_DDHRESULT( 563 ) 16205b261ecSmrg#define DDERR_PRIMARYSURFACEALREADYEXISTS MAKE_DDHRESULT( 564 ) 16305b261ecSmrg#define DDERR_NOEMULATION MAKE_DDHRESULT( 565 ) 16405b261ecSmrg#define DDERR_REGIONTOOSMALL MAKE_DDHRESULT( 566 ) 16505b261ecSmrg#define DDERR_CLIPPERISUSINGHWND MAKE_DDHRESULT( 567 ) 16605b261ecSmrg#define DDERR_NOCLIPPERATTACHED MAKE_DDHRESULT( 568 ) 16705b261ecSmrg#define DDERR_NOHWND MAKE_DDHRESULT( 569 ) 16805b261ecSmrg#define DDERR_HWNDSUBCLASSED MAKE_DDHRESULT( 570 ) 16905b261ecSmrg#define DDERR_HWNDALREADYSET MAKE_DDHRESULT( 571 ) 17005b261ecSmrg#define DDERR_NOPALETTEATTACHED MAKE_DDHRESULT( 572 ) 17105b261ecSmrg#define DDERR_NOPALETTEHW MAKE_DDHRESULT( 573 ) 17205b261ecSmrg#define DDERR_BLTFASTCANTCLIP MAKE_DDHRESULT( 574 ) 17305b261ecSmrg#define DDERR_NOBLTHW MAKE_DDHRESULT( 575 ) 17405b261ecSmrg#define DDERR_NODDROPSHW MAKE_DDHRESULT( 576 ) 17505b261ecSmrg#define DDERR_OVERLAYNOTVISIBLE MAKE_DDHRESULT( 577 ) 17605b261ecSmrg#define DDERR_NOOVERLAYDEST MAKE_DDHRESULT( 578 ) 17705b261ecSmrg#define DDERR_INVALIDPOSITION MAKE_DDHRESULT( 579 ) 17805b261ecSmrg#define DDERR_NOTAOVERLAYSURFACE MAKE_DDHRESULT( 580 ) 17905b261ecSmrg#define DDERR_EXCLUSIVEMODEALREADYSET MAKE_DDHRESULT( 581 ) 18005b261ecSmrg#define DDERR_NOTFLIPPABLE MAKE_DDHRESULT( 582 ) 18105b261ecSmrg#define DDERR_CANTDUPLICATE MAKE_DDHRESULT( 583 ) 18205b261ecSmrg#define DDERR_NOTLOCKED MAKE_DDHRESULT( 584 ) 18305b261ecSmrg#define DDERR_CANTCREATEDC MAKE_DDHRESULT( 585 ) 18405b261ecSmrg#define DDERR_NODC MAKE_DDHRESULT( 586 ) 18505b261ecSmrg#define DDERR_WRONGMODE MAKE_DDHRESULT( 587 ) 18605b261ecSmrg#define DDERR_IMPLICITLYCREATED MAKE_DDHRESULT( 588 ) 18705b261ecSmrg#define DDERR_NOTPALETTIZED MAKE_DDHRESULT( 589 ) 18805b261ecSmrg#define DDERR_UNSUPPORTEDMODE MAKE_DDHRESULT( 590 ) 18905b261ecSmrg#define DDERR_NOMIPMAPHW MAKE_DDHRESULT( 591 ) 19005b261ecSmrg#define DDERR_INVALIDSURFACETYPE MAKE_DDHRESULT( 592 ) 19105b261ecSmrg#define DDERR_NOOPTIMIZEHW MAKE_DDHRESULT( 600 ) 19205b261ecSmrg#define DDERR_NOTLOADED MAKE_DDHRESULT( 601 ) 19305b261ecSmrg#define DDERR_NOFOCUSWINDOW MAKE_DDHRESULT( 602 ) 19405b261ecSmrg#define DDERR_NOTONMIPMAPSUBLEVEL MAKE_DDHRESULT( 603 ) 19505b261ecSmrg#define DDERR_DCALREADYCREATED MAKE_DDHRESULT( 620 ) 19605b261ecSmrg#define DDERR_NONONLOCALVIDMEM MAKE_DDHRESULT( 630 ) 19705b261ecSmrg#define DDERR_CANTPAGELOCK MAKE_DDHRESULT( 640 ) 19805b261ecSmrg#define DDERR_CANTPAGEUNLOCK MAKE_DDHRESULT( 660 ) 19905b261ecSmrg#define DDERR_NOTPAGELOCKED MAKE_DDHRESULT( 680 ) 20005b261ecSmrg#define DDERR_MOREDATA MAKE_DDHRESULT( 690 ) 20105b261ecSmrg#define DDERR_EXPIRED MAKE_DDHRESULT( 691 ) 20205b261ecSmrg#define DDERR_TESTFINISHED MAKE_DDHRESULT( 692 ) 20305b261ecSmrg#define DDERR_NEWMODE MAKE_DDHRESULT( 693 ) 20405b261ecSmrg#define DDERR_D3DNOTINITIALIZED MAKE_DDHRESULT( 694 ) 20505b261ecSmrg#define DDERR_VIDEONOTACTIVE MAKE_DDHRESULT( 695 ) 20605b261ecSmrg#define DDERR_NOMONITORINFORMATION MAKE_DDHRESULT( 696 ) 20705b261ecSmrg#define DDERR_NODRIVERSUPPORT MAKE_DDHRESULT( 697 ) 20805b261ecSmrg#define DDERR_DEVICEDOESNTOWNSURFACE MAKE_DDHRESULT( 699 ) 20905b261ecSmrg#define DDERR_NOTINITIALIZED CO_E_NOTINITIALIZED 21005b261ecSmrg 21105b261ecSmrg/* dwFlags for Blt* */ 21205b261ecSmrg#define DDBLT_ALPHADEST 0x00000001 21305b261ecSmrg#define DDBLT_ALPHADESTCONSTOVERRIDE 0x00000002 21405b261ecSmrg#define DDBLT_ALPHADESTNEG 0x00000004 21505b261ecSmrg#define DDBLT_ALPHADESTSURFACEOVERRIDE 0x00000008 21605b261ecSmrg#define DDBLT_ALPHAEDGEBLEND 0x00000010 21705b261ecSmrg#define DDBLT_ALPHASRC 0x00000020 21805b261ecSmrg#define DDBLT_ALPHASRCCONSTOVERRIDE 0x00000040 21905b261ecSmrg#define DDBLT_ALPHASRCNEG 0x00000080 22005b261ecSmrg#define DDBLT_ALPHASRCSURFACEOVERRIDE 0x00000100 22105b261ecSmrg#define DDBLT_ASYNC 0x00000200 22205b261ecSmrg#define DDBLT_COLORFILL 0x00000400 22305b261ecSmrg#define DDBLT_DDFX 0x00000800 22405b261ecSmrg#define DDBLT_DDROPS 0x00001000 22505b261ecSmrg#define DDBLT_KEYDEST 0x00002000 22605b261ecSmrg#define DDBLT_KEYDESTOVERRIDE 0x00004000 22705b261ecSmrg#define DDBLT_KEYSRC 0x00008000 22805b261ecSmrg#define DDBLT_KEYSRCOVERRIDE 0x00010000 22905b261ecSmrg#define DDBLT_ROP 0x00020000 23005b261ecSmrg#define DDBLT_ROTATIONANGLE 0x00040000 23105b261ecSmrg#define DDBLT_ZBUFFER 0x00080000 23205b261ecSmrg#define DDBLT_ZBUFFERDESTCONSTOVERRIDE 0x00100000 23305b261ecSmrg#define DDBLT_ZBUFFERDESTOVERRIDE 0x00200000 23405b261ecSmrg#define DDBLT_ZBUFFERSRCCONSTOVERRIDE 0x00400000 23505b261ecSmrg#define DDBLT_ZBUFFERSRCOVERRIDE 0x00800000 23605b261ecSmrg#define DDBLT_WAIT 0x01000000 23705b261ecSmrg#define DDBLT_DEPTHFILL 0x02000000 23805b261ecSmrg#define DDBLT_DONOTWAIT 0x08000000 23905b261ecSmrg 24005b261ecSmrg/* dwTrans for BltFast */ 24105b261ecSmrg#define DDBLTFAST_NOCOLORKEY 0x00000000 24205b261ecSmrg#define DDBLTFAST_SRCCOLORKEY 0x00000001 24305b261ecSmrg#define DDBLTFAST_DESTCOLORKEY 0x00000002 24405b261ecSmrg#define DDBLTFAST_WAIT 0x00000010 24505b261ecSmrg#define DDBLTFAST_DONOTWAIT 0x00000020 24605b261ecSmrg 24705b261ecSmrg/* dwFlags for Flip */ 24805b261ecSmrg#define DDFLIP_WAIT 0x00000001 24935c4bbdfSmrg#define DDFLIP_EVEN 0x00000002 /* only valid for overlay */ 25035c4bbdfSmrg#define DDFLIP_ODD 0x00000004 /* only valid for overlay */ 25105b261ecSmrg#define DDFLIP_NOVSYNC 0x00000008 25205b261ecSmrg#define DDFLIP_STEREO 0x00000010 25305b261ecSmrg#define DDFLIP_DONOTWAIT 0x00000020 25405b261ecSmrg 25505b261ecSmrg/* dwFlags for GetBltStatus */ 25605b261ecSmrg#define DDGBS_CANBLT 0x00000001 25705b261ecSmrg#define DDGBS_ISBLTDONE 0x00000002 25805b261ecSmrg 25905b261ecSmrg/* dwFlags for IDirectDrawSurface7::GetFlipStatus */ 26005b261ecSmrg#define DDGFS_CANFLIP 1L 26105b261ecSmrg#define DDGFS_ISFLIPDONE 2L 26205b261ecSmrg 26305b261ecSmrg/* dwFlags for IDirectDrawSurface7::SetPrivateData */ 26405b261ecSmrg#define DDSPD_IUNKNOWNPTR 1L 26505b261ecSmrg#define DDSPD_VOLATILE 2L 26605b261ecSmrg 26705b261ecSmrg/* DDSCAPS.dwCaps */ 26805b261ecSmrg/* reserved1, was 3d capable */ 26905b261ecSmrg#define DDSCAPS_RESERVED1 0x00000001 27005b261ecSmrg/* surface contains alpha information */ 27105b261ecSmrg#define DDSCAPS_ALPHA 0x00000002 27205b261ecSmrg/* this surface is a backbuffer */ 27305b261ecSmrg#define DDSCAPS_BACKBUFFER 0x00000004 27405b261ecSmrg/* complex surface structure */ 27505b261ecSmrg#define DDSCAPS_COMPLEX 0x00000008 27605b261ecSmrg/* part of surface flipping structure */ 27705b261ecSmrg#define DDSCAPS_FLIP 0x00000010 27805b261ecSmrg/* this surface is the frontbuffer surface */ 27905b261ecSmrg#define DDSCAPS_FRONTBUFFER 0x00000020 28005b261ecSmrg/* this is a plain offscreen surface */ 28105b261ecSmrg#define DDSCAPS_OFFSCREENPLAIN 0x00000040 28205b261ecSmrg/* overlay */ 28305b261ecSmrg#define DDSCAPS_OVERLAY 0x00000080 28405b261ecSmrg/* palette objects can be created and attached to us */ 28505b261ecSmrg#define DDSCAPS_PALETTE 0x00000100 28605b261ecSmrg/* primary surface (the one the user looks at currently)(right eye)*/ 28705b261ecSmrg#define DDSCAPS_PRIMARYSURFACE 0x00000200 28805b261ecSmrg/* primary surface for left eye */ 28905b261ecSmrg#define DDSCAPS_PRIMARYSURFACELEFT 0x00000400 29005b261ecSmrg/* surface exists in systemmemory */ 29105b261ecSmrg#define DDSCAPS_SYSTEMMEMORY 0x00000800 29205b261ecSmrg/* surface can be used as a texture */ 29305b261ecSmrg#define DDSCAPS_TEXTURE 0x00001000 29405b261ecSmrg/* surface may be destination for 3d rendering */ 29505b261ecSmrg#define DDSCAPS_3DDEVICE 0x00002000 29605b261ecSmrg/* surface exists in videomemory */ 29705b261ecSmrg#define DDSCAPS_VIDEOMEMORY 0x00004000 29805b261ecSmrg/* surface changes immediately visible */ 29905b261ecSmrg#define DDSCAPS_VISIBLE 0x00008000 30005b261ecSmrg/* write only surface */ 30105b261ecSmrg#define DDSCAPS_WRITEONLY 0x00010000 30205b261ecSmrg/* zbuffer surface */ 30305b261ecSmrg#define DDSCAPS_ZBUFFER 0x00020000 30405b261ecSmrg/* has its own DC */ 30505b261ecSmrg#define DDSCAPS_OWNDC 0x00040000 30605b261ecSmrg/* surface should be able to receive live video */ 30705b261ecSmrg#define DDSCAPS_LIVEVIDEO 0x00080000 30805b261ecSmrg/* should be able to have a hw codec decompress stuff into it */ 30905b261ecSmrg#define DDSCAPS_HWCODEC 0x00100000 31005b261ecSmrg/* mode X (320x200 or 320x240) surface */ 31105b261ecSmrg#define DDSCAPS_MODEX 0x00200000 31205b261ecSmrg/* one mipmap surface (1 level) */ 31305b261ecSmrg#define DDSCAPS_MIPMAP 0x00400000 31405b261ecSmrg#define DDSCAPS_RESERVED2 0x00800000 31505b261ecSmrg/* memory allocation delayed until Load() */ 31605b261ecSmrg#define DDSCAPS_ALLOCONLOAD 0x04000000 31705b261ecSmrg/* Indicates that the surface will receive data from a video port */ 31805b261ecSmrg#define DDSCAPS_VIDEOPORT 0x08000000 31905b261ecSmrg/* surface is in local videomemory */ 32005b261ecSmrg#define DDSCAPS_LOCALVIDMEM 0x10000000 32105b261ecSmrg/* surface is in nonlocal videomemory */ 32205b261ecSmrg#define DDSCAPS_NONLOCALVIDMEM 0x20000000 32305b261ecSmrg/* surface is a standard VGA mode surface (NOT ModeX) */ 32405b261ecSmrg#define DDSCAPS_STANDARDVGAMODE 0x40000000 32505b261ecSmrg/* optimized? surface */ 32605b261ecSmrg#define DDSCAPS_OPTIMIZED 0x80000000 32705b261ecSmrg 32835c4bbdfSmrg typedef struct _DDSCAPS { 32935c4bbdfSmrg DWORD dwCaps; /* capabilities of surface wanted */ 33035c4bbdfSmrg } DDSCAPS, *LPDDSCAPS; 33105b261ecSmrg 33205b261ecSmrg/* DDSCAPS2.dwCaps2 */ 33305b261ecSmrg/* indicates the surface will receive data from a video port using 33405b261ecSmrg deinterlacing hardware. */ 33505b261ecSmrg#define DDSCAPS2_HARDWAREDEINTERLACE 0x00000002 33605b261ecSmrg/* indicates the surface will be locked very frequently. */ 33705b261ecSmrg#define DDSCAPS2_HINTDYNAMIC 0x00000004 33805b261ecSmrg/* indicates surface can be re-ordered or retiled on load() */ 33905b261ecSmrg#define DDSCAPS2_HINTSTATIC 0x00000008 34005b261ecSmrg/* indicates surface to be managed by directdraw/direct3D */ 34105b261ecSmrg#define DDSCAPS2_TEXTUREMANAGE 0x00000010 34205b261ecSmrg/* reserved bits */ 34305b261ecSmrg#define DDSCAPS2_RESERVED1 0x00000020 34405b261ecSmrg#define DDSCAPS2_RESERVED2 0x00000040 34505b261ecSmrg/* indicates surface will never be locked again */ 34605b261ecSmrg#define DDSCAPS2_OPAQUE 0x00000080 347ed6184dfSmrg/* set at CreateSurface() time to indicate antialiasing will be used */ 34805b261ecSmrg#define DDSCAPS2_HINTANTIALIASING 0x00000100 34905b261ecSmrg/* set at CreateSurface() time to indicate cubic environment map */ 35005b261ecSmrg#define DDSCAPS2_CUBEMAP 0x00000200 35105b261ecSmrg/* face flags for cube maps */ 35205b261ecSmrg#define DDSCAPS2_CUBEMAP_POSITIVEX 0x00000400 35305b261ecSmrg#define DDSCAPS2_CUBEMAP_NEGATIVEX 0x00000800 35405b261ecSmrg#define DDSCAPS2_CUBEMAP_POSITIVEY 0x00001000 35505b261ecSmrg#define DDSCAPS2_CUBEMAP_NEGATIVEY 0x00002000 35605b261ecSmrg#define DDSCAPS2_CUBEMAP_POSITIVEZ 0x00004000 35705b261ecSmrg#define DDSCAPS2_CUBEMAP_NEGATIVEZ 0x00008000 35805b261ecSmrg/* specifies all faces of a cube for CreateSurface() */ 35905b261ecSmrg#define DDSCAPS2_CUBEMAP_ALLFACES ( DDSCAPS2_CUBEMAP_POSITIVEX |\ 36005b261ecSmrg DDSCAPS2_CUBEMAP_NEGATIVEX |\ 36105b261ecSmrg DDSCAPS2_CUBEMAP_POSITIVEY |\ 36205b261ecSmrg DDSCAPS2_CUBEMAP_NEGATIVEY |\ 36305b261ecSmrg DDSCAPS2_CUBEMAP_POSITIVEZ |\ 36405b261ecSmrg DDSCAPS2_CUBEMAP_NEGATIVEZ ) 36505b261ecSmrg/* set for mipmap sublevels on DirectX7 and later. ignored by CreateSurface() */ 36605b261ecSmrg#define DDSCAPS2_MIPMAPSUBLEVEL 0x00010000 36705b261ecSmrg/* indicates texture surface to be managed by Direct3D *only* */ 36805b261ecSmrg#define DDSCAPS2_D3DTEXTUREMANAGE 0x00020000 36905b261ecSmrg/* indicates managed surface that can safely be lost */ 37005b261ecSmrg#define DDSCAPS2_DONOTPERSIST 0x00040000 37105b261ecSmrg/* indicates surface is part of a stereo flipping chain */ 37205b261ecSmrg#define DDSCAPS2_STEREOSURFACELEFT 0x00080000 37305b261ecSmrg 37435c4bbdfSmrg typedef struct _DDSCAPS2 { 37535c4bbdfSmrg DWORD dwCaps; /* capabilities of surface wanted */ 37635c4bbdfSmrg DWORD dwCaps2; /* additional capabilities */ 37735c4bbdfSmrg DWORD dwCaps3; /* reserved capabilities */ 37835c4bbdfSmrg DWORD dwCaps4; /* more reserved capabilities */ 37935c4bbdfSmrg } DDSCAPS2, *LPDDSCAPS2; 38035c4bbdfSmrg 38135c4bbdfSmrg#define DD_ROP_SPACE (256/32) /* space required to store ROP array */ 38235c4bbdfSmrg 38335c4bbdfSmrg typedef struct _DDCAPS_DX7 { /* DirectX 7 version of caps struct */ 38435c4bbdfSmrg DWORD dwSize; /* size of the DDDRIVERCAPS structure */ 38535c4bbdfSmrg DWORD dwCaps; /* driver specific capabilities */ 386ed6184dfSmrg DWORD dwCaps2; /* more driver specific capabilities */ 38735c4bbdfSmrg DWORD dwCKeyCaps; /* color key capabilities of the surface */ 388ed6184dfSmrg DWORD dwFXCaps; /* driver specific stretching and effects capabilities */ 38935c4bbdfSmrg DWORD dwFXAlphaCaps; /* alpha driver specific capabilities */ 39035c4bbdfSmrg DWORD dwPalCaps; /* palette capabilities */ 39135c4bbdfSmrg DWORD dwSVCaps; /* stereo vision capabilities */ 39235c4bbdfSmrg DWORD dwAlphaBltConstBitDepths; /* DDBD_2,4,8 */ 39335c4bbdfSmrg DWORD dwAlphaBltPixelBitDepths; /* DDBD_1,2,4,8 */ 39435c4bbdfSmrg DWORD dwAlphaBltSurfaceBitDepths; /* DDBD_1,2,4,8 */ 39535c4bbdfSmrg DWORD dwAlphaOverlayConstBitDepths; /* DDBD_2,4,8 */ 39635c4bbdfSmrg DWORD dwAlphaOverlayPixelBitDepths; /* DDBD_1,2,4,8 */ 39735c4bbdfSmrg DWORD dwAlphaOverlaySurfaceBitDepths; /* DDBD_1,2,4,8 */ 39835c4bbdfSmrg DWORD dwZBufferBitDepths; /* DDBD_8,16,24,32 */ 39935c4bbdfSmrg DWORD dwVidMemTotal; /* total amount of video memory */ 40035c4bbdfSmrg DWORD dwVidMemFree; /* amount of free video memory */ 40135c4bbdfSmrg DWORD dwMaxVisibleOverlays; /* maximum number of visible overlays */ 40235c4bbdfSmrg DWORD dwCurrVisibleOverlays; /* current number of visible overlays */ 40335c4bbdfSmrg DWORD dwNumFourCCCodes; /* number of four cc codes */ 40435c4bbdfSmrg DWORD dwAlignBoundarySrc; /* source rectangle alignment */ 40535c4bbdfSmrg DWORD dwAlignSizeSrc; /* source rectangle byte size */ 40635c4bbdfSmrg DWORD dwAlignBoundaryDest; /* dest rectangle alignment */ 40735c4bbdfSmrg DWORD dwAlignSizeDest; /* dest rectangle byte size */ 40835c4bbdfSmrg DWORD dwAlignStrideAlign; /* stride alignment */ 40935c4bbdfSmrg DWORD dwRops[DD_ROP_SPACE]; /* ROPS supported */ 410ed6184dfSmrg DDSCAPS ddsOldCaps; /* old DDSCAPS - superseded for DirectX6+ */ 41135c4bbdfSmrg DWORD dwMinOverlayStretch; /* minimum overlay stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */ 41235c4bbdfSmrg DWORD dwMaxOverlayStretch; /* maximum overlay stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */ 41335c4bbdfSmrg DWORD dwMinLiveVideoStretch; /* minimum live video stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */ 41435c4bbdfSmrg DWORD dwMaxLiveVideoStretch; /* maximum live video stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */ 41535c4bbdfSmrg DWORD dwMinHwCodecStretch; /* minimum hardware codec stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */ 41635c4bbdfSmrg DWORD dwMaxHwCodecStretch; /* maximum hardware codec stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */ 41735c4bbdfSmrg DWORD dwReserved1; 41835c4bbdfSmrg DWORD dwReserved2; 41935c4bbdfSmrg DWORD dwReserved3; 42035c4bbdfSmrg DWORD dwSVBCaps; /* driver specific capabilities for System->Vmem blts */ 42135c4bbdfSmrg DWORD dwSVBCKeyCaps; /* driver color key capabilities for System->Vmem blts */ 42235c4bbdfSmrg DWORD dwSVBFXCaps; /* driver FX capabilities for System->Vmem blts */ 42335c4bbdfSmrg DWORD dwSVBRops[DD_ROP_SPACE]; /* ROPS supported for System->Vmem blts */ 42435c4bbdfSmrg DWORD dwVSBCaps; /* driver specific capabilities for Vmem->System blts */ 42535c4bbdfSmrg DWORD dwVSBCKeyCaps; /* driver color key capabilities for Vmem->System blts */ 42635c4bbdfSmrg DWORD dwVSBFXCaps; /* driver FX capabilities for Vmem->System blts */ 42735c4bbdfSmrg DWORD dwVSBRops[DD_ROP_SPACE]; /* ROPS supported for Vmem->System blts */ 42835c4bbdfSmrg DWORD dwSSBCaps; /* driver specific capabilities for System->System blts */ 42935c4bbdfSmrg DWORD dwSSBCKeyCaps; /* driver color key capabilities for System->System blts */ 43035c4bbdfSmrg DWORD dwSSBFXCaps; /* driver FX capabilities for System->System blts */ 43135c4bbdfSmrg DWORD dwSSBRops[DD_ROP_SPACE]; /* ROPS supported for System->System blts */ 43235c4bbdfSmrg DWORD dwMaxVideoPorts; /* maximum number of usable video ports */ 43335c4bbdfSmrg DWORD dwCurrVideoPorts; /* current number of video ports used */ 43435c4bbdfSmrg DWORD dwSVBCaps2; /* more driver specific capabilities for System->Vmem blts */ 43535c4bbdfSmrg DWORD dwNLVBCaps; /* driver specific capabilities for non-local->local vidmem blts */ 43635c4bbdfSmrg DWORD dwNLVBCaps2; /* more driver specific capabilities non-local->local vidmem blts */ 43735c4bbdfSmrg DWORD dwNLVBCKeyCaps; /* driver color key capabilities for non-local->local vidmem blts */ 43835c4bbdfSmrg DWORD dwNLVBFXCaps; /* driver FX capabilities for non-local->local blts */ 43935c4bbdfSmrg DWORD dwNLVBRops[DD_ROP_SPACE]; /* ROPS supported for non-local->local blts */ 44035c4bbdfSmrg DDSCAPS2 ddsCaps; /* surface capabilities */ 44135c4bbdfSmrg } DDCAPS_DX7, *LPDDCAPS_DX7; 44235c4bbdfSmrg 44335c4bbdfSmrg typedef struct _DDCAPS_DX6 { /* DirectX 6 version of caps struct */ 44435c4bbdfSmrg DWORD dwSize; /* size of the DDDRIVERCAPS structure */ 44535c4bbdfSmrg DWORD dwCaps; /* driver specific capabilities */ 446ed6184dfSmrg DWORD dwCaps2; /* more driver specific capabilities */ 44735c4bbdfSmrg DWORD dwCKeyCaps; /* color key capabilities of the surface */ 448ed6184dfSmrg DWORD dwFXCaps; /* driver specific stretching and effects capabilities */ 44935c4bbdfSmrg DWORD dwFXAlphaCaps; /* alpha driver specific capabilities */ 45035c4bbdfSmrg DWORD dwPalCaps; /* palette capabilities */ 45135c4bbdfSmrg DWORD dwSVCaps; /* stereo vision capabilities */ 45235c4bbdfSmrg DWORD dwAlphaBltConstBitDepths; /* DDBD_2,4,8 */ 45335c4bbdfSmrg DWORD dwAlphaBltPixelBitDepths; /* DDBD_1,2,4,8 */ 45435c4bbdfSmrg DWORD dwAlphaBltSurfaceBitDepths; /* DDBD_1,2,4,8 */ 45535c4bbdfSmrg DWORD dwAlphaOverlayConstBitDepths; /* DDBD_2,4,8 */ 45635c4bbdfSmrg DWORD dwAlphaOverlayPixelBitDepths; /* DDBD_1,2,4,8 */ 45735c4bbdfSmrg DWORD dwAlphaOverlaySurfaceBitDepths; /* DDBD_1,2,4,8 */ 45835c4bbdfSmrg DWORD dwZBufferBitDepths; /* DDBD_8,16,24,32 */ 45935c4bbdfSmrg DWORD dwVidMemTotal; /* total amount of video memory */ 46035c4bbdfSmrg DWORD dwVidMemFree; /* amount of free video memory */ 46135c4bbdfSmrg DWORD dwMaxVisibleOverlays; /* maximum number of visible overlays */ 46235c4bbdfSmrg DWORD dwCurrVisibleOverlays; /* current number of visible overlays */ 46335c4bbdfSmrg DWORD dwNumFourCCCodes; /* number of four cc codes */ 46435c4bbdfSmrg DWORD dwAlignBoundarySrc; /* source rectangle alignment */ 46535c4bbdfSmrg DWORD dwAlignSizeSrc; /* source rectangle byte size */ 46635c4bbdfSmrg DWORD dwAlignBoundaryDest; /* dest rectangle alignment */ 46735c4bbdfSmrg DWORD dwAlignSizeDest; /* dest rectangle byte size */ 46835c4bbdfSmrg DWORD dwAlignStrideAlign; /* stride alignment */ 46935c4bbdfSmrg DWORD dwRops[DD_ROP_SPACE]; /* ROPS supported */ 470ed6184dfSmrg DDSCAPS ddsOldCaps; /* old DDSCAPS - superseded for DirectX6+ */ 47135c4bbdfSmrg DWORD dwMinOverlayStretch; /* minimum overlay stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */ 47235c4bbdfSmrg DWORD dwMaxOverlayStretch; /* maximum overlay stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */ 47335c4bbdfSmrg DWORD dwMinLiveVideoStretch; /* minimum live video stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */ 47435c4bbdfSmrg DWORD dwMaxLiveVideoStretch; /* maximum live video stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */ 47535c4bbdfSmrg DWORD dwMinHwCodecStretch; /* minimum hardware codec stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */ 47635c4bbdfSmrg DWORD dwMaxHwCodecStretch; /* maximum hardware codec stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */ 47735c4bbdfSmrg DWORD dwReserved1; 47835c4bbdfSmrg DWORD dwReserved2; 47935c4bbdfSmrg DWORD dwReserved3; 48035c4bbdfSmrg DWORD dwSVBCaps; /* driver specific capabilities for System->Vmem blts */ 48135c4bbdfSmrg DWORD dwSVBCKeyCaps; /* driver color key capabilities for System->Vmem blts */ 48235c4bbdfSmrg DWORD dwSVBFXCaps; /* driver FX capabilities for System->Vmem blts */ 48335c4bbdfSmrg DWORD dwSVBRops[DD_ROP_SPACE]; /* ROPS supported for System->Vmem blts */ 48435c4bbdfSmrg DWORD dwVSBCaps; /* driver specific capabilities for Vmem->System blts */ 48535c4bbdfSmrg DWORD dwVSBCKeyCaps; /* driver color key capabilities for Vmem->System blts */ 48635c4bbdfSmrg DWORD dwVSBFXCaps; /* driver FX capabilities for Vmem->System blts */ 48735c4bbdfSmrg DWORD dwVSBRops[DD_ROP_SPACE]; /* ROPS supported for Vmem->System blts */ 48835c4bbdfSmrg DWORD dwSSBCaps; /* driver specific capabilities for System->System blts */ 48935c4bbdfSmrg DWORD dwSSBCKeyCaps; /* driver color key capabilities for System->System blts */ 49035c4bbdfSmrg DWORD dwSSBFXCaps; /* driver FX capabilities for System->System blts */ 49135c4bbdfSmrg DWORD dwSSBRops[DD_ROP_SPACE]; /* ROPS supported for System->System blts */ 49235c4bbdfSmrg DWORD dwMaxVideoPorts; /* maximum number of usable video ports */ 49335c4bbdfSmrg DWORD dwCurrVideoPorts; /* current number of video ports used */ 49435c4bbdfSmrg DWORD dwSVBCaps2; /* more driver specific capabilities for System->Vmem blts */ 49535c4bbdfSmrg DWORD dwNLVBCaps; /* driver specific capabilities for non-local->local vidmem blts */ 49635c4bbdfSmrg DWORD dwNLVBCaps2; /* more driver specific capabilities non-local->local vidmem blts */ 49735c4bbdfSmrg DWORD dwNLVBCKeyCaps; /* driver color key capabilities for non-local->local vidmem blts */ 49835c4bbdfSmrg DWORD dwNLVBFXCaps; /* driver FX capabilities for non-local->local blts */ 49935c4bbdfSmrg DWORD dwNLVBRops[DD_ROP_SPACE]; /* ROPS supported for non-local->local blts */ 50035c4bbdfSmrg /* and one new member for DirectX 6 */ 50135c4bbdfSmrg DDSCAPS2 ddsCaps; /* surface capabilities */ 50235c4bbdfSmrg } DDCAPS_DX6, *LPDDCAPS_DX6; 50335c4bbdfSmrg 50435c4bbdfSmrg typedef struct _DDCAPS_DX5 { /* DirectX5 version of caps struct */ 50535c4bbdfSmrg DWORD dwSize; /* size of the DDDRIVERCAPS structure */ 50635c4bbdfSmrg DWORD dwCaps; /* driver specific capabilities */ 507ed6184dfSmrg DWORD dwCaps2; /* more driver specific capabilities */ 50835c4bbdfSmrg DWORD dwCKeyCaps; /* color key capabilities of the surface */ 509ed6184dfSmrg DWORD dwFXCaps; /* driver specific stretching and effects capabilities */ 51035c4bbdfSmrg DWORD dwFXAlphaCaps; /* alpha driver specific capabilities */ 51135c4bbdfSmrg DWORD dwPalCaps; /* palette capabilities */ 51235c4bbdfSmrg DWORD dwSVCaps; /* stereo vision capabilities */ 51335c4bbdfSmrg DWORD dwAlphaBltConstBitDepths; /* DDBD_2,4,8 */ 51435c4bbdfSmrg DWORD dwAlphaBltPixelBitDepths; /* DDBD_1,2,4,8 */ 51535c4bbdfSmrg DWORD dwAlphaBltSurfaceBitDepths; /* DDBD_1,2,4,8 */ 51635c4bbdfSmrg DWORD dwAlphaOverlayConstBitDepths; /* DDBD_2,4,8 */ 51735c4bbdfSmrg DWORD dwAlphaOverlayPixelBitDepths; /* DDBD_1,2,4,8 */ 51835c4bbdfSmrg DWORD dwAlphaOverlaySurfaceBitDepths; /* DDBD_1,2,4,8 */ 51935c4bbdfSmrg DWORD dwZBufferBitDepths; /* DDBD_8,16,24,32 */ 52035c4bbdfSmrg DWORD dwVidMemTotal; /* total amount of video memory */ 52135c4bbdfSmrg DWORD dwVidMemFree; /* amount of free video memory */ 52235c4bbdfSmrg DWORD dwMaxVisibleOverlays; /* maximum number of visible overlays */ 52335c4bbdfSmrg DWORD dwCurrVisibleOverlays; /* current number of visible overlays */ 52435c4bbdfSmrg DWORD dwNumFourCCCodes; /* number of four cc codes */ 52535c4bbdfSmrg DWORD dwAlignBoundarySrc; /* source rectangle alignment */ 52635c4bbdfSmrg DWORD dwAlignSizeSrc; /* source rectangle byte size */ 52735c4bbdfSmrg DWORD dwAlignBoundaryDest; /* dest rectangle alignment */ 52835c4bbdfSmrg DWORD dwAlignSizeDest; /* dest rectangle byte size */ 52935c4bbdfSmrg DWORD dwAlignStrideAlign; /* stride alignment */ 53035c4bbdfSmrg DWORD dwRops[DD_ROP_SPACE]; /* ROPS supported */ 53135c4bbdfSmrg DDSCAPS ddsCaps; /* DDSCAPS structure has all the general capabilities */ 53235c4bbdfSmrg DWORD dwMinOverlayStretch; /* minimum overlay stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */ 53335c4bbdfSmrg DWORD dwMaxOverlayStretch; /* maximum overlay stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */ 53435c4bbdfSmrg DWORD dwMinLiveVideoStretch; /* minimum live video stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */ 53535c4bbdfSmrg DWORD dwMaxLiveVideoStretch; /* maximum live video stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */ 53635c4bbdfSmrg DWORD dwMinHwCodecStretch; /* minimum hardware codec stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */ 53735c4bbdfSmrg DWORD dwMaxHwCodecStretch; /* maximum hardware codec stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */ 53835c4bbdfSmrg DWORD dwReserved1; 53935c4bbdfSmrg DWORD dwReserved2; 54035c4bbdfSmrg DWORD dwReserved3; 54135c4bbdfSmrg DWORD dwSVBCaps; /* driver specific capabilities for System->Vmem blts */ 54235c4bbdfSmrg DWORD dwSVBCKeyCaps; /* driver color key capabilities for System->Vmem blts */ 54335c4bbdfSmrg DWORD dwSVBFXCaps; /* driver FX capabilities for System->Vmem blts */ 54435c4bbdfSmrg DWORD dwSVBRops[DD_ROP_SPACE]; /* ROPS supported for System->Vmem blts */ 54535c4bbdfSmrg DWORD dwVSBCaps; /* driver specific capabilities for Vmem->System blts */ 54635c4bbdfSmrg DWORD dwVSBCKeyCaps; /* driver color key capabilities for Vmem->System blts */ 54735c4bbdfSmrg DWORD dwVSBFXCaps; /* driver FX capabilities for Vmem->System blts */ 54835c4bbdfSmrg DWORD dwVSBRops[DD_ROP_SPACE]; /* ROPS supported for Vmem->System blts */ 54935c4bbdfSmrg DWORD dwSSBCaps; /* driver specific capabilities for System->System blts */ 55035c4bbdfSmrg DWORD dwSSBCKeyCaps; /* driver color key capabilities for System->System blts */ 55135c4bbdfSmrg DWORD dwSSBFXCaps; /* driver FX capabilities for System->System blts */ 55235c4bbdfSmrg DWORD dwSSBRops[DD_ROP_SPACE]; /* ROPS supported for System->System blts */ 55335c4bbdfSmrg /* the following are the new DirectX 5 members */ 55435c4bbdfSmrg DWORD dwMaxVideoPorts; /* maximum number of usable video ports */ 55535c4bbdfSmrg DWORD dwCurrVideoPorts; /* current number of video ports used */ 55635c4bbdfSmrg DWORD dwSVBCaps2; /* more driver specific capabilities for System->Vmem blts */ 55735c4bbdfSmrg DWORD dwNLVBCaps; /* driver specific capabilities for non-local->local vidmem blts */ 55835c4bbdfSmrg DWORD dwNLVBCaps2; /* more driver specific capabilities non-local->local vidmem blts */ 55935c4bbdfSmrg DWORD dwNLVBCKeyCaps; /* driver color key capabilities for non-local->local vidmem blts */ 56035c4bbdfSmrg DWORD dwNLVBFXCaps; /* driver FX capabilities for non-local->local blts */ 56135c4bbdfSmrg DWORD dwNLVBRops[DD_ROP_SPACE]; /* ROPS supported for non-local->local blts */ 56235c4bbdfSmrg } DDCAPS_DX5, *LPDDCAPS_DX5; 56335c4bbdfSmrg 56435c4bbdfSmrg typedef struct _DDCAPS_DX3 { /* DirectX3 version of caps struct */ 56535c4bbdfSmrg DWORD dwSize; /* size of the DDDRIVERCAPS structure */ 56635c4bbdfSmrg DWORD dwCaps; /* driver specific capabilities */ 567ed6184dfSmrg DWORD dwCaps2; /* more driver specific capabilities */ 56835c4bbdfSmrg DWORD dwCKeyCaps; /* color key capabilities of the surface */ 569ed6184dfSmrg DWORD dwFXCaps; /* driver specific stretching and effects capabilities */ 57035c4bbdfSmrg DWORD dwFXAlphaCaps; /* alpha driver specific capabilities */ 57135c4bbdfSmrg DWORD dwPalCaps; /* palette capabilities */ 57235c4bbdfSmrg DWORD dwSVCaps; /* stereo vision capabilities */ 57335c4bbdfSmrg DWORD dwAlphaBltConstBitDepths; /* DDBD_2,4,8 */ 57435c4bbdfSmrg DWORD dwAlphaBltPixelBitDepths; /* DDBD_1,2,4,8 */ 57535c4bbdfSmrg DWORD dwAlphaBltSurfaceBitDepths; /* DDBD_1,2,4,8 */ 57635c4bbdfSmrg DWORD dwAlphaOverlayConstBitDepths; /* DDBD_2,4,8 */ 57735c4bbdfSmrg DWORD dwAlphaOverlayPixelBitDepths; /* DDBD_1,2,4,8 */ 57835c4bbdfSmrg DWORD dwAlphaOverlaySurfaceBitDepths; /* DDBD_1,2,4,8 */ 57935c4bbdfSmrg DWORD dwZBufferBitDepths; /* DDBD_8,16,24,32 */ 58035c4bbdfSmrg DWORD dwVidMemTotal; /* total amount of video memory */ 58135c4bbdfSmrg DWORD dwVidMemFree; /* amount of free video memory */ 58235c4bbdfSmrg DWORD dwMaxVisibleOverlays; /* maximum number of visible overlays */ 58335c4bbdfSmrg DWORD dwCurrVisibleOverlays; /* current number of visible overlays */ 58435c4bbdfSmrg DWORD dwNumFourCCCodes; /* number of four cc codes */ 58535c4bbdfSmrg DWORD dwAlignBoundarySrc; /* source rectangle alignment */ 58635c4bbdfSmrg DWORD dwAlignSizeSrc; /* source rectangle byte size */ 58735c4bbdfSmrg DWORD dwAlignBoundaryDest; /* dest rectangle alignment */ 58835c4bbdfSmrg DWORD dwAlignSizeDest; /* dest rectangle byte size */ 58935c4bbdfSmrg DWORD dwAlignStrideAlign; /* stride alignment */ 59035c4bbdfSmrg DWORD dwRops[DD_ROP_SPACE]; /* ROPS supported */ 59135c4bbdfSmrg DDSCAPS ddsCaps; /* DDSCAPS structure has all the general capabilities */ 59235c4bbdfSmrg DWORD dwMinOverlayStretch; /* minimum overlay stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */ 59335c4bbdfSmrg DWORD dwMaxOverlayStretch; /* maximum overlay stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */ 59435c4bbdfSmrg DWORD dwMinLiveVideoStretch; /* minimum live video stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */ 59535c4bbdfSmrg DWORD dwMaxLiveVideoStretch; /* maximum live video stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */ 59635c4bbdfSmrg DWORD dwMinHwCodecStretch; /* minimum hardware codec stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */ 59735c4bbdfSmrg DWORD dwMaxHwCodecStretch; /* maximum hardware codec stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */ 59835c4bbdfSmrg DWORD dwReserved1; 59935c4bbdfSmrg DWORD dwReserved2; 60035c4bbdfSmrg DWORD dwReserved3; 60135c4bbdfSmrg DWORD dwSVBCaps; /* driver specific capabilities for System->Vmem blts */ 60235c4bbdfSmrg DWORD dwSVBCKeyCaps; /* driver color key capabilities for System->Vmem blts */ 60335c4bbdfSmrg DWORD dwSVBFXCaps; /* driver FX capabilities for System->Vmem blts */ 60435c4bbdfSmrg DWORD dwSVBRops[DD_ROP_SPACE]; /* ROPS supported for System->Vmem blts */ 60535c4bbdfSmrg DWORD dwVSBCaps; /* driver specific capabilities for Vmem->System blts */ 60635c4bbdfSmrg DWORD dwVSBCKeyCaps; /* driver color key capabilities for Vmem->System blts */ 60735c4bbdfSmrg DWORD dwVSBFXCaps; /* driver FX capabilities for Vmem->System blts */ 60835c4bbdfSmrg DWORD dwVSBRops[DD_ROP_SPACE]; /* ROPS supported for Vmem->System blts */ 60935c4bbdfSmrg DWORD dwSSBCaps; /* driver specific capabilities for System->System blts */ 61035c4bbdfSmrg DWORD dwSSBCKeyCaps; /* driver color key capabilities for System->System blts */ 61135c4bbdfSmrg DWORD dwSSBFXCaps; /* driver FX capabilities for System->System blts */ 61235c4bbdfSmrg DWORD dwSSBRops[DD_ROP_SPACE]; /* ROPS supported for System->System blts */ 61335c4bbdfSmrg DWORD dwReserved4; 61435c4bbdfSmrg DWORD dwReserved5; 61535c4bbdfSmrg DWORD dwReserved6; 61635c4bbdfSmrg } DDCAPS_DX3, *LPDDCAPS_DX3; 61705b261ecSmrg 61805b261ecSmrg/* set caps struct according to DIRECTDRAW_VERSION */ 61905b261ecSmrg 62005b261ecSmrg#if DIRECTDRAW_VERSION <= 0x300 62135c4bbdfSmrg typedef DDCAPS_DX3 DDCAPS; 62205b261ecSmrg#elif DIRECTDRAW_VERSION <= 0x500 62335c4bbdfSmrg typedef DDCAPS_DX5 DDCAPS; 62405b261ecSmrg#elif DIRECTDRAW_VERSION <= 0x600 62535c4bbdfSmrg typedef DDCAPS_DX6 DDCAPS; 62605b261ecSmrg#else 62735c4bbdfSmrg typedef DDCAPS_DX7 DDCAPS; 62805b261ecSmrg#endif 62905b261ecSmrg 63035c4bbdfSmrg typedef DDCAPS *LPDDCAPS; 63105b261ecSmrg 63205b261ecSmrg/* DDCAPS.dwCaps */ 63305b261ecSmrg#define DDCAPS_3D 0x00000001 63405b261ecSmrg#define DDCAPS_ALIGNBOUNDARYDEST 0x00000002 63505b261ecSmrg#define DDCAPS_ALIGNSIZEDEST 0x00000004 63605b261ecSmrg#define DDCAPS_ALIGNBOUNDARYSRC 0x00000008 63705b261ecSmrg#define DDCAPS_ALIGNSIZESRC 0x00000010 63805b261ecSmrg#define DDCAPS_ALIGNSTRIDE 0x00000020 63905b261ecSmrg#define DDCAPS_BLT 0x00000040 64005b261ecSmrg#define DDCAPS_BLTQUEUE 0x00000080 64105b261ecSmrg#define DDCAPS_BLTFOURCC 0x00000100 64205b261ecSmrg#define DDCAPS_BLTSTRETCH 0x00000200 64305b261ecSmrg#define DDCAPS_GDI 0x00000400 64405b261ecSmrg#define DDCAPS_OVERLAY 0x00000800 64505b261ecSmrg#define DDCAPS_OVERLAYCANTCLIP 0x00001000 64605b261ecSmrg#define DDCAPS_OVERLAYFOURCC 0x00002000 64705b261ecSmrg#define DDCAPS_OVERLAYSTRETCH 0x00004000 64805b261ecSmrg#define DDCAPS_PALETTE 0x00008000 64905b261ecSmrg#define DDCAPS_PALETTEVSYNC 0x00010000 65005b261ecSmrg#define DDCAPS_READSCANLINE 0x00020000 65105b261ecSmrg#define DDCAPS_STEREOVIEW 0x00040000 65205b261ecSmrg#define DDCAPS_VBI 0x00080000 65305b261ecSmrg#define DDCAPS_ZBLTS 0x00100000 65405b261ecSmrg#define DDCAPS_ZOVERLAYS 0x00200000 65505b261ecSmrg#define DDCAPS_COLORKEY 0x00400000 65605b261ecSmrg#define DDCAPS_ALPHA 0x00800000 65705b261ecSmrg#define DDCAPS_COLORKEYHWASSIST 0x01000000 65805b261ecSmrg#define DDCAPS_NOHARDWARE 0x02000000 65905b261ecSmrg#define DDCAPS_BLTCOLORFILL 0x04000000 66005b261ecSmrg#define DDCAPS_BANKSWITCHED 0x08000000 66105b261ecSmrg#define DDCAPS_BLTDEPTHFILL 0x10000000 66205b261ecSmrg#define DDCAPS_CANCLIP 0x20000000 66305b261ecSmrg#define DDCAPS_CANCLIPSTRETCHED 0x40000000 66405b261ecSmrg#define DDCAPS_CANBLTSYSMEM 0x80000000 66505b261ecSmrg 66605b261ecSmrg/* DDCAPS.dwCaps2 */ 66705b261ecSmrg#define DDCAPS2_CERTIFIED 0x00000001 66805b261ecSmrg#define DDCAPS2_NO2DDURING3DSCENE 0x00000002 66905b261ecSmrg#define DDCAPS2_VIDEOPORT 0x00000004 67005b261ecSmrg#define DDCAPS2_AUTOFLIPOVERLAY 0x00000008 67105b261ecSmrg#define DDCAPS2_CANBOBINTERLEAVED 0x00000010 67205b261ecSmrg#define DDCAPS2_CANBOBNONINTERLEAVED 0x00000020 67305b261ecSmrg#define DDCAPS2_COLORCONTROLOVERLAY 0x00000040 67405b261ecSmrg#define DDCAPS2_COLORCONTROLPRIMARY 0x00000080 67505b261ecSmrg#define DDCAPS2_CANDROPZ16BIT 0x00000100 67605b261ecSmrg#define DDCAPS2_NONLOCALVIDMEM 0x00000200 67705b261ecSmrg#define DDCAPS2_NONLOCALVIDMEMCAPS 0x00000400 67805b261ecSmrg#define DDCAPS2_NOPAGELOCKREQUIRED 0x00000800 67905b261ecSmrg#define DDCAPS2_WIDESURFACES 0x00001000 68005b261ecSmrg#define DDCAPS2_CANFLIPODDEVEN 0x00002000 68105b261ecSmrg#define DDCAPS2_CANBOBHARDWARE 0x00004000 68205b261ecSmrg#define DDCAPS2_COPYFOURCC 0x00008000 68305b261ecSmrg#define DDCAPS2_PRIMARYGAMMA 0x00020000 68405b261ecSmrg#define DDCAPS2_CANRENDERWINDOWED 0x00080000 68505b261ecSmrg#define DDCAPS2_CANCALIBRATEGAMMA 0x00100000 68605b261ecSmrg#define DDCAPS2_FLIPINTERVAL 0x00200000 68705b261ecSmrg#define DDCAPS2_FLIPNOVSYNC 0x00400000 68805b261ecSmrg#define DDCAPS2_CANMANAGETEXTURE 0x00800000 68905b261ecSmrg#define DDCAPS2_TEXMANINNONLOCALVIDMEM 0x01000000 69005b261ecSmrg#define DDCAPS2_STEREO 0x02000000 69105b261ecSmrg#define DDCAPS2_SYSTONONLOCAL_AS_SYSTOLOCAL 0x04000000 69205b261ecSmrg 69305b261ecSmrg/* Set/Get Colour Key Flags */ 69435c4bbdfSmrg#define DDCKEY_COLORSPACE 0x00000001 /* Struct is single colour space */ 69535c4bbdfSmrg#define DDCKEY_DESTBLT 0x00000002 /* To be used as dest for blt */ 69635c4bbdfSmrg#define DDCKEY_DESTOVERLAY 0x00000004 /* To be used as dest for CK overlays */ 69735c4bbdfSmrg#define DDCKEY_SRCBLT 0x00000008 /* To be used as src for blt */ 69835c4bbdfSmrg#define DDCKEY_SRCOVERLAY 0x00000010 /* To be used as src for CK overlays */ 69935c4bbdfSmrg 70035c4bbdfSmrg typedef struct _DDCOLORKEY { 70135c4bbdfSmrg DWORD dwColorSpaceLowValue; /* low boundary of color space that is to 70235c4bbdfSmrg * be treated as Color Key, inclusive 70335c4bbdfSmrg */ 70435c4bbdfSmrg DWORD dwColorSpaceHighValue; /* high boundary of color space that is 70535c4bbdfSmrg * to be treated as Color Key, inclusive 70635c4bbdfSmrg */ 70735c4bbdfSmrg } DDCOLORKEY, *LPDDCOLORKEY; 70805b261ecSmrg 70905b261ecSmrg/* ddCKEYCAPS bits */ 71005b261ecSmrg#define DDCKEYCAPS_DESTBLT 0x00000001 71105b261ecSmrg#define DDCKEYCAPS_DESTBLTCLRSPACE 0x00000002 71205b261ecSmrg#define DDCKEYCAPS_DESTBLTCLRSPACEYUV 0x00000004 71305b261ecSmrg#define DDCKEYCAPS_DESTBLTYUV 0x00000008 71405b261ecSmrg#define DDCKEYCAPS_DESTOVERLAY 0x00000010 71505b261ecSmrg#define DDCKEYCAPS_DESTOVERLAYCLRSPACE 0x00000020 71605b261ecSmrg#define DDCKEYCAPS_DESTOVERLAYCLRSPACEYUV 0x00000040 71705b261ecSmrg#define DDCKEYCAPS_DESTOVERLAYONEACTIVE 0x00000080 71805b261ecSmrg#define DDCKEYCAPS_DESTOVERLAYYUV 0x00000100 71905b261ecSmrg#define DDCKEYCAPS_SRCBLT 0x00000200 72005b261ecSmrg#define DDCKEYCAPS_SRCBLTCLRSPACE 0x00000400 72105b261ecSmrg#define DDCKEYCAPS_SRCBLTCLRSPACEYUV 0x00000800 72205b261ecSmrg#define DDCKEYCAPS_SRCBLTYUV 0x00001000 72305b261ecSmrg#define DDCKEYCAPS_SRCOVERLAY 0x00002000 72405b261ecSmrg#define DDCKEYCAPS_SRCOVERLAYCLRSPACE 0x00004000 72505b261ecSmrg#define DDCKEYCAPS_SRCOVERLAYCLRSPACEYUV 0x00008000 72605b261ecSmrg#define DDCKEYCAPS_SRCOVERLAYONEACTIVE 0x00010000 72705b261ecSmrg#define DDCKEYCAPS_SRCOVERLAYYUV 0x00020000 72805b261ecSmrg#define DDCKEYCAPS_NOCOSTOVERLAY 0x00040000 72905b261ecSmrg 73035c4bbdfSmrg typedef struct _DDPIXELFORMAT { 73135c4bbdfSmrg DWORD dwSize; /* 0: size of structure */ 73235c4bbdfSmrg DWORD dwFlags; /* 4: pixel format flags */ 73335c4bbdfSmrg DWORD dwFourCC; /* 8: (FOURCC code) */ 73435c4bbdfSmrg union { 73535c4bbdfSmrg DWORD dwRGBBitCount; /* C: how many bits per pixel */ 73635c4bbdfSmrg DWORD dwYUVBitCount; /* C: how many bits per pixel */ 73735c4bbdfSmrg DWORD dwZBufferBitDepth; /* C: how many bits for z buffers */ 73835c4bbdfSmrg DWORD dwAlphaBitDepth; /* C: how many bits for alpha channels */ 73935c4bbdfSmrg DWORD dwLuminanceBitCount; 74035c4bbdfSmrg DWORD dwBumpBitCount; 74135c4bbdfSmrg } DUMMYUNIONNAME1; 74235c4bbdfSmrg union { 74335c4bbdfSmrg DWORD dwRBitMask; /* 10: mask for red bit */ 74435c4bbdfSmrg DWORD dwYBitMask; /* 10: mask for Y bits */ 74535c4bbdfSmrg DWORD dwStencilBitDepth; 74635c4bbdfSmrg DWORD dwLuminanceBitMask; 74735c4bbdfSmrg DWORD dwBumpDuBitMask; 74835c4bbdfSmrg } DUMMYUNIONNAME2; 74935c4bbdfSmrg union { 75035c4bbdfSmrg DWORD dwGBitMask; /* 14: mask for green bits */ 75135c4bbdfSmrg DWORD dwUBitMask; /* 14: mask for U bits */ 75235c4bbdfSmrg DWORD dwZBitMask; 75335c4bbdfSmrg DWORD dwBumpDvBitMask; 75435c4bbdfSmrg } DUMMYUNIONNAME3; 75535c4bbdfSmrg union { 75635c4bbdfSmrg DWORD dwBBitMask; /* 18: mask for blue bits */ 75735c4bbdfSmrg DWORD dwVBitMask; /* 18: mask for V bits */ 75835c4bbdfSmrg DWORD dwStencilBitMask; 75935c4bbdfSmrg DWORD dwBumpLuminanceBitMask; 76035c4bbdfSmrg } DUMMYUNIONNAME4; 76135c4bbdfSmrg union { 76235c4bbdfSmrg DWORD dwRGBAlphaBitMask; /* 1C: mask for alpha channel */ 76335c4bbdfSmrg DWORD dwYUVAlphaBitMask; /* 1C: mask for alpha channel */ 76435c4bbdfSmrg DWORD dwLuminanceAlphaBitMask; 76535c4bbdfSmrg DWORD dwRGBZBitMask; /* 1C: mask for Z channel */ 76635c4bbdfSmrg DWORD dwYUVZBitMask; /* 1C: mask for Z channel */ 76735c4bbdfSmrg } DUMMYUNIONNAME5; 76835c4bbdfSmrg /* 20: next structure */ 76935c4bbdfSmrg } DDPIXELFORMAT, *LPDDPIXELFORMAT; 77005b261ecSmrg 77105b261ecSmrg/* DDCAPS.dwFXCaps */ 77205b261ecSmrg#define DDFXCAPS_BLTALPHA 0x00000001 77305b261ecSmrg#define DDFXCAPS_OVERLAYALPHA 0x00000004 77405b261ecSmrg#define DDFXCAPS_BLTARITHSTRETCHYN 0x00000010 77505b261ecSmrg#define DDFXCAPS_BLTARITHSTRETCHY 0x00000020 77605b261ecSmrg#define DDFXCAPS_BLTMIRRORLEFTRIGHT 0x00000040 77705b261ecSmrg#define DDFXCAPS_BLTMIRRORUPDOWN 0x00000080 77805b261ecSmrg#define DDFXCAPS_BLTROTATION 0x00000100 77905b261ecSmrg#define DDFXCAPS_BLTROTATION90 0x00000200 78005b261ecSmrg#define DDFXCAPS_BLTSHRINKX 0x00000400 78105b261ecSmrg#define DDFXCAPS_BLTSHRINKXN 0x00000800 78205b261ecSmrg#define DDFXCAPS_BLTSHRINKY 0x00001000 78305b261ecSmrg#define DDFXCAPS_BLTSHRINKYN 0x00002000 78405b261ecSmrg#define DDFXCAPS_BLTSTRETCHX 0x00004000 78505b261ecSmrg#define DDFXCAPS_BLTSTRETCHXN 0x00008000 78605b261ecSmrg#define DDFXCAPS_BLTSTRETCHY 0x00010000 78705b261ecSmrg#define DDFXCAPS_BLTSTRETCHYN 0x00020000 78805b261ecSmrg#define DDFXCAPS_OVERLAYARITHSTRETCHY 0x00040000 78905b261ecSmrg#define DDFXCAPS_OVERLAYARITHSTRETCHYN 0x00000008 79005b261ecSmrg#define DDFXCAPS_OVERLAYSHRINKX 0x00080000 79105b261ecSmrg#define DDFXCAPS_OVERLAYSHRINKXN 0x00100000 79205b261ecSmrg#define DDFXCAPS_OVERLAYSHRINKY 0x00200000 79305b261ecSmrg#define DDFXCAPS_OVERLAYSHRINKYN 0x00400000 79405b261ecSmrg#define DDFXCAPS_OVERLAYSTRETCHX 0x00800000 79505b261ecSmrg#define DDFXCAPS_OVERLAYSTRETCHXN 0x01000000 79605b261ecSmrg#define DDFXCAPS_OVERLAYSTRETCHY 0x02000000 79705b261ecSmrg#define DDFXCAPS_OVERLAYSTRETCHYN 0x04000000 79805b261ecSmrg#define DDFXCAPS_OVERLAYMIRRORLEFTRIGHT 0x08000000 79905b261ecSmrg#define DDFXCAPS_OVERLAYMIRRORUPDOWN 0x10000000 80005b261ecSmrg 80105b261ecSmrg#define DDFXCAPS_OVERLAYFILTER DDFXCAPS_OVERLAYARITHSTRETCHY 80205b261ecSmrg 80305b261ecSmrg/* DDCAPS.dwFXAlphaCaps */ 80405b261ecSmrg#define DDFXALPHACAPS_BLTALPHAEDGEBLEND 0x00000001 80505b261ecSmrg#define DDFXALPHACAPS_BLTALPHAPIXELS 0x00000002 80605b261ecSmrg#define DDFXALPHACAPS_BLTALPHAPIXELSNEG 0x00000004 80705b261ecSmrg#define DDFXALPHACAPS_BLTALPHASURFACES 0x00000008 80805b261ecSmrg#define DDFXALPHACAPS_BLTALPHASURFACESNEG 0x00000010 80905b261ecSmrg#define DDFXALPHACAPS_OVERLAYALPHAEDGEBLEND 0x00000020 81005b261ecSmrg#define DDFXALPHACAPS_OVERLAYALPHAPIXELS 0x00000040 81105b261ecSmrg#define DDFXALPHACAPS_OVERLAYALPHAPIXELSNEG 0x00000080 81205b261ecSmrg#define DDFXALPHACAPS_OVERLAYALPHASURFACES 0x00000100 81305b261ecSmrg#define DDFXALPHACAPS_OVERLAYALPHASURFACESNEG 0x00000200 81405b261ecSmrg 81505b261ecSmrg/* DDCAPS.dwPalCaps */ 81605b261ecSmrg#define DDPCAPS_4BIT 0x00000001 81705b261ecSmrg#define DDPCAPS_8BITENTRIES 0x00000002 81805b261ecSmrg#define DDPCAPS_8BIT 0x00000004 81905b261ecSmrg#define DDPCAPS_INITIALIZE 0x00000008 82005b261ecSmrg#define DDPCAPS_PRIMARYSURFACE 0x00000010 82105b261ecSmrg#define DDPCAPS_PRIMARYSURFACELEFT 0x00000020 82205b261ecSmrg#define DDPCAPS_ALLOW256 0x00000040 82305b261ecSmrg#define DDPCAPS_VSYNC 0x00000080 82405b261ecSmrg#define DDPCAPS_1BIT 0x00000100 82505b261ecSmrg#define DDPCAPS_2BIT 0x00000200 82605b261ecSmrg#define DDPCAPS_ALPHA 0x00000400 82705b261ecSmrg 82805b261ecSmrg/* DDCAPS.dwSVCaps */ 82905b261ecSmrg/* the first 4 of these are now obsolete */ 830ed6184dfSmrg#if DIRECTDRAW_VERSION >= 0x700 /* FIXME: I'm not sure when this switch occurred */ 83105b261ecSmrg#define DDSVCAPS_RESERVED1 0x00000001 83205b261ecSmrg#define DDSVCAPS_RESERVED2 0x00000002 83305b261ecSmrg#define DDSVCAPS_RESERVED3 0x00000004 83405b261ecSmrg#define DDSVCAPS_RESERVED4 0x00000008 83505b261ecSmrg#else 83605b261ecSmrg#define DDSVCAPS_ENIGMA 0x00000001 83705b261ecSmrg#define DDSVCAPS_FLICKER 0x00000002 83805b261ecSmrg#define DDSVCAPS_REDBLUE 0x00000004 83905b261ecSmrg#define DDSVCAPS_SPLIT 0x00000008 84005b261ecSmrg#endif 84105b261ecSmrg#define DDSVCAPS_STEREOSEQUENTIAL 0x00000010 84205b261ecSmrg 84305b261ecSmrg/* BitDepths */ 84405b261ecSmrg#define DDBD_1 0x00004000 84505b261ecSmrg#define DDBD_2 0x00002000 84605b261ecSmrg#define DDBD_4 0x00001000 84705b261ecSmrg#define DDBD_8 0x00000800 84805b261ecSmrg#define DDBD_16 0x00000400 84905b261ecSmrg#define DDBD_24 0x00000200 85005b261ecSmrg#define DDBD_32 0x00000100 85105b261ecSmrg 85205b261ecSmrg/* DDOVERLAYFX.dwDDFX */ 85305b261ecSmrg#define DDOVERFX_ARITHSTRETCHY 0x00000001 85405b261ecSmrg#define DDOVERFX_MIRRORLEFTRIGHT 0x00000002 85505b261ecSmrg#define DDOVERFX_MIRRORUPDOWN 0x00000004 85605b261ecSmrg 85705b261ecSmrg/* UpdateOverlay flags */ 85805b261ecSmrg#define DDOVER_ALPHADEST 0x00000001 85905b261ecSmrg#define DDOVER_ALPHADESTCONSTOVERRIDE 0x00000002 86005b261ecSmrg#define DDOVER_ALPHADESTNEG 0x00000004 86105b261ecSmrg#define DDOVER_ALPHADESTSURFACEOVERRIDE 0x00000008 86205b261ecSmrg#define DDOVER_ALPHAEDGEBLEND 0x00000010 86305b261ecSmrg#define DDOVER_ALPHASRC 0x00000020 86405b261ecSmrg#define DDOVER_ALPHASRCCONSTOVERRIDE 0x00000040 86505b261ecSmrg#define DDOVER_ALPHASRCNEG 0x00000080 86605b261ecSmrg#define DDOVER_ALPHASRCSURFACEOVERRIDE 0x00000100 86705b261ecSmrg#define DDOVER_HIDE 0x00000200 86805b261ecSmrg#define DDOVER_KEYDEST 0x00000400 86905b261ecSmrg#define DDOVER_KEYDESTOVERRIDE 0x00000800 87005b261ecSmrg#define DDOVER_KEYSRC 0x00001000 87105b261ecSmrg#define DDOVER_KEYSRCOVERRIDE 0x00002000 87205b261ecSmrg#define DDOVER_SHOW 0x00004000 87305b261ecSmrg#define DDOVER_ADDDIRTYRECT 0x00008000 87405b261ecSmrg#define DDOVER_REFRESHDIRTYRECTS 0x00010000 87505b261ecSmrg#define DDOVER_REFRESHALL 0x00020000 87605b261ecSmrg#define DDOVER_DDFX 0x00080000 87705b261ecSmrg#define DDOVER_AUTOFLIP 0x00100000 87805b261ecSmrg#define DDOVER_BOB 0x00200000 87905b261ecSmrg#define DDOVER_OVERRIDEBOBWEAVE 0x00400000 88005b261ecSmrg#define DDOVER_INTERLEAVED 0x00800000 88105b261ecSmrg 88205b261ecSmrg/* DDCOLORKEY.dwFlags */ 88305b261ecSmrg#define DDPF_ALPHAPIXELS 0x00000001 88405b261ecSmrg#define DDPF_ALPHA 0x00000002 88505b261ecSmrg#define DDPF_FOURCC 0x00000004 88605b261ecSmrg#define DDPF_PALETTEINDEXED4 0x00000008 88705b261ecSmrg#define DDPF_PALETTEINDEXEDTO8 0x00000010 88805b261ecSmrg#define DDPF_PALETTEINDEXED8 0x00000020 88905b261ecSmrg#define DDPF_RGB 0x00000040 89005b261ecSmrg#define DDPF_COMPRESSED 0x00000080 89105b261ecSmrg#define DDPF_RGBTOYUV 0x00000100 89205b261ecSmrg#define DDPF_YUV 0x00000200 89305b261ecSmrg#define DDPF_ZBUFFER 0x00000400 89405b261ecSmrg#define DDPF_PALETTEINDEXED1 0x00000800 89505b261ecSmrg#define DDPF_PALETTEINDEXED2 0x00001000 89605b261ecSmrg#define DDPF_ZPIXELS 0x00002000 89705b261ecSmrg#define DDPF_STENCILBUFFER 0x00004000 89805b261ecSmrg#define DDPF_ALPHAPREMULT 0x00008000 89905b261ecSmrg#define DDPF_LUMINANCE 0x00020000 90005b261ecSmrg#define DDPF_BUMPLUMINANCE 0x00040000 90105b261ecSmrg#define DDPF_BUMPDUDV 0x00080000 90205b261ecSmrg 90305b261ecSmrg/* SetCooperativeLevel dwFlags */ 90405b261ecSmrg#define DDSCL_FULLSCREEN 0x00000001 90505b261ecSmrg#define DDSCL_ALLOWREBOOT 0x00000002 90605b261ecSmrg#define DDSCL_NOWINDOWCHANGES 0x00000004 90705b261ecSmrg#define DDSCL_NORMAL 0x00000008 90805b261ecSmrg#define DDSCL_EXCLUSIVE 0x00000010 90905b261ecSmrg#define DDSCL_ALLOWMODEX 0x00000040 91005b261ecSmrg#define DDSCL_SETFOCUSWINDOW 0x00000080 91105b261ecSmrg#define DDSCL_SETDEVICEWINDOW 0x00000100 91205b261ecSmrg#define DDSCL_CREATEDEVICEWINDOW 0x00000200 91305b261ecSmrg#define DDSCL_MULTITHREADED 0x00000400 91405b261ecSmrg#define DDSCL_FPUSETUP 0x00000800 91505b261ecSmrg#define DDSCL_FPUPRESERVE 0x00001000 91605b261ecSmrg 91705b261ecSmrg/* DDSURFACEDESC.dwFlags */ 91805b261ecSmrg#define DDSD_CAPS 0x00000001 91905b261ecSmrg#define DDSD_HEIGHT 0x00000002 92005b261ecSmrg#define DDSD_WIDTH 0x00000004 92105b261ecSmrg#define DDSD_PITCH 0x00000008 92205b261ecSmrg#define DDSD_BACKBUFFERCOUNT 0x00000020 92305b261ecSmrg#define DDSD_ZBUFFERBITDEPTH 0x00000040 92405b261ecSmrg#define DDSD_ALPHABITDEPTH 0x00000080 92505b261ecSmrg#define DDSD_LPSURFACE 0x00000800 92605b261ecSmrg#define DDSD_PIXELFORMAT 0x00001000 92705b261ecSmrg#define DDSD_CKDESTOVERLAY 0x00002000 92805b261ecSmrg#define DDSD_CKDESTBLT 0x00004000 92905b261ecSmrg#define DDSD_CKSRCOVERLAY 0x00008000 93005b261ecSmrg#define DDSD_CKSRCBLT 0x00010000 93105b261ecSmrg#define DDSD_MIPMAPCOUNT 0x00020000 93205b261ecSmrg#define DDSD_REFRESHRATE 0x00040000 93305b261ecSmrg#define DDSD_LINEARSIZE 0x00080000 93405b261ecSmrg#define DDSD_TEXTURESTAGE 0x00100000 93505b261ecSmrg#define DDSD_FVF 0x00200000 93605b261ecSmrg#define DDSD_SRCVBHANDLE 0x00400000 93705b261ecSmrg#define DDSD_ALL 0x007ff9ee 93805b261ecSmrg 93905b261ecSmrg/* EnumSurfaces flags */ 94005b261ecSmrg#define DDENUMSURFACES_ALL 0x00000001 94105b261ecSmrg#define DDENUMSURFACES_MATCH 0x00000002 94205b261ecSmrg#define DDENUMSURFACES_NOMATCH 0x00000004 94305b261ecSmrg#define DDENUMSURFACES_CANBECREATED 0x00000008 94405b261ecSmrg#define DDENUMSURFACES_DOESEXIST 0x00000010 94505b261ecSmrg 94605b261ecSmrg/* SetDisplayMode flags */ 94705b261ecSmrg#define DDSDM_STANDARDVGAMODE 0x00000001 94805b261ecSmrg 94905b261ecSmrg/* EnumDisplayModes flags */ 95005b261ecSmrg#define DDEDM_REFRESHRATES 0x00000001 95105b261ecSmrg#define DDEDM_STANDARDVGAMODES 0x00000002 95205b261ecSmrg 95305b261ecSmrg/* WaitForVerticalDisplay flags */ 95405b261ecSmrg 95505b261ecSmrg#define DDWAITVB_BLOCKBEGIN 0x00000001 95605b261ecSmrg#define DDWAITVB_BLOCKBEGINEVENT 0x00000002 95705b261ecSmrg#define DDWAITVB_BLOCKEND 0x00000004 95805b261ecSmrg 95935c4bbdfSmrg typedef struct _DDSURFACEDESC { 96035c4bbdfSmrg DWORD dwSize; /* 0: size of the DDSURFACEDESC structure */ 96135c4bbdfSmrg DWORD dwFlags; /* 4: determines what fields are valid */ 96235c4bbdfSmrg DWORD dwHeight; /* 8: height of surface to be created */ 96335c4bbdfSmrg DWORD dwWidth; /* C: width of input surface */ 96435c4bbdfSmrg union { 96535c4bbdfSmrg LONG lPitch; /* 10: distance to start of next line (return value only) */ 96635c4bbdfSmrg DWORD dwLinearSize; 96735c4bbdfSmrg } DUMMYUNIONNAME1; 96835c4bbdfSmrg DWORD dwBackBufferCount; /* 14: number of back buffers requested */ 96935c4bbdfSmrg union { 97035c4bbdfSmrg DWORD dwMipMapCount; /* 18:number of mip-map levels requested */ 97135c4bbdfSmrg DWORD dwZBufferBitDepth; /*18: depth of Z buffer requested */ 97235c4bbdfSmrg DWORD dwRefreshRate; /* 18:refresh rate (used when display mode is described) */ 97335c4bbdfSmrg } DUMMYUNIONNAME2; 97435c4bbdfSmrg DWORD dwAlphaBitDepth; /* 1C:depth of alpha buffer requested */ 97535c4bbdfSmrg DWORD dwReserved; /* 20:reserved */ 97635c4bbdfSmrg LPVOID lpSurface; /* 24:pointer to the associated surface memory */ 97735c4bbdfSmrg DDCOLORKEY ddckCKDestOverlay; /* 28: CK for dest overlay use */ 97835c4bbdfSmrg DDCOLORKEY ddckCKDestBlt; /* 30: CK for destination blt use */ 97935c4bbdfSmrg DDCOLORKEY ddckCKSrcOverlay; /* 38: CK for source overlay use */ 98035c4bbdfSmrg DDCOLORKEY ddckCKSrcBlt; /* 40: CK for source blt use */ 98135c4bbdfSmrg DDPIXELFORMAT ddpfPixelFormat; /* 48: pixel format description of the surface */ 98235c4bbdfSmrg DDSCAPS ddsCaps; /* 68: direct draw surface caps */ 98335c4bbdfSmrg } DDSURFACEDESC, *LPDDSURFACEDESC; 98435c4bbdfSmrg 98535c4bbdfSmrg typedef struct _DDSURFACEDESC2 { 98635c4bbdfSmrg DWORD dwSize; /* 0: size of the DDSURFACEDESC structure */ 98735c4bbdfSmrg DWORD dwFlags; /* 4: determines what fields are valid */ 98835c4bbdfSmrg DWORD dwHeight; /* 8: height of surface to be created */ 98935c4bbdfSmrg DWORD dwWidth; /* C: width of input surface */ 99035c4bbdfSmrg union { 99135c4bbdfSmrg LONG lPitch; /*10: distance to start of next line (return value only) */ 99235c4bbdfSmrg DWORD dwLinearSize; /*10: formless late-allocated optimized surface size */ 99335c4bbdfSmrg } DUMMYUNIONNAME1; 99435c4bbdfSmrg DWORD dwBackBufferCount; /* 14: number of back buffers requested */ 99535c4bbdfSmrg union { 99635c4bbdfSmrg DWORD dwMipMapCount; /* 18:number of mip-map levels requested */ 99735c4bbdfSmrg DWORD dwRefreshRate; /* 18:refresh rate (used when display mode is described) */ 99835c4bbdfSmrg DWORD dwSrcVBHandle; /* 18:source used in VB::Optimize */ 99935c4bbdfSmrg } DUMMYUNIONNAME2; 100035c4bbdfSmrg DWORD dwAlphaBitDepth; /* 1C:depth of alpha buffer requested */ 100135c4bbdfSmrg DWORD dwReserved; /* 20:reserved */ 100235c4bbdfSmrg LPVOID lpSurface; /* 24:pointer to the associated surface memory */ 100335c4bbdfSmrg union { 100435c4bbdfSmrg DDCOLORKEY ddckCKDestOverlay; /* 28: CK for dest overlay use */ 100535c4bbdfSmrg DWORD dwEmptyFaceColor; /* 28: color for empty cubemap faces */ 100635c4bbdfSmrg } DUMMYUNIONNAME3; 100735c4bbdfSmrg DDCOLORKEY ddckCKDestBlt; /* 30: CK for destination blt use */ 100835c4bbdfSmrg DDCOLORKEY ddckCKSrcOverlay; /* 38: CK for source overlay use */ 100935c4bbdfSmrg DDCOLORKEY ddckCKSrcBlt; /* 40: CK for source blt use */ 101035c4bbdfSmrg 101135c4bbdfSmrg union { 101235c4bbdfSmrg DDPIXELFORMAT ddpfPixelFormat; /* 48: pixel format description of the surface */ 101335c4bbdfSmrg DWORD dwFVF; /* 48: vertex format description of vertex buffers */ 101435c4bbdfSmrg } DUMMYUNIONNAME4; 101535c4bbdfSmrg DDSCAPS2 ddsCaps; /* 68: DDraw surface caps */ 101635c4bbdfSmrg DWORD dwTextureStage; /* 78: stage in multitexture cascade */ 101735c4bbdfSmrg } DDSURFACEDESC2, *LPDDSURFACEDESC2; 101805b261ecSmrg 101905b261ecSmrg/* DDCOLORCONTROL.dwFlags */ 102005b261ecSmrg#define DDCOLOR_BRIGHTNESS 0x00000001 102105b261ecSmrg#define DDCOLOR_CONTRAST 0x00000002 102205b261ecSmrg#define DDCOLOR_HUE 0x00000004 102305b261ecSmrg#define DDCOLOR_SATURATION 0x00000008 102405b261ecSmrg#define DDCOLOR_SHARPNESS 0x00000010 102505b261ecSmrg#define DDCOLOR_GAMMA 0x00000020 102605b261ecSmrg#define DDCOLOR_COLORENABLE 0x00000040 102705b261ecSmrg 102835c4bbdfSmrg typedef struct { 102935c4bbdfSmrg DWORD dwSize; 103035c4bbdfSmrg DWORD dwFlags; 103135c4bbdfSmrg LONG lBrightness; 103235c4bbdfSmrg LONG lContrast; 103335c4bbdfSmrg LONG lHue; 103435c4bbdfSmrg LONG lSaturation; 103535c4bbdfSmrg LONG lSharpness; 103635c4bbdfSmrg LONG lGamma; 103735c4bbdfSmrg LONG lColorEnable; 103835c4bbdfSmrg DWORD dwReserved1; 103935c4bbdfSmrg } DDCOLORCONTROL, *LPDDCOLORCONTROL; 104035c4bbdfSmrg 104135c4bbdfSmrg typedef struct { 104235c4bbdfSmrg WORD red[256]; 104335c4bbdfSmrg WORD green[256]; 104435c4bbdfSmrg WORD blue[256]; 104535c4bbdfSmrg } DDGAMMARAMP, *LPDDGAMMARAMP; 104635c4bbdfSmrg 104735c4bbdfSmrg typedef BOOL CALLBACK(*LPDDENUMCALLBACKA) (GUID *, LPSTR, LPSTR, LPVOID); 104835c4bbdfSmrg typedef BOOL CALLBACK(*LPDDENUMCALLBACKW) (GUID *, LPWSTR, LPWSTR, LPVOID); 104935c4bbdfSmrg DECL_WINELIB_TYPE_AW(LPDDENUMCALLBACK) 105035c4bbdfSmrg 105135c4bbdfSmrg typedef HRESULT CALLBACK(*LPDDENUMMODESCALLBACK) (LPDDSURFACEDESC, LPVOID); 105235c4bbdfSmrg typedef HRESULT CALLBACK(*LPDDENUMMODESCALLBACK2) (LPDDSURFACEDESC2, 105335c4bbdfSmrg LPVOID); 105435c4bbdfSmrg typedef HRESULT CALLBACK(*LPDDENUMSURFACESCALLBACK) (LPDIRECTDRAWSURFACE, 105535c4bbdfSmrg LPDDSURFACEDESC, 105635c4bbdfSmrg LPVOID); 105735c4bbdfSmrg typedef HRESULT CALLBACK(*LPDDENUMSURFACESCALLBACK2) (LPDIRECTDRAWSURFACE4, 105835c4bbdfSmrg LPDDSURFACEDESC2, 105935c4bbdfSmrg LPVOID); 106035c4bbdfSmrg typedef HRESULT CALLBACK(*LPDDENUMSURFACESCALLBACK7) (LPDIRECTDRAWSURFACE7, 106135c4bbdfSmrg LPDDSURFACEDESC2, 106235c4bbdfSmrg LPVOID); 106335c4bbdfSmrg 106435c4bbdfSmrg typedef BOOL CALLBACK(*LPDDENUMCALLBACKEXA) (GUID *, LPSTR, LPSTR, LPVOID, 106535c4bbdfSmrg HMONITOR); 106635c4bbdfSmrg typedef BOOL CALLBACK(*LPDDENUMCALLBACKEXW) (GUID *, LPWSTR, LPWSTR, LPVOID, 106735c4bbdfSmrg HMONITOR); 106835c4bbdfSmrg DECL_WINELIB_TYPE_AW(LPDDENUMCALLBACKEX) 106935c4bbdfSmrg 107035c4bbdfSmrg HRESULT WINAPI DirectDrawEnumerateExA(LPDDENUMCALLBACKEXA lpCallback, 107135c4bbdfSmrg LPVOID lpContext, DWORD dwFlags); 107235c4bbdfSmrg HRESULT WINAPI DirectDrawEnumerateExW(LPDDENUMCALLBACKEXW lpCallback, 107335c4bbdfSmrg LPVOID lpContext, DWORD dwFlags); 107405b261ecSmrg#define DirectDrawEnumerateEx WINELIB_NAME_AW(DirectDrawEnumerateEx) 107505b261ecSmrg 107605b261ecSmrg/* flags for DirectDrawEnumerateEx */ 107705b261ecSmrg#define DDENUM_ATTACHEDSECONDARYDEVICES 0x00000001 107805b261ecSmrg#define DDENUM_DETACHEDSECONDARYDEVICES 0x00000002 107905b261ecSmrg#define DDENUM_NONDISPLAYDEVICES 0x00000004 108005b261ecSmrg 108105b261ecSmrg/* flags for DirectDrawCreate or IDirectDraw::Initialize */ 108205b261ecSmrg#define DDCREATE_HARDWAREONLY 1L 108305b261ecSmrg#define DDCREATE_EMULATIONONLY 2L 108405b261ecSmrg 108535c4bbdfSmrg typedef struct _DDBLTFX { 108635c4bbdfSmrg DWORD dwSize; /* size of structure */ 108735c4bbdfSmrg DWORD dwDDFX; /* FX operations */ 108835c4bbdfSmrg DWORD dwROP; /* Win32 raster operations */ 108935c4bbdfSmrg DWORD dwDDROP; /* Raster operations new for DirectDraw */ 109035c4bbdfSmrg DWORD dwRotationAngle; /* Rotation angle for blt */ 109135c4bbdfSmrg DWORD dwZBufferOpCode; /* ZBuffer compares */ 109235c4bbdfSmrg DWORD dwZBufferLow; /* Low limit of Z buffer */ 109335c4bbdfSmrg DWORD dwZBufferHigh; /* High limit of Z buffer */ 109435c4bbdfSmrg DWORD dwZBufferBaseDest; /* Destination base value */ 109535c4bbdfSmrg DWORD dwZDestConstBitDepth; /* Bit depth used to specify Z constant for destination */ 109635c4bbdfSmrg union { 109735c4bbdfSmrg DWORD dwZDestConst; /* Constant to use as Z buffer for dest */ 109835c4bbdfSmrg LPDIRECTDRAWSURFACE lpDDSZBufferDest; /* Surface to use as Z buffer for dest */ 109935c4bbdfSmrg } DUMMYUNIONNAME1; 110035c4bbdfSmrg DWORD dwZSrcConstBitDepth; /* Bit depth used to specify Z constant for source */ 110135c4bbdfSmrg union { 110235c4bbdfSmrg DWORD dwZSrcConst; /* Constant to use as Z buffer for src */ 110335c4bbdfSmrg LPDIRECTDRAWSURFACE lpDDSZBufferSrc; /* Surface to use as Z buffer for src */ 110435c4bbdfSmrg } DUMMYUNIONNAME2; 110535c4bbdfSmrg DWORD dwAlphaEdgeBlendBitDepth; /* Bit depth used to specify constant for alpha edge blend */ 110635c4bbdfSmrg DWORD dwAlphaEdgeBlend; /* Alpha for edge blending */ 110735c4bbdfSmrg DWORD dwReserved; 110835c4bbdfSmrg DWORD dwAlphaDestConstBitDepth; /* Bit depth used to specify alpha constant for destination */ 110935c4bbdfSmrg union { 111035c4bbdfSmrg DWORD dwAlphaDestConst; /* Constant to use as Alpha Channel */ 111135c4bbdfSmrg LPDIRECTDRAWSURFACE lpDDSAlphaDest; /* Surface to use as Alpha Channel */ 111235c4bbdfSmrg } DUMMYUNIONNAME3; 111335c4bbdfSmrg DWORD dwAlphaSrcConstBitDepth; /* Bit depth used to specify alpha constant for source */ 111435c4bbdfSmrg union { 111535c4bbdfSmrg DWORD dwAlphaSrcConst; /* Constant to use as Alpha Channel */ 111635c4bbdfSmrg LPDIRECTDRAWSURFACE lpDDSAlphaSrc; /* Surface to use as Alpha Channel */ 111735c4bbdfSmrg } DUMMYUNIONNAME4; 111835c4bbdfSmrg union { 111935c4bbdfSmrg DWORD dwFillColor; /* color in RGB or Palettized */ 112035c4bbdfSmrg DWORD dwFillDepth; /* depth value for z-buffer */ 112135c4bbdfSmrg DWORD dwFillPixel; /* pixel val for RGBA or RGBZ */ 112235c4bbdfSmrg LPDIRECTDRAWSURFACE lpDDSPattern; /* Surface to use as pattern */ 112335c4bbdfSmrg } DUMMYUNIONNAME5; 112435c4bbdfSmrg DDCOLORKEY ddckDestColorkey; /* DestColorkey override */ 112535c4bbdfSmrg DDCOLORKEY ddckSrcColorkey; /* SrcColorkey override */ 112635c4bbdfSmrg } DDBLTFX, *LPDDBLTFX; 112705b261ecSmrg 112805b261ecSmrg/* dwDDFX */ 112905b261ecSmrg/* arithmetic stretching along y axis */ 113005b261ecSmrg#define DDBLTFX_ARITHSTRETCHY 0x00000001 113105b261ecSmrg/* mirror on y axis */ 113205b261ecSmrg#define DDBLTFX_MIRRORLEFTRIGHT 0x00000002 113305b261ecSmrg/* mirror on x axis */ 113405b261ecSmrg#define DDBLTFX_MIRRORUPDOWN 0x00000004 113505b261ecSmrg/* do not tear */ 113605b261ecSmrg#define DDBLTFX_NOTEARING 0x00000008 113705b261ecSmrg/* 180 degrees clockwise rotation */ 113805b261ecSmrg#define DDBLTFX_ROTATE180 0x00000010 113905b261ecSmrg/* 270 degrees clockwise rotation */ 114005b261ecSmrg#define DDBLTFX_ROTATE270 0x00000020 114105b261ecSmrg/* 90 degrees clockwise rotation */ 114205b261ecSmrg#define DDBLTFX_ROTATE90 0x00000040 114305b261ecSmrg/* dwZBufferLow and dwZBufferHigh specify limits to the copied Z values */ 114405b261ecSmrg#define DDBLTFX_ZBUFFERRANGE 0x00000080 114505b261ecSmrg/* add dwZBufferBaseDest to every source z value before compare */ 114605b261ecSmrg#define DDBLTFX_ZBUFFERBASEDEST 0x00000100 114705b261ecSmrg 114835c4bbdfSmrg typedef struct _DDOVERLAYFX { 114935c4bbdfSmrg DWORD dwSize; /* size of structure */ 115035c4bbdfSmrg DWORD dwAlphaEdgeBlendBitDepth; /* Bit depth used to specify constant for alpha edge blend */ 115135c4bbdfSmrg DWORD dwAlphaEdgeBlend; /* Constant to use as alpha for edge blend */ 115235c4bbdfSmrg DWORD dwReserved; 115335c4bbdfSmrg DWORD dwAlphaDestConstBitDepth; /* Bit depth used to specify alpha constant for destination */ 115435c4bbdfSmrg union { 115535c4bbdfSmrg DWORD dwAlphaDestConst; /* Constant to use as alpha channel for dest */ 115635c4bbdfSmrg LPDIRECTDRAWSURFACE lpDDSAlphaDest; /* Surface to use as alpha channel for dest */ 115735c4bbdfSmrg } DUMMYUNIONNAME1; 115835c4bbdfSmrg DWORD dwAlphaSrcConstBitDepth; /* Bit depth used to specify alpha constant for source */ 115935c4bbdfSmrg union { 116035c4bbdfSmrg DWORD dwAlphaSrcConst; /* Constant to use as alpha channel for src */ 116135c4bbdfSmrg LPDIRECTDRAWSURFACE lpDDSAlphaSrc; /* Surface to use as alpha channel for src */ 116235c4bbdfSmrg } DUMMYUNIONNAME2; 116335c4bbdfSmrg DDCOLORKEY dckDestColorkey; /* DestColorkey override */ 116435c4bbdfSmrg DDCOLORKEY dckSrcColorkey; /* DestColorkey override */ 116535c4bbdfSmrg DWORD dwDDFX; /* Overlay FX */ 116635c4bbdfSmrg DWORD dwFlags; /* flags */ 116735c4bbdfSmrg } DDOVERLAYFX, *LPDDOVERLAYFX; 116835c4bbdfSmrg 116935c4bbdfSmrg typedef struct _DDBLTBATCH { 117035c4bbdfSmrg LPRECT lprDest; 117135c4bbdfSmrg LPDIRECTDRAWSURFACE lpDDSSrc; 117235c4bbdfSmrg LPRECT lprSrc; 117335c4bbdfSmrg DWORD dwFlags; 117435c4bbdfSmrg LPDDBLTFX lpDDBltFx; 117535c4bbdfSmrg } DDBLTBATCH, *LPDDBLTBATCH; 117605b261ecSmrg 117705b261ecSmrg#define MAX_DDDEVICEID_STRING 512 117805b261ecSmrg 117935c4bbdfSmrg typedef struct tagDDDEVICEIDENTIFIER { 118035c4bbdfSmrg char szDriver[MAX_DDDEVICEID_STRING]; 118135c4bbdfSmrg char szDescription[MAX_DDDEVICEID_STRING]; 118235c4bbdfSmrg LARGE_INTEGER liDriverVersion; 118335c4bbdfSmrg DWORD dwVendorId; 118435c4bbdfSmrg DWORD dwDeviceId; 118535c4bbdfSmrg DWORD dwSubSysId; 118635c4bbdfSmrg DWORD dwRevision; 118735c4bbdfSmrg GUID guidDeviceIdentifier; 118835c4bbdfSmrg } DDDEVICEIDENTIFIER, *LPDDDEVICEIDENTIFIER; 118935c4bbdfSmrg 119035c4bbdfSmrg typedef struct tagDDDEVICEIDENTIFIER2 { 119135c4bbdfSmrg char szDriver[MAX_DDDEVICEID_STRING]; /* user readable driver name */ 119235c4bbdfSmrg char szDescription[MAX_DDDEVICEID_STRING]; /* user readable description */ 119335c4bbdfSmrg LARGE_INTEGER liDriverVersion; /* driver version */ 119435c4bbdfSmrg DWORD dwVendorId; /* vendor ID, zero if unknown */ 119535c4bbdfSmrg DWORD dwDeviceId; /* chipset ID, zero if unknown */ 119635c4bbdfSmrg DWORD dwSubSysId; /* board ID, zero if unknown */ 119735c4bbdfSmrg DWORD dwRevision; /* chipset version, zero if unknown */ 119835c4bbdfSmrg GUID guidDeviceIdentifier; /* unique ID for this driver/chipset combination */ 119935c4bbdfSmrg DWORD dwWHQLLevel; /* Windows Hardware Quality Lab certification level */ 120035c4bbdfSmrg } DDDEVICEIDENTIFIER2, *LPDDDEVICEIDENTIFIER2; 120105b261ecSmrg 120205b261ecSmrg/***************************************************************************** 120305b261ecSmrg * IDirectDrawPalette interface 120405b261ecSmrg */ 120505b261ecSmrg#undef INTERFACE 120605b261ecSmrg#define INTERFACE IDirectDrawPalette 120735c4bbdfSmrg DECLARE_INTERFACE_(IDirectDrawPalette, IUnknown) { 120835c4bbdfSmrg STDMETHOD(QueryInterface) (THIS_ REFIID, PVOID *) PURE; 120935c4bbdfSmrg STDMETHOD_(ULONG, AddRef) (THIS) PURE; 121035c4bbdfSmrg STDMETHOD_(ULONG, Release) (THIS) PURE; 121135c4bbdfSmrg STDMETHOD(GetCaps) (THIS_ LPDWORD lpdwCaps) PURE; 121235c4bbdfSmrg STDMETHOD(GetEntries) (THIS_ DWORD dwFlags, DWORD dwBase, 121335c4bbdfSmrg DWORD dwNumEntries, 121435c4bbdfSmrg LPPALETTEENTRY lpEntries) PURE; 121535c4bbdfSmrg STDMETHOD(Initialize) (THIS_ LPDIRECTDRAW lpDD, DWORD dwFlags, 121635c4bbdfSmrg LPPALETTEENTRY lpDDColorTable) PURE; 121735c4bbdfSmrg STDMETHOD(SetEntries) (THIS_ DWORD dwFlags, DWORD dwStartingEntry, 121835c4bbdfSmrg DWORD dwCount, LPPALETTEENTRY lpEntries) PURE; 121935c4bbdfSmrg }; 122005b261ecSmrg 122105b261ecSmrg /*** IUnknown methods ***/ 122205b261ecSmrg#define IDirectDrawPalette_QueryInterface(p,a,b) ICOM_CALL_(QueryInterface,p,(p,a,b)) 122305b261ecSmrg#define IDirectDrawPalette_AddRef(p) ICOM_CALL_(AddRef,p,(p)) 122405b261ecSmrg#define IDirectDrawPalette_Release(p) ICOM_CALL_(Release,p,(p)) 122505b261ecSmrg /*** IDirectDrawPalette methods ***/ 122605b261ecSmrg#define IDirectDrawPalette_GetCaps(p,a) ICOM_CALL_(GetCaps,p,(p,a)) 122705b261ecSmrg#define IDirectDrawPalette_GetEntries(p,a,b,c,d) ICOM_CALL_(GetEntries,p,(p,a,b,c,d)) 122805b261ecSmrg#define IDirectDrawPalette_Initialize(p,a,b,c) ICOM_CALL_(Initialize,p,(p,a,b,c)) 122905b261ecSmrg#define IDirectDrawPalette_SetEntries(p,a,b,c,d) ICOM_CALL_(SetEntries,p,(p,a,b,c,d)) 123005b261ecSmrg 123105b261ecSmrg/***************************************************************************** 123205b261ecSmrg * IDirectDrawClipper interface 123305b261ecSmrg */ 123405b261ecSmrg#undef INTERFACE 123505b261ecSmrg#define INTERFACE IDirectDrawClipper 123635c4bbdfSmrg DECLARE_INTERFACE_(IDirectDrawClipper, IUnknown) { 123735c4bbdfSmrg STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID *) PURE; 123835c4bbdfSmrg STDMETHOD_(ULONG, AddRef) (THIS) PURE; 123935c4bbdfSmrg STDMETHOD_(ULONG, Release) (THIS) PURE; 124035c4bbdfSmrg STDMETHOD(GetClipList) (THIS_ LPRECT lpRect, LPRGNDATA lpClipList, 124135c4bbdfSmrg LPDWORD lpdwSize) PURE; 124235c4bbdfSmrg STDMETHOD(GetHWnd) (THIS_ HWND * lphWnd) PURE; 124335c4bbdfSmrg STDMETHOD(Initialize) (THIS_ LPDIRECTDRAW lpDD, DWORD dwFlags) PURE; 124435c4bbdfSmrg STDMETHOD(IsClipListChanged) (THIS_ BOOL * lpbChanged) PURE; 124535c4bbdfSmrg STDMETHOD(SetClipList) (THIS_ LPRGNDATA lpClipList, DWORD dwFlags) PURE; 124635c4bbdfSmrg STDMETHOD(SetHWnd) (THIS_ DWORD dwFlags, HWND hWnd) PURE; 124735c4bbdfSmrg }; 124805b261ecSmrg 124905b261ecSmrg /*** IUnknown methods ***/ 125005b261ecSmrg#define IDirectDrawClipper_QueryInterface(p,a,b) ICOM_CALL_(QueryInterface,p,(p,a,b)) 125105b261ecSmrg#define IDirectDrawClipper_AddRef(p) ICOM_CALL_(AddRef,p,(p)) 125205b261ecSmrg#define IDirectDrawClipper_Release(p) ICOM_CALL_(Release,p,(p)) 125305b261ecSmrg /*** IDirectDrawClipper methods ***/ 125405b261ecSmrg#define IDirectDrawClipper_GetClipList(p,a,b,c) ICOM_CALL_(GetClipList,p,(p,a,b,c)) 125505b261ecSmrg#define IDirectDrawClipper_GetHWnd(p,a) ICOM_CALL_(GetHWnd,p,(p,a)) 125605b261ecSmrg#define IDirectDrawClipper_Initialize(p,a,b) ICOM_CALL_(Initialize,p,(p,a,b)) 125705b261ecSmrg#define IDirectDrawClipper_IsClipListChanged(p,a) ICOM_CALL_(IsClipListChanged,p,(p,a)) 125805b261ecSmrg#define IDirectDrawClipper_SetClipList(p,a,b) ICOM_CALL_(SetClipList,p,(p,a,b)) 125905b261ecSmrg#define IDirectDrawClipper_SetHWnd(p,a,b) ICOM_CALL_(SetHWnd,p,(p,a,b)) 126005b261ecSmrg 126105b261ecSmrg/***************************************************************************** 126205b261ecSmrg * IDirectDraw interface 126305b261ecSmrg */ 126405b261ecSmrg#undef INTERFACE 126505b261ecSmrg#define INTERFACE IDirectDraw 126635c4bbdfSmrg DECLARE_INTERFACE_(IDirectDraw, IUnknown) { 126735c4bbdfSmrg STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID *) PURE; 126835c4bbdfSmrg STDMETHOD_(ULONG, AddRef) (THIS) PURE; 126935c4bbdfSmrg STDMETHOD_(ULONG, Release) (THIS) PURE; 127035c4bbdfSmrg STDMETHOD(Compact) (THIS) PURE; 127135c4bbdfSmrg STDMETHOD(CreateClipper) (THIS_ DWORD dwFlags, 127235c4bbdfSmrg LPDIRECTDRAWCLIPPER * lplpDDClipper, 127335c4bbdfSmrg IUnknown * pUnkOuter) PURE; 127435c4bbdfSmrg STDMETHOD(CreatePalette) (THIS_ DWORD dwFlags, 127535c4bbdfSmrg LPPALETTEENTRY lpColorTable, 127635c4bbdfSmrg LPDIRECTDRAWPALETTE * lplpDDPalette, 127735c4bbdfSmrg IUnknown * pUnkOuter) PURE; 127835c4bbdfSmrg STDMETHOD(CreateSurface) (THIS_ LPDDSURFACEDESC lpDDSurfaceDesc, 127935c4bbdfSmrg LPDIRECTDRAWSURFACE * lplpDDSurface, 128035c4bbdfSmrg IUnknown * pUnkOuter) PURE; 128135c4bbdfSmrg STDMETHOD(DuplicateSurface) (THIS_ LPDIRECTDRAWSURFACE lpDDSurface, 128235c4bbdfSmrg LPDIRECTDRAWSURFACE * 128335c4bbdfSmrg lplpDupDDSurface) PURE; 128435c4bbdfSmrg STDMETHOD(EnumDisplayModes) (THIS_ DWORD dwFlags, 128535c4bbdfSmrg LPDDSURFACEDESC lpDDSurfaceDesc, 128635c4bbdfSmrg LPVOID lpContext, 128735c4bbdfSmrg LPDDENUMMODESCALLBACK lpEnumModesCallback) 128835c4bbdfSmrg PURE; 128935c4bbdfSmrg STDMETHOD(EnumSurfaces) (THIS_ DWORD dwFlags, LPDDSURFACEDESC lpDDSD, 129035c4bbdfSmrg LPVOID lpContext, 129135c4bbdfSmrg LPDDENUMSURFACESCALLBACK 129235c4bbdfSmrg lpEnumSurfacesCallback) PURE; 129335c4bbdfSmrg STDMETHOD(FlipToGDISurface) (THIS) PURE; 129435c4bbdfSmrg STDMETHOD(GetCaps) (THIS_ LPDDCAPS lpDDDriverCaps, 129535c4bbdfSmrg LPDDCAPS lpDDHELCaps) PURE; 129635c4bbdfSmrg STDMETHOD(GetDisplayMode) (THIS_ LPDDSURFACEDESC lpDDSurfaceDesc) PURE; 129735c4bbdfSmrg STDMETHOD(GetFourCCCodes) (THIS_ LPDWORD lpNumCodes, 129835c4bbdfSmrg LPDWORD lpCodes) PURE; 129935c4bbdfSmrg STDMETHOD(GetGDISurface) (THIS_ LPDIRECTDRAWSURFACE * 130035c4bbdfSmrg lplpGDIDDSurface) PURE; 130135c4bbdfSmrg STDMETHOD(GetMonitorFrequency) (THIS_ LPDWORD lpdwFrequency) PURE; 130235c4bbdfSmrg STDMETHOD(GetScanLine) (THIS_ LPDWORD lpdwScanLine) PURE; 130335c4bbdfSmrg STDMETHOD(GetVerticalBlankStatus) (THIS_ BOOL * lpbIsInVB) PURE; 130435c4bbdfSmrg STDMETHOD(Initialize) (THIS_ GUID * lpGUID) PURE; 130535c4bbdfSmrg STDMETHOD(RestoreDisplayMode) (THIS) PURE; 130635c4bbdfSmrg STDMETHOD(SetCooperativeLevel) (THIS_ HWND hWnd, DWORD dwFlags) PURE; 130735c4bbdfSmrg STDMETHOD(SetDisplayMode) (THIS_ DWORD, DWORD, DWORD) PURE; 130835c4bbdfSmrg STDMETHOD(WaitForVerticalBlank) (THIS_ DWORD dwFlags, 130935c4bbdfSmrg HANDLE hEvent) PURE; 131035c4bbdfSmrg }; 131105b261ecSmrg 131205b261ecSmrg /*** IUnknown methods ***/ 131305b261ecSmrg#define IDirectDraw_QueryInterface(p,a,b) ICOM_CALL_(QueryInterface,p,(p,a,b)) 131405b261ecSmrg#define IDirectDraw_AddRef(p) ICOM_CALL_(AddRef,p,(p)) 131505b261ecSmrg#define IDirectDraw_Release(p) ICOM_CALL_(Release,p,(p)) 131605b261ecSmrg /*** IDirectDraw methods ***/ 131705b261ecSmrg#define IDirectDraw_Compact(p) ICOM_CALL_(Compact,p,(p)) 131805b261ecSmrg#define IDirectDraw_CreateClipper(p,a,b,c) ICOM_CALL_(CreateClipper,p,(p,a,b,c)) 131905b261ecSmrg#define IDirectDraw_CreatePalette(p,a,b,c,d) ICOM_CALL_(CreatePalette,p,(p,a,b,c,d)) 132005b261ecSmrg#define IDirectDraw_CreateSurface(p,a,b,c) ICOM_CALL_(CreateSurface,p,(p,a,b,c)) 132105b261ecSmrg#define IDirectDraw_DuplicateSurface(p,a,b) ICOM_CALL_(DuplicateSurface,p,(p,a,b)) 132205b261ecSmrg#define IDirectDraw_EnumDisplayModes(p,a,b,c,d) ICOM_CALL_(EnumDisplayModes,p,(p,a,b,c,d)) 132305b261ecSmrg#define IDirectDraw_EnumSurfaces(p,a,b,c,d) ICOM_CALL_(EnumSurfaces,p,(p,a,b,c,d)) 132405b261ecSmrg#define IDirectDraw_FlipToGDISurface(p) ICOM_CALL_(FlipToGDISurface,p,(p)) 132505b261ecSmrg#define IDirectDraw_GetCaps(p,a,b) ICOM_CALL_(GetCaps,p,(p,a,b)) 132605b261ecSmrg#define IDirectDraw_GetDisplayMode(p,a) ICOM_CALL_(GetDisplayMode,p,(p,a)) 132705b261ecSmrg#define IDirectDraw_GetFourCCCodes(p,a,b) ICOM_CALL_(GetFourCCCodes,p,(p,a,b)) 132805b261ecSmrg#define IDirectDraw_GetGDISurface(p,a) ICOM_CALL_(GetGDISurface,p,(p,a)) 132905b261ecSmrg#define IDirectDraw_GetMonitorFrequency(p,a) ICOM_CALL_(GetMonitorFrequency,p,(p,a)) 133005b261ecSmrg#define IDirectDraw_GetScanLine(p,a) ICOM_CALL_(GetScanLine,p,(p,a)) 133105b261ecSmrg#define IDirectDraw_GetVerticalBlankStatus(p,a) ICOM_CALL_(GetVerticalBlankStatus,p,(p,a)) 133205b261ecSmrg#define IDirectDraw_Initialize(p,a) ICOM_CALL_(Initialize,p,(p,a)) 133305b261ecSmrg#define IDirectDraw_RestoreDisplayMode(p) ICOM_CALL_(RestoreDisplayMode,p,(p)) 133405b261ecSmrg#define IDirectDraw_SetCooperativeLevel(p,a,b) ICOM_CALL_(SetCooperativeLevel,p,(p,a,b)) 133505b261ecSmrg#define IDirectDraw_SetDisplayMode(p,a,b,c) ICOM_CALL_(SetDisplayMode,p,(p,a,b,c)) 133605b261ecSmrg#define IDirectDraw_WaitForVerticalBlank(p,a,b) ICOM_CALL_(WaitForVerticalBlank,p,(p,a,b)) 133705b261ecSmrg 133805b261ecSmrg/* flags for Lock() */ 133905b261ecSmrg#define DDLOCK_SURFACEMEMORYPTR 0x00000000 134005b261ecSmrg#define DDLOCK_WAIT 0x00000001 134105b261ecSmrg#define DDLOCK_EVENT 0x00000002 134205b261ecSmrg#define DDLOCK_READONLY 0x00000010 134305b261ecSmrg#define DDLOCK_WRITEONLY 0x00000020 134405b261ecSmrg#define DDLOCK_NOSYSLOCK 0x00000800 134505b261ecSmrg 134605b261ecSmrg/***************************************************************************** 134705b261ecSmrg * IDirectDraw2 interface 134805b261ecSmrg */ 134935c4bbdfSmrg/* Note: IDirectDraw2 cannot derive from IDirectDraw because the number of 135005b261ecSmrg * arguments of SetDisplayMode has changed ! 135105b261ecSmrg */ 135205b261ecSmrg#undef INTERFACE 135305b261ecSmrg#define INTERFACE IDirectDraw2 135435c4bbdfSmrg DECLARE_INTERFACE_(IDirectDraw2, IUnknown) { 135535c4bbdfSmrg STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID *) PURE; 135635c4bbdfSmrg STDMETHOD_(ULONG, AddRef) (THIS) PURE; 135735c4bbdfSmrg STDMETHOD_(ULONG, Release) (THIS) PURE; 135835c4bbdfSmrg STDMETHOD(Compact) (THIS) PURE; 135935c4bbdfSmrg STDMETHOD(CreateClipper) (THIS_ DWORD dwFlags, 136035c4bbdfSmrg LPDIRECTDRAWCLIPPER * lplpDDClipper, 136135c4bbdfSmrg IUnknown * pUnkOuter) PURE; 136235c4bbdfSmrg STDMETHOD(CreatePalette) (THIS_ DWORD dwFlags, 136335c4bbdfSmrg LPPALETTEENTRY lpColorTable, 136435c4bbdfSmrg LPDIRECTDRAWPALETTE * lplpDDPalette, 136535c4bbdfSmrg IUnknown * pUnkOuter) PURE; 136635c4bbdfSmrg STDMETHOD(CreateSurface) (THIS_ LPDDSURFACEDESC lpDDSurfaceDesc, 136735c4bbdfSmrg LPDIRECTDRAWSURFACE2 * lplpDDSurface, 136835c4bbdfSmrg IUnknown * pUnkOuter) PURE; 136935c4bbdfSmrg STDMETHOD(DuplicateSurface) (THIS_ LPDIRECTDRAWSURFACE2 lpDDSurface, 137035c4bbdfSmrg LPDIRECTDRAWSURFACE2 * 137135c4bbdfSmrg lplpDupDDSurface) PURE; 137235c4bbdfSmrg STDMETHOD(EnumDisplayModes) (THIS_ DWORD dwFlags, 137335c4bbdfSmrg LPDDSURFACEDESC lpDDSurfaceDesc, 137435c4bbdfSmrg LPVOID lpContext, 137535c4bbdfSmrg LPDDENUMMODESCALLBACK lpEnumModesCallback) 137635c4bbdfSmrg PURE; 137735c4bbdfSmrg STDMETHOD(EnumSurfaces) (THIS_ DWORD dwFlags, LPDDSURFACEDESC lpDDSD, 137835c4bbdfSmrg LPVOID lpContext, 137935c4bbdfSmrg LPDDENUMSURFACESCALLBACK 138035c4bbdfSmrg lpEnumSurfacesCallback) PURE; 138135c4bbdfSmrg STDMETHOD(FlipToGDISurface) (THIS) PURE; 138235c4bbdfSmrg STDMETHOD(GetCaps) (THIS_ LPDDCAPS lpDDDriverCaps, 138335c4bbdfSmrg LPDDCAPS lpDDHELCaps) PURE; 138435c4bbdfSmrg STDMETHOD(GetDisplayMode) (THIS_ LPDDSURFACEDESC lpDDSurfaceDesc) PURE; 138535c4bbdfSmrg STDMETHOD(GetFourCCCodes) (THIS_ LPDWORD lpNumCodes, 138635c4bbdfSmrg LPDWORD lpCodes) PURE; 138735c4bbdfSmrg STDMETHOD(GetGDISurface) (THIS_ LPDIRECTDRAWSURFACE2 * 138835c4bbdfSmrg lplpGDIDDSurface) PURE; 138935c4bbdfSmrg STDMETHOD(GetMonitorFrequency) (THIS_ LPDWORD lpdwFrequency) PURE; 139035c4bbdfSmrg STDMETHOD(GetScanLine) (THIS_ LPDWORD lpdwScanLine) PURE; 139135c4bbdfSmrg STDMETHOD(GetVerticalBlankStatus) (THIS_ BOOL * lpbIsInVB) PURE; 139235c4bbdfSmrg STDMETHOD(Initialize) (THIS_ GUID * lpGUID) PURE; 139335c4bbdfSmrg STDMETHOD(RestoreDisplayMode) (THIS) PURE; 139435c4bbdfSmrg STDMETHOD(SetCooperativeLevel) (THIS_ HWND hWnd, DWORD dwFlags) PURE; 139535c4bbdfSmrg STDMETHOD(SetDisplayMode) (THIS_ DWORD dwWidth, DWORD dwHeight, 139635c4bbdfSmrg DWORD dwBPP, DWORD dwRefreshRate, 139735c4bbdfSmrg DWORD dwFlags) PURE; 139835c4bbdfSmrg STDMETHOD(WaitForVerticalBlank) (THIS_ DWORD dwFlags, 139935c4bbdfSmrg HANDLE hEvent) PURE; 140035c4bbdfSmrg 140135c4bbdfSmrg STDMETHOD(GetAvailableVidMem) (THIS_ LPDDSCAPS lpDDCaps, 140235c4bbdfSmrg LPDWORD lpdwTotal, 140335c4bbdfSmrg LPDWORD lpdwFree) PURE; 140435c4bbdfSmrg }; 140505b261ecSmrg 140605b261ecSmrg /*** IUnknown methods ***/ 140705b261ecSmrg#define IDirectDraw2_QueryInterface(p,a,b) ICOM_CALL_(QueryInterface,p,(p,a,b)) 140805b261ecSmrg#define IDirectDraw2_AddRef(p) ICOM_CALL_(AddRef,p,(p)) 140905b261ecSmrg#define IDirectDraw2_Release(p) ICOM_CALL_(Release,p,(p)) 141005b261ecSmrg /*** IDirectDraw methods ***/ 141105b261ecSmrg#define IDirectDraw2_Compact(p) ICOM_CALL_(Compact,p,(p)) 141205b261ecSmrg#define IDirectDraw2_CreateClipper(p,a,b,c) ICOM_CALL_(CreateClipper,p,(p,a,b,c)) 141305b261ecSmrg#define IDirectDraw2_CreatePalette(p,a,b,c,d) ICOM_CALL_(CreatePalette,p,(p,a,b,c,d)) 141405b261ecSmrg#define IDirectDraw2_CreateSurface(p,a,b,c) ICOM_CALL_(CreateSurface,p,(p,a,b,c)) 141505b261ecSmrg#define IDirectDraw2_DuplicateSurface(p,a,b) ICOM_CALL_(DuplicateSurface,p,(p,a,b)) 141605b261ecSmrg#define IDirectDraw2_EnumDisplayModes(p,a,b,c,d) ICOM_CALL_(EnumDisplayModes,p,(p,a,b,c,d)) 141705b261ecSmrg#define IDirectDraw2_EnumSurfaces(p,a,b,c,d) ICOM_CALL_(EnumSurfaces,p,(p,a,b,c,d)) 141805b261ecSmrg#define IDirectDraw2_FlipToGDISurface(p) ICOM_CALL_(FlipToGDISurface,p,(p)) 141905b261ecSmrg#define IDirectDraw2_GetCaps(p,a,b) ICOM_CALL_(GetCaps,p,(p,a,b)) 142005b261ecSmrg#define IDirectDraw2_GetDisplayMode(p,a) ICOM_CALL_(GetDisplayMode,p,(p,a)) 142105b261ecSmrg#define IDirectDraw2_GetFourCCCodes(p,a,b) ICOM_CALL_(GetFourCCCodes,p,(p,a,b)) 142205b261ecSmrg#define IDirectDraw2_GetGDISurface(p,a) ICOM_CALL_(GetGDISurface,p,(p,a)) 142305b261ecSmrg#define IDirectDraw2_GetMonitorFrequency(p,a) ICOM_CALL_(GetMonitorFrequency,p,(p,a)) 142405b261ecSmrg#define IDirectDraw2_GetScanLine(p,a) ICOM_CALL_(GetScanLine,p,(p,a)) 142505b261ecSmrg#define IDirectDraw2_GetVerticalBlankStatus(p,a) ICOM_CALL_(GetVerticalBlankStatus,p,(p,a)) 142605b261ecSmrg#define IDirectDraw2_Initialize(p,a) ICOM_CALL_(Initialize,p,(p,a)) 142705b261ecSmrg#define IDirectDraw2_RestoreDisplayMode(p) ICOM_CALL_(RestoreDisplayMode,p,(p)) 142805b261ecSmrg#define IDirectDraw2_SetCooperativeLevel(p,a,b) ICOM_CALL_(SetCooperativeLevel,p,(p,a,b)) 142905b261ecSmrg#define IDirectDraw2_SetDisplayMode(p,a,b,c,d,e) ICOM_CALL_(SetDisplayMode,p,(p,a,b,c,d,e)) 143005b261ecSmrg#define IDirectDraw2_WaitForVerticalBlank(p,a,b) ICOM_CALL_(WaitForVerticalBlank,p,(p,a,b)) 143105b261ecSmrg/*** IDirectDraw2 methods ***/ 143205b261ecSmrg#define IDirectDraw2_GetAvailableVidMem(p,a,b,c) ICOM_CALL_(GetAvailableVidMem,p,(p,a,b,c)) 143305b261ecSmrg 143405b261ecSmrg/***************************************************************************** 143505b261ecSmrg * IDirectDraw4 interface 143605b261ecSmrg */ 143705b261ecSmrg#undef INTERFACE 143805b261ecSmrg#define INTERFACE IDirectDraw4 143935c4bbdfSmrg DECLARE_INTERFACE_(IDirectDraw4, IUnknown) { 144035c4bbdfSmrg STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID *) PURE; 144135c4bbdfSmrg STDMETHOD_(ULONG, AddRef) (THIS) PURE; 144235c4bbdfSmrg STDMETHOD_(ULONG, Release) (THIS) PURE; 144335c4bbdfSmrg STDMETHOD(Compact) (THIS) PURE; 144435c4bbdfSmrg STDMETHOD(CreateClipper) (THIS_ DWORD dwFlags, 144535c4bbdfSmrg LPDIRECTDRAWCLIPPER * lplpDDClipper, 144635c4bbdfSmrg IUnknown * pUnkOuter) PURE; 144735c4bbdfSmrg STDMETHOD(CreatePalette) (THIS_ DWORD dwFlags, 144835c4bbdfSmrg LPPALETTEENTRY lpColorTable, 144935c4bbdfSmrg LPDIRECTDRAWPALETTE * lplpDDPalette, 145035c4bbdfSmrg IUnknown * pUnkOuter) PURE; 145135c4bbdfSmrg STDMETHOD(CreateSurface) (THIS_ LPDDSURFACEDESC2 lpDDSurfaceDesc, 145235c4bbdfSmrg LPDIRECTDRAWSURFACE4 * lplpDDSurface, 145335c4bbdfSmrg IUnknown * pUnkOuter) PURE; 145435c4bbdfSmrg STDMETHOD(DuplicateSurface) (THIS_ LPDIRECTDRAWSURFACE4 lpDDSurface, 145535c4bbdfSmrg LPDIRECTDRAWSURFACE4 * 145635c4bbdfSmrg lplpDupDDSurface) PURE; 145735c4bbdfSmrg STDMETHOD(EnumDisplayModes) (THIS_ DWORD dwFlags, 145835c4bbdfSmrg LPDDSURFACEDESC2 lpDDSurfaceDesc, 145935c4bbdfSmrg LPVOID lpContext, 146035c4bbdfSmrg LPDDENUMMODESCALLBACK2 lpEnumModesCallback) 146135c4bbdfSmrg PURE; 146235c4bbdfSmrg STDMETHOD(EnumSurfaces) (THIS_ DWORD dwFlags, LPDDSURFACEDESC2 lpDDSD, 146335c4bbdfSmrg LPVOID lpContext, 146435c4bbdfSmrg LPDDENUMSURFACESCALLBACK2 146535c4bbdfSmrg lpEnumSurfacesCallback) PURE; 146635c4bbdfSmrg STDMETHOD(FlipToGDISurface) (THIS) PURE; 146735c4bbdfSmrg STDMETHOD(GetCaps) (THIS_ LPDDCAPS lpDDDriverCaps, 146835c4bbdfSmrg LPDDCAPS lpDDHELCaps) PURE; 146935c4bbdfSmrg STDMETHOD(GetDisplayMode) (THIS_ LPDDSURFACEDESC2 lpDDSurfaceDesc) PURE; 147035c4bbdfSmrg STDMETHOD(GetFourCCCodes) (THIS_ LPDWORD lpNumCodes, 147135c4bbdfSmrg LPDWORD lpCodes) PURE; 147235c4bbdfSmrg STDMETHOD(GetGDISurface) (THIS_ LPDIRECTDRAWSURFACE4 * 147335c4bbdfSmrg lplpGDIDDSurface) PURE; 147435c4bbdfSmrg STDMETHOD(GetMonitorFrequency) (THIS_ LPDWORD lpdwFrequency) PURE; 147535c4bbdfSmrg STDMETHOD(GetScanLine) (THIS_ LPDWORD lpdwScanLine) PURE; 147635c4bbdfSmrg STDMETHOD(GetVerticalBlankStatus) (THIS_ BOOL * lpbIsInVB) PURE; 147735c4bbdfSmrg STDMETHOD(Initialize) (THIS_ GUID * lpGUID) PURE; 147835c4bbdfSmrg STDMETHOD(RestoreDisplayMode) (THIS) PURE; 147935c4bbdfSmrg STDMETHOD(SetCooperativeLevel) (THIS_ HWND hWnd, DWORD dwFlags) PURE; 148035c4bbdfSmrg STDMETHOD(SetDisplayMode) (THIS_ DWORD dwWidth, DWORD dwHeight, 148135c4bbdfSmrg DWORD dwBPP, DWORD dwRefreshRate, 148235c4bbdfSmrg DWORD dwFlags) PURE; 148335c4bbdfSmrg STDMETHOD(WaitForVerticalBlank) (THIS_ DWORD dwFlags, 148435c4bbdfSmrg HANDLE hEvent) PURE; 148535c4bbdfSmrg 148635c4bbdfSmrg STDMETHOD(GetAvailableVidMem) (THIS_ LPDDSCAPS2 lpDDCaps, 148735c4bbdfSmrg LPDWORD lpdwTotal, 148835c4bbdfSmrg LPDWORD lpdwFree) PURE; 148935c4bbdfSmrg 149035c4bbdfSmrg STDMETHOD(GetSurfaceFromDC) (THIS_ HDC, LPDIRECTDRAWSURFACE4 *) PURE; 149135c4bbdfSmrg STDMETHOD(RestoreAllSurfaces) (THIS) PURE; 149235c4bbdfSmrg STDMETHOD(TestCooperativeLevel) (THIS) PURE; 149335c4bbdfSmrg STDMETHOD(GetDeviceIdentifier) (THIS_ LPDDDEVICEIDENTIFIER, DWORD) PURE; 149435c4bbdfSmrg }; 149505b261ecSmrg 149605b261ecSmrg /*** IUnknown methods ***/ 149705b261ecSmrg#define IDirectDraw4_QueryInterface(p,a,b) ICOM_CALL_(QueryInterface,p,(p,a,b)) 149805b261ecSmrg#define IDirectDraw4_AddRef(p) ICOM_CALL_(AddRef,p,(p)) 149905b261ecSmrg#define IDirectDraw4_Release(p) ICOM_CALL_(Release,p,(p)) 150005b261ecSmrg /*** IDirectDraw methods ***/ 150105b261ecSmrg#define IDirectDraw4_Compact(p) ICOM_CALL_(Compact,p,(p)) 150205b261ecSmrg#define IDirectDraw4_CreateClipper(p,a,b,c) ICOM_CALL_(CreateClipper,p,(p,a,b,c)) 150305b261ecSmrg#define IDirectDraw4_CreatePalette(p,a,b,c,d) ICOM_CALL_(CreatePalette,p,(p,a,b,c,d)) 150405b261ecSmrg#define IDirectDraw4_CreateSurface(p,a,b,c) ICOM_CALL_(CreateSurface,p,(p,a,b,c)) 150505b261ecSmrg#define IDirectDraw4_DuplicateSurface(p,a,b) ICOM_CALL_(DuplicateSurface,p,(p,a,b)) 150605b261ecSmrg#define IDirectDraw4_EnumDisplayModes(p,a,b,c,d) ICOM_CALL_(EnumDisplayModes,p,(p,a,b,c,d)) 150705b261ecSmrg#define IDirectDraw4_EnumSurfaces(p,a,b,c,d) ICOM_CALL_(EnumSurfaces,p,(p,a,b,c,d)) 150805b261ecSmrg#define IDirectDraw4_FlipToGDISurface(p) ICOM_CALL_(FlipToGDISurface,p,(p)) 150905b261ecSmrg#define IDirectDraw4_GetCaps(p,a,b) ICOM_CALL_(GetCaps,p,(p,a,b)) 151005b261ecSmrg#define IDirectDraw4_GetDisplayMode(p,a) ICOM_CALL_(GetDisplayMode,p,(p,a)) 151105b261ecSmrg#define IDirectDraw4_GetFourCCCodes(p,a,b) ICOM_CALL_(GetFourCCCodes,p,(p,a,b)) 151205b261ecSmrg#define IDirectDraw4_GetGDISurface(p,a) ICOM_CALL_(GetGDISurface,p,(p,a)) 151305b261ecSmrg#define IDirectDraw4_GetMonitorFrequency(p,a) ICOM_CALL_(GetMonitorFrequency,p,(p,a)) 151405b261ecSmrg#define IDirectDraw4_GetScanLine(p,a) ICOM_CALL_(GetScanLine,p,(p,a)) 151505b261ecSmrg#define IDirectDraw4_GetVerticalBlankStatus(p,a) ICOM_CALL_(GetVerticalBlankStatus,p,(p,a)) 151605b261ecSmrg#define IDirectDraw4_Initialize(p,a) ICOM_CALL_(Initialize,p,(p,a)) 151705b261ecSmrg#define IDirectDraw4_RestoreDisplayMode(p) ICOM_CALL_(RestoreDisplayMode,p,(p)) 151805b261ecSmrg#define IDirectDraw4_SetCooperativeLevel(p,a,b) ICOM_CALL_(SetCooperativeLevel,p,(p,a,b)) 151905b261ecSmrg#define IDirectDraw4_SetDisplayMode(p,a,b,c,d,e) ICOM_CALL_(SetDisplayMode,p,(p,a,b,c,d,e)) 152005b261ecSmrg#define IDirectDraw4_WaitForVerticalBlank(p,a,b) ICOM_CALL_(WaitForVerticalBlank,p,(p,a,b)) 152105b261ecSmrg/*** IDirectDraw2 methods ***/ 152205b261ecSmrg#define IDirectDraw4_GetAvailableVidMem(p,a,b,c) ICOM_CALL_(GetAvailableVidMem,p,(p,a,b,c)) 152305b261ecSmrg/*** IDirectDraw4 methods ***/ 152405b261ecSmrg#define IDirectDraw4_GetSurfaceFromDC(p,a,b) ICOM_CALL_(GetSurfaceFromDC,p,(p,a,b)) 152535c4bbdfSmrg#define IDirectDraw4_RestoreAllSurfaces(p) ICOM_CALL_(RestoreAllSurfaces,p,(p)) 152605b261ecSmrg#define IDirectDraw4_TestCooperativeLevel(p) ICOM_CALL_(TestCooperativeLevel,p,(p)) 152705b261ecSmrg#define IDirectDraw4_GetDeviceIdentifier(p,a,b) ICOM_CALL_(GetDeviceIdentifier,p,(p,a,b)) 152805b261ecSmrg 152905b261ecSmrg/***************************************************************************** 153005b261ecSmrg * IDirectDraw7 interface 153105b261ecSmrg */ 153205b261ecSmrg/* Note: IDirectDraw7 cannot derive from IDirectDraw4; it is even documented 153305b261ecSmrg * as not interchangeable with earlier DirectDraw interfaces. 153405b261ecSmrg */ 153505b261ecSmrg#undef INTERFACE 153605b261ecSmrg#define INTERFACE IDirectDraw7 153735c4bbdfSmrg DECLARE_INTERFACE_(IDirectDraw7, IUnknown) { 153835c4bbdfSmrg STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID *) PURE; 153935c4bbdfSmrg STDMETHOD_(ULONG, AddRef) (THIS) PURE; 154035c4bbdfSmrg STDMETHOD_(ULONG, Release) (THIS) PURE; 154135c4bbdfSmrg STDMETHOD(Compact) (THIS) PURE; 154235c4bbdfSmrg STDMETHOD(CreateClipper) (THIS_ DWORD dwFlags, 154335c4bbdfSmrg LPDIRECTDRAWCLIPPER * lplpDDClipper, 154435c4bbdfSmrg IUnknown * pUnkOuter) PURE; 154535c4bbdfSmrg STDMETHOD(CreatePalette) (THIS_ DWORD dwFlags, 154635c4bbdfSmrg LPPALETTEENTRY lpColorTable, 154735c4bbdfSmrg LPDIRECTDRAWPALETTE * lplpDDPalette, 154835c4bbdfSmrg IUnknown * pUnkOuter) PURE; 154935c4bbdfSmrg STDMETHOD(CreateSurface) (THIS_ LPDDSURFACEDESC2 lpDDSurfaceDesc, 155035c4bbdfSmrg LPDIRECTDRAWSURFACE7 * lplpDDSurface, 155135c4bbdfSmrg IUnknown * pUnkOuter) PURE; 155235c4bbdfSmrg STDMETHOD(DuplicateSurface) (THIS_ LPDIRECTDRAWSURFACE7 lpDDSurface, 155335c4bbdfSmrg LPDIRECTDRAWSURFACE7 * 155435c4bbdfSmrg lplpDupDDSurface) PURE; 155535c4bbdfSmrg STDMETHOD(EnumDisplayModes) (THIS_ DWORD dwFlags, 155635c4bbdfSmrg LPDDSURFACEDESC2 lpDDSurfaceDesc, 155735c4bbdfSmrg LPVOID lpContext, 155835c4bbdfSmrg LPDDENUMMODESCALLBACK2 lpEnumModesCallback) 155935c4bbdfSmrg PURE; 156035c4bbdfSmrg STDMETHOD(EnumSurfaces) (THIS_ DWORD dwFlags, LPDDSURFACEDESC2 lpDDSD, 156135c4bbdfSmrg LPVOID lpContext, 156235c4bbdfSmrg LPDDENUMSURFACESCALLBACK7 156335c4bbdfSmrg lpEnumSurfacesCallback) PURE; 156435c4bbdfSmrg STDMETHOD(FlipToGDISurface) (THIS) PURE; 156535c4bbdfSmrg STDMETHOD(GetCaps) (THIS_ LPDDCAPS lpDDDriverCaps, 156635c4bbdfSmrg LPDDCAPS lpDDHELCaps) PURE; 156735c4bbdfSmrg STDMETHOD(GetDisplayMode) (THIS_ LPDDSURFACEDESC2 lpDDSurfaceDesc) PURE; 156835c4bbdfSmrg STDMETHOD(GetFourCCCodes) (THIS_ LPDWORD lpNumCodes, 156935c4bbdfSmrg LPDWORD lpCodes) PURE; 157035c4bbdfSmrg STDMETHOD(GetGDISurface) (THIS_ LPDIRECTDRAWSURFACE7 * 157135c4bbdfSmrg lplpGDIDDSurface) PURE; 157235c4bbdfSmrg STDMETHOD(GetMonitorFrequency) (THIS_ LPDWORD lpdwFrequency) PURE; 157335c4bbdfSmrg STDMETHOD(GetScanLine) (THIS_ LPDWORD lpdwScanLine) PURE; 157435c4bbdfSmrg STDMETHOD(GetVerticalBlankStatus) (THIS_ BOOL * lpbIsInVB) PURE; 157535c4bbdfSmrg STDMETHOD(Initialize) (THIS_ GUID * lpGUID) PURE; 157635c4bbdfSmrg STDMETHOD(RestoreDisplayMode) (THIS) PURE; 157735c4bbdfSmrg STDMETHOD(SetCooperativeLevel) (THIS_ HWND hWnd, DWORD dwFlags) PURE; 157835c4bbdfSmrg STDMETHOD(SetDisplayMode) (THIS_ DWORD dwWidth, DWORD dwHeight, 157935c4bbdfSmrg DWORD dwBPP, DWORD dwRefreshRate, 158035c4bbdfSmrg DWORD dwFlags) PURE; 158135c4bbdfSmrg STDMETHOD(WaitForVerticalBlank) (THIS_ DWORD dwFlags, 158235c4bbdfSmrg HANDLE hEvent) PURE; 158335c4bbdfSmrg 158435c4bbdfSmrg STDMETHOD(GetAvailableVidMem) (THIS_ LPDDSCAPS2 lpDDCaps, 158535c4bbdfSmrg LPDWORD lpdwTotal, 158635c4bbdfSmrg LPDWORD lpdwFree) PURE; 158735c4bbdfSmrg 158835c4bbdfSmrg STDMETHOD(GetSurfaceFromDC) (THIS_ HDC, LPDIRECTDRAWSURFACE7 *) PURE; 158935c4bbdfSmrg STDMETHOD(RestoreAllSurfaces) (THIS) PURE; 159035c4bbdfSmrg STDMETHOD(TestCooperativeLevel) (THIS) PURE; 159135c4bbdfSmrg STDMETHOD(GetDeviceIdentifier) (THIS_ LPDDDEVICEIDENTIFIER2, 159235c4bbdfSmrg DWORD) PURE; 159335c4bbdfSmrg 159435c4bbdfSmrg STDMETHOD(StartModeTest) (THIS_ LPSIZE, DWORD, DWORD) PURE; 159535c4bbdfSmrg STDMETHOD(EvaluateMode) (THIS_ DWORD, DWORD *) PURE; 159635c4bbdfSmrg }; 159705b261ecSmrg 159805b261ecSmrg /*** IUnknown methods ***/ 159905b261ecSmrg#define IDirectDraw7_QueryInterface(p,a,b) ICOM_CALL_(QueryInterface,p,(p,a,b)) 160005b261ecSmrg#define IDirectDraw7_AddRef(p) ICOM_CALL_(AddRef,p,(p)) 160105b261ecSmrg#define IDirectDraw7_Release(p) ICOM_CALL_(Release,p,(p)) 160205b261ecSmrg /*** IDirectDraw methods ***/ 160305b261ecSmrg#define IDirectDraw7_Compact(p) ICOM_CALL_(Compact,p,(p)) 160405b261ecSmrg#define IDirectDraw7_CreateClipper(p,a,b,c) ICOM_CALL_(CreateClipper,p,(p,a,b,c)) 160505b261ecSmrg#define IDirectDraw7_CreatePalette(p,a,b,c,d) ICOM_CALL_(CreatePalette,p,(p,a,b,c,d)) 160605b261ecSmrg#define IDirectDraw7_CreateSurface(p,a,b,c) ICOM_CALL_(CreateSurface,p,(p,a,b,c)) 160705b261ecSmrg#define IDirectDraw7_DuplicateSurface(p,a,b) ICOM_CALL_(DuplicateSurface,p,(p,a,b)) 160805b261ecSmrg#define IDirectDraw7_EnumDisplayModes(p,a,b,c,d) ICOM_CALL_(EnumDisplayModes,p,(p,a,b,c,d)) 160905b261ecSmrg#define IDirectDraw7_EnumSurfaces(p,a,b,c,d) ICOM_CALL_(EnumSurfaces,p,(p,a,b,c,d)) 161005b261ecSmrg#define IDirectDraw7_FlipToGDISurface(p) ICOM_CALL_(FlipToGDISurface,p,(p)) 161105b261ecSmrg#define IDirectDraw7_GetCaps(p,a,b) ICOM_CALL_(GetCaps,p,(p,a,b)) 161205b261ecSmrg#define IDirectDraw7_GetDisplayMode(p,a) ICOM_CALL_(GetDisplayMode,p,(p,a)) 161305b261ecSmrg#define IDirectDraw7_GetFourCCCodes(p,a,b) ICOM_CALL_(GetFourCCCodes,p,(p,a,b)) 161405b261ecSmrg#define IDirectDraw7_GetGDISurface(p,a) ICOM_CALL_(GetGDISurface,p,(p,a)) 161505b261ecSmrg#define IDirectDraw7_GetMonitorFrequency(p,a) ICOM_CALL_(GetMonitorFrequency,p,(p,a)) 161605b261ecSmrg#define IDirectDraw7_GetScanLine(p,a) ICOM_CALL_(GetScanLine,p,(p,a)) 161705b261ecSmrg#define IDirectDraw7_GetVerticalBlankStatus(p,a) ICOM_CALL_(GetVerticalBlankStatus,p,(p,a)) 161805b261ecSmrg#define IDirectDraw7_Initialize(p,a) ICOM_CALL_(Initialize,p,(p,a)) 161905b261ecSmrg#define IDirectDraw7_RestoreDisplayMode(p) ICOM_CALL_(RestoreDisplayMode,p,(p)) 162005b261ecSmrg#define IDirectDraw7_SetCooperativeLevel(p,a,b) ICOM_CALL_(SetCooperativeLevel,p,(p,a,b)) 162105b261ecSmrg#define IDirectDraw7_SetDisplayMode(p,a,b,c,d,e) ICOM_CALL_(SetDisplayMode,p,(p,a,b,c,d,e)) 162205b261ecSmrg#define IDirectDraw7_WaitForVerticalBlank(p,a,b) ICOM_CALL_(WaitForVerticalBlank,p,(p,a,b)) 162305b261ecSmrg/*** added in IDirectDraw2 ***/ 162405b261ecSmrg#define IDirectDraw7_GetAvailableVidMem(p,a,b,c) ICOM_CALL_(GetAvailableVidMem,p,(p,a,b,c)) 162505b261ecSmrg/*** added in IDirectDraw4 ***/ 162605b261ecSmrg#define IDirectDraw7_GetSurfaceFromDC(p,a,b) ICOM_CALL_(GetSurfaceFromDC,p,(p,a,b)) 162705b261ecSmrg#define IDirectDraw7_RestoreAllSurfaces(p) ICOM_CALL_(RestoreAllSurfaces,p,(p)) 162805b261ecSmrg#define IDirectDraw7_TestCooperativeLevel(p) ICOM_CALL_(TestCooperativeLevel,p,(p)) 162905b261ecSmrg#define IDirectDraw7_GetDeviceIdentifier(p,a,b) ICOM_CALL_(GetDeviceIdentifier,p,(p,a,b)) 163005b261ecSmrg/*** added in IDirectDraw 7 ***/ 163105b261ecSmrg#define IDirectDraw7_StartModeTest(p,a,b,c) ICOM_CALL_(StartModeTest,p,(p,a,b,c)) 163205b261ecSmrg#define IDirectDraw7_EvaluateMode(p,a,b) ICOM_CALL_(EvaluateMode,p,(p,a,b)) 163305b261ecSmrg 163405b261ecSmrg/***************************************************************************** 163505b261ecSmrg * IDirectDrawSurface interface 163605b261ecSmrg */ 163705b261ecSmrg#undef INTERFACE 163805b261ecSmrg#define INTERFACE IDirectDrawSurface 163935c4bbdfSmrg DECLARE_INTERFACE_(IDirectDrawSurface, IUnknown) { 164035c4bbdfSmrg STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID *) PURE; 164135c4bbdfSmrg STDMETHOD_(ULONG, AddRef) (THIS) PURE; 164235c4bbdfSmrg STDMETHOD_(ULONG, Release) (THIS) PURE; 164335c4bbdfSmrg STDMETHOD(AddAttachedSurface) (THIS_ LPDIRECTDRAWSURFACE 164435c4bbdfSmrg lpDDSAttachedSurface) PURE; 164535c4bbdfSmrg STDMETHOD(AddOverlayDirtyRect) (THIS_ LPRECT lpRect) PURE; 164635c4bbdfSmrg STDMETHOD(Blt) (THIS_ LPRECT lpDestRect, 164735c4bbdfSmrg LPDIRECTDRAWSURFACE lpDDSrcSurface, LPRECT lpSrcRect, 164835c4bbdfSmrg DWORD dwFlags, LPDDBLTFX lpDDBltFx) PURE; 164935c4bbdfSmrg STDMETHOD(BltBatch) (THIS_ LPDDBLTBATCH lpDDBltBatch, DWORD dwCount, 165035c4bbdfSmrg DWORD dwFlags) PURE; 165135c4bbdfSmrg STDMETHOD(BltFast) (THIS_ DWORD dwX, DWORD dwY, 165235c4bbdfSmrg LPDIRECTDRAWSURFACE lpDDSrcSurface, 165335c4bbdfSmrg LPRECT lpSrcRect, DWORD dwTrans) PURE; 165435c4bbdfSmrg STDMETHOD(DeleteAttachedSurface) (THIS_ DWORD dwFlags, 165535c4bbdfSmrg LPDIRECTDRAWSURFACE 165635c4bbdfSmrg lpDDSAttachedSurface) PURE; 165735c4bbdfSmrg STDMETHOD(EnumAttachedSurfaces) (THIS_ LPVOID lpContext, 165835c4bbdfSmrg LPDDENUMSURFACESCALLBACK 165935c4bbdfSmrg lpEnumSurfacesCallback) PURE; 166035c4bbdfSmrg STDMETHOD(EnumOverlayZOrders) (THIS_ DWORD dwFlags, LPVOID lpContext, 166135c4bbdfSmrg LPDDENUMSURFACESCALLBACK lpfnCallback) 166235c4bbdfSmrg PURE; 166335c4bbdfSmrg STDMETHOD(Flip) (THIS_ LPDIRECTDRAWSURFACE lpDDSurfaceTargetOverride, 166435c4bbdfSmrg DWORD dwFlags) PURE; 166535c4bbdfSmrg STDMETHOD(GetAttachedSurface) (THIS_ LPDDSCAPS lpDDSCaps, 166635c4bbdfSmrg LPDIRECTDRAWSURFACE * 166735c4bbdfSmrg lplpDDAttachedSurface) PURE; 166835c4bbdfSmrg STDMETHOD(GetBltStatus) (THIS_ DWORD dwFlags) PURE; 166935c4bbdfSmrg STDMETHOD(GetCaps) (THIS_ LPDDSCAPS lpDDSCaps) PURE; 167035c4bbdfSmrg STDMETHOD(GetClipper) (THIS_ LPDIRECTDRAWCLIPPER * lplpDDClipper) PURE; 167135c4bbdfSmrg STDMETHOD(GetColorKey) (THIS_ DWORD dwFlags, 167235c4bbdfSmrg LPDDCOLORKEY lpDDColorKey) PURE; 167335c4bbdfSmrg STDMETHOD(GetDC) (THIS_ HDC * lphDC) PURE; 167435c4bbdfSmrg STDMETHOD(GetFlipStatus) (THIS_ DWORD dwFlags) PURE; 167535c4bbdfSmrg STDMETHOD(GetOverlayPosition) (THIS_ LPLONG lplX, LPLONG lplY) PURE; 167635c4bbdfSmrg STDMETHOD(GetPalette) (THIS_ LPDIRECTDRAWPALETTE * lplpDDPalette) PURE; 167735c4bbdfSmrg STDMETHOD(GetPixelFormat) (THIS_ LPDDPIXELFORMAT lpDDPixelFormat) PURE; 167835c4bbdfSmrg STDMETHOD(GetSurfaceDesc) (THIS_ LPDDSURFACEDESC lpDDSurfaceDesc) PURE; 167935c4bbdfSmrg STDMETHOD(Initialize) (THIS_ LPDIRECTDRAW lpDD, 168035c4bbdfSmrg LPDDSURFACEDESC lpDDSurfaceDesc) PURE; 168135c4bbdfSmrg STDMETHOD(IsLost) (THIS) PURE; 168235c4bbdfSmrg STDMETHOD(Lock) (THIS_ LPRECT lpDestRect, 168335c4bbdfSmrg LPDDSURFACEDESC lpDDSurfaceDesc, DWORD dwFlags, 168435c4bbdfSmrg HANDLE hEvent) PURE; 168535c4bbdfSmrg STDMETHOD(ReleaseDC) (THIS_ HDC hDC) PURE; 168635c4bbdfSmrg STDMETHOD(Restore) (THIS) PURE; 168735c4bbdfSmrg STDMETHOD(SetClipper) (THIS_ LPDIRECTDRAWCLIPPER lpDDClipper) PURE; 168835c4bbdfSmrg STDMETHOD(SetColorKey) (THIS_ DWORD dwFlags, 168935c4bbdfSmrg LPDDCOLORKEY lpDDColorKey) PURE; 169035c4bbdfSmrg STDMETHOD(SetOverlayPosition) (THIS_ LONG lX, LONG lY) PURE; 169135c4bbdfSmrg STDMETHOD(SetPalette) (THIS_ LPDIRECTDRAWPALETTE lpDDPalette) PURE; 169235c4bbdfSmrg STDMETHOD(Unlock) (THIS_ LPVOID lpSurfaceData) PURE; 169335c4bbdfSmrg STDMETHOD(UpdateOverlay) (THIS_ LPRECT lpSrcRect, 169435c4bbdfSmrg LPDIRECTDRAWSURFACE lpDDDestSurface, 169535c4bbdfSmrg LPRECT lpDestRect, DWORD dwFlags, 169635c4bbdfSmrg LPDDOVERLAYFX lpDDOverlayFx) PURE; 169735c4bbdfSmrg STDMETHOD(UpdateOverlayDisplay) (THIS_ DWORD dwFlags) PURE; 169835c4bbdfSmrg STDMETHOD(UpdateOverlayZOrder) (THIS_ DWORD dwFlags, 169935c4bbdfSmrg LPDIRECTDRAWSURFACE lpDDSReference) 170035c4bbdfSmrg PURE; 170135c4bbdfSmrg }; 170205b261ecSmrg 170305b261ecSmrg /*** IUnknown methods ***/ 170405b261ecSmrg#define IDirectDrawSurface_QueryInterface(p,a,b) ICOM_CALL_(QueryInterface,p,(p,a,b)) 170505b261ecSmrg#define IDirectDrawSurface_AddRef(p) ICOM_CALL_(AddRef,p,(p)) 170605b261ecSmrg#define IDirectDrawSurface_Release(p) ICOM_CALL_(Release,p,(p)) 170705b261ecSmrg /*** IDirectDrawSurface methods ***/ 170805b261ecSmrg#define IDirectDrawSurface_AddAttachedSurface(p,a) ICOM_CALL_(AddAttachedSurface,p,(p,a)) 170905b261ecSmrg#define IDirectDrawSurface_AddOverlayDirtyRect(p,a) ICOM_CALL_(AddOverlayDirtyRect,p,(p,a)) 171005b261ecSmrg#define IDirectDrawSurface_Blt(p,a,b,c,d,e) ICOM_CALL_(Blt,p,(p,a,b,c,d,e)) 171105b261ecSmrg#define IDirectDrawSurface_BltBatch(p,a,b,c) ICOM_CALL_(BltBatch,p,(p,a,b,c)) 171205b261ecSmrg#define IDirectDrawSurface_BltFast(p,a,b,c,d,e) ICOM_CALL_(BltFast,p,(p,a,b,c,d,e)) 171305b261ecSmrg#define IDirectDrawSurface_DeleteAttachedSurface(p,a,b) ICOM_CALL_(DeleteAttachedSurface,p,(p,a,b)) 171405b261ecSmrg#define IDirectDrawSurface_EnumAttachedSurfaces(p,a,b) ICOM_CALL_(EnumAttachedSurfaces,p,(p,a,b)) 171505b261ecSmrg#define IDirectDrawSurface_EnumOverlayZOrders(p,a,b,c) ICOM_CALL_(EnumOverlayZOrders,p,(p,a,b,c)) 171605b261ecSmrg#define IDirectDrawSurface_Flip(p,a,b) ICOM_CALL_(Flip,p,(p,a,b)) 171705b261ecSmrg#define IDirectDrawSurface_GetAttachedSurface(p,a,b) ICOM_CALL_(GetAttachedSurface,p,(p,a,b)) 171805b261ecSmrg#define IDirectDrawSurface_GetBltStatus(p,a) ICOM_CALL_(GetBltStatus,p,(p,a)) 171905b261ecSmrg#define IDirectDrawSurface_GetCaps(p,a) ICOM_CALL_(GetCaps,p,(p,a)) 172005b261ecSmrg#define IDirectDrawSurface_GetClipper(p,a) ICOM_CALL_(GetClipper,p,(p,a)) 172105b261ecSmrg#define IDirectDrawSurface_GetColorKey(p,a,b) ICOM_CALL_(GetColorKey,p,(p,a,b)) 172205b261ecSmrg#define IDirectDrawSurface_GetDC(p,a) ICOM_CALL_(GetDC,p,(p,a)) 172305b261ecSmrg#define IDirectDrawSurface_GetFlipStatus(p,a) ICOM_CALL_(GetFlipStatus,p,(p,a)) 172405b261ecSmrg#define IDirectDrawSurface_GetOverlayPosition(p,a,b) ICOM_CALL_(GetOverlayPosition,p,(p,a,b)) 172505b261ecSmrg#define IDirectDrawSurface_GetPalette(p,a) ICOM_CALL_(GetPalette,p,(p,a)) 172605b261ecSmrg#define IDirectDrawSurface_GetPixelFormat(p,a) ICOM_CALL_(GetPixelFormat,p,(p,a)) 172705b261ecSmrg#define IDirectDrawSurface_GetSurfaceDesc(p,a) ICOM_CALL_(GetSurfaceDesc,p,(p,a)) 172805b261ecSmrg#define IDirectDrawSurface_Initialize(p,a,b) ICOM_CALL_(Initialize,p,(p,a,b)) 172905b261ecSmrg#define IDirectDrawSurface_IsLost(p) ICOM_CALL_(IsLost,p,(p)) 173005b261ecSmrg#define IDirectDrawSurface_Lock(p,a,b,c,d) ICOM_CALL_(Lock,p,(p,a,b,c,d)) 173105b261ecSmrg#define IDirectDrawSurface_ReleaseDC(p,a) ICOM_CALL_(ReleaseDC,p,(p,a)) 173205b261ecSmrg#define IDirectDrawSurface_Restore(p) ICOM_CALL_(Restore,p,(p)) 173305b261ecSmrg#define IDirectDrawSurface_SetClipper(p,a) ICOM_CALL_(SetClipper,p,(p,a)) 173405b261ecSmrg#define IDirectDrawSurface_SetColorKey(p,a,b) ICOM_CALL_(SetColorKey,p,(p,a,b)) 173505b261ecSmrg#define IDirectDrawSurface_SetOverlayPosition(p,a,b) ICOM_CALL_(SetOverlayPosition,p,(p,a,b)) 173605b261ecSmrg#define IDirectDrawSurface_SetPalette(p,a) ICOM_CALL_(SetPalette,p,(p,a)) 173705b261ecSmrg#define IDirectDrawSurface_Unlock(p,a) ICOM_CALL_(Unlock,p,(p,a)) 173805b261ecSmrg#define IDirectDrawSurface_UpdateOverlay(p,a,b,c,d,e) ICOM_CALL_(UpdateOverlay,p,(p,a,b,c,d,e)) 173905b261ecSmrg#define IDirectDrawSurface_UpdateOverlayDisplay(p,a) ICOM_CALL_(UpdateOverlayDisplay,p,(p,a)) 174005b261ecSmrg#define IDirectDrawSurface_UpdateOverlayZOrder(p,a,b) ICOM_CALL_(UpdateOverlayZOrder,p,(p,a,b)) 174105b261ecSmrg 174205b261ecSmrg/***************************************************************************** 174305b261ecSmrg * IDirectDrawSurface2 interface 174405b261ecSmrg */ 174535c4bbdfSmrg/* Cannot inherit from IDirectDrawSurface because the LPDIRECTDRAWSURFACE parameters 174605b261ecSmrg * have been converted to LPDIRECTDRAWSURFACE2. 174705b261ecSmrg */ 174805b261ecSmrg#undef INTERFACE 174905b261ecSmrg#define INTERFACE IDirectDrawSurface2 175035c4bbdfSmrg DECLARE_INTERFACE_(IDirectDrawSurface2, IUnknown) { 175135c4bbdfSmrg STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID *) PURE; 175235c4bbdfSmrg STDMETHOD_(ULONG, AddRef) (THIS) PURE; 175335c4bbdfSmrg STDMETHOD_(ULONG, Release) (THIS) PURE; 175435c4bbdfSmrg STDMETHOD(AddAttachedSurface) (THIS_ LPDIRECTDRAWSURFACE2 175535c4bbdfSmrg lpDDSAttachedSurface) PURE; 175635c4bbdfSmrg STDMETHOD(AddOverlayDirtyRect) (THIS_ LPRECT lpRect) PURE; 175735c4bbdfSmrg STDMETHOD(Blt) (THIS_ LPRECT lpDestRect, 175835c4bbdfSmrg LPDIRECTDRAWSURFACE2 lpDDSrcSurface, LPRECT lpSrcRect, 175935c4bbdfSmrg DWORD dwFlags, LPDDBLTFX lpDDBltFx) PURE; 176035c4bbdfSmrg STDMETHOD(BltBatch) (THIS_ LPDDBLTBATCH lpDDBltBatch, DWORD dwCount, 176135c4bbdfSmrg DWORD dwFlags) PURE; 176235c4bbdfSmrg STDMETHOD(BltFast) (THIS_ DWORD dwX, DWORD dwY, 176335c4bbdfSmrg LPDIRECTDRAWSURFACE2 lpDDSrcSurface, 176435c4bbdfSmrg LPRECT lpSrcRect, DWORD dwTrans) PURE; 176535c4bbdfSmrg STDMETHOD(DeleteAttachedSurface) (THIS_ DWORD dwFlags, 176635c4bbdfSmrg LPDIRECTDRAWSURFACE2 176735c4bbdfSmrg lpDDSAttachedSurface) PURE; 176835c4bbdfSmrg STDMETHOD(EnumAttachedSurfaces) (THIS_ LPVOID lpContext, 176935c4bbdfSmrg LPDDENUMSURFACESCALLBACK 177035c4bbdfSmrg lpEnumSurfacesCallback) PURE; 177135c4bbdfSmrg STDMETHOD(EnumOverlayZOrders) (THIS_ DWORD dwFlags, LPVOID lpContext, 177235c4bbdfSmrg LPDDENUMSURFACESCALLBACK lpfnCallback) 177335c4bbdfSmrg PURE; 177435c4bbdfSmrg STDMETHOD(Flip) (THIS_ LPDIRECTDRAWSURFACE2 lpDDSurfaceTargetOverride, 177535c4bbdfSmrg DWORD dwFlags) PURE; 177635c4bbdfSmrg STDMETHOD(GetAttachedSurface) (THIS_ LPDDSCAPS lpDDSCaps, 177735c4bbdfSmrg LPDIRECTDRAWSURFACE2 * 177835c4bbdfSmrg lplpDDAttachedSurface) PURE; 177935c4bbdfSmrg STDMETHOD(GetBltStatus) (THIS_ DWORD dwFlags) PURE; 178035c4bbdfSmrg STDMETHOD(GetCaps) (THIS_ LPDDSCAPS lpDDSCaps) PURE; 178135c4bbdfSmrg STDMETHOD(GetClipper) (THIS_ LPDIRECTDRAWCLIPPER * lplpDDClipper) PURE; 178235c4bbdfSmrg STDMETHOD(GetColorKey) (THIS_ DWORD dwFlags, 178335c4bbdfSmrg LPDDCOLORKEY lpDDColorKey) PURE; 178435c4bbdfSmrg STDMETHOD(GetDC) (THIS_ HDC * lphDC) PURE; 178535c4bbdfSmrg STDMETHOD(GetFlipStatus) (THIS_ DWORD dwFlags) PURE; 178635c4bbdfSmrg STDMETHOD(GetOverlayPosition) (THIS_ LPLONG lplX, LPLONG lplY) PURE; 178735c4bbdfSmrg STDMETHOD(GetPalette) (THIS_ LPDIRECTDRAWPALETTE * lplpDDPalette) PURE; 178835c4bbdfSmrg STDMETHOD(GetPixelFormat) (THIS_ LPDDPIXELFORMAT lpDDPixelFormat) PURE; 178935c4bbdfSmrg STDMETHOD(GetSurfaceDesc) (THIS_ LPDDSURFACEDESC lpDDSurfaceDesc) PURE; 179035c4bbdfSmrg STDMETHOD(Initialize) (THIS_ LPDIRECTDRAW lpDD, 179135c4bbdfSmrg LPDDSURFACEDESC lpDDSurfaceDesc) PURE; 179235c4bbdfSmrg STDMETHOD(IsLost) (THIS) PURE; 179335c4bbdfSmrg STDMETHOD(Lock) (THIS_ LPRECT lpDestRect, 179435c4bbdfSmrg LPDDSURFACEDESC lpDDSurfaceDesc, DWORD dwFlags, 179535c4bbdfSmrg HANDLE hEvent) PURE; 179635c4bbdfSmrg STDMETHOD(ReleaseDC) (THIS_ HDC hDC) PURE; 179735c4bbdfSmrg STDMETHOD(Restore) (THIS) PURE; 179835c4bbdfSmrg STDMETHOD(SetClipper) (THIS_ LPDIRECTDRAWCLIPPER lpDDClipper) PURE; 179935c4bbdfSmrg STDMETHOD(SetColorKey) (THIS_ DWORD dwFlags, 180035c4bbdfSmrg LPDDCOLORKEY lpDDColorKey) PURE; 180135c4bbdfSmrg STDMETHOD(SetOverlayPosition) (THIS_ LONG lX, LONG lY) PURE; 180235c4bbdfSmrg STDMETHOD(SetPalette) (THIS_ LPDIRECTDRAWPALETTE lpDDPalette) PURE; 180335c4bbdfSmrg STDMETHOD(Unlock) (THIS_ LPVOID lpSurfaceData) PURE; 180435c4bbdfSmrg STDMETHOD(UpdateOverlay) (THIS_ LPRECT lpSrcRect, 180535c4bbdfSmrg LPDIRECTDRAWSURFACE2 lpDDDestSurface, 180635c4bbdfSmrg LPRECT lpDestRect, DWORD dwFlags, 180735c4bbdfSmrg LPDDOVERLAYFX lpDDOverlayFx) PURE; 180835c4bbdfSmrg STDMETHOD(UpdateOverlayDisplay) (THIS_ DWORD dwFlags) PURE; 180935c4bbdfSmrg STDMETHOD(UpdateOverlayZOrder) (THIS_ DWORD dwFlags, 181035c4bbdfSmrg LPDIRECTDRAWSURFACE2 lpDDSReference) 181135c4bbdfSmrg PURE; 181235c4bbdfSmrg /* added in v2 */ 181335c4bbdfSmrg STDMETHOD(GetDDInterface) (THIS_ LPVOID * lplpDD) PURE; 181435c4bbdfSmrg STDMETHOD(PageLock) (THIS_ DWORD dwFlags) PURE; 181535c4bbdfSmrg STDMETHOD(PageUnlock) (THIS_ DWORD dwFlags) PURE; 181635c4bbdfSmrg }; 181705b261ecSmrg 181805b261ecSmrg /*** IUnknown methods ***/ 181905b261ecSmrg#define IDirectDrawSurface2_QueryInterface(p,a,b) ICOM_CALL_(QueryInterface,p,(p,a,b)) 182005b261ecSmrg#define IDirectDrawSurface2_AddRef(p) ICOM_CALL_(AddRef,p,(p)) 182105b261ecSmrg#define IDirectDrawSurface2_Release(p) ICOM_CALL_(Release,p,(p)) 182205b261ecSmrg/*** IDirectDrawSurface methods (almost) ***/ 182305b261ecSmrg#define IDirectDrawSurface2_AddAttachedSurface(p,a) ICOM_CALL_(AddAttachedSurface,p,(p,a)) 182405b261ecSmrg#define IDirectDrawSurface2_AddOverlayDirtyRect(p,a) ICOM_CALL_(AddOverlayDirtyRect,p,(p,a)) 182505b261ecSmrg#define IDirectDrawSurface2_Blt(p,a,b,c,d,e) ICOM_CALL_(Blt,p,(p,a,b,c,d,e)) 182605b261ecSmrg#define IDirectDrawSurface2_BltBatch(p,a,b,c) ICOM_CALL_(BltBatch,p,(p,a,b,c)) 182705b261ecSmrg#define IDirectDrawSurface2_BltFast(p,a,b,c,d,e) ICOM_CALL_(BltFast,p,(p,a,b,c,d,e)) 182805b261ecSmrg#define IDirectDrawSurface2_DeleteAttachedSurface(p,a,b) ICOM_CALL_(DeleteAttachedSurface,p,(p,a,b)) 182905b261ecSmrg#define IDirectDrawSurface2_EnumAttachedSurfaces(p,a,b) ICOM_CALL_(EnumAttachedSurfaces,p,(p,a,b)) 183005b261ecSmrg#define IDirectDrawSurface2_EnumOverlayZOrders(p,a,b,c) ICOM_CALL_(EnumOverlayZOrders,p,(p,a,b,c)) 183105b261ecSmrg#define IDirectDrawSurface2_Flip(p,a,b) ICOM_CALL_(Flip,p,(p,a,b)) 183205b261ecSmrg#define IDirectDrawSurface2_GetAttachedSurface(p,a,b) ICOM_CALL_(GetAttachedSurface,p,(p,a,b)) 183305b261ecSmrg#define IDirectDrawSurface2_GetBltStatus(p,a) ICOM_CALL_(GetBltStatus,p,(p,a)) 183405b261ecSmrg#define IDirectDrawSurface2_GetCaps(p,a) ICOM_CALL_(GetCaps,p,(p,a)) 183505b261ecSmrg#define IDirectDrawSurface2_GetClipper(p,a) ICOM_CALL_(GetClipper,p,(p,a)) 183605b261ecSmrg#define IDirectDrawSurface2_GetColorKey(p,a,b) ICOM_CALL_(GetColorKey,p,(p,a,b)) 183705b261ecSmrg#define IDirectDrawSurface2_GetDC(p,a) ICOM_CALL_(GetDC,p,(p,a)) 183805b261ecSmrg#define IDirectDrawSurface2_GetFlipStatus(p,a) ICOM_CALL_(GetFlipStatus,p,(p,a)) 183905b261ecSmrg#define IDirectDrawSurface2_GetOverlayPosition(p,a,b) ICOM_CALL_(GetOverlayPosition,p,(p,a,b)) 184005b261ecSmrg#define IDirectDrawSurface2_GetPalette(p,a) ICOM_CALL_(GetPalette,p,(p,a)) 184105b261ecSmrg#define IDirectDrawSurface2_GetPixelFormat(p,a) ICOM_CALL_(GetPixelFormat,p,(p,a)) 184205b261ecSmrg#define IDirectDrawSurface2_GetSurfaceDesc(p,a) ICOM_CALL_(GetSurfaceDesc,p,(p,a)) 184305b261ecSmrg#define IDirectDrawSurface2_Initialize(p,a,b) ICOM_CALL_(Initialize,p,(p,a,b)) 184405b261ecSmrg#define IDirectDrawSurface2_IsLost(p) ICOM_CALL_(IsLost,p,(p)) 184505b261ecSmrg#define IDirectDrawSurface2_Lock(p,a,b,c,d) ICOM_CALL_(Lock,p,(p,a,b,c,d)) 184605b261ecSmrg#define IDirectDrawSurface2_ReleaseDC(p,a) ICOM_CALL_(ReleaseDC,p,(p,a)) 184705b261ecSmrg#define IDirectDrawSurface2_Restore(p) ICOM_CALL_(Restore,p,(p)) 184805b261ecSmrg#define IDirectDrawSurface2_SetClipper(p,a) ICOM_CALL_(SetClipper,p,(p,a)) 184905b261ecSmrg#define IDirectDrawSurface2_SetColorKey(p,a,b) ICOM_CALL_(SetColorKey,p,(p,a,b)) 185005b261ecSmrg#define IDirectDrawSurface2_SetOverlayPosition(p,a,b) ICOM_CALL_(SetOverlayPosition,p,(p,a,b)) 185105b261ecSmrg#define IDirectDrawSurface2_SetPalette(p,a) ICOM_CALL_(SetPalette,p,(p,a)) 185205b261ecSmrg#define IDirectDrawSurface2_Unlock(p,a) ICOM_CALL_(Unlock,p,(p,a)) 185305b261ecSmrg#define IDirectDrawSurface2_UpdateOverlay(p,a,b,c,d,e) ICOM_CALL_(UpdateOverlay,p,(p,a,b,c,d,e)) 185405b261ecSmrg#define IDirectDrawSurface2_UpdateOverlayDisplay(p,a) ICOM_CALL_(UpdateOverlayDisplay,p,(p,a)) 185505b261ecSmrg#define IDirectDrawSurface2_UpdateOverlayZOrder(p,a,b) ICOM_CALL_(UpdateOverlayZOrder,p,(p,a,b)) 185605b261ecSmrg/*** IDirectDrawSurface2 methods ***/ 185705b261ecSmrg#define IDirectDrawSurface2_GetDDInterface(p,a) ICOM_CALL_(GetDDInterface,p,(p,a)) 185805b261ecSmrg#define IDirectDrawSurface2_PageLock(p,a) ICOM_CALL_(PageLock,p,(p,a)) 185905b261ecSmrg#define IDirectDrawSurface2_PageUnlock(p,a) ICOM_CALL_(PageUnlock,p,(p,a)) 186005b261ecSmrg 186105b261ecSmrg/***************************************************************************** 186205b261ecSmrg * IDirectDrawSurface3 interface 186305b261ecSmrg */ 186435c4bbdfSmrg/* Cannot inherit from IDirectDrawSurface2 because the LPDIRECTDRAWSURFACE2 parameters 186505b261ecSmrg * have been converted to LPDIRECTDRAWSURFACE3. 186605b261ecSmrg */ 186705b261ecSmrg#undef INTERFACE 186805b261ecSmrg#define INTERFACE IDirectDrawSurface3 186935c4bbdfSmrg DECLARE_INTERFACE_(IDirectDrawSurface3, IUnknown) { 187035c4bbdfSmrg STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID *) PURE; 187135c4bbdfSmrg STDMETHOD_(ULONG, AddRef) (THIS) PURE; 187235c4bbdfSmrg STDMETHOD_(ULONG, Release) (THIS) PURE; 187335c4bbdfSmrg STDMETHOD(AddAttachedSurface) (THIS_ LPDIRECTDRAWSURFACE3 187435c4bbdfSmrg lpDDSAttachedSurface) PURE; 187535c4bbdfSmrg STDMETHOD(AddOverlayDirtyRect) (THIS_ LPRECT lpRect) PURE; 187635c4bbdfSmrg STDMETHOD(Blt) (THIS_ LPRECT lpDestRect, 187735c4bbdfSmrg LPDIRECTDRAWSURFACE3 lpDDSrcSurface, LPRECT lpSrcRect, 187835c4bbdfSmrg DWORD dwFlags, LPDDBLTFX lpDDBltFx) PURE; 187935c4bbdfSmrg STDMETHOD(BltBatch) (THIS_ LPDDBLTBATCH lpDDBltBatch, DWORD dwCount, 188035c4bbdfSmrg DWORD dwFlags) PURE; 188135c4bbdfSmrg STDMETHOD(BltFast) (THIS_ DWORD dwX, DWORD dwY, 188235c4bbdfSmrg LPDIRECTDRAWSURFACE3 lpDDSrcSurface, 188335c4bbdfSmrg LPRECT lpSrcRect, DWORD dwTrans) PURE; 188435c4bbdfSmrg STDMETHOD(DeleteAttachedSurface) (THIS_ DWORD dwFlags, 188535c4bbdfSmrg LPDIRECTDRAWSURFACE3 188635c4bbdfSmrg lpDDSAttachedSurface) PURE; 188735c4bbdfSmrg STDMETHOD(EnumAttachedSurfaces) (THIS_ LPVOID lpContext, 188835c4bbdfSmrg LPDDENUMSURFACESCALLBACK 188935c4bbdfSmrg lpEnumSurfacesCallback) PURE; 189035c4bbdfSmrg STDMETHOD(EnumOverlayZOrders) (THIS_ DWORD dwFlags, LPVOID lpContext, 189135c4bbdfSmrg LPDDENUMSURFACESCALLBACK lpfnCallback) 189235c4bbdfSmrg PURE; 189335c4bbdfSmrg STDMETHOD(Flip) (THIS_ LPDIRECTDRAWSURFACE3 lpDDSurfaceTargetOverride, 189435c4bbdfSmrg DWORD dwFlags) PURE; 189535c4bbdfSmrg STDMETHOD(GetAttachedSurface) (THIS_ LPDDSCAPS lpDDSCaps, 189635c4bbdfSmrg LPDIRECTDRAWSURFACE3 * 189735c4bbdfSmrg lplpDDAttachedSurface) PURE; 189835c4bbdfSmrg STDMETHOD(GetBltStatus) (THIS_ DWORD dwFlags) PURE; 189935c4bbdfSmrg STDMETHOD(GetCaps) (THIS_ LPDDSCAPS lpDDSCaps) PURE; 190035c4bbdfSmrg STDMETHOD(GetClipper) (THIS_ LPDIRECTDRAWCLIPPER * lplpDDClipper) PURE; 190135c4bbdfSmrg STDMETHOD(GetColorKey) (THIS_ DWORD dwFlags, 190235c4bbdfSmrg LPDDCOLORKEY lpDDColorKey) PURE; 190335c4bbdfSmrg STDMETHOD(GetDC) (THIS_ HDC * lphDC) PURE; 190435c4bbdfSmrg STDMETHOD(GetFlipStatus) (THIS_ DWORD dwFlags) PURE; 190535c4bbdfSmrg STDMETHOD(GetOverlayPosition) (THIS_ LPLONG lplX, LPLONG lplY) PURE; 190635c4bbdfSmrg STDMETHOD(GetPalette) (THIS_ LPDIRECTDRAWPALETTE * lplpDDPalette) PURE; 190735c4bbdfSmrg STDMETHOD(GetPixelFormat) (THIS_ LPDDPIXELFORMAT lpDDPixelFormat) PURE; 190835c4bbdfSmrg STDMETHOD(GetSurfaceDesc) (THIS_ LPDDSURFACEDESC lpDDSurfaceDesc) PURE; 190935c4bbdfSmrg STDMETHOD(Initialize) (THIS_ LPDIRECTDRAW lpDD, 191035c4bbdfSmrg LPDDSURFACEDESC lpDDSurfaceDesc) PURE; 191135c4bbdfSmrg STDMETHOD(IsLost) (THIS) PURE; 191235c4bbdfSmrg STDMETHOD(Lock) (THIS_ LPRECT lpDestRect, 191335c4bbdfSmrg LPDDSURFACEDESC lpDDSurfaceDesc, DWORD dwFlags, 191435c4bbdfSmrg HANDLE hEvent) PURE; 191535c4bbdfSmrg STDMETHOD(ReleaseDC) (THIS_ HDC hDC) PURE; 191635c4bbdfSmrg STDMETHOD(Restore) (THIS) PURE; 191735c4bbdfSmrg STDMETHOD(SetClipper) (THIS_ LPDIRECTDRAWCLIPPER lpDDClipper) PURE; 191835c4bbdfSmrg STDMETHOD(SetColorKey) (THIS_ DWORD dwFlags, 191935c4bbdfSmrg LPDDCOLORKEY lpDDColorKey) PURE; 192035c4bbdfSmrg STDMETHOD(SetOverlayPosition) (THIS_ LONG lX, LONG lY) PURE; 192135c4bbdfSmrg STDMETHOD(SetPalette) (THIS_ LPDIRECTDRAWPALETTE lpDDPalette) PURE; 192235c4bbdfSmrg STDMETHOD(Unlock) (THIS_ LPVOID lpSurfaceData) PURE; 192335c4bbdfSmrg STDMETHOD(UpdateOverlay) (THIS_ LPRECT lpSrcRect, 192435c4bbdfSmrg LPDIRECTDRAWSURFACE3 lpDDDestSurface, 192535c4bbdfSmrg LPRECT lpDestRect, DWORD dwFlags, 192635c4bbdfSmrg LPDDOVERLAYFX lpDDOverlayFx) PURE; 192735c4bbdfSmrg STDMETHOD(UpdateOverlayDisplay) (THIS_ DWORD dwFlags) PURE; 192835c4bbdfSmrg STDMETHOD(UpdateOverlayZOrder) (THIS_ DWORD dwFlags, 192935c4bbdfSmrg LPDIRECTDRAWSURFACE3 lpDDSReference) 193035c4bbdfSmrg PURE; 193135c4bbdfSmrg /* added in v2 */ 193235c4bbdfSmrg STDMETHOD(GetDDInterface) (THIS_ LPVOID * lplpDD) PURE; 193335c4bbdfSmrg STDMETHOD(PageLock) (THIS_ DWORD dwFlags) PURE; 193435c4bbdfSmrg STDMETHOD(PageUnlock) (THIS_ DWORD dwFlags) PURE; 193535c4bbdfSmrg /* added in v3 */ 193635c4bbdfSmrg STDMETHOD(SetSurfaceDesc) (THIS_ LPDDSURFACEDESC lpDDSD, 193735c4bbdfSmrg DWORD dwFlags) PURE; 193835c4bbdfSmrg }; 193905b261ecSmrg 194005b261ecSmrg /*** IUnknown methods ***/ 194105b261ecSmrg#define IDirectDrawSurface3_QueryInterface(p,a,b) ICOM_CALL_(QueryInterface,p,(p,a,b)) 194205b261ecSmrg#define IDirectDrawSurface3_AddRef(p) ICOM_CALL_(AddRef,p,(p)) 194305b261ecSmrg#define IDirectDrawSurface3_Release(p) ICOM_CALL_(Release,p,(p)) 194405b261ecSmrg/*** IDirectDrawSurface methods (almost) ***/ 194505b261ecSmrg#define IDirectDrawSurface3_AddAttachedSurface(p,a) ICOM_CALL_(AddAttachedSurface,p,(p,a)) 194605b261ecSmrg#define IDirectDrawSurface3_AddOverlayDirtyRect(p,a) ICOM_CALL_(AddOverlayDirtyRect,p,(p,a)) 194705b261ecSmrg#define IDirectDrawSurface3_Blt(p,a,b,c,d,e) ICOM_CALL_(Blt,p,(p,a,b,c,d,e)) 194805b261ecSmrg#define IDirectDrawSurface3_BltBatch(p,a,b,c) ICOM_CALL_(BltBatch,p,(p,a,b,c)) 194905b261ecSmrg#define IDirectDrawSurface3_BltFast(p,a,b,c,d,e) ICOM_CALL_(BltFast,p,(p,a,b,c,d,e)) 195005b261ecSmrg#define IDirectDrawSurface3_DeleteAttachedSurface(p,a,b) ICOM_CALL_(DeleteAttachedSurface,p,(p,a,b)) 195105b261ecSmrg#define IDirectDrawSurface3_EnumAttachedSurfaces(p,a,b) ICOM_CALL_(EnumAttachedSurfaces,p,(p,a,b)) 195205b261ecSmrg#define IDirectDrawSurface3_EnumOverlayZOrders(p,a,b,c) ICOM_CALL_(EnumOverlayZOrders,p,(p,a,b,c)) 195305b261ecSmrg#define IDirectDrawSurface3_Flip(p,a,b) ICOM_CALL_(Flip,p,(p,a,b)) 195405b261ecSmrg#define IDirectDrawSurface3_GetAttachedSurface(p,a,b) ICOM_CALL_(GetAttachedSurface,p,(p,a,b)) 195505b261ecSmrg#define IDirectDrawSurface3_GetBltStatus(p,a) ICOM_CALL_(GetBltStatus,p,(p,a)) 195605b261ecSmrg#define IDirectDrawSurface3_GetCaps(p,a) ICOM_CALL_(GetCaps,p,(p,a)) 195705b261ecSmrg#define IDirectDrawSurface3_GetClipper(p,a) ICOM_CALL_(GetClipper,p,(p,a)) 195805b261ecSmrg#define IDirectDrawSurface3_GetColorKey(p,a,b) ICOM_CALL_(GetColorKey,p,(p,a,b)) 195905b261ecSmrg#define IDirectDrawSurface3_GetDC(p,a) ICOM_CALL_(GetDC,p,(p,a)) 196005b261ecSmrg#define IDirectDrawSurface3_GetFlipStatus(p,a) ICOM_CALL_(GetFlipStatus,p,(p,a)) 196105b261ecSmrg#define IDirectDrawSurface3_GetOverlayPosition(p,a,b) ICOM_CALL_(GetOverlayPosition,p,(p,a,b)) 196205b261ecSmrg#define IDirectDrawSurface3_GetPalette(p,a) ICOM_CALL_(GetPalette,p,(p,a)) 196305b261ecSmrg#define IDirectDrawSurface3_GetPixelFormat(p,a) ICOM_CALL_(GetPixelFormat,p,(p,a)) 196405b261ecSmrg#define IDirectDrawSurface3_GetSurfaceDesc(p,a) ICOM_CALL_(GetSurfaceDesc,p,(p,a)) 196505b261ecSmrg#define IDirectDrawSurface3_Initialize(p,a,b) ICOM_CALL_(Initialize,p,(p,a,b)) 196605b261ecSmrg#define IDirectDrawSurface3_IsLost(p) ICOM_CALL_(IsLost,p,(p)) 196705b261ecSmrg#define IDirectDrawSurface3_Lock(p,a,b,c,d) ICOM_CALL_(Lock,p,(p,a,b,c,d)) 196805b261ecSmrg#define IDirectDrawSurface3_ReleaseDC(p,a) ICOM_CALL_(ReleaseDC,p,(p,a)) 196905b261ecSmrg#define IDirectDrawSurface3_Restore(p) ICOM_CALL_(Restore,p,(p)) 197005b261ecSmrg#define IDirectDrawSurface3_SetClipper(p,a) ICOM_CALL_(SetClipper,p,(p,a)) 197105b261ecSmrg#define IDirectDrawSurface3_SetColorKey(p,a,b) ICOM_CALL_(SetColorKey,p,(p,a,b)) 197205b261ecSmrg#define IDirectDrawSurface3_SetOverlayPosition(p,a,b) ICOM_CALL_(SetOverlayPosition,p,(p,a,b)) 197305b261ecSmrg#define IDirectDrawSurface3_SetPalette(p,a) ICOM_CALL_(SetPalette,p,(p,a)) 197405b261ecSmrg#define IDirectDrawSurface3_Unlock(p,a) ICOM_CALL_(Unlock,p,(p,a)) 197505b261ecSmrg#define IDirectDrawSurface3_UpdateOverlay(p,a,b,c,d,e) ICOM_CALL_(UpdateOverlay,p,(p,a,b,c,d,e)) 197605b261ecSmrg#define IDirectDrawSurface3_UpdateOverlayDisplay(p,a) ICOM_CALL_(UpdateOverlayDisplay,p,(p,a)) 197705b261ecSmrg#define IDirectDrawSurface3_UpdateOverlayZOrder(p,a,b) ICOM_CALL_(UpdateOverlayZOrder,p,(p,a,b)) 197805b261ecSmrg/*** IDirectDrawSurface2 methods ***/ 197905b261ecSmrg#define IDirectDrawSurface3_GetDDInterface(p,a) ICOM_CALL_(GetDDInterface,p,(p,a)) 198005b261ecSmrg#define IDirectDrawSurface3_PageLock(p,a) ICOM_CALL_(PageLock,p,(p,a)) 198105b261ecSmrg#define IDirectDrawSurface3_PageUnlock(p,a) ICOM_CALL_(PageUnlock,p,(p,a)) 198205b261ecSmrg/*** IDirectDrawSurface3 methods ***/ 198305b261ecSmrg#define IDirectDrawSurface3_SetSurfaceDesc(p,a,b) ICOM_CALL_(SetSurfaceDesc,p,(p,a,b)) 198405b261ecSmrg 198505b261ecSmrg/***************************************************************************** 198605b261ecSmrg * IDirectDrawSurface4 interface 198705b261ecSmrg */ 198805b261ecSmrg/* Cannot inherit from IDirectDrawSurface2 because DDSCAPS changed to DDSCAPS2. 198905b261ecSmrg */ 199005b261ecSmrg#undef INTERFACE 199105b261ecSmrg#define INTERFACE IDirectDrawSurface4 199235c4bbdfSmrg DECLARE_INTERFACE_(IDirectDrawSurface4, IUnknown) { 199335c4bbdfSmrg STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID *) PURE; 199435c4bbdfSmrg STDMETHOD_(ULONG, AddRef) (THIS) PURE; 199535c4bbdfSmrg STDMETHOD_(ULONG, Release) (THIS) PURE; 199635c4bbdfSmrg STDMETHOD(AddAttachedSurface) (THIS_ LPDIRECTDRAWSURFACE4 199735c4bbdfSmrg lpDDSAttachedSurface) PURE; 199835c4bbdfSmrg STDMETHOD(AddOverlayDirtyRect) (THIS_ LPRECT lpRect) PURE; 199935c4bbdfSmrg STDMETHOD(Blt) (THIS_ LPRECT lpDestRect, 200035c4bbdfSmrg LPDIRECTDRAWSURFACE4 lpDDSrcSurface, LPRECT lpSrcRect, 200135c4bbdfSmrg DWORD dwFlags, LPDDBLTFX lpDDBltFx) PURE; 200235c4bbdfSmrg STDMETHOD(BltBatch) (THIS_ LPDDBLTBATCH lpDDBltBatch, DWORD dwCount, 200335c4bbdfSmrg DWORD dwFlags) PURE; 200435c4bbdfSmrg STDMETHOD(BltFast) (THIS_ DWORD dwX, DWORD dwY, 200535c4bbdfSmrg LPDIRECTDRAWSURFACE4 lpDDSrcSurface, 200635c4bbdfSmrg LPRECT lpSrcRect, DWORD dwTrans) PURE; 200735c4bbdfSmrg STDMETHOD(DeleteAttachedSurface) (THIS_ DWORD dwFlags, 200835c4bbdfSmrg LPDIRECTDRAWSURFACE4 200935c4bbdfSmrg lpDDSAttachedSurface) PURE; 201035c4bbdfSmrg STDMETHOD(EnumAttachedSurfaces) (THIS_ LPVOID lpContext, 201135c4bbdfSmrg LPDDENUMSURFACESCALLBACK 201235c4bbdfSmrg lpEnumSurfacesCallback) PURE; 201335c4bbdfSmrg STDMETHOD(EnumOverlayZOrders) (THIS_ DWORD dwFlags, LPVOID lpContext, 201435c4bbdfSmrg LPDDENUMSURFACESCALLBACK lpfnCallback) 201535c4bbdfSmrg PURE; 201635c4bbdfSmrg STDMETHOD(Flip) (THIS_ LPDIRECTDRAWSURFACE4 lpDDSurfaceTargetOverride, 201735c4bbdfSmrg DWORD dwFlags) PURE; 201835c4bbdfSmrg STDMETHOD(GetAttachedSurface) (THIS_ LPDDSCAPS2 lpDDSCaps, 201935c4bbdfSmrg LPDIRECTDRAWSURFACE4 * 202035c4bbdfSmrg lplpDDAttachedSurface) PURE; 202135c4bbdfSmrg STDMETHOD(GetBltStatus) (THIS_ DWORD dwFlags) PURE; 202235c4bbdfSmrg STDMETHOD(GetCaps) (THIS_ LPDDSCAPS2 lpDDSCaps) PURE; 202335c4bbdfSmrg STDMETHOD(GetClipper) (THIS_ LPDIRECTDRAWCLIPPER * lplpDDClipper) PURE; 202435c4bbdfSmrg STDMETHOD(GetColorKey) (THIS_ DWORD dwFlags, 202535c4bbdfSmrg LPDDCOLORKEY lpDDColorKey) PURE; 202635c4bbdfSmrg STDMETHOD(GetDC) (THIS_ HDC * lphDC) PURE; 202735c4bbdfSmrg STDMETHOD(GetFlipStatus) (THIS_ DWORD dwFlags) PURE; 202835c4bbdfSmrg STDMETHOD(GetOverlayPosition) (THIS_ LPLONG lplX, LPLONG lplY) PURE; 202935c4bbdfSmrg STDMETHOD(GetPalette) (THIS_ LPDIRECTDRAWPALETTE * lplpDDPalette) PURE; 203035c4bbdfSmrg STDMETHOD(GetPixelFormat) (THIS_ LPDDPIXELFORMAT lpDDPixelFormat) PURE; 203135c4bbdfSmrg STDMETHOD(GetSurfaceDesc) (THIS_ LPDDSURFACEDESC lpDDSurfaceDesc) PURE; 203235c4bbdfSmrg STDMETHOD(Initialize) (THIS_ LPDIRECTDRAW lpDD, 203335c4bbdfSmrg LPDDSURFACEDESC lpDDSurfaceDesc) PURE; 203435c4bbdfSmrg STDMETHOD(IsLost) (THIS) PURE; 203535c4bbdfSmrg STDMETHOD(Lock) (THIS_ LPRECT lpDestRect, 203635c4bbdfSmrg LPDDSURFACEDESC lpDDSurfaceDesc, DWORD dwFlags, 203735c4bbdfSmrg HANDLE hEvent) PURE; 203835c4bbdfSmrg STDMETHOD(ReleaseDC) (THIS_ HDC hDC) PURE; 203935c4bbdfSmrg STDMETHOD(Restore) (THIS) PURE; 204035c4bbdfSmrg STDMETHOD(SetClipper) (THIS_ LPDIRECTDRAWCLIPPER lpDDClipper) PURE; 204135c4bbdfSmrg STDMETHOD(SetColorKey) (THIS_ DWORD dwFlags, 204235c4bbdfSmrg LPDDCOLORKEY lpDDColorKey) PURE; 204335c4bbdfSmrg STDMETHOD(SetOverlayPosition) (THIS_ LONG lX, LONG lY) PURE; 204435c4bbdfSmrg STDMETHOD(SetPalette) (THIS_ LPDIRECTDRAWPALETTE lpDDPalette) PURE; 204535c4bbdfSmrg STDMETHOD(Unlock) (THIS_ LPRECT lpSurfaceData) PURE; 204635c4bbdfSmrg STDMETHOD(UpdateOverlay) (THIS_ LPRECT lpSrcRect, 204735c4bbdfSmrg LPDIRECTDRAWSURFACE4 lpDDDestSurface, 204835c4bbdfSmrg LPRECT lpDestRect, DWORD dwFlags, 204935c4bbdfSmrg LPDDOVERLAYFX lpDDOverlayFx) PURE; 205035c4bbdfSmrg STDMETHOD(UpdateOverlayDisplay) (THIS_ DWORD dwFlags) PURE; 205135c4bbdfSmrg STDMETHOD(UpdateOverlayZOrder) (THIS_ DWORD dwFlags, 205235c4bbdfSmrg LPDIRECTDRAWSURFACE4 lpDDSReference) 205335c4bbdfSmrg PURE; 205435c4bbdfSmrg /* added in v2 */ 205535c4bbdfSmrg STDMETHOD(GetDDInterface) (THIS_ LPVOID * lplpDD) PURE; 205635c4bbdfSmrg STDMETHOD(PageLock) (THIS_ DWORD dwFlags) PURE; 205735c4bbdfSmrg STDMETHOD(PageUnlock) (THIS_ DWORD dwFlags) PURE; 205835c4bbdfSmrg /* added in v3 */ 205935c4bbdfSmrg STDMETHOD(SetSurfaceDesc) (THIS_ LPDDSURFACEDESC lpDDSD, 206035c4bbdfSmrg DWORD dwFlags) PURE; 206135c4bbdfSmrg /* added in v4 */ 206235c4bbdfSmrg STDMETHOD(SetPrivateData) (THIS_ REFGUID, LPVOID, DWORD, DWORD) PURE; 206335c4bbdfSmrg STDMETHOD(GetPrivateData) (THIS_ REFGUID, LPVOID, LPDWORD) PURE; 206435c4bbdfSmrg STDMETHOD(FreePrivateData) (THIS_ REFGUID) PURE; 206535c4bbdfSmrg STDMETHOD(GetUniquenessValue) (THIS_ LPDWORD) PURE; 206635c4bbdfSmrg STDMETHOD(ChangeUniquenessValue) (THIS) PURE; 206735c4bbdfSmrg }; 206805b261ecSmrg 206905b261ecSmrg /*** IUnknown methods ***/ 207005b261ecSmrg#define IDirectDrawSurface4_QueryInterface(p,a,b) ICOM_CALL_(QueryInterface,p,(p,a,b)) 207105b261ecSmrg#define IDirectDrawSurface4_AddRef(p) ICOM_CALL_(AddRef,p,(p)) 207205b261ecSmrg#define IDirectDrawSurface4_Release(p) ICOM_CALL_(Release,p,(p)) 207305b261ecSmrg/*** IDirectDrawSurface (almost) methods ***/ 207405b261ecSmrg#define IDirectDrawSurface4_AddAttachedSurface(p,a) ICOM_CALL_(AddAttachedSurface,p,(p,a)) 207505b261ecSmrg#define IDirectDrawSurface4_AddOverlayDirtyRect(p,a) ICOM_CALL_(AddOverlayDirtyRect,p,(p,a)) 207605b261ecSmrg#define IDirectDrawSurface4_Blt(p,a,b,c,d,e) ICOM_CALL_(Blt,p,(p,a,b,c,d,e)) 207705b261ecSmrg#define IDirectDrawSurface4_BltBatch(p,a,b,c) ICOM_CALL_(BltBatch,p,(p,a,b,c)) 207805b261ecSmrg#define IDirectDrawSurface4_BltFast(p,a,b,c,d,e) ICOM_CALL_(BltFast,p,(p,a,b,c,d,e)) 207905b261ecSmrg#define IDirectDrawSurface4_DeleteAttachedSurface(p,a,b) ICOM_CALL_(DeleteAttachedSurface,p,(p,a,b)) 208005b261ecSmrg#define IDirectDrawSurface4_EnumAttachedSurfaces(p,a,b) ICOM_CALL_(EnumAttachedSurfaces,p,(p,a,b)) 208105b261ecSmrg#define IDirectDrawSurface4_EnumOverlayZOrders(p,a,b,c) ICOM_CALL_(EnumOverlayZOrders,p,(p,a,b,c)) 208205b261ecSmrg#define IDirectDrawSurface4_Flip(p,a,b) ICOM_CALL_(Flip,p,(p,a,b)) 208305b261ecSmrg#define IDirectDrawSurface4_GetAttachedSurface(p,a,b) ICOM_CALL_(GetAttachedSurface,p,(p,a,b)) 208405b261ecSmrg#define IDirectDrawSurface4_GetBltStatus(p,a) ICOM_CALL_(GetBltStatus,p,(p,a)) 208505b261ecSmrg#define IDirectDrawSurface4_GetCaps(p,a) ICOM_CALL_(GetCaps,p,(p,a)) 208605b261ecSmrg#define IDirectDrawSurface4_GetClipper(p,a) ICOM_CALL_(GetClipper,p,(p,a)) 208705b261ecSmrg#define IDirectDrawSurface4_GetColorKey(p,a,b) ICOM_CALL_(GetColorKey,p,(p,a,b)) 208805b261ecSmrg#define IDirectDrawSurface4_GetDC(p,a) ICOM_CALL_(GetDC,p,(p,a)) 208905b261ecSmrg#define IDirectDrawSurface4_GetFlipStatus(p,a) ICOM_CALL_(GetFlipStatus,p,(p,a)) 209005b261ecSmrg#define IDirectDrawSurface4_GetOverlayPosition(p,a,b) ICOM_CALL_(GetOverlayPosition,p,(p,a,b)) 209105b261ecSmrg#define IDirectDrawSurface4_GetPalette(p,a) ICOM_CALL_(GetPalette,p,(p,a)) 209205b261ecSmrg#define IDirectDrawSurface4_GetPixelFormat(p,a) ICOM_CALL_(GetPixelFormat,p,(p,a)) 209305b261ecSmrg#define IDirectDrawSurface4_GetSurfaceDesc(p,a) ICOM_CALL_(GetSurfaceDesc,p,(p,a)) 209405b261ecSmrg#define IDirectDrawSurface4_Initialize(p,a,b) ICOM_CALL_(Initialize,p,(p,a,b)) 209505b261ecSmrg#define IDirectDrawSurface4_IsLost(p) ICOM_CALL_(IsLost,p,(p)) 209605b261ecSmrg#define IDirectDrawSurface4_Lock(p,a,b,c,d) ICOM_CALL_(Lock,p,(p,a,b,c,d)) 209705b261ecSmrg#define IDirectDrawSurface4_ReleaseDC(p,a) ICOM_CALL_(ReleaseDC,p,(p,a)) 209805b261ecSmrg#define IDirectDrawSurface4_Restore(p) ICOM_CALL_(Restore,p,(p)) 209905b261ecSmrg#define IDirectDrawSurface4_SetClipper(p,a) ICOM_CALL_(SetClipper,p,(p,a)) 210005b261ecSmrg#define IDirectDrawSurface4_SetColorKey(p,a,b) ICOM_CALL_(SetColorKey,p,(p,a,b)) 210105b261ecSmrg#define IDirectDrawSurface4_SetOverlayPosition(p,a,b) ICOM_CALL_(SetOverlayPosition,p,(p,a,b)) 210205b261ecSmrg#define IDirectDrawSurface4_SetPalette(p,a) ICOM_CALL_(SetPalette,p,(p,a)) 210305b261ecSmrg#define IDirectDrawSurface4_Unlock(p,a) ICOM_CALL_(Unlock,p,(p,a)) 210405b261ecSmrg#define IDirectDrawSurface4_UpdateOverlay(p,a,b,c,d,e) ICOM_CALL_(UpdateOverlay,p,(p,a,b,c,d,e)) 210505b261ecSmrg#define IDirectDrawSurface4_UpdateOverlayDisplay(p,a) ICOM_CALL_(UpdateOverlayDisplay,p,(p,a)) 210605b261ecSmrg#define IDirectDrawSurface4_UpdateOverlayZOrder(p,a,b) ICOM_CALL_(UpdateOverlayZOrder,p,(p,a,b)) 210705b261ecSmrg/*** IDirectDrawSurface2 methods ***/ 210805b261ecSmrg#define IDirectDrawSurface4_GetDDInterface(p,a) ICOM_CALL_(GetDDInterface,p,(p,a)) 210905b261ecSmrg#define IDirectDrawSurface4_PageLock(p,a) ICOM_CALL_(PageLock,p,(p,a)) 211005b261ecSmrg#define IDirectDrawSurface4_PageUnlock(p,a) ICOM_CALL_(PageUnlock,p,(p,a)) 211105b261ecSmrg/*** IDirectDrawSurface3 methods ***/ 211205b261ecSmrg#define IDirectDrawSurface4_SetSurfaceDesc(p,a,b) ICOM_CALL_(SetSurfaceDesc,p,(p,a,b)) 211305b261ecSmrg/*** IDirectDrawSurface4 methods ***/ 211405b261ecSmrg#define IDirectDrawSurface4_SetPrivateData(p,a,b,c,d) ICOM_CALL_(SetPrivateData,p,(p,a,b,c,d)) 211505b261ecSmrg#define IDirectDrawSurface4_GetPrivateData(p,a,b,c) ICOM_CALL_(GetPrivateData,p,(p,a,b,c)) 211605b261ecSmrg#define IDirectDrawSurface4_FreePrivateData(p,a) ICOM_CALL_(FreePrivateData,p,(p,a)) 211705b261ecSmrg#define IDirectDrawSurface4_GetUniquenessValue(p,a) ICOM_CALL_(GetUniquenessValue,p,(p,a)) 211805b261ecSmrg#define IDirectDrawSurface4_ChangeUniquenessValue(p) ICOM_CALL_(ChangeUniquenessValue,p,(p)) 211905b261ecSmrg 212005b261ecSmrg/***************************************************************************** 212105b261ecSmrg * IDirectDrawSurface7 interface 212205b261ecSmrg */ 212305b261ecSmrg#undef INTERFACE 212405b261ecSmrg#define INTERFACE IDirectDrawSurface7 212535c4bbdfSmrg DECLARE_INTERFACE_(IDirectDrawSurface7, IUnknown) { 212635c4bbdfSmrg STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID *) PURE; 212735c4bbdfSmrg STDMETHOD_(ULONG, AddRef) (THIS) PURE; 212835c4bbdfSmrg STDMETHOD_(ULONG, Release) (THIS) PURE; 212935c4bbdfSmrg STDMETHOD(AddAttachedSurface) (THIS_ LPDIRECTDRAWSURFACE7 213035c4bbdfSmrg lpDDSAttachedSurface) PURE; 213135c4bbdfSmrg STDMETHOD(AddOverlayDirtyRect) (THIS_ LPRECT lpRect) PURE; 213235c4bbdfSmrg STDMETHOD(Blt) (THIS_ LPRECT lpDestRect, 213335c4bbdfSmrg LPDIRECTDRAWSURFACE7 lpDDSrcSurface, LPRECT lpSrcRect, 213435c4bbdfSmrg DWORD dwFlags, LPDDBLTFX lpDDBltFx) PURE; 213535c4bbdfSmrg STDMETHOD(BltBatch) (THIS_ LPDDBLTBATCH lpDDBltBatch, DWORD dwCount, 213635c4bbdfSmrg DWORD dwFlags) PURE; 213735c4bbdfSmrg STDMETHOD(BltFast) (THIS_ DWORD dwX, DWORD dwY, 213835c4bbdfSmrg LPDIRECTDRAWSURFACE7 lpDDSrcSurface, 213935c4bbdfSmrg LPRECT lpSrcRect, DWORD dwTrans) PURE; 214035c4bbdfSmrg STDMETHOD(DeleteAttachedSurface) (THIS_ DWORD dwFlags, 214135c4bbdfSmrg LPDIRECTDRAWSURFACE7 214235c4bbdfSmrg lpDDSAttachedSurface) PURE; 214335c4bbdfSmrg STDMETHOD(EnumAttachedSurfaces) (THIS_ LPVOID lpContext, 214435c4bbdfSmrg LPDDENUMSURFACESCALLBACK7 214535c4bbdfSmrg lpEnumSurfacesCallback) PURE; 214635c4bbdfSmrg STDMETHOD(EnumOverlayZOrders) (THIS_ DWORD dwFlags, LPVOID lpContext, 214735c4bbdfSmrg LPDDENUMSURFACESCALLBACK7 lpfnCallback) 214835c4bbdfSmrg PURE; 214935c4bbdfSmrg STDMETHOD(Flip) (THIS_ LPDIRECTDRAWSURFACE7 lpDDSurfaceTargetOverride, 215035c4bbdfSmrg DWORD dwFlags) PURE; 215135c4bbdfSmrg STDMETHOD(GetAttachedSurface) (THIS_ LPDDSCAPS2 lpDDSCaps, 215235c4bbdfSmrg LPDIRECTDRAWSURFACE7 * 215335c4bbdfSmrg lplpDDAttachedSurface) PURE; 215435c4bbdfSmrg STDMETHOD(GetBltStatus) (THIS_ DWORD dwFlags) PURE; 215535c4bbdfSmrg STDMETHOD(GetCaps) (THIS_ LPDDSCAPS2 lpDDSCaps) PURE; 215635c4bbdfSmrg STDMETHOD(GetClipper) (THIS_ LPDIRECTDRAWCLIPPER * lplpDDClipper) PURE; 215735c4bbdfSmrg STDMETHOD(GetColorKey) (THIS_ DWORD dwFlags, 215835c4bbdfSmrg LPDDCOLORKEY lpDDColorKey) PURE; 215935c4bbdfSmrg STDMETHOD(GetDC) (THIS_ HDC * lphDC) PURE; 216035c4bbdfSmrg STDMETHOD(GetFlipStatus) (THIS_ DWORD dwFlags) PURE; 216135c4bbdfSmrg STDMETHOD(GetOverlayPosition) (THIS_ LPLONG lplX, LPLONG lplY) PURE; 216235c4bbdfSmrg STDMETHOD(GetPalette) (THIS_ LPDIRECTDRAWPALETTE * lplpDDPalette) PURE; 216335c4bbdfSmrg STDMETHOD(GetPixelFormat) (THIS_ LPDDPIXELFORMAT lpDDPixelFormat) PURE; 216435c4bbdfSmrg STDMETHOD(GetSurfaceDesc) (THIS_ LPDDSURFACEDESC2 lpDDSurfaceDesc) PURE; 216535c4bbdfSmrg STDMETHOD(Initialize) (THIS_ LPDIRECTDRAW lpDD, 216635c4bbdfSmrg LPDDSURFACEDESC2 lpDDSurfaceDesc) PURE; 216735c4bbdfSmrg STDMETHOD(IsLost) (THIS) PURE; 216835c4bbdfSmrg STDMETHOD(Lock) (THIS_ LPRECT lpDestRect, 216935c4bbdfSmrg LPDDSURFACEDESC2 lpDDSurfaceDesc, DWORD dwFlags, 217035c4bbdfSmrg HANDLE hEvent) PURE; 217135c4bbdfSmrg STDMETHOD(ReleaseDC) (THIS_ HDC hDC) PURE; 217235c4bbdfSmrg STDMETHOD(Restore) (THIS) PURE; 217335c4bbdfSmrg STDMETHOD(SetClipper) (THIS_ LPDIRECTDRAWCLIPPER lpDDClipper) PURE; 217435c4bbdfSmrg STDMETHOD(SetColorKey) (THIS_ DWORD dwFlags, 217535c4bbdfSmrg LPDDCOLORKEY lpDDColorKey) PURE; 217635c4bbdfSmrg STDMETHOD(SetOverlayPosition) (THIS_ LONG lX, LONG lY) PURE; 217735c4bbdfSmrg STDMETHOD(SetPalette) (THIS_ LPDIRECTDRAWPALETTE lpDDPalette) PURE; 217835c4bbdfSmrg STDMETHOD(Unlock) (THIS_ LPRECT lpSurfaceData) PURE; 217935c4bbdfSmrg STDMETHOD(UpdateOverlay) (THIS_ LPRECT lpSrcRect, 218035c4bbdfSmrg LPDIRECTDRAWSURFACE7 lpDDDestSurface, 218135c4bbdfSmrg LPRECT lpDestRect, DWORD dwFlags, 218235c4bbdfSmrg LPDDOVERLAYFX lpDDOverlayFx) PURE; 218335c4bbdfSmrg STDMETHOD(UpdateOverlayDisplay) (THIS_ DWORD dwFlags) PURE; 218435c4bbdfSmrg STDMETHOD(UpdateOverlayZOrder) (THIS_ DWORD dwFlags, 218535c4bbdfSmrg LPDIRECTDRAWSURFACE7 lpDDSReference) 218635c4bbdfSmrg PURE; 218735c4bbdfSmrg /* added in v2 */ 218835c4bbdfSmrg STDMETHOD(GetDDInterface) (THIS_ LPVOID * lplpDD) PURE; 218935c4bbdfSmrg STDMETHOD(PageLock) (THIS_ DWORD dwFlags) PURE; 219035c4bbdfSmrg STDMETHOD(PageUnlock) (THIS_ DWORD dwFlags) PURE; 219135c4bbdfSmrg /* added in v3 */ 219235c4bbdfSmrg STDMETHOD(SetSurfaceDesc) (THIS_ LPDDSURFACEDESC2 lpDDSD, 219335c4bbdfSmrg DWORD dwFlags) PURE; 219435c4bbdfSmrg /* added in v4 */ 219535c4bbdfSmrg STDMETHOD(SetPrivateData) (THIS_ REFGUID, LPVOID, DWORD, DWORD) PURE; 219635c4bbdfSmrg STDMETHOD(GetPrivateData) (THIS_ REFGUID, LPVOID, LPDWORD) PURE; 219735c4bbdfSmrg STDMETHOD(FreePrivateData) (THIS_ REFGUID) PURE; 219835c4bbdfSmrg STDMETHOD(GetUniquenessValue) (THIS_ LPDWORD) PURE; 219935c4bbdfSmrg STDMETHOD(ChangeUniquenessValue) (THIS) PURE; 220035c4bbdfSmrg /* added in v7 */ 220135c4bbdfSmrg STDMETHOD(SetPriority) (THIS_ DWORD prio) PURE; 220235c4bbdfSmrg STDMETHOD(GetPriority) (THIS_ LPDWORD prio) PURE; 220335c4bbdfSmrg STDMETHOD(SetLOD) (THIS_ DWORD lod) PURE; 220435c4bbdfSmrg STDMETHOD(GetLOD) (THIS_ LPDWORD lod) PURE; 220535c4bbdfSmrg }; 220605b261ecSmrg 220705b261ecSmrg /*** IUnknown methods ***/ 220805b261ecSmrg#define IDirectDrawSurface7_QueryInterface(p,a,b) ICOM_CALL_(QueryInterface,p,(p,a,b)) 220905b261ecSmrg#define IDirectDrawSurface7_AddRef(p) ICOM_CALL_(AddRef,p,(p)) 221005b261ecSmrg#define IDirectDrawSurface7_Release(p) ICOM_CALL_(Release,p,(p)) 221105b261ecSmrg/*** IDirectDrawSurface (almost) methods ***/ 221205b261ecSmrg#define IDirectDrawSurface7_AddAttachedSurface(p,a) ICOM_CALL_(AddAttachedSurface,p,(p,a)) 221305b261ecSmrg#define IDirectDrawSurface7_AddOverlayDirtyRect(p,a) ICOM_CALL_(AddOverlayDirtyRect,p,(p,a)) 221405b261ecSmrg#define IDirectDrawSurface7_Blt(p,a,b,c,d,e) ICOM_CALL_(Blt,p,(p,a,b,c,d,e)) 221505b261ecSmrg#define IDirectDrawSurface7_BltBatch(p,a,b,c) ICOM_CALL_(BltBatch,p,(p,a,b,c)) 221605b261ecSmrg#define IDirectDrawSurface7_BltFast(p,a,b,c,d,e) ICOM_CALL_(BltFast,p,(p,a,b,c,d,e)) 221705b261ecSmrg#define IDirectDrawSurface7_DeleteAttachedSurface(p,a,b) ICOM_CALL_(DeleteAttachedSurface,p,(p,a,b)) 221805b261ecSmrg#define IDirectDrawSurface7_EnumAttachedSurfaces(p,a,b) ICOM_CALL_(EnumAttachedSurfaces,p,(p,a,b)) 221905b261ecSmrg#define IDirectDrawSurface7_EnumOverlayZOrders(p,a,b,c) ICOM_CALL_(EnumOverlayZOrders,p,(p,a,b,c)) 222005b261ecSmrg#define IDirectDrawSurface7_Flip(p,a,b) ICOM_CALL_(Flip,p,(p,a,b)) 222105b261ecSmrg#define IDirectDrawSurface7_GetAttachedSurface(p,a,b) ICOM_CALL_(GetAttachedSurface,p,(p,a,b)) 222205b261ecSmrg#define IDirectDrawSurface7_GetBltStatus(p,a) ICOM_CALL_(GetBltStatus,p,(p,a)) 222305b261ecSmrg#define IDirectDrawSurface7_GetCaps(p,a) ICOM_CALL_(GetCaps,p,(p,a)) 222405b261ecSmrg#define IDirectDrawSurface7_GetClipper(p,a) ICOM_CALL_(GetClipper,p,(p,a)) 222505b261ecSmrg#define IDirectDrawSurface7_GetColorKey(p,a,b) ICOM_CALL_(GetColorKey,p,(p,a,b)) 222605b261ecSmrg#define IDirectDrawSurface7_GetDC(p,a) ICOM_CALL_(GetDC,p,(p,a)) 222705b261ecSmrg#define IDirectDrawSurface7_GetFlipStatus(p,a) ICOM_CALL_(GetFlipStatus,p,(p,a)) 222805b261ecSmrg#define IDirectDrawSurface7_GetOverlayPosition(p,a,b) ICOM_CALL_(GetOverlayPosition,p,(p,a,b)) 222905b261ecSmrg#define IDirectDrawSurface7_GetPalette(p,a) ICOM_CALL_(GetPalette,p,(p,a)) 223005b261ecSmrg#define IDirectDrawSurface7_GetPixelFormat(p,a) ICOM_CALL_(GetPixelFormat,p,(p,a)) 223105b261ecSmrg#define IDirectDrawSurface7_GetSurfaceDesc(p,a) ICOM_CALL_(GetSurfaceDesc,p,(p,a)) 223205b261ecSmrg#define IDirectDrawSurface7_Initialize(p,a,b) ICOM_CALL_(Initialize,p,(p,a,b)) 223305b261ecSmrg#define IDirectDrawSurface7_IsLost(p) ICOM_CALL_(IsLost,p,(p)) 223405b261ecSmrg#define IDirectDrawSurface7_Lock(p,a,b,c,d) ICOM_CALL_(Lock,p,(p,a,b,c,d)) 223505b261ecSmrg#define IDirectDrawSurface7_ReleaseDC(p,a) ICOM_CALL_(ReleaseDC,p,(p,a)) 223605b261ecSmrg#define IDirectDrawSurface7_Restore(p) ICOM_CALL_(Restore,p,(p)) 223705b261ecSmrg#define IDirectDrawSurface7_SetClipper(p,a) ICOM_CALL_(SetClipper,p,(p,a)) 223805b261ecSmrg#define IDirectDrawSurface7_SetColorKey(p,a,b) ICOM_CALL_(SetColorKey,p,(p,a,b)) 223905b261ecSmrg#define IDirectDrawSurface7_SetOverlayPosition(p,a,b) ICOM_CALL_(SetOverlayPosition,p,(p,a,b)) 224005b261ecSmrg#define IDirectDrawSurface7_SetPalette(p,a) ICOM_CALL_(SetPalette,p,(p,a)) 224105b261ecSmrg#define IDirectDrawSurface7_Unlock(p,a) ICOM_CALL_(Unlock,p,(p,a)) 224205b261ecSmrg#define IDirectDrawSurface7_UpdateOverlay(p,a,b,c,d,e) ICOM_CALL_(UpdateOverlay,p,(p,a,b,c,d,e)) 224305b261ecSmrg#define IDirectDrawSurface7_UpdateOverlayDisplay(p,a) ICOM_CALL_(UpdateOverlayDisplay,p,(p,a)) 224405b261ecSmrg#define IDirectDrawSurface7_UpdateOverlayZOrder(p,a,b) ICOM_CALL_(UpdateOverlayZOrder,p,(p,a,b)) 224505b261ecSmrg/*** IDirectDrawSurface2 methods ***/ 224605b261ecSmrg#define IDirectDrawSurface7_GetDDInterface(p,a) ICOM_CALL_(GetDDInterface,p,(p,a)) 224705b261ecSmrg#define IDirectDrawSurface7_PageLock(p,a) ICOM_CALL_(PageLock,p,(p,a)) 224805b261ecSmrg#define IDirectDrawSurface7_PageUnlock(p,a) ICOM_CALL_(PageUnlock,p,(p,a)) 224905b261ecSmrg/*** IDirectDrawSurface3 methods ***/ 225005b261ecSmrg#define IDirectDrawSurface7_SetSurfaceDesc(p,a,b) ICOM_CALL_(SetSurfaceDesc,p,(p,a,b)) 225105b261ecSmrg/*** IDirectDrawSurface4 methods ***/ 225205b261ecSmrg#define IDirectDrawSurface7_SetPrivateData(p,a,b,c,d) ICOM_CALL_(SetPrivateData,p,(p,a,b,c,d)) 225305b261ecSmrg#define IDirectDrawSurface7_GetPrivateData(p,a,b,c) ICOM_CALL_(GetPrivateData,p,(p,a,b,c)) 225405b261ecSmrg#define IDirectDrawSurface7_FreePrivateData(p,a) ICOM_CALL_(FreePrivateData,p,(p,a)) 225505b261ecSmrg#define IDirectDrawSurface7_GetUniquenessValue(p,a) ICOM_CALL_(GetUniquenessValue,p,(p,a)) 225605b261ecSmrg#define IDirectDrawSurface7_ChangeUniquenessValue(p) ICOM_CALL_(ChangeUniquenessValue,p,(p)) 225705b261ecSmrg/*** IDirectDrawSurface7 methods ***/ 225805b261ecSmrg#define IDirectDrawSurface7_SetPriority(p,a) ICOM_CALL_(SetPriority,p,(p,a)) 225905b261ecSmrg#define IDirectDrawSurface7_GetPriority(p,a) ICOM_CALL_(GetPriority,p,(p,a)) 226005b261ecSmrg#define IDirectDrawSurface7_SetLOD(p,a) ICOM_CALL_(SetLOD,p,(p,a)) 226105b261ecSmrg#define IDirectDrawSurface7_GetLOD(p,a) ICOM_CALL_(GetLOD,p,(p,a)) 226205b261ecSmrg 226305b261ecSmrg/***************************************************************************** 226405b261ecSmrg * IDirectDrawColorControl interface 226505b261ecSmrg */ 226605b261ecSmrg#undef INTERFACE 226705b261ecSmrg#define INTERFACE IDirectDrawColorControl 226835c4bbdfSmrg DECLARE_INTERFACE_(IDirectDrawColorControl, IUnknown) { 226935c4bbdfSmrg STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID *) PURE; 227035c4bbdfSmrg STDMETHOD_(ULONG, AddRef) (THIS) PURE; 227135c4bbdfSmrg STDMETHOD_(ULONG, Release) (THIS) PURE; 227235c4bbdfSmrg STDMETHOD(GetColorControls) (THIS_ LPDDCOLORCONTROL lpColorControl) 227335c4bbdfSmrg PURE; 227435c4bbdfSmrg STDMETHOD(SetColorControls) (THIS_ LPDDCOLORCONTROL lpColorControl) 227535c4bbdfSmrg PURE; 227635c4bbdfSmrg }; 227735c4bbdfSmrg 227835c4bbdfSmrg /*** IUnknown methods ***/ 227905b261ecSmrg#define IDirectDrawColorControl_QueryInterface(p,a,b) ICOM_CALL_(QueryInterface,p,(p,a,b)) 228005b261ecSmrg#define IDirectDrawColorControl_AddRef(p) ICOM_CALL_(AddRef,p,(p)) 228105b261ecSmrg#define IDirectDrawColorControl_Release(p) ICOM_CALL_(Release,p,(p)) 228235c4bbdfSmrg /*** IDirectDrawColorControl methods ***/ 228305b261ecSmrg#define IDirectDrawColorControl_GetColorControls(p,a) ICOM_CALL_(GetColorControls,p,(p,a)) 228405b261ecSmrg#define IDirectDrawColorControl_SetColorControls(p,a) ICOM_CALL_(SetColorControls,p,(p,a)) 228505b261ecSmrg 228605b261ecSmrg/***************************************************************************** 228705b261ecSmrg * IDirectDrawGammaControl interface 228805b261ecSmrg */ 228905b261ecSmrg#undef INTERFACE 229005b261ecSmrg#define INTERFACE IDirectDrawGammaControl 229135c4bbdfSmrg DECLARE_INTERFACE_(IDirectDrawGammaControl, IUnknown) { 229235c4bbdfSmrg STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID *) PURE; 229335c4bbdfSmrg STDMETHOD_(ULONG, AddRef) (THIS) PURE; 229435c4bbdfSmrg STDMETHOD_(ULONG, Release) (THIS) PURE; 229535c4bbdfSmrg STDMETHOD(GetGammaRamp) (THIS_ DWORD dwFlags, 229635c4bbdfSmrg LPDDGAMMARAMP lpGammaRamp) PURE; 229735c4bbdfSmrg STDMETHOD(SetGammaRamp) (THIS_ DWORD dwFlags, 229835c4bbdfSmrg LPDDGAMMARAMP lpGammaRamp) PURE; 229935c4bbdfSmrg }; 230035c4bbdfSmrg 230135c4bbdfSmrg /*** IUnknown methods ***/ 230205b261ecSmrg#define IDirectDrawGammaControl_QueryInterface(p,a,b) ICOM_CALL_(QueryInterface,p,(p,a,b)) 230305b261ecSmrg#define IDirectDrawGammaControl_AddRef(p) ICOM_CALL_(AddRef,p,(p)) 230405b261ecSmrg#define IDirectDrawGammaControl_Release(p) ICOM_CALL_(Release,p,(p)) 230535c4bbdfSmrg /*** IDirectDrawGammaControl methods ***/ 230605b261ecSmrg#define IDirectDrawGammaControl_GetGammaRamp(p,a,b) ICOM_CALL_(GetGammaRamp,p,(p,a,b)) 230705b261ecSmrg#define IDirectDrawGammaControl_SetGammaRamp(p,a,b) ICOM_CALL_(SetGammaRamp,p,(p,a,b)) 230805b261ecSmrg 230935c4bbdfSmrg HRESULT WINAPI DirectDrawCreate(LPGUID, LPDIRECTDRAW *, LPUNKNOWN); 231035c4bbdfSmrg HRESULT WINAPI DirectDrawCreateEx(LPGUID, LPVOID *, REFIID, LPUNKNOWN); 231135c4bbdfSmrg HRESULT WINAPI DirectDrawEnumerateA(LPDDENUMCALLBACKA, LPVOID); 231235c4bbdfSmrg HRESULT WINAPI DirectDrawEnumerateW(LPDDENUMCALLBACKW, LPVOID); 231305b261ecSmrg 231405b261ecSmrg#define DirectDrawEnumerate WINELIB_NAME_AW(DirectDrawEnumerate) 231535c4bbdfSmrg HRESULT WINAPI DirectDrawCreateClipper(DWORD, LPDIRECTDRAWCLIPPER *, 231635c4bbdfSmrg LPUNKNOWN); 231705b261ecSmrg 231805b261ecSmrg#ifdef __cplusplus 231935c4bbdfSmrg} /* extern "C" */ 232035c4bbdfSmrg#endif /* defined(__cplusplus) */ 232105b261ecSmrg 232235c4bbdfSmrg#endif /* __XWIN_DDRAW_H */ 2323