ddraw.h revision 05b261ec
105b261ecSmrg#ifndef __XWIN_DDRAW_H 205b261ecSmrg#define __XWIN_DDRAW_H 305b261ecSmrg 405b261ecSmrg#include <winnt.h> 505b261ecSmrg#include <wingdi.h> 605b261ecSmrg#include <objbase.h> 705b261ecSmrg 805b261ecSmrg#if defined(NONAMELESSUNION) && !defined(DUMMYUNIONNAME1) 905b261ecSmrg#define DUMMYUNIONNAME1 u1 1005b261ecSmrg#endif 1105b261ecSmrg 1205b261ecSmrg#define ICOM_CALL_( xfn, p, args) (p)->lpVtbl->xfn args 1305b261ecSmrg 1405b261ecSmrg# ifdef UNICODE 1505b261ecSmrg# define WINELIB_NAME_AW(func) func##W 1605b261ecSmrg# else 1705b261ecSmrg# define WINELIB_NAME_AW(func) func##A 1805b261ecSmrg# endif /* UNICODE */ 1905b261ecSmrg#define DECL_WINELIB_TYPE_AW(type) typedef WINELIB_NAME_AW(type) type; 2005b261ecSmrg 2105b261ecSmrg#ifdef __cplusplus 2205b261ecSmrgextern "C" { 2305b261ecSmrg#endif /* defined(__cplusplus) */ 2405b261ecSmrg 2505b261ecSmrg#ifndef DIRECTDRAW_VERSION 2605b261ecSmrg#define DIRECTDRAW_VERSION 0x0700 2705b261ecSmrg#endif /* DIRECTDRAW_VERSION */ 2805b261ecSmrg 2905b261ecSmrg/***************************************************************************** 3005b261ecSmrg * Predeclare the interfaces 3105b261ecSmrg */ 3205b261ecSmrgDEFINE_GUID( CLSID_DirectDraw, 0xD7B70EE0,0x4340,0x11CF,0xB0,0x63,0x00,0x20,0xAF,0xC2,0xCD,0x35 ); 3305b261ecSmrgDEFINE_GUID( CLSID_DirectDraw7, 0x3C305196,0x50DB,0x11D3,0x9C,0xFE,0x00,0xC0,0x4F,0xD9,0x30,0xC5 ); 3405b261ecSmrgDEFINE_GUID( CLSID_DirectDrawClipper, 0x593817A0,0x7DB3,0x11CF,0xA2,0xDE,0x00,0xAA,0x00,0xb9,0x33,0x56 ); 3505b261ecSmrgDEFINE_GUID( IID_IDirectDraw, 0x6C14DB80,0xA733,0x11CE,0xA5,0x21,0x00,0x20,0xAF,0x0B,0xE5,0x60 ); 3605b261ecSmrgDEFINE_GUID( IID_IDirectDraw2, 0xB3A6F3E0,0x2B43,0x11CF,0xA2,0xDE,0x00,0xAA,0x00,0xB9,0x33,0x56 ); 3705b261ecSmrgDEFINE_GUID( IID_IDirectDraw4, 0x9c59509a,0x39bd,0x11d1,0x8c,0x4a,0x00,0xc0,0x4f,0xd9,0x30,0xc5 ); 3805b261ecSmrgDEFINE_GUID( IID_IDirectDraw7, 0x15e65ec0,0x3b9c,0x11d2,0xb9,0x2f,0x00,0x60,0x97,0x97,0xea,0x5b ); 3905b261ecSmrgDEFINE_GUID( IID_IDirectDrawSurface, 0x6C14DB81,0xA733,0x11CE,0xA5,0x21,0x00,0x20,0xAF,0x0B,0xE5,0x60 ); 4005b261ecSmrgDEFINE_GUID( IID_IDirectDrawSurface2, 0x57805885,0x6eec,0x11cf,0x94,0x41,0xa8,0x23,0x03,0xc1,0x0e,0x27 ); 4105b261ecSmrgDEFINE_GUID( IID_IDirectDrawSurface3, 0xDA044E00,0x69B2,0x11D0,0xA1,0xD5,0x00,0xAA,0x00,0xB8,0xDF,0xBB ); 4205b261ecSmrgDEFINE_GUID( IID_IDirectDrawSurface4, 0x0B2B8630,0xAD35,0x11D0,0x8E,0xA6,0x00,0x60,0x97,0x97,0xEA,0x5B ); 4305b261ecSmrgDEFINE_GUID( IID_IDirectDrawSurface7, 0x06675a80,0x3b9b,0x11d2,0xb9,0x2f,0x00,0x60,0x97,0x97,0xea,0x5b ); 4405b261ecSmrgDEFINE_GUID( IID_IDirectDrawPalette, 0x6C14DB84,0xA733,0x11CE,0xA5,0x21,0x00,0x20,0xAF,0x0B,0xE5,0x60 ); 4505b261ecSmrgDEFINE_GUID( IID_IDirectDrawClipper, 0x6C14DB85,0xA733,0x11CE,0xA5,0x21,0x00,0x20,0xAF,0x0B,0xE5,0x60 ); 4605b261ecSmrgDEFINE_GUID( IID_IDirectDrawColorControl,0x4B9F0EE0,0x0D7E,0x11D0,0x9B,0x06,0x00,0xA0,0xC9,0x03,0xA3,0xB8 ); 4705b261ecSmrgDEFINE_GUID( IID_IDirectDrawGammaControl,0x69C11C3E,0xB46B,0x11D1,0xAD,0x7A,0x00,0xC0,0x4F,0xC2,0x9B,0x4E ); 4805b261ecSmrg 4905b261ecSmrgtypedef struct IDirectDraw *LPDIRECTDRAW; 5005b261ecSmrgtypedef struct IDirectDraw2 *LPDIRECTDRAW2; 5105b261ecSmrgtypedef struct IDirectDraw4 *LPDIRECTDRAW4; 5205b261ecSmrgtypedef struct IDirectDraw7 *LPDIRECTDRAW7; 5305b261ecSmrgtypedef struct IDirectDrawClipper *LPDIRECTDRAWCLIPPER; 5405b261ecSmrgtypedef struct IDirectDrawPalette *LPDIRECTDRAWPALETTE; 5505b261ecSmrgtypedef struct IDirectDrawSurface *LPDIRECTDRAWSURFACE; 5605b261ecSmrgtypedef struct IDirectDrawSurface2 *LPDIRECTDRAWSURFACE2; 5705b261ecSmrgtypedef struct IDirectDrawSurface3 *LPDIRECTDRAWSURFACE3; 5805b261ecSmrgtypedef struct IDirectDrawSurface4 *LPDIRECTDRAWSURFACE4; 5905b261ecSmrgtypedef struct IDirectDrawSurface7 *LPDIRECTDRAWSURFACE7; 6005b261ecSmrgtypedef struct IDirectDrawColorControl *LPDIRECTDRAWCOLORCONTROL; 6105b261ecSmrgtypedef struct IDirectDrawGammaControl *LPDIRECTDRAWGAMMACONTROL; 6205b261ecSmrg 6305b261ecSmrg 6405b261ecSmrg#define DDENUMRET_CANCEL 0 6505b261ecSmrg#define DDENUMRET_OK 1 6605b261ecSmrg 6705b261ecSmrg#define DD_OK 0 6805b261ecSmrg 6905b261ecSmrg 7005b261ecSmrg#define _FACDD 0x876 7105b261ecSmrg#define MAKE_DDHRESULT( code ) MAKE_HRESULT( 1, _FACDD, code ) 7205b261ecSmrg 7305b261ecSmrg#define DDERR_ALREADYINITIALIZED MAKE_DDHRESULT( 5 ) 7405b261ecSmrg#define DDERR_CANNOTATTACHSURFACE MAKE_DDHRESULT( 10 ) 7505b261ecSmrg#define DDERR_CANNOTDETACHSURFACE MAKE_DDHRESULT( 20 ) 7605b261ecSmrg#define DDERR_CURRENTLYNOTAVAIL MAKE_DDHRESULT( 40 ) 7705b261ecSmrg#define DDERR_EXCEPTION MAKE_DDHRESULT( 55 ) 7805b261ecSmrg#define DDERR_GENERIC E_FAIL 7905b261ecSmrg#define DDERR_HEIGHTALIGN MAKE_DDHRESULT( 90 ) 8005b261ecSmrg#define DDERR_INCOMPATIBLEPRIMARY MAKE_DDHRESULT( 95 ) 8105b261ecSmrg#define DDERR_INVALIDCAPS MAKE_DDHRESULT( 100 ) 8205b261ecSmrg#define DDERR_INVALIDCLIPLIST MAKE_DDHRESULT( 110 ) 8305b261ecSmrg#define DDERR_INVALIDMODE MAKE_DDHRESULT( 120 ) 8405b261ecSmrg#define DDERR_INVALIDOBJECT MAKE_DDHRESULT( 130 ) 8505b261ecSmrg#define DDERR_INVALIDPARAMS E_INVALIDARG 8605b261ecSmrg#define DDERR_INVALIDPIXELFORMAT MAKE_DDHRESULT( 145 ) 8705b261ecSmrg#define DDERR_INVALIDRECT MAKE_DDHRESULT( 150 ) 8805b261ecSmrg#define DDERR_LOCKEDSURFACES MAKE_DDHRESULT( 160 ) 8905b261ecSmrg#define DDERR_NO3D MAKE_DDHRESULT( 170 ) 9005b261ecSmrg#define DDERR_NOALPHAHW MAKE_DDHRESULT( 180 ) 9105b261ecSmrg#define DDERR_NOSTEREOHARDWARE MAKE_DDHRESULT( 181 ) 9205b261ecSmrg#define DDERR_NOSURFACELEFT MAKE_DDHRESULT( 182 ) 9305b261ecSmrg#define DDERR_NOCLIPLIST MAKE_DDHRESULT( 205 ) 9405b261ecSmrg#define DDERR_NOCOLORCONVHW MAKE_DDHRESULT( 210 ) 9505b261ecSmrg#define DDERR_NOCOOPERATIVELEVELSET MAKE_DDHRESULT( 212 ) 9605b261ecSmrg#define DDERR_NOCOLORKEY MAKE_DDHRESULT( 215 ) 9705b261ecSmrg#define DDERR_NOCOLORKEYHW MAKE_DDHRESULT( 220 ) 9805b261ecSmrg#define DDERR_NODIRECTDRAWSUPPORT MAKE_DDHRESULT( 222 ) 9905b261ecSmrg#define DDERR_NOEXCLUSIVEMODE MAKE_DDHRESULT( 225 ) 10005b261ecSmrg#define DDERR_NOFLIPHW MAKE_DDHRESULT( 230 ) 10105b261ecSmrg#define DDERR_NOGDI MAKE_DDHRESULT( 240 ) 10205b261ecSmrg#define DDERR_NOMIRRORHW MAKE_DDHRESULT( 250 ) 10305b261ecSmrg#define DDERR_NOTFOUND MAKE_DDHRESULT( 255 ) 10405b261ecSmrg#define DDERR_NOOVERLAYHW MAKE_DDHRESULT( 260 ) 10505b261ecSmrg#define DDERR_OVERLAPPINGRECTS MAKE_DDHRESULT( 270 ) 10605b261ecSmrg#define DDERR_NORASTEROPHW MAKE_DDHRESULT( 280 ) 10705b261ecSmrg#define DDERR_NOROTATIONHW MAKE_DDHRESULT( 290 ) 10805b261ecSmrg#define DDERR_NOSTRETCHHW MAKE_DDHRESULT( 310 ) 10905b261ecSmrg#define DDERR_NOT4BITCOLOR MAKE_DDHRESULT( 316 ) 11005b261ecSmrg#define DDERR_NOT4BITCOLORINDEX MAKE_DDHRESULT( 317 ) 11105b261ecSmrg#define DDERR_NOT8BITCOLOR MAKE_DDHRESULT( 320 ) 11205b261ecSmrg#define DDERR_NOTEXTUREHW MAKE_DDHRESULT( 330 ) 11305b261ecSmrg#define DDERR_NOVSYNCHW MAKE_DDHRESULT( 335 ) 11405b261ecSmrg#define DDERR_NOZBUFFERHW MAKE_DDHRESULT( 340 ) 11505b261ecSmrg#define DDERR_NOZOVERLAYHW MAKE_DDHRESULT( 350 ) 11605b261ecSmrg#define DDERR_OUTOFCAPS MAKE_DDHRESULT( 360 ) 11705b261ecSmrg#define DDERR_OUTOFMEMORY E_OUTOFMEMORY 11805b261ecSmrg#define DDERR_OUTOFVIDEOMEMORY MAKE_DDHRESULT( 380 ) 11905b261ecSmrg#define DDERR_OVERLAYCANTCLIP MAKE_DDHRESULT( 382 ) 12005b261ecSmrg#define DDERR_OVERLAYCOLORKEYONLYONEACTIVE MAKE_DDHRESULT( 384 ) 12105b261ecSmrg#define DDERR_PALETTEBUSY MAKE_DDHRESULT( 387 ) 12205b261ecSmrg#define DDERR_COLORKEYNOTSET MAKE_DDHRESULT( 400 ) 12305b261ecSmrg#define DDERR_SURFACEALREADYATTACHED MAKE_DDHRESULT( 410 ) 12405b261ecSmrg#define DDERR_SURFACEALREADYDEPENDENT MAKE_DDHRESULT( 420 ) 12505b261ecSmrg#define DDERR_SURFACEBUSY MAKE_DDHRESULT( 430 ) 12605b261ecSmrg#define DDERR_CANTLOCKSURFACE MAKE_DDHRESULT( 435 ) 12705b261ecSmrg#define DDERR_SURFACEISOBSCURED MAKE_DDHRESULT( 440 ) 12805b261ecSmrg#define DDERR_SURFACELOST MAKE_DDHRESULT( 450 ) 12905b261ecSmrg#define DDERR_SURFACENOTATTACHED MAKE_DDHRESULT( 460 ) 13005b261ecSmrg#define DDERR_TOOBIGHEIGHT MAKE_DDHRESULT( 470 ) 13105b261ecSmrg#define DDERR_TOOBIGSIZE MAKE_DDHRESULT( 480 ) 13205b261ecSmrg#define DDERR_TOOBIGWIDTH MAKE_DDHRESULT( 490 ) 13305b261ecSmrg#define DDERR_UNSUPPORTED E_NOTIMPL 13405b261ecSmrg#define DDERR_UNSUPPORTEDFORMAT MAKE_DDHRESULT( 510 ) 13505b261ecSmrg#define DDERR_UNSUPPORTEDMASK MAKE_DDHRESULT( 520 ) 13605b261ecSmrg#define DDERR_INVALIDSTREAM MAKE_DDHRESULT( 521 ) 13705b261ecSmrg#define DDERR_VERTICALBLANKINPROGRESS MAKE_DDHRESULT( 537 ) 13805b261ecSmrg#define DDERR_WASSTILLDRAWING MAKE_DDHRESULT( 540 ) 13905b261ecSmrg#define DDERR_DDSCAPSCOMPLEXREQUIRED MAKE_DDHRESULT( 542 ) 14005b261ecSmrg#define DDERR_XALIGN MAKE_DDHRESULT( 560 ) 14105b261ecSmrg#define DDERR_INVALIDDIRECTDRAWGUID MAKE_DDHRESULT( 561 ) 14205b261ecSmrg#define DDERR_DIRECTDRAWALREADYCREATED MAKE_DDHRESULT( 562 ) 14305b261ecSmrg#define DDERR_NODIRECTDRAWHW MAKE_DDHRESULT( 563 ) 14405b261ecSmrg#define DDERR_PRIMARYSURFACEALREADYEXISTS MAKE_DDHRESULT( 564 ) 14505b261ecSmrg#define DDERR_NOEMULATION MAKE_DDHRESULT( 565 ) 14605b261ecSmrg#define DDERR_REGIONTOOSMALL MAKE_DDHRESULT( 566 ) 14705b261ecSmrg#define DDERR_CLIPPERISUSINGHWND MAKE_DDHRESULT( 567 ) 14805b261ecSmrg#define DDERR_NOCLIPPERATTACHED MAKE_DDHRESULT( 568 ) 14905b261ecSmrg#define DDERR_NOHWND MAKE_DDHRESULT( 569 ) 15005b261ecSmrg#define DDERR_HWNDSUBCLASSED MAKE_DDHRESULT( 570 ) 15105b261ecSmrg#define DDERR_HWNDALREADYSET MAKE_DDHRESULT( 571 ) 15205b261ecSmrg#define DDERR_NOPALETTEATTACHED MAKE_DDHRESULT( 572 ) 15305b261ecSmrg#define DDERR_NOPALETTEHW MAKE_DDHRESULT( 573 ) 15405b261ecSmrg#define DDERR_BLTFASTCANTCLIP MAKE_DDHRESULT( 574 ) 15505b261ecSmrg#define DDERR_NOBLTHW MAKE_DDHRESULT( 575 ) 15605b261ecSmrg#define DDERR_NODDROPSHW MAKE_DDHRESULT( 576 ) 15705b261ecSmrg#define DDERR_OVERLAYNOTVISIBLE MAKE_DDHRESULT( 577 ) 15805b261ecSmrg#define DDERR_NOOVERLAYDEST MAKE_DDHRESULT( 578 ) 15905b261ecSmrg#define DDERR_INVALIDPOSITION MAKE_DDHRESULT( 579 ) 16005b261ecSmrg#define DDERR_NOTAOVERLAYSURFACE MAKE_DDHRESULT( 580 ) 16105b261ecSmrg#define DDERR_EXCLUSIVEMODEALREADYSET MAKE_DDHRESULT( 581 ) 16205b261ecSmrg#define DDERR_NOTFLIPPABLE MAKE_DDHRESULT( 582 ) 16305b261ecSmrg#define DDERR_CANTDUPLICATE MAKE_DDHRESULT( 583 ) 16405b261ecSmrg#define DDERR_NOTLOCKED MAKE_DDHRESULT( 584 ) 16505b261ecSmrg#define DDERR_CANTCREATEDC MAKE_DDHRESULT( 585 ) 16605b261ecSmrg#define DDERR_NODC MAKE_DDHRESULT( 586 ) 16705b261ecSmrg#define DDERR_WRONGMODE MAKE_DDHRESULT( 587 ) 16805b261ecSmrg#define DDERR_IMPLICITLYCREATED MAKE_DDHRESULT( 588 ) 16905b261ecSmrg#define DDERR_NOTPALETTIZED MAKE_DDHRESULT( 589 ) 17005b261ecSmrg#define DDERR_UNSUPPORTEDMODE MAKE_DDHRESULT( 590 ) 17105b261ecSmrg#define DDERR_NOMIPMAPHW MAKE_DDHRESULT( 591 ) 17205b261ecSmrg#define DDERR_INVALIDSURFACETYPE MAKE_DDHRESULT( 592 ) 17305b261ecSmrg#define DDERR_NOOPTIMIZEHW MAKE_DDHRESULT( 600 ) 17405b261ecSmrg#define DDERR_NOTLOADED MAKE_DDHRESULT( 601 ) 17505b261ecSmrg#define DDERR_NOFOCUSWINDOW MAKE_DDHRESULT( 602 ) 17605b261ecSmrg#define DDERR_NOTONMIPMAPSUBLEVEL MAKE_DDHRESULT( 603 ) 17705b261ecSmrg#define DDERR_DCALREADYCREATED MAKE_DDHRESULT( 620 ) 17805b261ecSmrg#define DDERR_NONONLOCALVIDMEM MAKE_DDHRESULT( 630 ) 17905b261ecSmrg#define DDERR_CANTPAGELOCK MAKE_DDHRESULT( 640 ) 18005b261ecSmrg#define DDERR_CANTPAGEUNLOCK MAKE_DDHRESULT( 660 ) 18105b261ecSmrg#define DDERR_NOTPAGELOCKED MAKE_DDHRESULT( 680 ) 18205b261ecSmrg#define DDERR_MOREDATA MAKE_DDHRESULT( 690 ) 18305b261ecSmrg#define DDERR_EXPIRED MAKE_DDHRESULT( 691 ) 18405b261ecSmrg#define DDERR_TESTFINISHED MAKE_DDHRESULT( 692 ) 18505b261ecSmrg#define DDERR_NEWMODE MAKE_DDHRESULT( 693 ) 18605b261ecSmrg#define DDERR_D3DNOTINITIALIZED MAKE_DDHRESULT( 694 ) 18705b261ecSmrg#define DDERR_VIDEONOTACTIVE MAKE_DDHRESULT( 695 ) 18805b261ecSmrg#define DDERR_NOMONITORINFORMATION MAKE_DDHRESULT( 696 ) 18905b261ecSmrg#define DDERR_NODRIVERSUPPORT MAKE_DDHRESULT( 697 ) 19005b261ecSmrg#define DDERR_DEVICEDOESNTOWNSURFACE MAKE_DDHRESULT( 699 ) 19105b261ecSmrg#define DDERR_NOTINITIALIZED CO_E_NOTINITIALIZED 19205b261ecSmrg 19305b261ecSmrg/* dwFlags for Blt* */ 19405b261ecSmrg#define DDBLT_ALPHADEST 0x00000001 19505b261ecSmrg#define DDBLT_ALPHADESTCONSTOVERRIDE 0x00000002 19605b261ecSmrg#define DDBLT_ALPHADESTNEG 0x00000004 19705b261ecSmrg#define DDBLT_ALPHADESTSURFACEOVERRIDE 0x00000008 19805b261ecSmrg#define DDBLT_ALPHAEDGEBLEND 0x00000010 19905b261ecSmrg#define DDBLT_ALPHASRC 0x00000020 20005b261ecSmrg#define DDBLT_ALPHASRCCONSTOVERRIDE 0x00000040 20105b261ecSmrg#define DDBLT_ALPHASRCNEG 0x00000080 20205b261ecSmrg#define DDBLT_ALPHASRCSURFACEOVERRIDE 0x00000100 20305b261ecSmrg#define DDBLT_ASYNC 0x00000200 20405b261ecSmrg#define DDBLT_COLORFILL 0x00000400 20505b261ecSmrg#define DDBLT_DDFX 0x00000800 20605b261ecSmrg#define DDBLT_DDROPS 0x00001000 20705b261ecSmrg#define DDBLT_KEYDEST 0x00002000 20805b261ecSmrg#define DDBLT_KEYDESTOVERRIDE 0x00004000 20905b261ecSmrg#define DDBLT_KEYSRC 0x00008000 21005b261ecSmrg#define DDBLT_KEYSRCOVERRIDE 0x00010000 21105b261ecSmrg#define DDBLT_ROP 0x00020000 21205b261ecSmrg#define DDBLT_ROTATIONANGLE 0x00040000 21305b261ecSmrg#define DDBLT_ZBUFFER 0x00080000 21405b261ecSmrg#define DDBLT_ZBUFFERDESTCONSTOVERRIDE 0x00100000 21505b261ecSmrg#define DDBLT_ZBUFFERDESTOVERRIDE 0x00200000 21605b261ecSmrg#define DDBLT_ZBUFFERSRCCONSTOVERRIDE 0x00400000 21705b261ecSmrg#define DDBLT_ZBUFFERSRCOVERRIDE 0x00800000 21805b261ecSmrg#define DDBLT_WAIT 0x01000000 21905b261ecSmrg#define DDBLT_DEPTHFILL 0x02000000 22005b261ecSmrg#define DDBLT_DONOTWAIT 0x08000000 22105b261ecSmrg 22205b261ecSmrg/* dwTrans for BltFast */ 22305b261ecSmrg#define DDBLTFAST_NOCOLORKEY 0x00000000 22405b261ecSmrg#define DDBLTFAST_SRCCOLORKEY 0x00000001 22505b261ecSmrg#define DDBLTFAST_DESTCOLORKEY 0x00000002 22605b261ecSmrg#define DDBLTFAST_WAIT 0x00000010 22705b261ecSmrg#define DDBLTFAST_DONOTWAIT 0x00000020 22805b261ecSmrg 22905b261ecSmrg/* dwFlags for Flip */ 23005b261ecSmrg#define DDFLIP_WAIT 0x00000001 23105b261ecSmrg#define DDFLIP_EVEN 0x00000002 /* only valid for overlay */ 23205b261ecSmrg#define DDFLIP_ODD 0x00000004 /* only valid for overlay */ 23305b261ecSmrg#define DDFLIP_NOVSYNC 0x00000008 23405b261ecSmrg#define DDFLIP_STEREO 0x00000010 23505b261ecSmrg#define DDFLIP_DONOTWAIT 0x00000020 23605b261ecSmrg 23705b261ecSmrg/* dwFlags for GetBltStatus */ 23805b261ecSmrg#define DDGBS_CANBLT 0x00000001 23905b261ecSmrg#define DDGBS_ISBLTDONE 0x00000002 24005b261ecSmrg 24105b261ecSmrg/* dwFlags for IDirectDrawSurface7::GetFlipStatus */ 24205b261ecSmrg#define DDGFS_CANFLIP 1L 24305b261ecSmrg#define DDGFS_ISFLIPDONE 2L 24405b261ecSmrg 24505b261ecSmrg/* dwFlags for IDirectDrawSurface7::SetPrivateData */ 24605b261ecSmrg#define DDSPD_IUNKNOWNPTR 1L 24705b261ecSmrg#define DDSPD_VOLATILE 2L 24805b261ecSmrg 24905b261ecSmrg/* DDSCAPS.dwCaps */ 25005b261ecSmrg/* reserved1, was 3d capable */ 25105b261ecSmrg#define DDSCAPS_RESERVED1 0x00000001 25205b261ecSmrg/* surface contains alpha information */ 25305b261ecSmrg#define DDSCAPS_ALPHA 0x00000002 25405b261ecSmrg/* this surface is a backbuffer */ 25505b261ecSmrg#define DDSCAPS_BACKBUFFER 0x00000004 25605b261ecSmrg/* complex surface structure */ 25705b261ecSmrg#define DDSCAPS_COMPLEX 0x00000008 25805b261ecSmrg/* part of surface flipping structure */ 25905b261ecSmrg#define DDSCAPS_FLIP 0x00000010 26005b261ecSmrg/* this surface is the frontbuffer surface */ 26105b261ecSmrg#define DDSCAPS_FRONTBUFFER 0x00000020 26205b261ecSmrg/* this is a plain offscreen surface */ 26305b261ecSmrg#define DDSCAPS_OFFSCREENPLAIN 0x00000040 26405b261ecSmrg/* overlay */ 26505b261ecSmrg#define DDSCAPS_OVERLAY 0x00000080 26605b261ecSmrg/* palette objects can be created and attached to us */ 26705b261ecSmrg#define DDSCAPS_PALETTE 0x00000100 26805b261ecSmrg/* primary surface (the one the user looks at currently)(right eye)*/ 26905b261ecSmrg#define DDSCAPS_PRIMARYSURFACE 0x00000200 27005b261ecSmrg/* primary surface for left eye */ 27105b261ecSmrg#define DDSCAPS_PRIMARYSURFACELEFT 0x00000400 27205b261ecSmrg/* surface exists in systemmemory */ 27305b261ecSmrg#define DDSCAPS_SYSTEMMEMORY 0x00000800 27405b261ecSmrg/* surface can be used as a texture */ 27505b261ecSmrg#define DDSCAPS_TEXTURE 0x00001000 27605b261ecSmrg/* surface may be destination for 3d rendering */ 27705b261ecSmrg#define DDSCAPS_3DDEVICE 0x00002000 27805b261ecSmrg/* surface exists in videomemory */ 27905b261ecSmrg#define DDSCAPS_VIDEOMEMORY 0x00004000 28005b261ecSmrg/* surface changes immediately visible */ 28105b261ecSmrg#define DDSCAPS_VISIBLE 0x00008000 28205b261ecSmrg/* write only surface */ 28305b261ecSmrg#define DDSCAPS_WRITEONLY 0x00010000 28405b261ecSmrg/* zbuffer surface */ 28505b261ecSmrg#define DDSCAPS_ZBUFFER 0x00020000 28605b261ecSmrg/* has its own DC */ 28705b261ecSmrg#define DDSCAPS_OWNDC 0x00040000 28805b261ecSmrg/* surface should be able to receive live video */ 28905b261ecSmrg#define DDSCAPS_LIVEVIDEO 0x00080000 29005b261ecSmrg/* should be able to have a hw codec decompress stuff into it */ 29105b261ecSmrg#define DDSCAPS_HWCODEC 0x00100000 29205b261ecSmrg/* mode X (320x200 or 320x240) surface */ 29305b261ecSmrg#define DDSCAPS_MODEX 0x00200000 29405b261ecSmrg/* one mipmap surface (1 level) */ 29505b261ecSmrg#define DDSCAPS_MIPMAP 0x00400000 29605b261ecSmrg#define DDSCAPS_RESERVED2 0x00800000 29705b261ecSmrg/* memory allocation delayed until Load() */ 29805b261ecSmrg#define DDSCAPS_ALLOCONLOAD 0x04000000 29905b261ecSmrg/* Indicates that the surface will receive data from a video port */ 30005b261ecSmrg#define DDSCAPS_VIDEOPORT 0x08000000 30105b261ecSmrg/* surface is in local videomemory */ 30205b261ecSmrg#define DDSCAPS_LOCALVIDMEM 0x10000000 30305b261ecSmrg/* surface is in nonlocal videomemory */ 30405b261ecSmrg#define DDSCAPS_NONLOCALVIDMEM 0x20000000 30505b261ecSmrg/* surface is a standard VGA mode surface (NOT ModeX) */ 30605b261ecSmrg#define DDSCAPS_STANDARDVGAMODE 0x40000000 30705b261ecSmrg/* optimized? surface */ 30805b261ecSmrg#define DDSCAPS_OPTIMIZED 0x80000000 30905b261ecSmrg 31005b261ecSmrgtypedef struct _DDSCAPS { 31105b261ecSmrg DWORD dwCaps; /* capabilities of surface wanted */ 31205b261ecSmrg} DDSCAPS,*LPDDSCAPS; 31305b261ecSmrg 31405b261ecSmrg/* DDSCAPS2.dwCaps2 */ 31505b261ecSmrg/* indicates the surface will receive data from a video port using 31605b261ecSmrg deinterlacing hardware. */ 31705b261ecSmrg#define DDSCAPS2_HARDWAREDEINTERLACE 0x00000002 31805b261ecSmrg/* indicates the surface will be locked very frequently. */ 31905b261ecSmrg#define DDSCAPS2_HINTDYNAMIC 0x00000004 32005b261ecSmrg/* indicates surface can be re-ordered or retiled on load() */ 32105b261ecSmrg#define DDSCAPS2_HINTSTATIC 0x00000008 32205b261ecSmrg/* indicates surface to be managed by directdraw/direct3D */ 32305b261ecSmrg#define DDSCAPS2_TEXTUREMANAGE 0x00000010 32405b261ecSmrg/* reserved bits */ 32505b261ecSmrg#define DDSCAPS2_RESERVED1 0x00000020 32605b261ecSmrg#define DDSCAPS2_RESERVED2 0x00000040 32705b261ecSmrg/* indicates surface will never be locked again */ 32805b261ecSmrg#define DDSCAPS2_OPAQUE 0x00000080 32905b261ecSmrg/* set at CreateSurface() time to indicate antialising will be used */ 33005b261ecSmrg#define DDSCAPS2_HINTANTIALIASING 0x00000100 33105b261ecSmrg/* set at CreateSurface() time to indicate cubic environment map */ 33205b261ecSmrg#define DDSCAPS2_CUBEMAP 0x00000200 33305b261ecSmrg/* face flags for cube maps */ 33405b261ecSmrg#define DDSCAPS2_CUBEMAP_POSITIVEX 0x00000400 33505b261ecSmrg#define DDSCAPS2_CUBEMAP_NEGATIVEX 0x00000800 33605b261ecSmrg#define DDSCAPS2_CUBEMAP_POSITIVEY 0x00001000 33705b261ecSmrg#define DDSCAPS2_CUBEMAP_NEGATIVEY 0x00002000 33805b261ecSmrg#define DDSCAPS2_CUBEMAP_POSITIVEZ 0x00004000 33905b261ecSmrg#define DDSCAPS2_CUBEMAP_NEGATIVEZ 0x00008000 34005b261ecSmrg/* specifies all faces of a cube for CreateSurface() */ 34105b261ecSmrg#define DDSCAPS2_CUBEMAP_ALLFACES ( DDSCAPS2_CUBEMAP_POSITIVEX |\ 34205b261ecSmrg DDSCAPS2_CUBEMAP_NEGATIVEX |\ 34305b261ecSmrg DDSCAPS2_CUBEMAP_POSITIVEY |\ 34405b261ecSmrg DDSCAPS2_CUBEMAP_NEGATIVEY |\ 34505b261ecSmrg DDSCAPS2_CUBEMAP_POSITIVEZ |\ 34605b261ecSmrg DDSCAPS2_CUBEMAP_NEGATIVEZ ) 34705b261ecSmrg/* set for mipmap sublevels on DirectX7 and later. ignored by CreateSurface() */ 34805b261ecSmrg#define DDSCAPS2_MIPMAPSUBLEVEL 0x00010000 34905b261ecSmrg/* indicates texture surface to be managed by Direct3D *only* */ 35005b261ecSmrg#define DDSCAPS2_D3DTEXTUREMANAGE 0x00020000 35105b261ecSmrg/* indicates managed surface that can safely be lost */ 35205b261ecSmrg#define DDSCAPS2_DONOTPERSIST 0x00040000 35305b261ecSmrg/* indicates surface is part of a stereo flipping chain */ 35405b261ecSmrg#define DDSCAPS2_STEREOSURFACELEFT 0x00080000 35505b261ecSmrg 35605b261ecSmrgtypedef struct _DDSCAPS2 { 35705b261ecSmrg DWORD dwCaps; /* capabilities of surface wanted */ 35805b261ecSmrg DWORD dwCaps2; /* additional capabilities */ 35905b261ecSmrg DWORD dwCaps3; /* reserved capabilities */ 36005b261ecSmrg DWORD dwCaps4; /* more reserved capabilities */ 36105b261ecSmrg} DDSCAPS2,*LPDDSCAPS2; 36205b261ecSmrg 36305b261ecSmrg#define DD_ROP_SPACE (256/32) /* space required to store ROP array */ 36405b261ecSmrg 36505b261ecSmrgtypedef struct _DDCAPS_DX7 /* DirectX 7 version of caps struct */ 36605b261ecSmrg{ 36705b261ecSmrg DWORD dwSize; /* size of the DDDRIVERCAPS structure */ 36805b261ecSmrg DWORD dwCaps; /* driver specific capabilities */ 36905b261ecSmrg DWORD dwCaps2; /* more driver specific capabilites */ 37005b261ecSmrg DWORD dwCKeyCaps; /* color key capabilities of the surface */ 37105b261ecSmrg DWORD dwFXCaps; /* driver specific stretching and effects capabilites */ 37205b261ecSmrg DWORD dwFXAlphaCaps; /* alpha driver specific capabilities */ 37305b261ecSmrg DWORD dwPalCaps; /* palette capabilities */ 37405b261ecSmrg DWORD dwSVCaps; /* stereo vision capabilities */ 37505b261ecSmrg DWORD dwAlphaBltConstBitDepths; /* DDBD_2,4,8 */ 37605b261ecSmrg DWORD dwAlphaBltPixelBitDepths; /* DDBD_1,2,4,8 */ 37705b261ecSmrg DWORD dwAlphaBltSurfaceBitDepths; /* DDBD_1,2,4,8 */ 37805b261ecSmrg DWORD dwAlphaOverlayConstBitDepths; /* DDBD_2,4,8 */ 37905b261ecSmrg DWORD dwAlphaOverlayPixelBitDepths; /* DDBD_1,2,4,8 */ 38005b261ecSmrg DWORD dwAlphaOverlaySurfaceBitDepths; /* DDBD_1,2,4,8 */ 38105b261ecSmrg DWORD dwZBufferBitDepths; /* DDBD_8,16,24,32 */ 38205b261ecSmrg DWORD dwVidMemTotal; /* total amount of video memory */ 38305b261ecSmrg DWORD dwVidMemFree; /* amount of free video memory */ 38405b261ecSmrg DWORD dwMaxVisibleOverlays; /* maximum number of visible overlays */ 38505b261ecSmrg DWORD dwCurrVisibleOverlays; /* current number of visible overlays */ 38605b261ecSmrg DWORD dwNumFourCCCodes; /* number of four cc codes */ 38705b261ecSmrg DWORD dwAlignBoundarySrc; /* source rectangle alignment */ 38805b261ecSmrg DWORD dwAlignSizeSrc; /* source rectangle byte size */ 38905b261ecSmrg DWORD dwAlignBoundaryDest; /* dest rectangle alignment */ 39005b261ecSmrg DWORD dwAlignSizeDest; /* dest rectangle byte size */ 39105b261ecSmrg DWORD dwAlignStrideAlign; /* stride alignment */ 39205b261ecSmrg DWORD dwRops[DD_ROP_SPACE]; /* ROPS supported */ 39305b261ecSmrg DDSCAPS ddsOldCaps; /* old DDSCAPS - superceded for DirectX6+ */ 39405b261ecSmrg DWORD dwMinOverlayStretch; /* minimum overlay stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */ 39505b261ecSmrg DWORD dwMaxOverlayStretch; /* maximum overlay stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */ 39605b261ecSmrg DWORD dwMinLiveVideoStretch; /* minimum live video stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */ 39705b261ecSmrg DWORD dwMaxLiveVideoStretch; /* maximum live video stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */ 39805b261ecSmrg DWORD dwMinHwCodecStretch; /* minimum hardware codec stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */ 39905b261ecSmrg DWORD dwMaxHwCodecStretch; /* maximum hardware codec stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */ 40005b261ecSmrg DWORD dwReserved1; 40105b261ecSmrg DWORD dwReserved2; 40205b261ecSmrg DWORD dwReserved3; 40305b261ecSmrg DWORD dwSVBCaps; /* driver specific capabilities for System->Vmem blts */ 40405b261ecSmrg DWORD dwSVBCKeyCaps; /* driver color key capabilities for System->Vmem blts */ 40505b261ecSmrg DWORD dwSVBFXCaps; /* driver FX capabilities for System->Vmem blts */ 40605b261ecSmrg DWORD dwSVBRops[DD_ROP_SPACE];/* ROPS supported for System->Vmem blts */ 40705b261ecSmrg DWORD dwVSBCaps; /* driver specific capabilities for Vmem->System blts */ 40805b261ecSmrg DWORD dwVSBCKeyCaps; /* driver color key capabilities for Vmem->System blts */ 40905b261ecSmrg DWORD dwVSBFXCaps; /* driver FX capabilities for Vmem->System blts */ 41005b261ecSmrg DWORD dwVSBRops[DD_ROP_SPACE];/* ROPS supported for Vmem->System blts */ 41105b261ecSmrg DWORD dwSSBCaps; /* driver specific capabilities for System->System blts */ 41205b261ecSmrg DWORD dwSSBCKeyCaps; /* driver color key capabilities for System->System blts */ 41305b261ecSmrg DWORD dwSSBFXCaps; /* driver FX capabilities for System->System blts */ 41405b261ecSmrg DWORD dwSSBRops[DD_ROP_SPACE];/* ROPS supported for System->System blts */ 41505b261ecSmrg DWORD dwMaxVideoPorts; /* maximum number of usable video ports */ 41605b261ecSmrg DWORD dwCurrVideoPorts; /* current number of video ports used */ 41705b261ecSmrg DWORD dwSVBCaps2; /* more driver specific capabilities for System->Vmem blts */ 41805b261ecSmrg DWORD dwNLVBCaps; /* driver specific capabilities for non-local->local vidmem blts */ 41905b261ecSmrg DWORD dwNLVBCaps2; /* more driver specific capabilities non-local->local vidmem blts */ 42005b261ecSmrg DWORD dwNLVBCKeyCaps; /* driver color key capabilities for non-local->local vidmem blts */ 42105b261ecSmrg DWORD dwNLVBFXCaps; /* driver FX capabilities for non-local->local blts */ 42205b261ecSmrg DWORD dwNLVBRops[DD_ROP_SPACE]; /* ROPS supported for non-local->local blts */ 42305b261ecSmrg DDSCAPS2 ddsCaps; /* surface capabilities */ 42405b261ecSmrg} DDCAPS_DX7,*LPDDCAPS_DX7; 42505b261ecSmrg 42605b261ecSmrgtypedef struct _DDCAPS_DX6 /* DirectX 6 version of caps struct */ 42705b261ecSmrg{ 42805b261ecSmrg DWORD dwSize; /* size of the DDDRIVERCAPS structure */ 42905b261ecSmrg DWORD dwCaps; /* driver specific capabilities */ 43005b261ecSmrg DWORD dwCaps2; /* more driver specific capabilites */ 43105b261ecSmrg DWORD dwCKeyCaps; /* color key capabilities of the surface */ 43205b261ecSmrg DWORD dwFXCaps; /* driver specific stretching and effects capabilites */ 43305b261ecSmrg DWORD dwFXAlphaCaps; /* alpha driver specific capabilities */ 43405b261ecSmrg DWORD dwPalCaps; /* palette capabilities */ 43505b261ecSmrg DWORD dwSVCaps; /* stereo vision capabilities */ 43605b261ecSmrg DWORD dwAlphaBltConstBitDepths; /* DDBD_2,4,8 */ 43705b261ecSmrg DWORD dwAlphaBltPixelBitDepths; /* DDBD_1,2,4,8 */ 43805b261ecSmrg DWORD dwAlphaBltSurfaceBitDepths; /* DDBD_1,2,4,8 */ 43905b261ecSmrg DWORD dwAlphaOverlayConstBitDepths; /* DDBD_2,4,8 */ 44005b261ecSmrg DWORD dwAlphaOverlayPixelBitDepths; /* DDBD_1,2,4,8 */ 44105b261ecSmrg DWORD dwAlphaOverlaySurfaceBitDepths; /* DDBD_1,2,4,8 */ 44205b261ecSmrg DWORD dwZBufferBitDepths; /* DDBD_8,16,24,32 */ 44305b261ecSmrg DWORD dwVidMemTotal; /* total amount of video memory */ 44405b261ecSmrg DWORD dwVidMemFree; /* amount of free video memory */ 44505b261ecSmrg DWORD dwMaxVisibleOverlays; /* maximum number of visible overlays */ 44605b261ecSmrg DWORD dwCurrVisibleOverlays; /* current number of visible overlays */ 44705b261ecSmrg DWORD dwNumFourCCCodes; /* number of four cc codes */ 44805b261ecSmrg DWORD dwAlignBoundarySrc; /* source rectangle alignment */ 44905b261ecSmrg DWORD dwAlignSizeSrc; /* source rectangle byte size */ 45005b261ecSmrg DWORD dwAlignBoundaryDest; /* dest rectangle alignment */ 45105b261ecSmrg DWORD dwAlignSizeDest; /* dest rectangle byte size */ 45205b261ecSmrg DWORD dwAlignStrideAlign; /* stride alignment */ 45305b261ecSmrg DWORD dwRops[DD_ROP_SPACE]; /* ROPS supported */ 45405b261ecSmrg DDSCAPS ddsOldCaps; /* old DDSCAPS - superceded for DirectX6+ */ 45505b261ecSmrg DWORD dwMinOverlayStretch; /* minimum overlay stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */ 45605b261ecSmrg DWORD dwMaxOverlayStretch; /* maximum overlay stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */ 45705b261ecSmrg DWORD dwMinLiveVideoStretch; /* minimum live video stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */ 45805b261ecSmrg DWORD dwMaxLiveVideoStretch; /* maximum live video stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */ 45905b261ecSmrg DWORD dwMinHwCodecStretch; /* minimum hardware codec stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */ 46005b261ecSmrg DWORD dwMaxHwCodecStretch; /* maximum hardware codec stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */ 46105b261ecSmrg DWORD dwReserved1; 46205b261ecSmrg DWORD dwReserved2; 46305b261ecSmrg DWORD dwReserved3; 46405b261ecSmrg DWORD dwSVBCaps; /* driver specific capabilities for System->Vmem blts */ 46505b261ecSmrg DWORD dwSVBCKeyCaps; /* driver color key capabilities for System->Vmem blts */ 46605b261ecSmrg DWORD dwSVBFXCaps; /* driver FX capabilities for System->Vmem blts */ 46705b261ecSmrg DWORD dwSVBRops[DD_ROP_SPACE];/* ROPS supported for System->Vmem blts */ 46805b261ecSmrg DWORD dwVSBCaps; /* driver specific capabilities for Vmem->System blts */ 46905b261ecSmrg DWORD dwVSBCKeyCaps; /* driver color key capabilities for Vmem->System blts */ 47005b261ecSmrg DWORD dwVSBFXCaps; /* driver FX capabilities for Vmem->System blts */ 47105b261ecSmrg DWORD dwVSBRops[DD_ROP_SPACE];/* ROPS supported for Vmem->System blts */ 47205b261ecSmrg DWORD dwSSBCaps; /* driver specific capabilities for System->System blts */ 47305b261ecSmrg DWORD dwSSBCKeyCaps; /* driver color key capabilities for System->System blts */ 47405b261ecSmrg DWORD dwSSBFXCaps; /* driver FX capabilities for System->System blts */ 47505b261ecSmrg DWORD dwSSBRops[DD_ROP_SPACE];/* ROPS supported for System->System blts */ 47605b261ecSmrg DWORD dwMaxVideoPorts; /* maximum number of usable video ports */ 47705b261ecSmrg DWORD dwCurrVideoPorts; /* current number of video ports used */ 47805b261ecSmrg DWORD dwSVBCaps2; /* more driver specific capabilities for System->Vmem blts */ 47905b261ecSmrg DWORD dwNLVBCaps; /* driver specific capabilities for non-local->local vidmem blts */ 48005b261ecSmrg DWORD dwNLVBCaps2; /* more driver specific capabilities non-local->local vidmem blts */ 48105b261ecSmrg DWORD dwNLVBCKeyCaps; /* driver color key capabilities for non-local->local vidmem blts */ 48205b261ecSmrg DWORD dwNLVBFXCaps; /* driver FX capabilities for non-local->local blts */ 48305b261ecSmrg DWORD dwNLVBRops[DD_ROP_SPACE]; /* ROPS supported for non-local->local blts */ 48405b261ecSmrg /* and one new member for DirectX 6 */ 48505b261ecSmrg DDSCAPS2 ddsCaps; /* surface capabilities */ 48605b261ecSmrg} DDCAPS_DX6,*LPDDCAPS_DX6; 48705b261ecSmrg 48805b261ecSmrgtypedef struct _DDCAPS_DX5 /* DirectX5 version of caps struct */ 48905b261ecSmrg{ 49005b261ecSmrg DWORD dwSize; /* size of the DDDRIVERCAPS structure */ 49105b261ecSmrg DWORD dwCaps; /* driver specific capabilities */ 49205b261ecSmrg DWORD dwCaps2; /* more driver specific capabilites */ 49305b261ecSmrg DWORD dwCKeyCaps; /* color key capabilities of the surface */ 49405b261ecSmrg DWORD dwFXCaps; /* driver specific stretching and effects capabilites */ 49505b261ecSmrg DWORD dwFXAlphaCaps; /* alpha driver specific capabilities */ 49605b261ecSmrg DWORD dwPalCaps; /* palette capabilities */ 49705b261ecSmrg DWORD dwSVCaps; /* stereo vision capabilities */ 49805b261ecSmrg DWORD dwAlphaBltConstBitDepths; /* DDBD_2,4,8 */ 49905b261ecSmrg DWORD dwAlphaBltPixelBitDepths; /* DDBD_1,2,4,8 */ 50005b261ecSmrg DWORD dwAlphaBltSurfaceBitDepths; /* DDBD_1,2,4,8 */ 50105b261ecSmrg DWORD dwAlphaOverlayConstBitDepths; /* DDBD_2,4,8 */ 50205b261ecSmrg DWORD dwAlphaOverlayPixelBitDepths; /* DDBD_1,2,4,8 */ 50305b261ecSmrg DWORD dwAlphaOverlaySurfaceBitDepths; /* DDBD_1,2,4,8 */ 50405b261ecSmrg DWORD dwZBufferBitDepths; /* DDBD_8,16,24,32 */ 50505b261ecSmrg DWORD dwVidMemTotal; /* total amount of video memory */ 50605b261ecSmrg DWORD dwVidMemFree; /* amount of free video memory */ 50705b261ecSmrg DWORD dwMaxVisibleOverlays; /* maximum number of visible overlays */ 50805b261ecSmrg DWORD dwCurrVisibleOverlays; /* current number of visible overlays */ 50905b261ecSmrg DWORD dwNumFourCCCodes; /* number of four cc codes */ 51005b261ecSmrg DWORD dwAlignBoundarySrc; /* source rectangle alignment */ 51105b261ecSmrg DWORD dwAlignSizeSrc; /* source rectangle byte size */ 51205b261ecSmrg DWORD dwAlignBoundaryDest; /* dest rectangle alignment */ 51305b261ecSmrg DWORD dwAlignSizeDest; /* dest rectangle byte size */ 51405b261ecSmrg DWORD dwAlignStrideAlign; /* stride alignment */ 51505b261ecSmrg DWORD dwRops[DD_ROP_SPACE]; /* ROPS supported */ 51605b261ecSmrg DDSCAPS ddsCaps; /* DDSCAPS structure has all the general capabilities */ 51705b261ecSmrg DWORD dwMinOverlayStretch; /* minimum overlay stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */ 51805b261ecSmrg DWORD dwMaxOverlayStretch; /* maximum overlay stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */ 51905b261ecSmrg DWORD dwMinLiveVideoStretch; /* minimum live video stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */ 52005b261ecSmrg DWORD dwMaxLiveVideoStretch; /* maximum live video stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */ 52105b261ecSmrg DWORD dwMinHwCodecStretch; /* minimum hardware codec stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */ 52205b261ecSmrg DWORD dwMaxHwCodecStretch; /* maximum hardware codec stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */ 52305b261ecSmrg DWORD dwReserved1; 52405b261ecSmrg DWORD dwReserved2; 52505b261ecSmrg DWORD dwReserved3; 52605b261ecSmrg DWORD dwSVBCaps; /* driver specific capabilities for System->Vmem blts */ 52705b261ecSmrg DWORD dwSVBCKeyCaps; /* driver color key capabilities for System->Vmem blts */ 52805b261ecSmrg DWORD dwSVBFXCaps; /* driver FX capabilities for System->Vmem blts */ 52905b261ecSmrg DWORD dwSVBRops[DD_ROP_SPACE];/* ROPS supported for System->Vmem blts */ 53005b261ecSmrg DWORD dwVSBCaps; /* driver specific capabilities for Vmem->System blts */ 53105b261ecSmrg DWORD dwVSBCKeyCaps; /* driver color key capabilities for Vmem->System blts */ 53205b261ecSmrg DWORD dwVSBFXCaps; /* driver FX capabilities for Vmem->System blts */ 53305b261ecSmrg DWORD dwVSBRops[DD_ROP_SPACE];/* ROPS supported for Vmem->System blts */ 53405b261ecSmrg DWORD dwSSBCaps; /* driver specific capabilities for System->System blts */ 53505b261ecSmrg DWORD dwSSBCKeyCaps; /* driver color key capabilities for System->System blts */ 53605b261ecSmrg DWORD dwSSBFXCaps; /* driver FX capabilities for System->System blts */ 53705b261ecSmrg DWORD dwSSBRops[DD_ROP_SPACE];/* ROPS supported for System->System blts */ 53805b261ecSmrg /* the following are the new DirectX 5 members */ 53905b261ecSmrg DWORD dwMaxVideoPorts; /* maximum number of usable video ports */ 54005b261ecSmrg DWORD dwCurrVideoPorts; /* current number of video ports used */ 54105b261ecSmrg DWORD dwSVBCaps2; /* more driver specific capabilities for System->Vmem blts */ 54205b261ecSmrg DWORD dwNLVBCaps; /* driver specific capabilities for non-local->local vidmem blts */ 54305b261ecSmrg DWORD dwNLVBCaps2; /* more driver specific capabilities non-local->local vidmem blts */ 54405b261ecSmrg DWORD dwNLVBCKeyCaps; /* driver color key capabilities for non-local->local vidmem blts */ 54505b261ecSmrg DWORD dwNLVBFXCaps; /* driver FX capabilities for non-local->local blts */ 54605b261ecSmrg DWORD dwNLVBRops[DD_ROP_SPACE]; /* ROPS supported for non-local->local blts */ 54705b261ecSmrg} DDCAPS_DX5,*LPDDCAPS_DX5; 54805b261ecSmrg 54905b261ecSmrgtypedef struct _DDCAPS_DX3 /* DirectX3 version of caps struct */ 55005b261ecSmrg{ 55105b261ecSmrg DWORD dwSize; /* size of the DDDRIVERCAPS structure */ 55205b261ecSmrg DWORD dwCaps; /* driver specific capabilities */ 55305b261ecSmrg DWORD dwCaps2; /* more driver specific capabilites */ 55405b261ecSmrg DWORD dwCKeyCaps; /* color key capabilities of the surface */ 55505b261ecSmrg DWORD dwFXCaps; /* driver specific stretching and effects capabilites */ 55605b261ecSmrg DWORD dwFXAlphaCaps; /* alpha driver specific capabilities */ 55705b261ecSmrg DWORD dwPalCaps; /* palette capabilities */ 55805b261ecSmrg DWORD dwSVCaps; /* stereo vision capabilities */ 55905b261ecSmrg DWORD dwAlphaBltConstBitDepths; /* DDBD_2,4,8 */ 56005b261ecSmrg DWORD dwAlphaBltPixelBitDepths; /* DDBD_1,2,4,8 */ 56105b261ecSmrg DWORD dwAlphaBltSurfaceBitDepths; /* DDBD_1,2,4,8 */ 56205b261ecSmrg DWORD dwAlphaOverlayConstBitDepths; /* DDBD_2,4,8 */ 56305b261ecSmrg DWORD dwAlphaOverlayPixelBitDepths; /* DDBD_1,2,4,8 */ 56405b261ecSmrg DWORD dwAlphaOverlaySurfaceBitDepths; /* DDBD_1,2,4,8 */ 56505b261ecSmrg DWORD dwZBufferBitDepths; /* DDBD_8,16,24,32 */ 56605b261ecSmrg DWORD dwVidMemTotal; /* total amount of video memory */ 56705b261ecSmrg DWORD dwVidMemFree; /* amount of free video memory */ 56805b261ecSmrg DWORD dwMaxVisibleOverlays; /* maximum number of visible overlays */ 56905b261ecSmrg DWORD dwCurrVisibleOverlays; /* current number of visible overlays */ 57005b261ecSmrg DWORD dwNumFourCCCodes; /* number of four cc codes */ 57105b261ecSmrg DWORD dwAlignBoundarySrc; /* source rectangle alignment */ 57205b261ecSmrg DWORD dwAlignSizeSrc; /* source rectangle byte size */ 57305b261ecSmrg DWORD dwAlignBoundaryDest; /* dest rectangle alignment */ 57405b261ecSmrg DWORD dwAlignSizeDest; /* dest rectangle byte size */ 57505b261ecSmrg DWORD dwAlignStrideAlign; /* stride alignment */ 57605b261ecSmrg DWORD dwRops[DD_ROP_SPACE]; /* ROPS supported */ 57705b261ecSmrg DDSCAPS ddsCaps; /* DDSCAPS structure has all the general capabilities */ 57805b261ecSmrg DWORD dwMinOverlayStretch; /* minimum overlay stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */ 57905b261ecSmrg DWORD dwMaxOverlayStretch; /* maximum overlay stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */ 58005b261ecSmrg DWORD dwMinLiveVideoStretch; /* minimum live video stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */ 58105b261ecSmrg DWORD dwMaxLiveVideoStretch; /* maximum live video stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */ 58205b261ecSmrg DWORD dwMinHwCodecStretch; /* minimum hardware codec stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */ 58305b261ecSmrg DWORD dwMaxHwCodecStretch; /* maximum hardware codec stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */ 58405b261ecSmrg DWORD dwReserved1; 58505b261ecSmrg DWORD dwReserved2; 58605b261ecSmrg DWORD dwReserved3; 58705b261ecSmrg DWORD dwSVBCaps; /* driver specific capabilities for System->Vmem blts */ 58805b261ecSmrg DWORD dwSVBCKeyCaps; /* driver color key capabilities for System->Vmem blts */ 58905b261ecSmrg DWORD dwSVBFXCaps; /* driver FX capabilities for System->Vmem blts */ 59005b261ecSmrg DWORD dwSVBRops[DD_ROP_SPACE];/* ROPS supported for System->Vmem blts */ 59105b261ecSmrg DWORD dwVSBCaps; /* driver specific capabilities for Vmem->System blts */ 59205b261ecSmrg DWORD dwVSBCKeyCaps; /* driver color key capabilities for Vmem->System blts */ 59305b261ecSmrg DWORD dwVSBFXCaps; /* driver FX capabilities for Vmem->System blts */ 59405b261ecSmrg DWORD dwVSBRops[DD_ROP_SPACE];/* ROPS supported for Vmem->System blts */ 59505b261ecSmrg DWORD dwSSBCaps; /* driver specific capabilities for System->System blts */ 59605b261ecSmrg DWORD dwSSBCKeyCaps; /* driver color key capabilities for System->System blts */ 59705b261ecSmrg DWORD dwSSBFXCaps; /* driver FX capabilities for System->System blts */ 59805b261ecSmrg DWORD dwSSBRops[DD_ROP_SPACE];/* ROPS supported for System->System blts */ 59905b261ecSmrg DWORD dwReserved4; 60005b261ecSmrg DWORD dwReserved5; 60105b261ecSmrg DWORD dwReserved6; 60205b261ecSmrg} DDCAPS_DX3,*LPDDCAPS_DX3; 60305b261ecSmrg 60405b261ecSmrg/* set caps struct according to DIRECTDRAW_VERSION */ 60505b261ecSmrg 60605b261ecSmrg#if DIRECTDRAW_VERSION <= 0x300 60705b261ecSmrgtypedef DDCAPS_DX3 DDCAPS; 60805b261ecSmrg#elif DIRECTDRAW_VERSION <= 0x500 60905b261ecSmrgtypedef DDCAPS_DX5 DDCAPS; 61005b261ecSmrg#elif DIRECTDRAW_VERSION <= 0x600 61105b261ecSmrgtypedef DDCAPS_DX6 DDCAPS; 61205b261ecSmrg#else 61305b261ecSmrgtypedef DDCAPS_DX7 DDCAPS; 61405b261ecSmrg#endif 61505b261ecSmrg 61605b261ecSmrgtypedef DDCAPS *LPDDCAPS; 61705b261ecSmrg 61805b261ecSmrg/* DDCAPS.dwCaps */ 61905b261ecSmrg#define DDCAPS_3D 0x00000001 62005b261ecSmrg#define DDCAPS_ALIGNBOUNDARYDEST 0x00000002 62105b261ecSmrg#define DDCAPS_ALIGNSIZEDEST 0x00000004 62205b261ecSmrg#define DDCAPS_ALIGNBOUNDARYSRC 0x00000008 62305b261ecSmrg#define DDCAPS_ALIGNSIZESRC 0x00000010 62405b261ecSmrg#define DDCAPS_ALIGNSTRIDE 0x00000020 62505b261ecSmrg#define DDCAPS_BLT 0x00000040 62605b261ecSmrg#define DDCAPS_BLTQUEUE 0x00000080 62705b261ecSmrg#define DDCAPS_BLTFOURCC 0x00000100 62805b261ecSmrg#define DDCAPS_BLTSTRETCH 0x00000200 62905b261ecSmrg#define DDCAPS_GDI 0x00000400 63005b261ecSmrg#define DDCAPS_OVERLAY 0x00000800 63105b261ecSmrg#define DDCAPS_OVERLAYCANTCLIP 0x00001000 63205b261ecSmrg#define DDCAPS_OVERLAYFOURCC 0x00002000 63305b261ecSmrg#define DDCAPS_OVERLAYSTRETCH 0x00004000 63405b261ecSmrg#define DDCAPS_PALETTE 0x00008000 63505b261ecSmrg#define DDCAPS_PALETTEVSYNC 0x00010000 63605b261ecSmrg#define DDCAPS_READSCANLINE 0x00020000 63705b261ecSmrg#define DDCAPS_STEREOVIEW 0x00040000 63805b261ecSmrg#define DDCAPS_VBI 0x00080000 63905b261ecSmrg#define DDCAPS_ZBLTS 0x00100000 64005b261ecSmrg#define DDCAPS_ZOVERLAYS 0x00200000 64105b261ecSmrg#define DDCAPS_COLORKEY 0x00400000 64205b261ecSmrg#define DDCAPS_ALPHA 0x00800000 64305b261ecSmrg#define DDCAPS_COLORKEYHWASSIST 0x01000000 64405b261ecSmrg#define DDCAPS_NOHARDWARE 0x02000000 64505b261ecSmrg#define DDCAPS_BLTCOLORFILL 0x04000000 64605b261ecSmrg#define DDCAPS_BANKSWITCHED 0x08000000 64705b261ecSmrg#define DDCAPS_BLTDEPTHFILL 0x10000000 64805b261ecSmrg#define DDCAPS_CANCLIP 0x20000000 64905b261ecSmrg#define DDCAPS_CANCLIPSTRETCHED 0x40000000 65005b261ecSmrg#define DDCAPS_CANBLTSYSMEM 0x80000000 65105b261ecSmrg 65205b261ecSmrg/* DDCAPS.dwCaps2 */ 65305b261ecSmrg#define DDCAPS2_CERTIFIED 0x00000001 65405b261ecSmrg#define DDCAPS2_NO2DDURING3DSCENE 0x00000002 65505b261ecSmrg#define DDCAPS2_VIDEOPORT 0x00000004 65605b261ecSmrg#define DDCAPS2_AUTOFLIPOVERLAY 0x00000008 65705b261ecSmrg#define DDCAPS2_CANBOBINTERLEAVED 0x00000010 65805b261ecSmrg#define DDCAPS2_CANBOBNONINTERLEAVED 0x00000020 65905b261ecSmrg#define DDCAPS2_COLORCONTROLOVERLAY 0x00000040 66005b261ecSmrg#define DDCAPS2_COLORCONTROLPRIMARY 0x00000080 66105b261ecSmrg#define DDCAPS2_CANDROPZ16BIT 0x00000100 66205b261ecSmrg#define DDCAPS2_NONLOCALVIDMEM 0x00000200 66305b261ecSmrg#define DDCAPS2_NONLOCALVIDMEMCAPS 0x00000400 66405b261ecSmrg#define DDCAPS2_NOPAGELOCKREQUIRED 0x00000800 66505b261ecSmrg#define DDCAPS2_WIDESURFACES 0x00001000 66605b261ecSmrg#define DDCAPS2_CANFLIPODDEVEN 0x00002000 66705b261ecSmrg#define DDCAPS2_CANBOBHARDWARE 0x00004000 66805b261ecSmrg#define DDCAPS2_COPYFOURCC 0x00008000 66905b261ecSmrg#define DDCAPS2_PRIMARYGAMMA 0x00020000 67005b261ecSmrg#define DDCAPS2_CANRENDERWINDOWED 0x00080000 67105b261ecSmrg#define DDCAPS2_CANCALIBRATEGAMMA 0x00100000 67205b261ecSmrg#define DDCAPS2_FLIPINTERVAL 0x00200000 67305b261ecSmrg#define DDCAPS2_FLIPNOVSYNC 0x00400000 67405b261ecSmrg#define DDCAPS2_CANMANAGETEXTURE 0x00800000 67505b261ecSmrg#define DDCAPS2_TEXMANINNONLOCALVIDMEM 0x01000000 67605b261ecSmrg#define DDCAPS2_STEREO 0x02000000 67705b261ecSmrg#define DDCAPS2_SYSTONONLOCAL_AS_SYSTOLOCAL 0x04000000 67805b261ecSmrg 67905b261ecSmrg 68005b261ecSmrg/* Set/Get Colour Key Flags */ 68105b261ecSmrg#define DDCKEY_COLORSPACE 0x00000001 /* Struct is single colour space */ 68205b261ecSmrg#define DDCKEY_DESTBLT 0x00000002 /* To be used as dest for blt */ 68305b261ecSmrg#define DDCKEY_DESTOVERLAY 0x00000004 /* To be used as dest for CK overlays */ 68405b261ecSmrg#define DDCKEY_SRCBLT 0x00000008 /* To be used as src for blt */ 68505b261ecSmrg#define DDCKEY_SRCOVERLAY 0x00000010 /* To be used as src for CK overlays */ 68605b261ecSmrg 68705b261ecSmrgtypedef struct _DDCOLORKEY 68805b261ecSmrg{ 68905b261ecSmrg DWORD dwColorSpaceLowValue;/* low boundary of color space that is to 69005b261ecSmrg * be treated as Color Key, inclusive 69105b261ecSmrg */ 69205b261ecSmrg DWORD dwColorSpaceHighValue;/* high boundary of color space that is 69305b261ecSmrg * to be treated as Color Key, inclusive 69405b261ecSmrg */ 69505b261ecSmrg} DDCOLORKEY,*LPDDCOLORKEY; 69605b261ecSmrg 69705b261ecSmrg/* ddCKEYCAPS bits */ 69805b261ecSmrg#define DDCKEYCAPS_DESTBLT 0x00000001 69905b261ecSmrg#define DDCKEYCAPS_DESTBLTCLRSPACE 0x00000002 70005b261ecSmrg#define DDCKEYCAPS_DESTBLTCLRSPACEYUV 0x00000004 70105b261ecSmrg#define DDCKEYCAPS_DESTBLTYUV 0x00000008 70205b261ecSmrg#define DDCKEYCAPS_DESTOVERLAY 0x00000010 70305b261ecSmrg#define DDCKEYCAPS_DESTOVERLAYCLRSPACE 0x00000020 70405b261ecSmrg#define DDCKEYCAPS_DESTOVERLAYCLRSPACEYUV 0x00000040 70505b261ecSmrg#define DDCKEYCAPS_DESTOVERLAYONEACTIVE 0x00000080 70605b261ecSmrg#define DDCKEYCAPS_DESTOVERLAYYUV 0x00000100 70705b261ecSmrg#define DDCKEYCAPS_SRCBLT 0x00000200 70805b261ecSmrg#define DDCKEYCAPS_SRCBLTCLRSPACE 0x00000400 70905b261ecSmrg#define DDCKEYCAPS_SRCBLTCLRSPACEYUV 0x00000800 71005b261ecSmrg#define DDCKEYCAPS_SRCBLTYUV 0x00001000 71105b261ecSmrg#define DDCKEYCAPS_SRCOVERLAY 0x00002000 71205b261ecSmrg#define DDCKEYCAPS_SRCOVERLAYCLRSPACE 0x00004000 71305b261ecSmrg#define DDCKEYCAPS_SRCOVERLAYCLRSPACEYUV 0x00008000 71405b261ecSmrg#define DDCKEYCAPS_SRCOVERLAYONEACTIVE 0x00010000 71505b261ecSmrg#define DDCKEYCAPS_SRCOVERLAYYUV 0x00020000 71605b261ecSmrg#define DDCKEYCAPS_NOCOSTOVERLAY 0x00040000 71705b261ecSmrg 71805b261ecSmrgtypedef struct _DDPIXELFORMAT { 71905b261ecSmrg DWORD dwSize; /* 0: size of structure */ 72005b261ecSmrg DWORD dwFlags; /* 4: pixel format flags */ 72105b261ecSmrg DWORD dwFourCC; /* 8: (FOURCC code) */ 72205b261ecSmrg union { 72305b261ecSmrg DWORD dwRGBBitCount; /* C: how many bits per pixel */ 72405b261ecSmrg DWORD dwYUVBitCount; /* C: how many bits per pixel */ 72505b261ecSmrg DWORD dwZBufferBitDepth; /* C: how many bits for z buffers */ 72605b261ecSmrg DWORD dwAlphaBitDepth; /* C: how many bits for alpha channels*/ 72705b261ecSmrg DWORD dwLuminanceBitCount; 72805b261ecSmrg DWORD dwBumpBitCount; 72905b261ecSmrg } DUMMYUNIONNAME1; 73005b261ecSmrg union { 73105b261ecSmrg DWORD dwRBitMask; /* 10: mask for red bit*/ 73205b261ecSmrg DWORD dwYBitMask; /* 10: mask for Y bits*/ 73305b261ecSmrg DWORD dwStencilBitDepth; 73405b261ecSmrg DWORD dwLuminanceBitMask; 73505b261ecSmrg DWORD dwBumpDuBitMask; 73605b261ecSmrg } DUMMYUNIONNAME2; 73705b261ecSmrg union { 73805b261ecSmrg DWORD dwGBitMask; /* 14: mask for green bits*/ 73905b261ecSmrg DWORD dwUBitMask; /* 14: mask for U bits*/ 74005b261ecSmrg DWORD dwZBitMask; 74105b261ecSmrg DWORD dwBumpDvBitMask; 74205b261ecSmrg } DUMMYUNIONNAME3; 74305b261ecSmrg union { 74405b261ecSmrg DWORD dwBBitMask; /* 18: mask for blue bits*/ 74505b261ecSmrg DWORD dwVBitMask; /* 18: mask for V bits*/ 74605b261ecSmrg DWORD dwStencilBitMask; 74705b261ecSmrg DWORD dwBumpLuminanceBitMask; 74805b261ecSmrg } DUMMYUNIONNAME4; 74905b261ecSmrg union { 75005b261ecSmrg DWORD dwRGBAlphaBitMask; /* 1C: mask for alpha channel */ 75105b261ecSmrg DWORD dwYUVAlphaBitMask; /* 1C: mask for alpha channel */ 75205b261ecSmrg DWORD dwLuminanceAlphaBitMask; 75305b261ecSmrg DWORD dwRGBZBitMask; /* 1C: mask for Z channel */ 75405b261ecSmrg DWORD dwYUVZBitMask; /* 1C: mask for Z channel */ 75505b261ecSmrg } DUMMYUNIONNAME5; 75605b261ecSmrg /* 20: next structure */ 75705b261ecSmrg} DDPIXELFORMAT,*LPDDPIXELFORMAT; 75805b261ecSmrg 75905b261ecSmrg/* DDCAPS.dwFXCaps */ 76005b261ecSmrg#define DDFXCAPS_BLTALPHA 0x00000001 76105b261ecSmrg#define DDFXCAPS_OVERLAYALPHA 0x00000004 76205b261ecSmrg#define DDFXCAPS_BLTARITHSTRETCHYN 0x00000010 76305b261ecSmrg#define DDFXCAPS_BLTARITHSTRETCHY 0x00000020 76405b261ecSmrg#define DDFXCAPS_BLTMIRRORLEFTRIGHT 0x00000040 76505b261ecSmrg#define DDFXCAPS_BLTMIRRORUPDOWN 0x00000080 76605b261ecSmrg#define DDFXCAPS_BLTROTATION 0x00000100 76705b261ecSmrg#define DDFXCAPS_BLTROTATION90 0x00000200 76805b261ecSmrg#define DDFXCAPS_BLTSHRINKX 0x00000400 76905b261ecSmrg#define DDFXCAPS_BLTSHRINKXN 0x00000800 77005b261ecSmrg#define DDFXCAPS_BLTSHRINKY 0x00001000 77105b261ecSmrg#define DDFXCAPS_BLTSHRINKYN 0x00002000 77205b261ecSmrg#define DDFXCAPS_BLTSTRETCHX 0x00004000 77305b261ecSmrg#define DDFXCAPS_BLTSTRETCHXN 0x00008000 77405b261ecSmrg#define DDFXCAPS_BLTSTRETCHY 0x00010000 77505b261ecSmrg#define DDFXCAPS_BLTSTRETCHYN 0x00020000 77605b261ecSmrg#define DDFXCAPS_OVERLAYARITHSTRETCHY 0x00040000 77705b261ecSmrg#define DDFXCAPS_OVERLAYARITHSTRETCHYN 0x00000008 77805b261ecSmrg#define DDFXCAPS_OVERLAYSHRINKX 0x00080000 77905b261ecSmrg#define DDFXCAPS_OVERLAYSHRINKXN 0x00100000 78005b261ecSmrg#define DDFXCAPS_OVERLAYSHRINKY 0x00200000 78105b261ecSmrg#define DDFXCAPS_OVERLAYSHRINKYN 0x00400000 78205b261ecSmrg#define DDFXCAPS_OVERLAYSTRETCHX 0x00800000 78305b261ecSmrg#define DDFXCAPS_OVERLAYSTRETCHXN 0x01000000 78405b261ecSmrg#define DDFXCAPS_OVERLAYSTRETCHY 0x02000000 78505b261ecSmrg#define DDFXCAPS_OVERLAYSTRETCHYN 0x04000000 78605b261ecSmrg#define DDFXCAPS_OVERLAYMIRRORLEFTRIGHT 0x08000000 78705b261ecSmrg#define DDFXCAPS_OVERLAYMIRRORUPDOWN 0x10000000 78805b261ecSmrg 78905b261ecSmrg#define DDFXCAPS_OVERLAYFILTER DDFXCAPS_OVERLAYARITHSTRETCHY 79005b261ecSmrg 79105b261ecSmrg/* DDCAPS.dwFXAlphaCaps */ 79205b261ecSmrg#define DDFXALPHACAPS_BLTALPHAEDGEBLEND 0x00000001 79305b261ecSmrg#define DDFXALPHACAPS_BLTALPHAPIXELS 0x00000002 79405b261ecSmrg#define DDFXALPHACAPS_BLTALPHAPIXELSNEG 0x00000004 79505b261ecSmrg#define DDFXALPHACAPS_BLTALPHASURFACES 0x00000008 79605b261ecSmrg#define DDFXALPHACAPS_BLTALPHASURFACESNEG 0x00000010 79705b261ecSmrg#define DDFXALPHACAPS_OVERLAYALPHAEDGEBLEND 0x00000020 79805b261ecSmrg#define DDFXALPHACAPS_OVERLAYALPHAPIXELS 0x00000040 79905b261ecSmrg#define DDFXALPHACAPS_OVERLAYALPHAPIXELSNEG 0x00000080 80005b261ecSmrg#define DDFXALPHACAPS_OVERLAYALPHASURFACES 0x00000100 80105b261ecSmrg#define DDFXALPHACAPS_OVERLAYALPHASURFACESNEG 0x00000200 80205b261ecSmrg 80305b261ecSmrg/* DDCAPS.dwPalCaps */ 80405b261ecSmrg#define DDPCAPS_4BIT 0x00000001 80505b261ecSmrg#define DDPCAPS_8BITENTRIES 0x00000002 80605b261ecSmrg#define DDPCAPS_8BIT 0x00000004 80705b261ecSmrg#define DDPCAPS_INITIALIZE 0x00000008 80805b261ecSmrg#define DDPCAPS_PRIMARYSURFACE 0x00000010 80905b261ecSmrg#define DDPCAPS_PRIMARYSURFACELEFT 0x00000020 81005b261ecSmrg#define DDPCAPS_ALLOW256 0x00000040 81105b261ecSmrg#define DDPCAPS_VSYNC 0x00000080 81205b261ecSmrg#define DDPCAPS_1BIT 0x00000100 81305b261ecSmrg#define DDPCAPS_2BIT 0x00000200 81405b261ecSmrg#define DDPCAPS_ALPHA 0x00000400 81505b261ecSmrg 81605b261ecSmrg/* DDCAPS.dwSVCaps */ 81705b261ecSmrg/* the first 4 of these are now obsolete */ 81805b261ecSmrg#if DIRECTDRAW_VERSION >= 0x700 /* FIXME: I'm not sure when this switch occured */ 81905b261ecSmrg#define DDSVCAPS_RESERVED1 0x00000001 82005b261ecSmrg#define DDSVCAPS_RESERVED2 0x00000002 82105b261ecSmrg#define DDSVCAPS_RESERVED3 0x00000004 82205b261ecSmrg#define DDSVCAPS_RESERVED4 0x00000008 82305b261ecSmrg#else 82405b261ecSmrg#define DDSVCAPS_ENIGMA 0x00000001 82505b261ecSmrg#define DDSVCAPS_FLICKER 0x00000002 82605b261ecSmrg#define DDSVCAPS_REDBLUE 0x00000004 82705b261ecSmrg#define DDSVCAPS_SPLIT 0x00000008 82805b261ecSmrg#endif 82905b261ecSmrg#define DDSVCAPS_STEREOSEQUENTIAL 0x00000010 83005b261ecSmrg 83105b261ecSmrg/* BitDepths */ 83205b261ecSmrg#define DDBD_1 0x00004000 83305b261ecSmrg#define DDBD_2 0x00002000 83405b261ecSmrg#define DDBD_4 0x00001000 83505b261ecSmrg#define DDBD_8 0x00000800 83605b261ecSmrg#define DDBD_16 0x00000400 83705b261ecSmrg#define DDBD_24 0x00000200 83805b261ecSmrg#define DDBD_32 0x00000100 83905b261ecSmrg 84005b261ecSmrg/* DDOVERLAYFX.dwDDFX */ 84105b261ecSmrg#define DDOVERFX_ARITHSTRETCHY 0x00000001 84205b261ecSmrg#define DDOVERFX_MIRRORLEFTRIGHT 0x00000002 84305b261ecSmrg#define DDOVERFX_MIRRORUPDOWN 0x00000004 84405b261ecSmrg 84505b261ecSmrg/* UpdateOverlay flags */ 84605b261ecSmrg#define DDOVER_ALPHADEST 0x00000001 84705b261ecSmrg#define DDOVER_ALPHADESTCONSTOVERRIDE 0x00000002 84805b261ecSmrg#define DDOVER_ALPHADESTNEG 0x00000004 84905b261ecSmrg#define DDOVER_ALPHADESTSURFACEOVERRIDE 0x00000008 85005b261ecSmrg#define DDOVER_ALPHAEDGEBLEND 0x00000010 85105b261ecSmrg#define DDOVER_ALPHASRC 0x00000020 85205b261ecSmrg#define DDOVER_ALPHASRCCONSTOVERRIDE 0x00000040 85305b261ecSmrg#define DDOVER_ALPHASRCNEG 0x00000080 85405b261ecSmrg#define DDOVER_ALPHASRCSURFACEOVERRIDE 0x00000100 85505b261ecSmrg#define DDOVER_HIDE 0x00000200 85605b261ecSmrg#define DDOVER_KEYDEST 0x00000400 85705b261ecSmrg#define DDOVER_KEYDESTOVERRIDE 0x00000800 85805b261ecSmrg#define DDOVER_KEYSRC 0x00001000 85905b261ecSmrg#define DDOVER_KEYSRCOVERRIDE 0x00002000 86005b261ecSmrg#define DDOVER_SHOW 0x00004000 86105b261ecSmrg#define DDOVER_ADDDIRTYRECT 0x00008000 86205b261ecSmrg#define DDOVER_REFRESHDIRTYRECTS 0x00010000 86305b261ecSmrg#define DDOVER_REFRESHALL 0x00020000 86405b261ecSmrg#define DDOVER_DDFX 0x00080000 86505b261ecSmrg#define DDOVER_AUTOFLIP 0x00100000 86605b261ecSmrg#define DDOVER_BOB 0x00200000 86705b261ecSmrg#define DDOVER_OVERRIDEBOBWEAVE 0x00400000 86805b261ecSmrg#define DDOVER_INTERLEAVED 0x00800000 86905b261ecSmrg 87005b261ecSmrg/* DDCOLORKEY.dwFlags */ 87105b261ecSmrg#define DDPF_ALPHAPIXELS 0x00000001 87205b261ecSmrg#define DDPF_ALPHA 0x00000002 87305b261ecSmrg#define DDPF_FOURCC 0x00000004 87405b261ecSmrg#define DDPF_PALETTEINDEXED4 0x00000008 87505b261ecSmrg#define DDPF_PALETTEINDEXEDTO8 0x00000010 87605b261ecSmrg#define DDPF_PALETTEINDEXED8 0x00000020 87705b261ecSmrg#define DDPF_RGB 0x00000040 87805b261ecSmrg#define DDPF_COMPRESSED 0x00000080 87905b261ecSmrg#define DDPF_RGBTOYUV 0x00000100 88005b261ecSmrg#define DDPF_YUV 0x00000200 88105b261ecSmrg#define DDPF_ZBUFFER 0x00000400 88205b261ecSmrg#define DDPF_PALETTEINDEXED1 0x00000800 88305b261ecSmrg#define DDPF_PALETTEINDEXED2 0x00001000 88405b261ecSmrg#define DDPF_ZPIXELS 0x00002000 88505b261ecSmrg#define DDPF_STENCILBUFFER 0x00004000 88605b261ecSmrg#define DDPF_ALPHAPREMULT 0x00008000 88705b261ecSmrg#define DDPF_LUMINANCE 0x00020000 88805b261ecSmrg#define DDPF_BUMPLUMINANCE 0x00040000 88905b261ecSmrg#define DDPF_BUMPDUDV 0x00080000 89005b261ecSmrg 89105b261ecSmrg/* SetCooperativeLevel dwFlags */ 89205b261ecSmrg#define DDSCL_FULLSCREEN 0x00000001 89305b261ecSmrg#define DDSCL_ALLOWREBOOT 0x00000002 89405b261ecSmrg#define DDSCL_NOWINDOWCHANGES 0x00000004 89505b261ecSmrg#define DDSCL_NORMAL 0x00000008 89605b261ecSmrg#define DDSCL_EXCLUSIVE 0x00000010 89705b261ecSmrg#define DDSCL_ALLOWMODEX 0x00000040 89805b261ecSmrg#define DDSCL_SETFOCUSWINDOW 0x00000080 89905b261ecSmrg#define DDSCL_SETDEVICEWINDOW 0x00000100 90005b261ecSmrg#define DDSCL_CREATEDEVICEWINDOW 0x00000200 90105b261ecSmrg#define DDSCL_MULTITHREADED 0x00000400 90205b261ecSmrg#define DDSCL_FPUSETUP 0x00000800 90305b261ecSmrg#define DDSCL_FPUPRESERVE 0x00001000 90405b261ecSmrg 90505b261ecSmrg 90605b261ecSmrg/* DDSURFACEDESC.dwFlags */ 90705b261ecSmrg#define DDSD_CAPS 0x00000001 90805b261ecSmrg#define DDSD_HEIGHT 0x00000002 90905b261ecSmrg#define DDSD_WIDTH 0x00000004 91005b261ecSmrg#define DDSD_PITCH 0x00000008 91105b261ecSmrg#define DDSD_BACKBUFFERCOUNT 0x00000020 91205b261ecSmrg#define DDSD_ZBUFFERBITDEPTH 0x00000040 91305b261ecSmrg#define DDSD_ALPHABITDEPTH 0x00000080 91405b261ecSmrg#define DDSD_LPSURFACE 0x00000800 91505b261ecSmrg#define DDSD_PIXELFORMAT 0x00001000 91605b261ecSmrg#define DDSD_CKDESTOVERLAY 0x00002000 91705b261ecSmrg#define DDSD_CKDESTBLT 0x00004000 91805b261ecSmrg#define DDSD_CKSRCOVERLAY 0x00008000 91905b261ecSmrg#define DDSD_CKSRCBLT 0x00010000 92005b261ecSmrg#define DDSD_MIPMAPCOUNT 0x00020000 92105b261ecSmrg#define DDSD_REFRESHRATE 0x00040000 92205b261ecSmrg#define DDSD_LINEARSIZE 0x00080000 92305b261ecSmrg#define DDSD_TEXTURESTAGE 0x00100000 92405b261ecSmrg#define DDSD_FVF 0x00200000 92505b261ecSmrg#define DDSD_SRCVBHANDLE 0x00400000 92605b261ecSmrg#define DDSD_ALL 0x007ff9ee 92705b261ecSmrg 92805b261ecSmrg/* EnumSurfaces flags */ 92905b261ecSmrg#define DDENUMSURFACES_ALL 0x00000001 93005b261ecSmrg#define DDENUMSURFACES_MATCH 0x00000002 93105b261ecSmrg#define DDENUMSURFACES_NOMATCH 0x00000004 93205b261ecSmrg#define DDENUMSURFACES_CANBECREATED 0x00000008 93305b261ecSmrg#define DDENUMSURFACES_DOESEXIST 0x00000010 93405b261ecSmrg 93505b261ecSmrg/* SetDisplayMode flags */ 93605b261ecSmrg#define DDSDM_STANDARDVGAMODE 0x00000001 93705b261ecSmrg 93805b261ecSmrg/* EnumDisplayModes flags */ 93905b261ecSmrg#define DDEDM_REFRESHRATES 0x00000001 94005b261ecSmrg#define DDEDM_STANDARDVGAMODES 0x00000002 94105b261ecSmrg 94205b261ecSmrg/* WaitForVerticalDisplay flags */ 94305b261ecSmrg 94405b261ecSmrg#define DDWAITVB_BLOCKBEGIN 0x00000001 94505b261ecSmrg#define DDWAITVB_BLOCKBEGINEVENT 0x00000002 94605b261ecSmrg#define DDWAITVB_BLOCKEND 0x00000004 94705b261ecSmrg 94805b261ecSmrgtypedef struct _DDSURFACEDESC 94905b261ecSmrg{ 95005b261ecSmrg DWORD dwSize; /* 0: size of the DDSURFACEDESC structure*/ 95105b261ecSmrg DWORD dwFlags; /* 4: determines what fields are valid*/ 95205b261ecSmrg DWORD dwHeight; /* 8: height of surface to be created*/ 95305b261ecSmrg DWORD dwWidth; /* C: width of input surface*/ 95405b261ecSmrg union { 95505b261ecSmrg LONG lPitch; /* 10: distance to start of next line (return value only)*/ 95605b261ecSmrg DWORD dwLinearSize; 95705b261ecSmrg } DUMMYUNIONNAME1; 95805b261ecSmrg DWORD dwBackBufferCount;/* 14: number of back buffers requested*/ 95905b261ecSmrg union { 96005b261ecSmrg DWORD dwMipMapCount;/* 18:number of mip-map levels requested*/ 96105b261ecSmrg DWORD dwZBufferBitDepth;/*18: depth of Z buffer requested*/ 96205b261ecSmrg DWORD dwRefreshRate;/* 18:refresh rate (used when display mode is described)*/ 96305b261ecSmrg } DUMMYUNIONNAME2; 96405b261ecSmrg DWORD dwAlphaBitDepth;/* 1C:depth of alpha buffer requested*/ 96505b261ecSmrg DWORD dwReserved; /* 20:reserved*/ 96605b261ecSmrg LPVOID lpSurface; /* 24:pointer to the associated surface memory*/ 96705b261ecSmrg DDCOLORKEY ddckCKDestOverlay;/* 28: CK for dest overlay use*/ 96805b261ecSmrg DDCOLORKEY ddckCKDestBlt; /* 30: CK for destination blt use*/ 96905b261ecSmrg DDCOLORKEY ddckCKSrcOverlay;/* 38: CK for source overlay use*/ 97005b261ecSmrg DDCOLORKEY ddckCKSrcBlt; /* 40: CK for source blt use*/ 97105b261ecSmrg DDPIXELFORMAT ddpfPixelFormat;/* 48: pixel format description of the surface*/ 97205b261ecSmrg DDSCAPS ddsCaps; /* 68: direct draw surface caps */ 97305b261ecSmrg} DDSURFACEDESC,*LPDDSURFACEDESC; 97405b261ecSmrg 97505b261ecSmrgtypedef struct _DDSURFACEDESC2 97605b261ecSmrg{ 97705b261ecSmrg DWORD dwSize; /* 0: size of the DDSURFACEDESC structure*/ 97805b261ecSmrg DWORD dwFlags; /* 4: determines what fields are valid*/ 97905b261ecSmrg DWORD dwHeight; /* 8: height of surface to be created*/ 98005b261ecSmrg DWORD dwWidth; /* C: width of input surface*/ 98105b261ecSmrg union { 98205b261ecSmrg LONG lPitch; /*10: distance to start of next line (return value only)*/ 98305b261ecSmrg DWORD dwLinearSize; /*10: formless late-allocated optimized surface size */ 98405b261ecSmrg } DUMMYUNIONNAME1; 98505b261ecSmrg DWORD dwBackBufferCount;/* 14: number of back buffers requested*/ 98605b261ecSmrg union { 98705b261ecSmrg DWORD dwMipMapCount;/* 18:number of mip-map levels requested*/ 98805b261ecSmrg DWORD dwRefreshRate;/* 18:refresh rate (used when display mode is described)*/ 98905b261ecSmrg DWORD dwSrcVBHandle;/* 18:source used in VB::Optimize */ 99005b261ecSmrg } DUMMYUNIONNAME2; 99105b261ecSmrg DWORD dwAlphaBitDepth;/* 1C:depth of alpha buffer requested*/ 99205b261ecSmrg DWORD dwReserved; /* 20:reserved*/ 99305b261ecSmrg LPVOID lpSurface; /* 24:pointer to the associated surface memory*/ 99405b261ecSmrg union { 99505b261ecSmrg DDCOLORKEY ddckCKDestOverlay; /* 28: CK for dest overlay use*/ 99605b261ecSmrg DWORD dwEmptyFaceColor; /* 28: color for empty cubemap faces */ 99705b261ecSmrg } DUMMYUNIONNAME3; 99805b261ecSmrg DDCOLORKEY ddckCKDestBlt; /* 30: CK for destination blt use*/ 99905b261ecSmrg DDCOLORKEY ddckCKSrcOverlay;/* 38: CK for source overlay use*/ 100005b261ecSmrg DDCOLORKEY ddckCKSrcBlt; /* 40: CK for source blt use*/ 100105b261ecSmrg 100205b261ecSmrg union { 100305b261ecSmrg DDPIXELFORMAT ddpfPixelFormat;/* 48: pixel format description of the surface*/ 100405b261ecSmrg DWORD dwFVF; /* 48: vertex format description of vertex buffers */ 100505b261ecSmrg } DUMMYUNIONNAME4; 100605b261ecSmrg DDSCAPS2 ddsCaps; /* 68: DDraw surface caps */ 100705b261ecSmrg DWORD dwTextureStage; /* 78: stage in multitexture cascade */ 100805b261ecSmrg} DDSURFACEDESC2,*LPDDSURFACEDESC2; 100905b261ecSmrg 101005b261ecSmrg/* DDCOLORCONTROL.dwFlags */ 101105b261ecSmrg#define DDCOLOR_BRIGHTNESS 0x00000001 101205b261ecSmrg#define DDCOLOR_CONTRAST 0x00000002 101305b261ecSmrg#define DDCOLOR_HUE 0x00000004 101405b261ecSmrg#define DDCOLOR_SATURATION 0x00000008 101505b261ecSmrg#define DDCOLOR_SHARPNESS 0x00000010 101605b261ecSmrg#define DDCOLOR_GAMMA 0x00000020 101705b261ecSmrg#define DDCOLOR_COLORENABLE 0x00000040 101805b261ecSmrg 101905b261ecSmrgtypedef struct { 102005b261ecSmrg DWORD dwSize; 102105b261ecSmrg DWORD dwFlags; 102205b261ecSmrg LONG lBrightness; 102305b261ecSmrg LONG lContrast; 102405b261ecSmrg LONG lHue; 102505b261ecSmrg LONG lSaturation; 102605b261ecSmrg LONG lSharpness; 102705b261ecSmrg LONG lGamma; 102805b261ecSmrg LONG lColorEnable; 102905b261ecSmrg DWORD dwReserved1; 103005b261ecSmrg} DDCOLORCONTROL,*LPDDCOLORCONTROL; 103105b261ecSmrg 103205b261ecSmrgtypedef struct { 103305b261ecSmrg WORD red[256]; 103405b261ecSmrg WORD green[256]; 103505b261ecSmrg WORD blue[256]; 103605b261ecSmrg} DDGAMMARAMP,*LPDDGAMMARAMP; 103705b261ecSmrg 103805b261ecSmrgtypedef BOOL CALLBACK (*LPDDENUMCALLBACKA)(GUID *, LPSTR, LPSTR, LPVOID); 103905b261ecSmrgtypedef BOOL CALLBACK (*LPDDENUMCALLBACKW)(GUID *, LPWSTR, LPWSTR, LPVOID); 104005b261ecSmrgDECL_WINELIB_TYPE_AW(LPDDENUMCALLBACK) 104105b261ecSmrg 104205b261ecSmrgtypedef HRESULT CALLBACK (*LPDDENUMMODESCALLBACK)(LPDDSURFACEDESC, LPVOID); 104305b261ecSmrgtypedef HRESULT CALLBACK (*LPDDENUMMODESCALLBACK2)(LPDDSURFACEDESC2, LPVOID); 104405b261ecSmrgtypedef HRESULT CALLBACK (*LPDDENUMSURFACESCALLBACK)(LPDIRECTDRAWSURFACE, LPDDSURFACEDESC, LPVOID); 104505b261ecSmrgtypedef HRESULT CALLBACK (*LPDDENUMSURFACESCALLBACK2)(LPDIRECTDRAWSURFACE4, LPDDSURFACEDESC2, LPVOID); 104605b261ecSmrgtypedef HRESULT CALLBACK (*LPDDENUMSURFACESCALLBACK7)(LPDIRECTDRAWSURFACE7, LPDDSURFACEDESC2, LPVOID); 104705b261ecSmrg 104805b261ecSmrgtypedef BOOL CALLBACK (*LPDDENUMCALLBACKEXA)(GUID *, LPSTR, LPSTR, LPVOID, HMONITOR); 104905b261ecSmrgtypedef BOOL CALLBACK (*LPDDENUMCALLBACKEXW)(GUID *, LPWSTR, LPWSTR, LPVOID, HMONITOR); 105005b261ecSmrgDECL_WINELIB_TYPE_AW(LPDDENUMCALLBACKEX) 105105b261ecSmrg 105205b261ecSmrgHRESULT WINAPI DirectDrawEnumerateExA( LPDDENUMCALLBACKEXA lpCallback, LPVOID lpContext, DWORD dwFlags); 105305b261ecSmrgHRESULT WINAPI DirectDrawEnumerateExW( LPDDENUMCALLBACKEXW lpCallback, LPVOID lpContext, DWORD dwFlags); 105405b261ecSmrg#define DirectDrawEnumerateEx WINELIB_NAME_AW(DirectDrawEnumerateEx) 105505b261ecSmrg 105605b261ecSmrg/* flags for DirectDrawEnumerateEx */ 105705b261ecSmrg#define DDENUM_ATTACHEDSECONDARYDEVICES 0x00000001 105805b261ecSmrg#define DDENUM_DETACHEDSECONDARYDEVICES 0x00000002 105905b261ecSmrg#define DDENUM_NONDISPLAYDEVICES 0x00000004 106005b261ecSmrg 106105b261ecSmrg/* flags for DirectDrawCreate or IDirectDraw::Initialize */ 106205b261ecSmrg#define DDCREATE_HARDWAREONLY 1L 106305b261ecSmrg#define DDCREATE_EMULATIONONLY 2L 106405b261ecSmrg 106505b261ecSmrgtypedef struct _DDBLTFX 106605b261ecSmrg{ 106705b261ecSmrg DWORD dwSize; /* size of structure */ 106805b261ecSmrg DWORD dwDDFX; /* FX operations */ 106905b261ecSmrg DWORD dwROP; /* Win32 raster operations */ 107005b261ecSmrg DWORD dwDDROP; /* Raster operations new for DirectDraw */ 107105b261ecSmrg DWORD dwRotationAngle; /* Rotation angle for blt */ 107205b261ecSmrg DWORD dwZBufferOpCode; /* ZBuffer compares */ 107305b261ecSmrg DWORD dwZBufferLow; /* Low limit of Z buffer */ 107405b261ecSmrg DWORD dwZBufferHigh; /* High limit of Z buffer */ 107505b261ecSmrg DWORD dwZBufferBaseDest; /* Destination base value */ 107605b261ecSmrg DWORD dwZDestConstBitDepth; /* Bit depth used to specify Z constant for destination */ 107705b261ecSmrg union 107805b261ecSmrg { 107905b261ecSmrg DWORD dwZDestConst; /* Constant to use as Z buffer for dest */ 108005b261ecSmrg LPDIRECTDRAWSURFACE lpDDSZBufferDest; /* Surface to use as Z buffer for dest */ 108105b261ecSmrg } DUMMYUNIONNAME1; 108205b261ecSmrg DWORD dwZSrcConstBitDepth; /* Bit depth used to specify Z constant for source */ 108305b261ecSmrg union 108405b261ecSmrg { 108505b261ecSmrg DWORD dwZSrcConst; /* Constant to use as Z buffer for src */ 108605b261ecSmrg LPDIRECTDRAWSURFACE lpDDSZBufferSrc; /* Surface to use as Z buffer for src */ 108705b261ecSmrg } DUMMYUNIONNAME2; 108805b261ecSmrg DWORD dwAlphaEdgeBlendBitDepth; /* Bit depth used to specify constant for alpha edge blend */ 108905b261ecSmrg DWORD dwAlphaEdgeBlend; /* Alpha for edge blending */ 109005b261ecSmrg DWORD dwReserved; 109105b261ecSmrg DWORD dwAlphaDestConstBitDepth; /* Bit depth used to specify alpha constant for destination */ 109205b261ecSmrg union 109305b261ecSmrg { 109405b261ecSmrg DWORD dwAlphaDestConst; /* Constant to use as Alpha Channel */ 109505b261ecSmrg LPDIRECTDRAWSURFACE lpDDSAlphaDest; /* Surface to use as Alpha Channel */ 109605b261ecSmrg } DUMMYUNIONNAME3; 109705b261ecSmrg DWORD dwAlphaSrcConstBitDepth; /* Bit depth used to specify alpha constant for source */ 109805b261ecSmrg union 109905b261ecSmrg { 110005b261ecSmrg DWORD dwAlphaSrcConst; /* Constant to use as Alpha Channel */ 110105b261ecSmrg LPDIRECTDRAWSURFACE lpDDSAlphaSrc; /* Surface to use as Alpha Channel */ 110205b261ecSmrg } DUMMYUNIONNAME4; 110305b261ecSmrg union 110405b261ecSmrg { 110505b261ecSmrg DWORD dwFillColor; /* color in RGB or Palettized */ 110605b261ecSmrg DWORD dwFillDepth; /* depth value for z-buffer */ 110705b261ecSmrg DWORD dwFillPixel; /* pixel val for RGBA or RGBZ */ 110805b261ecSmrg LPDIRECTDRAWSURFACE lpDDSPattern; /* Surface to use as pattern */ 110905b261ecSmrg } DUMMYUNIONNAME5; 111005b261ecSmrg DDCOLORKEY ddckDestColorkey; /* DestColorkey override */ 111105b261ecSmrg DDCOLORKEY ddckSrcColorkey; /* SrcColorkey override */ 111205b261ecSmrg} DDBLTFX,*LPDDBLTFX; 111305b261ecSmrg 111405b261ecSmrg/* dwDDFX */ 111505b261ecSmrg/* arithmetic stretching along y axis */ 111605b261ecSmrg#define DDBLTFX_ARITHSTRETCHY 0x00000001 111705b261ecSmrg/* mirror on y axis */ 111805b261ecSmrg#define DDBLTFX_MIRRORLEFTRIGHT 0x00000002 111905b261ecSmrg/* mirror on x axis */ 112005b261ecSmrg#define DDBLTFX_MIRRORUPDOWN 0x00000004 112105b261ecSmrg/* do not tear */ 112205b261ecSmrg#define DDBLTFX_NOTEARING 0x00000008 112305b261ecSmrg/* 180 degrees clockwise rotation */ 112405b261ecSmrg#define DDBLTFX_ROTATE180 0x00000010 112505b261ecSmrg/* 270 degrees clockwise rotation */ 112605b261ecSmrg#define DDBLTFX_ROTATE270 0x00000020 112705b261ecSmrg/* 90 degrees clockwise rotation */ 112805b261ecSmrg#define DDBLTFX_ROTATE90 0x00000040 112905b261ecSmrg/* dwZBufferLow and dwZBufferHigh specify limits to the copied Z values */ 113005b261ecSmrg#define DDBLTFX_ZBUFFERRANGE 0x00000080 113105b261ecSmrg/* add dwZBufferBaseDest to every source z value before compare */ 113205b261ecSmrg#define DDBLTFX_ZBUFFERBASEDEST 0x00000100 113305b261ecSmrg 113405b261ecSmrgtypedef struct _DDOVERLAYFX 113505b261ecSmrg{ 113605b261ecSmrg DWORD dwSize; /* size of structure */ 113705b261ecSmrg DWORD dwAlphaEdgeBlendBitDepth; /* Bit depth used to specify constant for alpha edge blend */ 113805b261ecSmrg DWORD dwAlphaEdgeBlend; /* Constant to use as alpha for edge blend */ 113905b261ecSmrg DWORD dwReserved; 114005b261ecSmrg DWORD dwAlphaDestConstBitDepth; /* Bit depth used to specify alpha constant for destination */ 114105b261ecSmrg union 114205b261ecSmrg { 114305b261ecSmrg DWORD dwAlphaDestConst; /* Constant to use as alpha channel for dest */ 114405b261ecSmrg LPDIRECTDRAWSURFACE lpDDSAlphaDest; /* Surface to use as alpha channel for dest */ 114505b261ecSmrg } DUMMYUNIONNAME1; 114605b261ecSmrg DWORD dwAlphaSrcConstBitDepth; /* Bit depth used to specify alpha constant for source */ 114705b261ecSmrg union 114805b261ecSmrg { 114905b261ecSmrg DWORD dwAlphaSrcConst; /* Constant to use as alpha channel for src */ 115005b261ecSmrg LPDIRECTDRAWSURFACE lpDDSAlphaSrc; /* Surface to use as alpha channel for src */ 115105b261ecSmrg } DUMMYUNIONNAME2; 115205b261ecSmrg DDCOLORKEY dckDestColorkey; /* DestColorkey override */ 115305b261ecSmrg DDCOLORKEY dckSrcColorkey; /* DestColorkey override */ 115405b261ecSmrg DWORD dwDDFX; /* Overlay FX */ 115505b261ecSmrg DWORD dwFlags; /* flags */ 115605b261ecSmrg} DDOVERLAYFX,*LPDDOVERLAYFX; 115705b261ecSmrg 115805b261ecSmrgtypedef struct _DDBLTBATCH 115905b261ecSmrg{ 116005b261ecSmrg LPRECT lprDest; 116105b261ecSmrg LPDIRECTDRAWSURFACE lpDDSSrc; 116205b261ecSmrg LPRECT lprSrc; 116305b261ecSmrg DWORD dwFlags; 116405b261ecSmrg LPDDBLTFX lpDDBltFx; 116505b261ecSmrg} DDBLTBATCH,*LPDDBLTBATCH; 116605b261ecSmrg 116705b261ecSmrg#define MAX_DDDEVICEID_STRING 512 116805b261ecSmrg 116905b261ecSmrgtypedef struct tagDDDEVICEIDENTIFIER { 117005b261ecSmrg char szDriver[MAX_DDDEVICEID_STRING]; 117105b261ecSmrg char szDescription[MAX_DDDEVICEID_STRING]; 117205b261ecSmrg LARGE_INTEGER liDriverVersion; 117305b261ecSmrg DWORD dwVendorId; 117405b261ecSmrg DWORD dwDeviceId; 117505b261ecSmrg DWORD dwSubSysId; 117605b261ecSmrg DWORD dwRevision; 117705b261ecSmrg GUID guidDeviceIdentifier; 117805b261ecSmrg} DDDEVICEIDENTIFIER, * LPDDDEVICEIDENTIFIER; 117905b261ecSmrg 118005b261ecSmrgtypedef struct tagDDDEVICEIDENTIFIER2 { 118105b261ecSmrg char szDriver[MAX_DDDEVICEID_STRING]; /* user readable driver name */ 118205b261ecSmrg char szDescription[MAX_DDDEVICEID_STRING]; /* user readable description */ 118305b261ecSmrg LARGE_INTEGER liDriverVersion; /* driver version */ 118405b261ecSmrg DWORD dwVendorId; /* vendor ID, zero if unknown */ 118505b261ecSmrg DWORD dwDeviceId; /* chipset ID, zero if unknown */ 118605b261ecSmrg DWORD dwSubSysId; /* board ID, zero if unknown */ 118705b261ecSmrg DWORD dwRevision; /* chipset version, zero if unknown */ 118805b261ecSmrg GUID guidDeviceIdentifier; /* unique ID for this driver/chipset combination */ 118905b261ecSmrg DWORD dwWHQLLevel; /* Windows Hardware Quality Lab certification level */ 119005b261ecSmrg} DDDEVICEIDENTIFIER2, * LPDDDEVICEIDENTIFIER2; 119105b261ecSmrg 119205b261ecSmrg/***************************************************************************** 119305b261ecSmrg * IDirectDrawPalette interface 119405b261ecSmrg */ 119505b261ecSmrg#undef INTERFACE 119605b261ecSmrg#define INTERFACE IDirectDrawPalette 119705b261ecSmrgDECLARE_INTERFACE_(IDirectDrawPalette,IUnknown) 119805b261ecSmrg{ 119905b261ecSmrg STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; 120005b261ecSmrg STDMETHOD_(ULONG,AddRef)(THIS) PURE; 120105b261ecSmrg STDMETHOD_(ULONG,Release)(THIS) PURE; 120205b261ecSmrg STDMETHOD(GetCaps)(THIS_ LPDWORD lpdwCaps) PURE; 120305b261ecSmrg STDMETHOD(GetEntries)(THIS_ DWORD dwFlags, DWORD dwBase, DWORD dwNumEntries, LPPALETTEENTRY lpEntries) PURE; 120405b261ecSmrg STDMETHOD(Initialize)(THIS_ LPDIRECTDRAW lpDD, DWORD dwFlags, LPPALETTEENTRY lpDDColorTable) PURE; 120505b261ecSmrg STDMETHOD(SetEntries)(THIS_ DWORD dwFlags, DWORD dwStartingEntry, DWORD dwCount, LPPALETTEENTRY lpEntries) PURE; 120605b261ecSmrg}; 120705b261ecSmrg 120805b261ecSmrg /*** IUnknown methods ***/ 120905b261ecSmrg#define IDirectDrawPalette_QueryInterface(p,a,b) ICOM_CALL_(QueryInterface,p,(p,a,b)) 121005b261ecSmrg#define IDirectDrawPalette_AddRef(p) ICOM_CALL_(AddRef,p,(p)) 121105b261ecSmrg#define IDirectDrawPalette_Release(p) ICOM_CALL_(Release,p,(p)) 121205b261ecSmrg /*** IDirectDrawPalette methods ***/ 121305b261ecSmrg#define IDirectDrawPalette_GetCaps(p,a) ICOM_CALL_(GetCaps,p,(p,a)) 121405b261ecSmrg#define IDirectDrawPalette_GetEntries(p,a,b,c,d) ICOM_CALL_(GetEntries,p,(p,a,b,c,d)) 121505b261ecSmrg#define IDirectDrawPalette_Initialize(p,a,b,c) ICOM_CALL_(Initialize,p,(p,a,b,c)) 121605b261ecSmrg#define IDirectDrawPalette_SetEntries(p,a,b,c,d) ICOM_CALL_(SetEntries,p,(p,a,b,c,d)) 121705b261ecSmrg 121805b261ecSmrg 121905b261ecSmrg/***************************************************************************** 122005b261ecSmrg * IDirectDrawClipper interface 122105b261ecSmrg */ 122205b261ecSmrg#undef INTERFACE 122305b261ecSmrg#define INTERFACE IDirectDrawClipper 122405b261ecSmrgDECLARE_INTERFACE_(IDirectDrawClipper,IUnknown) 122505b261ecSmrg{ 122605b261ecSmrg STDMETHOD(QueryInterface)(THIS_ REFIID,LPVOID*) PURE; 122705b261ecSmrg STDMETHOD_(ULONG,AddRef)(THIS) PURE; 122805b261ecSmrg STDMETHOD_(ULONG,Release)(THIS) PURE; 122905b261ecSmrg STDMETHOD(GetClipList)(THIS_ LPRECT lpRect, LPRGNDATA lpClipList, LPDWORD lpdwSize) PURE; 123005b261ecSmrg STDMETHOD(GetHWnd)(THIS_ HWND* lphWnd) PURE; 123105b261ecSmrg STDMETHOD(Initialize)(THIS_ LPDIRECTDRAW lpDD, DWORD dwFlags) PURE; 123205b261ecSmrg STDMETHOD(IsClipListChanged)(THIS_ BOOL* lpbChanged) PURE; 123305b261ecSmrg STDMETHOD(SetClipList)(THIS_ LPRGNDATA lpClipList, DWORD dwFlags) PURE; 123405b261ecSmrg STDMETHOD(SetHWnd)(THIS_ DWORD dwFlags, HWND hWnd) PURE; 123505b261ecSmrg}; 123605b261ecSmrg 123705b261ecSmrg /*** IUnknown methods ***/ 123805b261ecSmrg#define IDirectDrawClipper_QueryInterface(p,a,b) ICOM_CALL_(QueryInterface,p,(p,a,b)) 123905b261ecSmrg#define IDirectDrawClipper_AddRef(p) ICOM_CALL_(AddRef,p,(p)) 124005b261ecSmrg#define IDirectDrawClipper_Release(p) ICOM_CALL_(Release,p,(p)) 124105b261ecSmrg /*** IDirectDrawClipper methods ***/ 124205b261ecSmrg#define IDirectDrawClipper_GetClipList(p,a,b,c) ICOM_CALL_(GetClipList,p,(p,a,b,c)) 124305b261ecSmrg#define IDirectDrawClipper_GetHWnd(p,a) ICOM_CALL_(GetHWnd,p,(p,a)) 124405b261ecSmrg#define IDirectDrawClipper_Initialize(p,a,b) ICOM_CALL_(Initialize,p,(p,a,b)) 124505b261ecSmrg#define IDirectDrawClipper_IsClipListChanged(p,a) ICOM_CALL_(IsClipListChanged,p,(p,a)) 124605b261ecSmrg#define IDirectDrawClipper_SetClipList(p,a,b) ICOM_CALL_(SetClipList,p,(p,a,b)) 124705b261ecSmrg#define IDirectDrawClipper_SetHWnd(p,a,b) ICOM_CALL_(SetHWnd,p,(p,a,b)) 124805b261ecSmrg 124905b261ecSmrg 125005b261ecSmrg/***************************************************************************** 125105b261ecSmrg * IDirectDraw interface 125205b261ecSmrg */ 125305b261ecSmrg#undef INTERFACE 125405b261ecSmrg#define INTERFACE IDirectDraw 125505b261ecSmrgDECLARE_INTERFACE_(IDirectDraw,IUnknown) 125605b261ecSmrg{ 125705b261ecSmrg STDMETHOD(QueryInterface)(THIS_ REFIID,LPVOID*) PURE; 125805b261ecSmrg STDMETHOD_(ULONG,AddRef)(THIS) PURE; 125905b261ecSmrg STDMETHOD_(ULONG,Release)(THIS) PURE; 126005b261ecSmrg STDMETHOD(Compact)(THIS) PURE; 126105b261ecSmrg STDMETHOD(CreateClipper)(THIS_ DWORD dwFlags, LPDIRECTDRAWCLIPPER* lplpDDClipper, IUnknown* pUnkOuter) PURE; 126205b261ecSmrg STDMETHOD(CreatePalette)(THIS_ DWORD dwFlags, LPPALETTEENTRY lpColorTable, LPDIRECTDRAWPALETTE* lplpDDPalette, IUnknown* pUnkOuter) PURE; 126305b261ecSmrg STDMETHOD(CreateSurface)(THIS_ LPDDSURFACEDESC lpDDSurfaceDesc, LPDIRECTDRAWSURFACE* lplpDDSurface, IUnknown* pUnkOuter) PURE; 126405b261ecSmrg STDMETHOD(DuplicateSurface)(THIS_ LPDIRECTDRAWSURFACE lpDDSurface, LPDIRECTDRAWSURFACE* lplpDupDDSurface) PURE; 126505b261ecSmrg STDMETHOD(EnumDisplayModes)(THIS_ DWORD dwFlags, LPDDSURFACEDESC lpDDSurfaceDesc, LPVOID lpContext, LPDDENUMMODESCALLBACK lpEnumModesCallback) PURE; 126605b261ecSmrg STDMETHOD(EnumSurfaces)(THIS_ DWORD dwFlags, LPDDSURFACEDESC lpDDSD, LPVOID lpContext, LPDDENUMSURFACESCALLBACK lpEnumSurfacesCallback) PURE; 126705b261ecSmrg STDMETHOD(FlipToGDISurface)(THIS) PURE; 126805b261ecSmrg STDMETHOD(GetCaps)(THIS_ LPDDCAPS lpDDDriverCaps, LPDDCAPS lpDDHELCaps) PURE; 126905b261ecSmrg STDMETHOD(GetDisplayMode)(THIS_ LPDDSURFACEDESC lpDDSurfaceDesc) PURE; 127005b261ecSmrg STDMETHOD(GetFourCCCodes)(THIS_ LPDWORD lpNumCodes, LPDWORD lpCodes) PURE; 127105b261ecSmrg STDMETHOD(GetGDISurface)(THIS_ LPDIRECTDRAWSURFACE* lplpGDIDDSurface) PURE; 127205b261ecSmrg STDMETHOD(GetMonitorFrequency)(THIS_ LPDWORD lpdwFrequency) PURE; 127305b261ecSmrg STDMETHOD(GetScanLine)(THIS_ LPDWORD lpdwScanLine) PURE; 127405b261ecSmrg STDMETHOD(GetVerticalBlankStatus)(THIS_ BOOL* lpbIsInVB) PURE; 127505b261ecSmrg STDMETHOD(Initialize)(THIS_ GUID* lpGUID) PURE; 127605b261ecSmrg STDMETHOD(RestoreDisplayMode)(THIS) PURE; 127705b261ecSmrg STDMETHOD(SetCooperativeLevel)(THIS_ HWND hWnd, DWORD dwFlags) PURE; 127805b261ecSmrg STDMETHOD(SetDisplayMode)(THIS_ DWORD, DWORD, DWORD) PURE; 127905b261ecSmrg STDMETHOD(WaitForVerticalBlank)(THIS_ DWORD dwFlags, HANDLE hEvent) PURE; 128005b261ecSmrg}; 128105b261ecSmrg 128205b261ecSmrg /*** IUnknown methods ***/ 128305b261ecSmrg#define IDirectDraw_QueryInterface(p,a,b) ICOM_CALL_(QueryInterface,p,(p,a,b)) 128405b261ecSmrg#define IDirectDraw_AddRef(p) ICOM_CALL_(AddRef,p,(p)) 128505b261ecSmrg#define IDirectDraw_Release(p) ICOM_CALL_(Release,p,(p)) 128605b261ecSmrg /*** IDirectDraw methods ***/ 128705b261ecSmrg#define IDirectDraw_Compact(p) ICOM_CALL_(Compact,p,(p)) 128805b261ecSmrg#define IDirectDraw_CreateClipper(p,a,b,c) ICOM_CALL_(CreateClipper,p,(p,a,b,c)) 128905b261ecSmrg#define IDirectDraw_CreatePalette(p,a,b,c,d) ICOM_CALL_(CreatePalette,p,(p,a,b,c,d)) 129005b261ecSmrg#define IDirectDraw_CreateSurface(p,a,b,c) ICOM_CALL_(CreateSurface,p,(p,a,b,c)) 129105b261ecSmrg#define IDirectDraw_DuplicateSurface(p,a,b) ICOM_CALL_(DuplicateSurface,p,(p,a,b)) 129205b261ecSmrg#define IDirectDraw_EnumDisplayModes(p,a,b,c,d) ICOM_CALL_(EnumDisplayModes,p,(p,a,b,c,d)) 129305b261ecSmrg#define IDirectDraw_EnumSurfaces(p,a,b,c,d) ICOM_CALL_(EnumSurfaces,p,(p,a,b,c,d)) 129405b261ecSmrg#define IDirectDraw_FlipToGDISurface(p) ICOM_CALL_(FlipToGDISurface,p,(p)) 129505b261ecSmrg#define IDirectDraw_GetCaps(p,a,b) ICOM_CALL_(GetCaps,p,(p,a,b)) 129605b261ecSmrg#define IDirectDraw_GetDisplayMode(p,a) ICOM_CALL_(GetDisplayMode,p,(p,a)) 129705b261ecSmrg#define IDirectDraw_GetFourCCCodes(p,a,b) ICOM_CALL_(GetFourCCCodes,p,(p,a,b)) 129805b261ecSmrg#define IDirectDraw_GetGDISurface(p,a) ICOM_CALL_(GetGDISurface,p,(p,a)) 129905b261ecSmrg#define IDirectDraw_GetMonitorFrequency(p,a) ICOM_CALL_(GetMonitorFrequency,p,(p,a)) 130005b261ecSmrg#define IDirectDraw_GetScanLine(p,a) ICOM_CALL_(GetScanLine,p,(p,a)) 130105b261ecSmrg#define IDirectDraw_GetVerticalBlankStatus(p,a) ICOM_CALL_(GetVerticalBlankStatus,p,(p,a)) 130205b261ecSmrg#define IDirectDraw_Initialize(p,a) ICOM_CALL_(Initialize,p,(p,a)) 130305b261ecSmrg#define IDirectDraw_RestoreDisplayMode(p) ICOM_CALL_(RestoreDisplayMode,p,(p)) 130405b261ecSmrg#define IDirectDraw_SetCooperativeLevel(p,a,b) ICOM_CALL_(SetCooperativeLevel,p,(p,a,b)) 130505b261ecSmrg#define IDirectDraw_SetDisplayMode(p,a,b,c) ICOM_CALL_(SetDisplayMode,p,(p,a,b,c)) 130605b261ecSmrg#define IDirectDraw_WaitForVerticalBlank(p,a,b) ICOM_CALL_(WaitForVerticalBlank,p,(p,a,b)) 130705b261ecSmrg 130805b261ecSmrg 130905b261ecSmrg/* flags for Lock() */ 131005b261ecSmrg#define DDLOCK_SURFACEMEMORYPTR 0x00000000 131105b261ecSmrg#define DDLOCK_WAIT 0x00000001 131205b261ecSmrg#define DDLOCK_EVENT 0x00000002 131305b261ecSmrg#define DDLOCK_READONLY 0x00000010 131405b261ecSmrg#define DDLOCK_WRITEONLY 0x00000020 131505b261ecSmrg#define DDLOCK_NOSYSLOCK 0x00000800 131605b261ecSmrg 131705b261ecSmrg 131805b261ecSmrg/***************************************************************************** 131905b261ecSmrg * IDirectDraw2 interface 132005b261ecSmrg */ 132105b261ecSmrg/* Note: IDirectDraw2 cannot derive from IDirectDraw because the number of 132205b261ecSmrg * arguments of SetDisplayMode has changed ! 132305b261ecSmrg */ 132405b261ecSmrg#undef INTERFACE 132505b261ecSmrg#define INTERFACE IDirectDraw2 132605b261ecSmrgDECLARE_INTERFACE_(IDirectDraw2,IUnknown) 132705b261ecSmrg{ 132805b261ecSmrg STDMETHOD(QueryInterface)(THIS_ REFIID,LPVOID*) PURE; 132905b261ecSmrg STDMETHOD_(ULONG,AddRef)(THIS) PURE; 133005b261ecSmrg STDMETHOD_(ULONG,Release)(THIS) PURE; 133105b261ecSmrg STDMETHOD(Compact)(THIS) PURE; 133205b261ecSmrg STDMETHOD(CreateClipper)(THIS_ DWORD dwFlags, LPDIRECTDRAWCLIPPER* lplpDDClipper, IUnknown* pUnkOuter) PURE; 133305b261ecSmrg STDMETHOD(CreatePalette)(THIS_ DWORD dwFlags, LPPALETTEENTRY lpColorTable, LPDIRECTDRAWPALETTE* lplpDDPalette, IUnknown* pUnkOuter) PURE; 133405b261ecSmrg STDMETHOD(CreateSurface)(THIS_ LPDDSURFACEDESC lpDDSurfaceDesc, LPDIRECTDRAWSURFACE2* lplpDDSurface, IUnknown* pUnkOuter) PURE; 133505b261ecSmrg STDMETHOD(DuplicateSurface)(THIS_ LPDIRECTDRAWSURFACE2 lpDDSurface, LPDIRECTDRAWSURFACE2* lplpDupDDSurface) PURE; 133605b261ecSmrg STDMETHOD(EnumDisplayModes)(THIS_ DWORD dwFlags, LPDDSURFACEDESC lpDDSurfaceDesc, LPVOID lpContext, LPDDENUMMODESCALLBACK lpEnumModesCallback) PURE; 133705b261ecSmrg STDMETHOD(EnumSurfaces)(THIS_ DWORD dwFlags, LPDDSURFACEDESC lpDDSD, LPVOID lpContext, LPDDENUMSURFACESCALLBACK lpEnumSurfacesCallback) PURE; 133805b261ecSmrg STDMETHOD(FlipToGDISurface)(THIS) PURE; 133905b261ecSmrg STDMETHOD(GetCaps)(THIS_ LPDDCAPS lpDDDriverCaps, LPDDCAPS lpDDHELCaps) PURE; 134005b261ecSmrg STDMETHOD(GetDisplayMode)(THIS_ LPDDSURFACEDESC lpDDSurfaceDesc) PURE; 134105b261ecSmrg STDMETHOD(GetFourCCCodes)(THIS_ LPDWORD lpNumCodes, LPDWORD lpCodes) PURE; 134205b261ecSmrg STDMETHOD(GetGDISurface)(THIS_ LPDIRECTDRAWSURFACE2* lplpGDIDDSurface) PURE; 134305b261ecSmrg STDMETHOD(GetMonitorFrequency)(THIS_ LPDWORD lpdwFrequency) PURE; 134405b261ecSmrg STDMETHOD(GetScanLine)(THIS_ LPDWORD lpdwScanLine) PURE; 134505b261ecSmrg STDMETHOD(GetVerticalBlankStatus)(THIS_ BOOL* lpbIsInVB) PURE; 134605b261ecSmrg STDMETHOD(Initialize)(THIS_ GUID* lpGUID) PURE; 134705b261ecSmrg STDMETHOD(RestoreDisplayMode)(THIS) PURE; 134805b261ecSmrg STDMETHOD(SetCooperativeLevel)(THIS_ HWND hWnd, DWORD dwFlags) PURE; 134905b261ecSmrg STDMETHOD(SetDisplayMode)(THIS_ DWORD dwWidth, DWORD dwHeight, DWORD dwBPP, DWORD dwRefreshRate, DWORD dwFlags) PURE; 135005b261ecSmrg STDMETHOD(WaitForVerticalBlank)(THIS_ DWORD dwFlags, HANDLE hEvent) PURE; 135105b261ecSmrg 135205b261ecSmrg STDMETHOD(GetAvailableVidMem)(THIS_ LPDDSCAPS lpDDCaps, LPDWORD lpdwTotal, LPDWORD lpdwFree) PURE; 135305b261ecSmrg}; 135405b261ecSmrg 135505b261ecSmrg /*** IUnknown methods ***/ 135605b261ecSmrg#define IDirectDraw2_QueryInterface(p,a,b) ICOM_CALL_(QueryInterface,p,(p,a,b)) 135705b261ecSmrg#define IDirectDraw2_AddRef(p) ICOM_CALL_(AddRef,p,(p)) 135805b261ecSmrg#define IDirectDraw2_Release(p) ICOM_CALL_(Release,p,(p)) 135905b261ecSmrg /*** IDirectDraw methods ***/ 136005b261ecSmrg#define IDirectDraw2_Compact(p) ICOM_CALL_(Compact,p,(p)) 136105b261ecSmrg#define IDirectDraw2_CreateClipper(p,a,b,c) ICOM_CALL_(CreateClipper,p,(p,a,b,c)) 136205b261ecSmrg#define IDirectDraw2_CreatePalette(p,a,b,c,d) ICOM_CALL_(CreatePalette,p,(p,a,b,c,d)) 136305b261ecSmrg#define IDirectDraw2_CreateSurface(p,a,b,c) ICOM_CALL_(CreateSurface,p,(p,a,b,c)) 136405b261ecSmrg#define IDirectDraw2_DuplicateSurface(p,a,b) ICOM_CALL_(DuplicateSurface,p,(p,a,b)) 136505b261ecSmrg#define IDirectDraw2_EnumDisplayModes(p,a,b,c,d) ICOM_CALL_(EnumDisplayModes,p,(p,a,b,c,d)) 136605b261ecSmrg#define IDirectDraw2_EnumSurfaces(p,a,b,c,d) ICOM_CALL_(EnumSurfaces,p,(p,a,b,c,d)) 136705b261ecSmrg#define IDirectDraw2_FlipToGDISurface(p) ICOM_CALL_(FlipToGDISurface,p,(p)) 136805b261ecSmrg#define IDirectDraw2_GetCaps(p,a,b) ICOM_CALL_(GetCaps,p,(p,a,b)) 136905b261ecSmrg#define IDirectDraw2_GetDisplayMode(p,a) ICOM_CALL_(GetDisplayMode,p,(p,a)) 137005b261ecSmrg#define IDirectDraw2_GetFourCCCodes(p,a,b) ICOM_CALL_(GetFourCCCodes,p,(p,a,b)) 137105b261ecSmrg#define IDirectDraw2_GetGDISurface(p,a) ICOM_CALL_(GetGDISurface,p,(p,a)) 137205b261ecSmrg#define IDirectDraw2_GetMonitorFrequency(p,a) ICOM_CALL_(GetMonitorFrequency,p,(p,a)) 137305b261ecSmrg#define IDirectDraw2_GetScanLine(p,a) ICOM_CALL_(GetScanLine,p,(p,a)) 137405b261ecSmrg#define IDirectDraw2_GetVerticalBlankStatus(p,a) ICOM_CALL_(GetVerticalBlankStatus,p,(p,a)) 137505b261ecSmrg#define IDirectDraw2_Initialize(p,a) ICOM_CALL_(Initialize,p,(p,a)) 137605b261ecSmrg#define IDirectDraw2_RestoreDisplayMode(p) ICOM_CALL_(RestoreDisplayMode,p,(p)) 137705b261ecSmrg#define IDirectDraw2_SetCooperativeLevel(p,a,b) ICOM_CALL_(SetCooperativeLevel,p,(p,a,b)) 137805b261ecSmrg#define IDirectDraw2_SetDisplayMode(p,a,b,c,d,e) ICOM_CALL_(SetDisplayMode,p,(p,a,b,c,d,e)) 137905b261ecSmrg#define IDirectDraw2_WaitForVerticalBlank(p,a,b) ICOM_CALL_(WaitForVerticalBlank,p,(p,a,b)) 138005b261ecSmrg/*** IDirectDraw2 methods ***/ 138105b261ecSmrg#define IDirectDraw2_GetAvailableVidMem(p,a,b,c) ICOM_CALL_(GetAvailableVidMem,p,(p,a,b,c)) 138205b261ecSmrg 138305b261ecSmrg 138405b261ecSmrg/***************************************************************************** 138505b261ecSmrg * IDirectDraw4 interface 138605b261ecSmrg */ 138705b261ecSmrg#undef INTERFACE 138805b261ecSmrg#define INTERFACE IDirectDraw4 138905b261ecSmrgDECLARE_INTERFACE_(IDirectDraw4,IUnknown) 139005b261ecSmrg{ 139105b261ecSmrg STDMETHOD(QueryInterface)(THIS_ REFIID,LPVOID*) PURE; 139205b261ecSmrg STDMETHOD_(ULONG,AddRef)(THIS) PURE; 139305b261ecSmrg STDMETHOD_(ULONG,Release)(THIS) PURE; 139405b261ecSmrg STDMETHOD(Compact)(THIS) PURE; 139505b261ecSmrg STDMETHOD(CreateClipper)(THIS_ DWORD dwFlags, LPDIRECTDRAWCLIPPER* lplpDDClipper, IUnknown* pUnkOuter) PURE; 139605b261ecSmrg STDMETHOD(CreatePalette)(THIS_ DWORD dwFlags, LPPALETTEENTRY lpColorTable, LPDIRECTDRAWPALETTE* lplpDDPalette, IUnknown* pUnkOuter) PURE; 139705b261ecSmrg STDMETHOD(CreateSurface)(THIS_ LPDDSURFACEDESC2 lpDDSurfaceDesc, LPDIRECTDRAWSURFACE4* lplpDDSurface, IUnknown* pUnkOuter) PURE; 139805b261ecSmrg STDMETHOD(DuplicateSurface)(THIS_ LPDIRECTDRAWSURFACE4 lpDDSurface, LPDIRECTDRAWSURFACE4* lplpDupDDSurface) PURE; 139905b261ecSmrg STDMETHOD(EnumDisplayModes)(THIS_ DWORD dwFlags, LPDDSURFACEDESC2 lpDDSurfaceDesc, LPVOID lpContext, LPDDENUMMODESCALLBACK2 lpEnumModesCallback) PURE; 140005b261ecSmrg STDMETHOD(EnumSurfaces)(THIS_ DWORD dwFlags, LPDDSURFACEDESC2 lpDDSD, LPVOID lpContext, LPDDENUMSURFACESCALLBACK2 lpEnumSurfacesCallback) PURE; 140105b261ecSmrg STDMETHOD(FlipToGDISurface)(THIS) PURE; 140205b261ecSmrg STDMETHOD(GetCaps)(THIS_ LPDDCAPS lpDDDriverCaps, LPDDCAPS lpDDHELCaps) PURE; 140305b261ecSmrg STDMETHOD(GetDisplayMode)(THIS_ LPDDSURFACEDESC2 lpDDSurfaceDesc) PURE; 140405b261ecSmrg STDMETHOD(GetFourCCCodes)(THIS_ LPDWORD lpNumCodes, LPDWORD lpCodes) PURE; 140505b261ecSmrg STDMETHOD(GetGDISurface)(THIS_ LPDIRECTDRAWSURFACE4* lplpGDIDDSurface) PURE; 140605b261ecSmrg STDMETHOD(GetMonitorFrequency)(THIS_ LPDWORD lpdwFrequency) PURE; 140705b261ecSmrg STDMETHOD(GetScanLine)(THIS_ LPDWORD lpdwScanLine) PURE; 140805b261ecSmrg STDMETHOD(GetVerticalBlankStatus)(THIS_ BOOL* lpbIsInVB) PURE; 140905b261ecSmrg STDMETHOD(Initialize)(THIS_ GUID* lpGUID) PURE; 141005b261ecSmrg STDMETHOD(RestoreDisplayMode)(THIS) PURE; 141105b261ecSmrg STDMETHOD(SetCooperativeLevel)(THIS_ HWND hWnd, DWORD dwFlags) PURE; 141205b261ecSmrg STDMETHOD(SetDisplayMode)(THIS_ DWORD dwWidth, DWORD dwHeight, DWORD dwBPP, DWORD dwRefreshRate, DWORD dwFlags) PURE; 141305b261ecSmrg STDMETHOD(WaitForVerticalBlank)(THIS_ DWORD dwFlags, HANDLE hEvent) PURE; 141405b261ecSmrg 141505b261ecSmrg STDMETHOD(GetAvailableVidMem)(THIS_ LPDDSCAPS2 lpDDCaps, LPDWORD lpdwTotal, LPDWORD lpdwFree) PURE; 141605b261ecSmrg 141705b261ecSmrg STDMETHOD(GetSurfaceFromDC)(THIS_ HDC , LPDIRECTDRAWSURFACE4* ) PURE; 141805b261ecSmrg STDMETHOD(RestoreAllSurfaces)(THIS) PURE; 141905b261ecSmrg STDMETHOD(TestCooperativeLevel)(THIS) PURE; 142005b261ecSmrg STDMETHOD(GetDeviceIdentifier)(THIS_ LPDDDEVICEIDENTIFIER , DWORD ) PURE; 142105b261ecSmrg}; 142205b261ecSmrg 142305b261ecSmrg /*** IUnknown methods ***/ 142405b261ecSmrg#define IDirectDraw4_QueryInterface(p,a,b) ICOM_CALL_(QueryInterface,p,(p,a,b)) 142505b261ecSmrg#define IDirectDraw4_AddRef(p) ICOM_CALL_(AddRef,p,(p)) 142605b261ecSmrg#define IDirectDraw4_Release(p) ICOM_CALL_(Release,p,(p)) 142705b261ecSmrg /*** IDirectDraw methods ***/ 142805b261ecSmrg#define IDirectDraw4_Compact(p) ICOM_CALL_(Compact,p,(p)) 142905b261ecSmrg#define IDirectDraw4_CreateClipper(p,a,b,c) ICOM_CALL_(CreateClipper,p,(p,a,b,c)) 143005b261ecSmrg#define IDirectDraw4_CreatePalette(p,a,b,c,d) ICOM_CALL_(CreatePalette,p,(p,a,b,c,d)) 143105b261ecSmrg#define IDirectDraw4_CreateSurface(p,a,b,c) ICOM_CALL_(CreateSurface,p,(p,a,b,c)) 143205b261ecSmrg#define IDirectDraw4_DuplicateSurface(p,a,b) ICOM_CALL_(DuplicateSurface,p,(p,a,b)) 143305b261ecSmrg#define IDirectDraw4_EnumDisplayModes(p,a,b,c,d) ICOM_CALL_(EnumDisplayModes,p,(p,a,b,c,d)) 143405b261ecSmrg#define IDirectDraw4_EnumSurfaces(p,a,b,c,d) ICOM_CALL_(EnumSurfaces,p,(p,a,b,c,d)) 143505b261ecSmrg#define IDirectDraw4_FlipToGDISurface(p) ICOM_CALL_(FlipToGDISurface,p,(p)) 143605b261ecSmrg#define IDirectDraw4_GetCaps(p,a,b) ICOM_CALL_(GetCaps,p,(p,a,b)) 143705b261ecSmrg#define IDirectDraw4_GetDisplayMode(p,a) ICOM_CALL_(GetDisplayMode,p,(p,a)) 143805b261ecSmrg#define IDirectDraw4_GetFourCCCodes(p,a,b) ICOM_CALL_(GetFourCCCodes,p,(p,a,b)) 143905b261ecSmrg#define IDirectDraw4_GetGDISurface(p,a) ICOM_CALL_(GetGDISurface,p,(p,a)) 144005b261ecSmrg#define IDirectDraw4_GetMonitorFrequency(p,a) ICOM_CALL_(GetMonitorFrequency,p,(p,a)) 144105b261ecSmrg#define IDirectDraw4_GetScanLine(p,a) ICOM_CALL_(GetScanLine,p,(p,a)) 144205b261ecSmrg#define IDirectDraw4_GetVerticalBlankStatus(p,a) ICOM_CALL_(GetVerticalBlankStatus,p,(p,a)) 144305b261ecSmrg#define IDirectDraw4_Initialize(p,a) ICOM_CALL_(Initialize,p,(p,a)) 144405b261ecSmrg#define IDirectDraw4_RestoreDisplayMode(p) ICOM_CALL_(RestoreDisplayMode,p,(p)) 144505b261ecSmrg#define IDirectDraw4_SetCooperativeLevel(p,a,b) ICOM_CALL_(SetCooperativeLevel,p,(p,a,b)) 144605b261ecSmrg#define IDirectDraw4_SetDisplayMode(p,a,b,c,d,e) ICOM_CALL_(SetDisplayMode,p,(p,a,b,c,d,e)) 144705b261ecSmrg#define IDirectDraw4_WaitForVerticalBlank(p,a,b) ICOM_CALL_(WaitForVerticalBlank,p,(p,a,b)) 144805b261ecSmrg/*** IDirectDraw2 methods ***/ 144905b261ecSmrg#define IDirectDraw4_GetAvailableVidMem(p,a,b,c) ICOM_CALL_(GetAvailableVidMem,p,(p,a,b,c)) 145005b261ecSmrg/*** IDirectDraw4 methods ***/ 145105b261ecSmrg#define IDirectDraw4_GetSurfaceFromDC(p,a,b) ICOM_CALL_(GetSurfaceFromDC,p,(p,a,b)) 145205b261ecSmrg#define IDirectDraw4_RestoreAllSurfaces(pc) ICOM_CALL_(RestoreAllSurfaces,p,(p)) 145305b261ecSmrg#define IDirectDraw4_TestCooperativeLevel(p) ICOM_CALL_(TestCooperativeLevel,p,(p)) 145405b261ecSmrg#define IDirectDraw4_GetDeviceIdentifier(p,a,b) ICOM_CALL_(GetDeviceIdentifier,p,(p,a,b)) 145505b261ecSmrg 145605b261ecSmrg 145705b261ecSmrg/***************************************************************************** 145805b261ecSmrg * IDirectDraw7 interface 145905b261ecSmrg */ 146005b261ecSmrg/* Note: IDirectDraw7 cannot derive from IDirectDraw4; it is even documented 146105b261ecSmrg * as not interchangeable with earlier DirectDraw interfaces. 146205b261ecSmrg */ 146305b261ecSmrg#undef INTERFACE 146405b261ecSmrg#define INTERFACE IDirectDraw7 146505b261ecSmrgDECLARE_INTERFACE_(IDirectDraw7,IUnknown) 146605b261ecSmrg{ 146705b261ecSmrg STDMETHOD(QueryInterface)(THIS_ REFIID,LPVOID*) PURE; 146805b261ecSmrg STDMETHOD_(ULONG,AddRef)(THIS) PURE; 146905b261ecSmrg STDMETHOD_(ULONG,Release)(THIS) PURE; 147005b261ecSmrg STDMETHOD(Compact)(THIS) PURE; 147105b261ecSmrg STDMETHOD(CreateClipper)(THIS_ DWORD dwFlags, LPDIRECTDRAWCLIPPER* lplpDDClipper, IUnknown* pUnkOuter) PURE; 147205b261ecSmrg STDMETHOD(CreatePalette)(THIS_ DWORD dwFlags, LPPALETTEENTRY lpColorTable, LPDIRECTDRAWPALETTE* lplpDDPalette, IUnknown* pUnkOuter) PURE; 147305b261ecSmrg STDMETHOD(CreateSurface)(THIS_ LPDDSURFACEDESC2 lpDDSurfaceDesc, LPDIRECTDRAWSURFACE7* lplpDDSurface, IUnknown* pUnkOuter) PURE; 147405b261ecSmrg STDMETHOD(DuplicateSurface)(THIS_ LPDIRECTDRAWSURFACE7 lpDDSurface, LPDIRECTDRAWSURFACE7* lplpDupDDSurface) PURE; 147505b261ecSmrg STDMETHOD(EnumDisplayModes)(THIS_ DWORD dwFlags, LPDDSURFACEDESC2 lpDDSurfaceDesc, LPVOID lpContext, LPDDENUMMODESCALLBACK2 lpEnumModesCallback) PURE; 147605b261ecSmrg STDMETHOD(EnumSurfaces)(THIS_ DWORD dwFlags, LPDDSURFACEDESC2 lpDDSD, LPVOID lpContext, LPDDENUMSURFACESCALLBACK7 lpEnumSurfacesCallback) PURE; 147705b261ecSmrg STDMETHOD(FlipToGDISurface)(THIS) PURE; 147805b261ecSmrg STDMETHOD(GetCaps)(THIS_ LPDDCAPS lpDDDriverCaps, LPDDCAPS lpDDHELCaps) PURE; 147905b261ecSmrg STDMETHOD(GetDisplayMode)(THIS_ LPDDSURFACEDESC2 lpDDSurfaceDesc) PURE; 148005b261ecSmrg STDMETHOD(GetFourCCCodes)(THIS_ LPDWORD lpNumCodes, LPDWORD lpCodes) PURE; 148105b261ecSmrg STDMETHOD(GetGDISurface)(THIS_ LPDIRECTDRAWSURFACE7* lplpGDIDDSurface) PURE; 148205b261ecSmrg STDMETHOD(GetMonitorFrequency)(THIS_ LPDWORD lpdwFrequency) PURE; 148305b261ecSmrg STDMETHOD(GetScanLine)(THIS_ LPDWORD lpdwScanLine) PURE; 148405b261ecSmrg STDMETHOD(GetVerticalBlankStatus)(THIS_ BOOL* lpbIsInVB) PURE; 148505b261ecSmrg STDMETHOD(Initialize)(THIS_ GUID* lpGUID) PURE; 148605b261ecSmrg STDMETHOD(RestoreDisplayMode)(THIS) PURE; 148705b261ecSmrg STDMETHOD(SetCooperativeLevel)(THIS_ HWND hWnd, DWORD dwFlags) PURE; 148805b261ecSmrg STDMETHOD(SetDisplayMode)(THIS_ DWORD dwWidth, DWORD dwHeight, DWORD dwBPP, DWORD dwRefreshRate, DWORD dwFlags) PURE; 148905b261ecSmrg STDMETHOD(WaitForVerticalBlank)(THIS_ DWORD dwFlags, HANDLE hEvent) PURE; 149005b261ecSmrg 149105b261ecSmrg STDMETHOD(GetAvailableVidMem)(THIS_ LPDDSCAPS2 lpDDCaps, LPDWORD lpdwTotal, LPDWORD lpdwFree) PURE; 149205b261ecSmrg 149305b261ecSmrg STDMETHOD(GetSurfaceFromDC)(THIS_ HDC , LPDIRECTDRAWSURFACE7* ) PURE; 149405b261ecSmrg STDMETHOD(RestoreAllSurfaces)(THIS) PURE; 149505b261ecSmrg STDMETHOD(TestCooperativeLevel)(THIS) PURE; 149605b261ecSmrg STDMETHOD(GetDeviceIdentifier)(THIS_ LPDDDEVICEIDENTIFIER2 , DWORD ) PURE; 149705b261ecSmrg 149805b261ecSmrg STDMETHOD(StartModeTest)(THIS_ LPSIZE , DWORD , DWORD ) PURE; 149905b261ecSmrg STDMETHOD(EvaluateMode)(THIS_ DWORD , DWORD * ) PURE; 150005b261ecSmrg}; 150105b261ecSmrg 150205b261ecSmrg /*** IUnknown methods ***/ 150305b261ecSmrg#define IDirectDraw7_QueryInterface(p,a,b) ICOM_CALL_(QueryInterface,p,(p,a,b)) 150405b261ecSmrg#define IDirectDraw7_AddRef(p) ICOM_CALL_(AddRef,p,(p)) 150505b261ecSmrg#define IDirectDraw7_Release(p) ICOM_CALL_(Release,p,(p)) 150605b261ecSmrg /*** IDirectDraw methods ***/ 150705b261ecSmrg#define IDirectDraw7_Compact(p) ICOM_CALL_(Compact,p,(p)) 150805b261ecSmrg#define IDirectDraw7_CreateClipper(p,a,b,c) ICOM_CALL_(CreateClipper,p,(p,a,b,c)) 150905b261ecSmrg#define IDirectDraw7_CreatePalette(p,a,b,c,d) ICOM_CALL_(CreatePalette,p,(p,a,b,c,d)) 151005b261ecSmrg#define IDirectDraw7_CreateSurface(p,a,b,c) ICOM_CALL_(CreateSurface,p,(p,a,b,c)) 151105b261ecSmrg#define IDirectDraw7_DuplicateSurface(p,a,b) ICOM_CALL_(DuplicateSurface,p,(p,a,b)) 151205b261ecSmrg#define IDirectDraw7_EnumDisplayModes(p,a,b,c,d) ICOM_CALL_(EnumDisplayModes,p,(p,a,b,c,d)) 151305b261ecSmrg#define IDirectDraw7_EnumSurfaces(p,a,b,c,d) ICOM_CALL_(EnumSurfaces,p,(p,a,b,c,d)) 151405b261ecSmrg#define IDirectDraw7_FlipToGDISurface(p) ICOM_CALL_(FlipToGDISurface,p,(p)) 151505b261ecSmrg#define IDirectDraw7_GetCaps(p,a,b) ICOM_CALL_(GetCaps,p,(p,a,b)) 151605b261ecSmrg#define IDirectDraw7_GetDisplayMode(p,a) ICOM_CALL_(GetDisplayMode,p,(p,a)) 151705b261ecSmrg#define IDirectDraw7_GetFourCCCodes(p,a,b) ICOM_CALL_(GetFourCCCodes,p,(p,a,b)) 151805b261ecSmrg#define IDirectDraw7_GetGDISurface(p,a) ICOM_CALL_(GetGDISurface,p,(p,a)) 151905b261ecSmrg#define IDirectDraw7_GetMonitorFrequency(p,a) ICOM_CALL_(GetMonitorFrequency,p,(p,a)) 152005b261ecSmrg#define IDirectDraw7_GetScanLine(p,a) ICOM_CALL_(GetScanLine,p,(p,a)) 152105b261ecSmrg#define IDirectDraw7_GetVerticalBlankStatus(p,a) ICOM_CALL_(GetVerticalBlankStatus,p,(p,a)) 152205b261ecSmrg#define IDirectDraw7_Initialize(p,a) ICOM_CALL_(Initialize,p,(p,a)) 152305b261ecSmrg#define IDirectDraw7_RestoreDisplayMode(p) ICOM_CALL_(RestoreDisplayMode,p,(p)) 152405b261ecSmrg#define IDirectDraw7_SetCooperativeLevel(p,a,b) ICOM_CALL_(SetCooperativeLevel,p,(p,a,b)) 152505b261ecSmrg#define IDirectDraw7_SetDisplayMode(p,a,b,c,d,e) ICOM_CALL_(SetDisplayMode,p,(p,a,b,c,d,e)) 152605b261ecSmrg#define IDirectDraw7_WaitForVerticalBlank(p,a,b) ICOM_CALL_(WaitForVerticalBlank,p,(p,a,b)) 152705b261ecSmrg/*** added in IDirectDraw2 ***/ 152805b261ecSmrg#define IDirectDraw7_GetAvailableVidMem(p,a,b,c) ICOM_CALL_(GetAvailableVidMem,p,(p,a,b,c)) 152905b261ecSmrg/*** added in IDirectDraw4 ***/ 153005b261ecSmrg#define IDirectDraw7_GetSurfaceFromDC(p,a,b) ICOM_CALL_(GetSurfaceFromDC,p,(p,a,b)) 153105b261ecSmrg#define IDirectDraw7_RestoreAllSurfaces(p) ICOM_CALL_(RestoreAllSurfaces,p,(p)) 153205b261ecSmrg#define IDirectDraw7_TestCooperativeLevel(p) ICOM_CALL_(TestCooperativeLevel,p,(p)) 153305b261ecSmrg#define IDirectDraw7_GetDeviceIdentifier(p,a,b) ICOM_CALL_(GetDeviceIdentifier,p,(p,a,b)) 153405b261ecSmrg/*** added in IDirectDraw 7 ***/ 153505b261ecSmrg#define IDirectDraw7_StartModeTest(p,a,b,c) ICOM_CALL_(StartModeTest,p,(p,a,b,c)) 153605b261ecSmrg#define IDirectDraw7_EvaluateMode(p,a,b) ICOM_CALL_(EvaluateMode,p,(p,a,b)) 153705b261ecSmrg 153805b261ecSmrg 153905b261ecSmrg/***************************************************************************** 154005b261ecSmrg * IDirectDrawSurface interface 154105b261ecSmrg */ 154205b261ecSmrg#undef INTERFACE 154305b261ecSmrg#define INTERFACE IDirectDrawSurface 154405b261ecSmrgDECLARE_INTERFACE_(IDirectDrawSurface,IUnknown) 154505b261ecSmrg{ 154605b261ecSmrg STDMETHOD(QueryInterface)(THIS_ REFIID,LPVOID*) PURE; 154705b261ecSmrg STDMETHOD_(ULONG,AddRef)(THIS) PURE; 154805b261ecSmrg STDMETHOD_(ULONG,Release)(THIS) PURE; 154905b261ecSmrg STDMETHOD(AddAttachedSurface)(THIS_ LPDIRECTDRAWSURFACE lpDDSAttachedSurface) PURE; 155005b261ecSmrg STDMETHOD(AddOverlayDirtyRect)(THIS_ LPRECT lpRect) PURE; 155105b261ecSmrg STDMETHOD(Blt)(THIS_ LPRECT lpDestRect, LPDIRECTDRAWSURFACE lpDDSrcSurface, LPRECT lpSrcRect, DWORD dwFlags, LPDDBLTFX lpDDBltFx) PURE; 155205b261ecSmrg STDMETHOD(BltBatch)(THIS_ LPDDBLTBATCH lpDDBltBatch, DWORD dwCount, DWORD dwFlags) PURE; 155305b261ecSmrg STDMETHOD(BltFast)(THIS_ DWORD dwX, DWORD dwY, LPDIRECTDRAWSURFACE lpDDSrcSurface, LPRECT lpSrcRect, DWORD dwTrans) PURE; 155405b261ecSmrg STDMETHOD(DeleteAttachedSurface)(THIS_ DWORD dwFlags, LPDIRECTDRAWSURFACE lpDDSAttachedSurface) PURE; 155505b261ecSmrg STDMETHOD(EnumAttachedSurfaces)(THIS_ LPVOID lpContext, LPDDENUMSURFACESCALLBACK lpEnumSurfacesCallback) PURE; 155605b261ecSmrg STDMETHOD(EnumOverlayZOrders)(THIS_ DWORD dwFlags, LPVOID lpContext, LPDDENUMSURFACESCALLBACK lpfnCallback) PURE; 155705b261ecSmrg STDMETHOD(Flip)(THIS_ LPDIRECTDRAWSURFACE lpDDSurfaceTargetOverride, DWORD dwFlags) PURE; 155805b261ecSmrg STDMETHOD(GetAttachedSurface)(THIS_ LPDDSCAPS lpDDSCaps, LPDIRECTDRAWSURFACE* lplpDDAttachedSurface) PURE; 155905b261ecSmrg STDMETHOD(GetBltStatus)(THIS_ DWORD dwFlags) PURE; 156005b261ecSmrg STDMETHOD(GetCaps)(THIS_ LPDDSCAPS lpDDSCaps) PURE; 156105b261ecSmrg STDMETHOD(GetClipper)(THIS_ LPDIRECTDRAWCLIPPER* lplpDDClipper) PURE; 156205b261ecSmrg STDMETHOD(GetColorKey)(THIS_ DWORD dwFlags, LPDDCOLORKEY lpDDColorKey) PURE; 156305b261ecSmrg STDMETHOD(GetDC)(THIS_ HDC* lphDC) PURE; 156405b261ecSmrg STDMETHOD(GetFlipStatus)(THIS_ DWORD dwFlags) PURE; 156505b261ecSmrg STDMETHOD(GetOverlayPosition)(THIS_ LPLONG lplX, LPLONG lplY) PURE; 156605b261ecSmrg STDMETHOD(GetPalette)(THIS_ LPDIRECTDRAWPALETTE* lplpDDPalette) PURE; 156705b261ecSmrg STDMETHOD(GetPixelFormat)(THIS_ LPDDPIXELFORMAT lpDDPixelFormat) PURE; 156805b261ecSmrg STDMETHOD(GetSurfaceDesc)(THIS_ LPDDSURFACEDESC lpDDSurfaceDesc) PURE; 156905b261ecSmrg STDMETHOD(Initialize)(THIS_ LPDIRECTDRAW lpDD, LPDDSURFACEDESC lpDDSurfaceDesc) PURE; 157005b261ecSmrg STDMETHOD(IsLost)(THIS) PURE; 157105b261ecSmrg STDMETHOD(Lock)(THIS_ LPRECT lpDestRect, LPDDSURFACEDESC lpDDSurfaceDesc, DWORD dwFlags, HANDLE hEvent) PURE; 157205b261ecSmrg STDMETHOD(ReleaseDC)(THIS_ HDC hDC) PURE; 157305b261ecSmrg STDMETHOD(Restore)(THIS) PURE; 157405b261ecSmrg STDMETHOD(SetClipper)(THIS_ LPDIRECTDRAWCLIPPER lpDDClipper) PURE; 157505b261ecSmrg STDMETHOD(SetColorKey)(THIS_ DWORD dwFlags, LPDDCOLORKEY lpDDColorKey) PURE; 157605b261ecSmrg STDMETHOD(SetOverlayPosition)(THIS_ LONG lX, LONG lY) PURE; 157705b261ecSmrg STDMETHOD(SetPalette)(THIS_ LPDIRECTDRAWPALETTE lpDDPalette) PURE; 157805b261ecSmrg STDMETHOD(Unlock)(THIS_ LPVOID lpSurfaceData) PURE; 157905b261ecSmrg STDMETHOD(UpdateOverlay)(THIS_ LPRECT lpSrcRect, LPDIRECTDRAWSURFACE lpDDDestSurface, LPRECT lpDestRect, DWORD dwFlags, LPDDOVERLAYFX lpDDOverlayFx) PURE; 158005b261ecSmrg STDMETHOD(UpdateOverlayDisplay)(THIS_ DWORD dwFlags) PURE; 158105b261ecSmrg STDMETHOD(UpdateOverlayZOrder)(THIS_ DWORD dwFlags, LPDIRECTDRAWSURFACE lpDDSReference) PURE; 158205b261ecSmrg}; 158305b261ecSmrg 158405b261ecSmrg /*** IUnknown methods ***/ 158505b261ecSmrg#define IDirectDrawSurface_QueryInterface(p,a,b) ICOM_CALL_(QueryInterface,p,(p,a,b)) 158605b261ecSmrg#define IDirectDrawSurface_AddRef(p) ICOM_CALL_(AddRef,p,(p)) 158705b261ecSmrg#define IDirectDrawSurface_Release(p) ICOM_CALL_(Release,p,(p)) 158805b261ecSmrg /*** IDirectDrawSurface methods ***/ 158905b261ecSmrg#define IDirectDrawSurface_AddAttachedSurface(p,a) ICOM_CALL_(AddAttachedSurface,p,(p,a)) 159005b261ecSmrg#define IDirectDrawSurface_AddOverlayDirtyRect(p,a) ICOM_CALL_(AddOverlayDirtyRect,p,(p,a)) 159105b261ecSmrg#define IDirectDrawSurface_Blt(p,a,b,c,d,e) ICOM_CALL_(Blt,p,(p,a,b,c,d,e)) 159205b261ecSmrg#define IDirectDrawSurface_BltBatch(p,a,b,c) ICOM_CALL_(BltBatch,p,(p,a,b,c)) 159305b261ecSmrg#define IDirectDrawSurface_BltFast(p,a,b,c,d,e) ICOM_CALL_(BltFast,p,(p,a,b,c,d,e)) 159405b261ecSmrg#define IDirectDrawSurface_DeleteAttachedSurface(p,a,b) ICOM_CALL_(DeleteAttachedSurface,p,(p,a,b)) 159505b261ecSmrg#define IDirectDrawSurface_EnumAttachedSurfaces(p,a,b) ICOM_CALL_(EnumAttachedSurfaces,p,(p,a,b)) 159605b261ecSmrg#define IDirectDrawSurface_EnumOverlayZOrders(p,a,b,c) ICOM_CALL_(EnumOverlayZOrders,p,(p,a,b,c)) 159705b261ecSmrg#define IDirectDrawSurface_Flip(p,a,b) ICOM_CALL_(Flip,p,(p,a,b)) 159805b261ecSmrg#define IDirectDrawSurface_GetAttachedSurface(p,a,b) ICOM_CALL_(GetAttachedSurface,p,(p,a,b)) 159905b261ecSmrg#define IDirectDrawSurface_GetBltStatus(p,a) ICOM_CALL_(GetBltStatus,p,(p,a)) 160005b261ecSmrg#define IDirectDrawSurface_GetCaps(p,a) ICOM_CALL_(GetCaps,p,(p,a)) 160105b261ecSmrg#define IDirectDrawSurface_GetClipper(p,a) ICOM_CALL_(GetClipper,p,(p,a)) 160205b261ecSmrg#define IDirectDrawSurface_GetColorKey(p,a,b) ICOM_CALL_(GetColorKey,p,(p,a,b)) 160305b261ecSmrg#define IDirectDrawSurface_GetDC(p,a) ICOM_CALL_(GetDC,p,(p,a)) 160405b261ecSmrg#define IDirectDrawSurface_GetFlipStatus(p,a) ICOM_CALL_(GetFlipStatus,p,(p,a)) 160505b261ecSmrg#define IDirectDrawSurface_GetOverlayPosition(p,a,b) ICOM_CALL_(GetOverlayPosition,p,(p,a,b)) 160605b261ecSmrg#define IDirectDrawSurface_GetPalette(p,a) ICOM_CALL_(GetPalette,p,(p,a)) 160705b261ecSmrg#define IDirectDrawSurface_GetPixelFormat(p,a) ICOM_CALL_(GetPixelFormat,p,(p,a)) 160805b261ecSmrg#define IDirectDrawSurface_GetSurfaceDesc(p,a) ICOM_CALL_(GetSurfaceDesc,p,(p,a)) 160905b261ecSmrg#define IDirectDrawSurface_Initialize(p,a,b) ICOM_CALL_(Initialize,p,(p,a,b)) 161005b261ecSmrg#define IDirectDrawSurface_IsLost(p) ICOM_CALL_(IsLost,p,(p)) 161105b261ecSmrg#define IDirectDrawSurface_Lock(p,a,b,c,d) ICOM_CALL_(Lock,p,(p,a,b,c,d)) 161205b261ecSmrg#define IDirectDrawSurface_ReleaseDC(p,a) ICOM_CALL_(ReleaseDC,p,(p,a)) 161305b261ecSmrg#define IDirectDrawSurface_Restore(p) ICOM_CALL_(Restore,p,(p)) 161405b261ecSmrg#define IDirectDrawSurface_SetClipper(p,a) ICOM_CALL_(SetClipper,p,(p,a)) 161505b261ecSmrg#define IDirectDrawSurface_SetColorKey(p,a,b) ICOM_CALL_(SetColorKey,p,(p,a,b)) 161605b261ecSmrg#define IDirectDrawSurface_SetOverlayPosition(p,a,b) ICOM_CALL_(SetOverlayPosition,p,(p,a,b)) 161705b261ecSmrg#define IDirectDrawSurface_SetPalette(p,a) ICOM_CALL_(SetPalette,p,(p,a)) 161805b261ecSmrg#define IDirectDrawSurface_Unlock(p,a) ICOM_CALL_(Unlock,p,(p,a)) 161905b261ecSmrg#define IDirectDrawSurface_UpdateOverlay(p,a,b,c,d,e) ICOM_CALL_(UpdateOverlay,p,(p,a,b,c,d,e)) 162005b261ecSmrg#define IDirectDrawSurface_UpdateOverlayDisplay(p,a) ICOM_CALL_(UpdateOverlayDisplay,p,(p,a)) 162105b261ecSmrg#define IDirectDrawSurface_UpdateOverlayZOrder(p,a,b) ICOM_CALL_(UpdateOverlayZOrder,p,(p,a,b)) 162205b261ecSmrg 162305b261ecSmrg 162405b261ecSmrg/***************************************************************************** 162505b261ecSmrg * IDirectDrawSurface2 interface 162605b261ecSmrg */ 162705b261ecSmrg/* Cannot inherit from IDirectDrawSurface because the LPDIRECTDRAWSURFACE parameters 162805b261ecSmrg * have been converted to LPDIRECTDRAWSURFACE2. 162905b261ecSmrg */ 163005b261ecSmrg#undef INTERFACE 163105b261ecSmrg#define INTERFACE IDirectDrawSurface2 163205b261ecSmrgDECLARE_INTERFACE_(IDirectDrawSurface2,IUnknown) 163305b261ecSmrg{ 163405b261ecSmrg STDMETHOD(QueryInterface)(THIS_ REFIID,LPVOID*) PURE; 163505b261ecSmrg STDMETHOD_(ULONG,AddRef)(THIS) PURE; 163605b261ecSmrg STDMETHOD_(ULONG,Release)(THIS) PURE; 163705b261ecSmrg STDMETHOD(AddAttachedSurface)(THIS_ LPDIRECTDRAWSURFACE2 lpDDSAttachedSurface) PURE; 163805b261ecSmrg STDMETHOD(AddOverlayDirtyRect)(THIS_ LPRECT lpRect) PURE; 163905b261ecSmrg STDMETHOD(Blt)(THIS_ LPRECT lpDestRect, LPDIRECTDRAWSURFACE2 lpDDSrcSurface, LPRECT lpSrcRect, DWORD dwFlags, LPDDBLTFX lpDDBltFx) PURE; 164005b261ecSmrg STDMETHOD(BltBatch)(THIS_ LPDDBLTBATCH lpDDBltBatch, DWORD dwCount, DWORD dwFlags) PURE; 164105b261ecSmrg STDMETHOD(BltFast)(THIS_ DWORD dwX, DWORD dwY, LPDIRECTDRAWSURFACE2 lpDDSrcSurface, LPRECT lpSrcRect, DWORD dwTrans) PURE; 164205b261ecSmrg STDMETHOD(DeleteAttachedSurface)(THIS_ DWORD dwFlags, LPDIRECTDRAWSURFACE2 lpDDSAttachedSurface) PURE; 164305b261ecSmrg STDMETHOD(EnumAttachedSurfaces)(THIS_ LPVOID lpContext, LPDDENUMSURFACESCALLBACK lpEnumSurfacesCallback) PURE; 164405b261ecSmrg STDMETHOD(EnumOverlayZOrders)(THIS_ DWORD dwFlags, LPVOID lpContext, LPDDENUMSURFACESCALLBACK lpfnCallback) PURE; 164505b261ecSmrg STDMETHOD(Flip)(THIS_ LPDIRECTDRAWSURFACE2 lpDDSurfaceTargetOverride, DWORD dwFlags) PURE; 164605b261ecSmrg STDMETHOD(GetAttachedSurface)(THIS_ LPDDSCAPS lpDDSCaps, LPDIRECTDRAWSURFACE2* lplpDDAttachedSurface) PURE; 164705b261ecSmrg STDMETHOD(GetBltStatus)(THIS_ DWORD dwFlags) PURE; 164805b261ecSmrg STDMETHOD(GetCaps)(THIS_ LPDDSCAPS lpDDSCaps) PURE; 164905b261ecSmrg STDMETHOD(GetClipper)(THIS_ LPDIRECTDRAWCLIPPER* lplpDDClipper) PURE; 165005b261ecSmrg STDMETHOD(GetColorKey)(THIS_ DWORD dwFlags, LPDDCOLORKEY lpDDColorKey) PURE; 165105b261ecSmrg STDMETHOD(GetDC)(THIS_ HDC* lphDC) PURE; 165205b261ecSmrg STDMETHOD(GetFlipStatus)(THIS_ DWORD dwFlags) PURE; 165305b261ecSmrg STDMETHOD(GetOverlayPosition)(THIS_ LPLONG lplX, LPLONG lplY) PURE; 165405b261ecSmrg STDMETHOD(GetPalette)(THIS_ LPDIRECTDRAWPALETTE* lplpDDPalette) PURE; 165505b261ecSmrg STDMETHOD(GetPixelFormat)(THIS_ LPDDPIXELFORMAT lpDDPixelFormat) PURE; 165605b261ecSmrg STDMETHOD(GetSurfaceDesc)(THIS_ LPDDSURFACEDESC lpDDSurfaceDesc) PURE; 165705b261ecSmrg STDMETHOD(Initialize)(THIS_ LPDIRECTDRAW lpDD, LPDDSURFACEDESC lpDDSurfaceDesc) PURE; 165805b261ecSmrg STDMETHOD(IsLost)(THIS) PURE; 165905b261ecSmrg STDMETHOD(Lock)(THIS_ LPRECT lpDestRect, LPDDSURFACEDESC lpDDSurfaceDesc, DWORD dwFlags, HANDLE hEvent) PURE; 166005b261ecSmrg STDMETHOD(ReleaseDC)(THIS_ HDC hDC) PURE; 166105b261ecSmrg STDMETHOD(Restore)(THIS) PURE; 166205b261ecSmrg STDMETHOD(SetClipper)(THIS_ LPDIRECTDRAWCLIPPER lpDDClipper) PURE; 166305b261ecSmrg STDMETHOD(SetColorKey)(THIS_ DWORD dwFlags, LPDDCOLORKEY lpDDColorKey) PURE; 166405b261ecSmrg STDMETHOD(SetOverlayPosition)(THIS_ LONG lX, LONG lY) PURE; 166505b261ecSmrg STDMETHOD(SetPalette)(THIS_ LPDIRECTDRAWPALETTE lpDDPalette) PURE; 166605b261ecSmrg STDMETHOD(Unlock)(THIS_ LPVOID lpSurfaceData) PURE; 166705b261ecSmrg STDMETHOD(UpdateOverlay)(THIS_ LPRECT lpSrcRect, LPDIRECTDRAWSURFACE2 lpDDDestSurface, LPRECT lpDestRect, DWORD dwFlags, LPDDOVERLAYFX lpDDOverlayFx) PURE; 166805b261ecSmrg STDMETHOD(UpdateOverlayDisplay)(THIS_ DWORD dwFlags) PURE; 166905b261ecSmrg STDMETHOD(UpdateOverlayZOrder)(THIS_ DWORD dwFlags, LPDIRECTDRAWSURFACE2 lpDDSReference) PURE; 167005b261ecSmrg /* added in v2 */ 167105b261ecSmrg STDMETHOD(GetDDInterface)(THIS_ LPVOID* lplpDD) PURE; 167205b261ecSmrg STDMETHOD(PageLock)(THIS_ DWORD dwFlags) PURE; 167305b261ecSmrg STDMETHOD(PageUnlock)(THIS_ DWORD dwFlags) PURE; 167405b261ecSmrg}; 167505b261ecSmrg 167605b261ecSmrg /*** IUnknown methods ***/ 167705b261ecSmrg#define IDirectDrawSurface2_QueryInterface(p,a,b) ICOM_CALL_(QueryInterface,p,(p,a,b)) 167805b261ecSmrg#define IDirectDrawSurface2_AddRef(p) ICOM_CALL_(AddRef,p,(p)) 167905b261ecSmrg#define IDirectDrawSurface2_Release(p) ICOM_CALL_(Release,p,(p)) 168005b261ecSmrg/*** IDirectDrawSurface methods (almost) ***/ 168105b261ecSmrg#define IDirectDrawSurface2_AddAttachedSurface(p,a) ICOM_CALL_(AddAttachedSurface,p,(p,a)) 168205b261ecSmrg#define IDirectDrawSurface2_AddOverlayDirtyRect(p,a) ICOM_CALL_(AddOverlayDirtyRect,p,(p,a)) 168305b261ecSmrg#define IDirectDrawSurface2_Blt(p,a,b,c,d,e) ICOM_CALL_(Blt,p,(p,a,b,c,d,e)) 168405b261ecSmrg#define IDirectDrawSurface2_BltBatch(p,a,b,c) ICOM_CALL_(BltBatch,p,(p,a,b,c)) 168505b261ecSmrg#define IDirectDrawSurface2_BltFast(p,a,b,c,d,e) ICOM_CALL_(BltFast,p,(p,a,b,c,d,e)) 168605b261ecSmrg#define IDirectDrawSurface2_DeleteAttachedSurface(p,a,b) ICOM_CALL_(DeleteAttachedSurface,p,(p,a,b)) 168705b261ecSmrg#define IDirectDrawSurface2_EnumAttachedSurfaces(p,a,b) ICOM_CALL_(EnumAttachedSurfaces,p,(p,a,b)) 168805b261ecSmrg#define IDirectDrawSurface2_EnumOverlayZOrders(p,a,b,c) ICOM_CALL_(EnumOverlayZOrders,p,(p,a,b,c)) 168905b261ecSmrg#define IDirectDrawSurface2_Flip(p,a,b) ICOM_CALL_(Flip,p,(p,a,b)) 169005b261ecSmrg#define IDirectDrawSurface2_GetAttachedSurface(p,a,b) ICOM_CALL_(GetAttachedSurface,p,(p,a,b)) 169105b261ecSmrg#define IDirectDrawSurface2_GetBltStatus(p,a) ICOM_CALL_(GetBltStatus,p,(p,a)) 169205b261ecSmrg#define IDirectDrawSurface2_GetCaps(p,a) ICOM_CALL_(GetCaps,p,(p,a)) 169305b261ecSmrg#define IDirectDrawSurface2_GetClipper(p,a) ICOM_CALL_(GetClipper,p,(p,a)) 169405b261ecSmrg#define IDirectDrawSurface2_GetColorKey(p,a,b) ICOM_CALL_(GetColorKey,p,(p,a,b)) 169505b261ecSmrg#define IDirectDrawSurface2_GetDC(p,a) ICOM_CALL_(GetDC,p,(p,a)) 169605b261ecSmrg#define IDirectDrawSurface2_GetFlipStatus(p,a) ICOM_CALL_(GetFlipStatus,p,(p,a)) 169705b261ecSmrg#define IDirectDrawSurface2_GetOverlayPosition(p,a,b) ICOM_CALL_(GetOverlayPosition,p,(p,a,b)) 169805b261ecSmrg#define IDirectDrawSurface2_GetPalette(p,a) ICOM_CALL_(GetPalette,p,(p,a)) 169905b261ecSmrg#define IDirectDrawSurface2_GetPixelFormat(p,a) ICOM_CALL_(GetPixelFormat,p,(p,a)) 170005b261ecSmrg#define IDirectDrawSurface2_GetSurfaceDesc(p,a) ICOM_CALL_(GetSurfaceDesc,p,(p,a)) 170105b261ecSmrg#define IDirectDrawSurface2_Initialize(p,a,b) ICOM_CALL_(Initialize,p,(p,a,b)) 170205b261ecSmrg#define IDirectDrawSurface2_IsLost(p) ICOM_CALL_(IsLost,p,(p)) 170305b261ecSmrg#define IDirectDrawSurface2_Lock(p,a,b,c,d) ICOM_CALL_(Lock,p,(p,a,b,c,d)) 170405b261ecSmrg#define IDirectDrawSurface2_ReleaseDC(p,a) ICOM_CALL_(ReleaseDC,p,(p,a)) 170505b261ecSmrg#define IDirectDrawSurface2_Restore(p) ICOM_CALL_(Restore,p,(p)) 170605b261ecSmrg#define IDirectDrawSurface2_SetClipper(p,a) ICOM_CALL_(SetClipper,p,(p,a)) 170705b261ecSmrg#define IDirectDrawSurface2_SetColorKey(p,a,b) ICOM_CALL_(SetColorKey,p,(p,a,b)) 170805b261ecSmrg#define IDirectDrawSurface2_SetOverlayPosition(p,a,b) ICOM_CALL_(SetOverlayPosition,p,(p,a,b)) 170905b261ecSmrg#define IDirectDrawSurface2_SetPalette(p,a) ICOM_CALL_(SetPalette,p,(p,a)) 171005b261ecSmrg#define IDirectDrawSurface2_Unlock(p,a) ICOM_CALL_(Unlock,p,(p,a)) 171105b261ecSmrg#define IDirectDrawSurface2_UpdateOverlay(p,a,b,c,d,e) ICOM_CALL_(UpdateOverlay,p,(p,a,b,c,d,e)) 171205b261ecSmrg#define IDirectDrawSurface2_UpdateOverlayDisplay(p,a) ICOM_CALL_(UpdateOverlayDisplay,p,(p,a)) 171305b261ecSmrg#define IDirectDrawSurface2_UpdateOverlayZOrder(p,a,b) ICOM_CALL_(UpdateOverlayZOrder,p,(p,a,b)) 171405b261ecSmrg/*** IDirectDrawSurface2 methods ***/ 171505b261ecSmrg#define IDirectDrawSurface2_GetDDInterface(p,a) ICOM_CALL_(GetDDInterface,p,(p,a)) 171605b261ecSmrg#define IDirectDrawSurface2_PageLock(p,a) ICOM_CALL_(PageLock,p,(p,a)) 171705b261ecSmrg#define IDirectDrawSurface2_PageUnlock(p,a) ICOM_CALL_(PageUnlock,p,(p,a)) 171805b261ecSmrg 171905b261ecSmrg 172005b261ecSmrg/***************************************************************************** 172105b261ecSmrg * IDirectDrawSurface3 interface 172205b261ecSmrg */ 172305b261ecSmrg/* Cannot inherit from IDirectDrawSurface2 because the LPDIRECTDRAWSURFACE2 parameters 172405b261ecSmrg * have been converted to LPDIRECTDRAWSURFACE3. 172505b261ecSmrg */ 172605b261ecSmrg#undef INTERFACE 172705b261ecSmrg#define INTERFACE IDirectDrawSurface3 172805b261ecSmrgDECLARE_INTERFACE_(IDirectDrawSurface3,IUnknown) 172905b261ecSmrg{ 173005b261ecSmrg STDMETHOD(QueryInterface)(THIS_ REFIID,LPVOID*) PURE; 173105b261ecSmrg STDMETHOD_(ULONG,AddRef)(THIS) PURE; 173205b261ecSmrg STDMETHOD_(ULONG,Release)(THIS) PURE; 173305b261ecSmrg STDMETHOD(AddAttachedSurface)(THIS_ LPDIRECTDRAWSURFACE3 lpDDSAttachedSurface) PURE; 173405b261ecSmrg STDMETHOD(AddOverlayDirtyRect)(THIS_ LPRECT lpRect) PURE; 173505b261ecSmrg STDMETHOD(Blt)(THIS_ LPRECT lpDestRect, LPDIRECTDRAWSURFACE3 lpDDSrcSurface, LPRECT lpSrcRect, DWORD dwFlags, LPDDBLTFX lpDDBltFx) PURE; 173605b261ecSmrg STDMETHOD(BltBatch)(THIS_ LPDDBLTBATCH lpDDBltBatch, DWORD dwCount, DWORD dwFlags) PURE; 173705b261ecSmrg STDMETHOD(BltFast)(THIS_ DWORD dwX, DWORD dwY, LPDIRECTDRAWSURFACE3 lpDDSrcSurface, LPRECT lpSrcRect, DWORD dwTrans) PURE; 173805b261ecSmrg STDMETHOD(DeleteAttachedSurface)(THIS_ DWORD dwFlags, LPDIRECTDRAWSURFACE3 lpDDSAttachedSurface) PURE; 173905b261ecSmrg STDMETHOD(EnumAttachedSurfaces)(THIS_ LPVOID lpContext, LPDDENUMSURFACESCALLBACK lpEnumSurfacesCallback) PURE; 174005b261ecSmrg STDMETHOD(EnumOverlayZOrders)(THIS_ DWORD dwFlags, LPVOID lpContext, LPDDENUMSURFACESCALLBACK lpfnCallback) PURE; 174105b261ecSmrg STDMETHOD(Flip)(THIS_ LPDIRECTDRAWSURFACE3 lpDDSurfaceTargetOverride, DWORD dwFlags) PURE; 174205b261ecSmrg STDMETHOD(GetAttachedSurface)(THIS_ LPDDSCAPS lpDDSCaps, LPDIRECTDRAWSURFACE3* lplpDDAttachedSurface) PURE; 174305b261ecSmrg STDMETHOD(GetBltStatus)(THIS_ DWORD dwFlags) PURE; 174405b261ecSmrg STDMETHOD(GetCaps)(THIS_ LPDDSCAPS lpDDSCaps) PURE; 174505b261ecSmrg STDMETHOD(GetClipper)(THIS_ LPDIRECTDRAWCLIPPER* lplpDDClipper) PURE; 174605b261ecSmrg STDMETHOD(GetColorKey)(THIS_ DWORD dwFlags, LPDDCOLORKEY lpDDColorKey) PURE; 174705b261ecSmrg STDMETHOD(GetDC)(THIS_ HDC* lphDC) PURE; 174805b261ecSmrg STDMETHOD(GetFlipStatus)(THIS_ DWORD dwFlags) PURE; 174905b261ecSmrg STDMETHOD(GetOverlayPosition)(THIS_ LPLONG lplX, LPLONG lplY) PURE; 175005b261ecSmrg STDMETHOD(GetPalette)(THIS_ LPDIRECTDRAWPALETTE* lplpDDPalette) PURE; 175105b261ecSmrg STDMETHOD(GetPixelFormat)(THIS_ LPDDPIXELFORMAT lpDDPixelFormat) PURE; 175205b261ecSmrg STDMETHOD(GetSurfaceDesc)(THIS_ LPDDSURFACEDESC lpDDSurfaceDesc) PURE; 175305b261ecSmrg STDMETHOD(Initialize)(THIS_ LPDIRECTDRAW lpDD, LPDDSURFACEDESC lpDDSurfaceDesc) PURE; 175405b261ecSmrg STDMETHOD(IsLost)(THIS) PURE; 175505b261ecSmrg STDMETHOD(Lock)(THIS_ LPRECT lpDestRect, LPDDSURFACEDESC lpDDSurfaceDesc, DWORD dwFlags, HANDLE hEvent) PURE; 175605b261ecSmrg STDMETHOD(ReleaseDC)(THIS_ HDC hDC) PURE; 175705b261ecSmrg STDMETHOD(Restore)(THIS) PURE; 175805b261ecSmrg STDMETHOD(SetClipper)(THIS_ LPDIRECTDRAWCLIPPER lpDDClipper) PURE; 175905b261ecSmrg STDMETHOD(SetColorKey)(THIS_ DWORD dwFlags, LPDDCOLORKEY lpDDColorKey) PURE; 176005b261ecSmrg STDMETHOD(SetOverlayPosition)(THIS_ LONG lX, LONG lY) PURE; 176105b261ecSmrg STDMETHOD(SetPalette)(THIS_ LPDIRECTDRAWPALETTE lpDDPalette) PURE; 176205b261ecSmrg STDMETHOD(Unlock)(THIS_ LPVOID lpSurfaceData) PURE; 176305b261ecSmrg STDMETHOD(UpdateOverlay)(THIS_ LPRECT lpSrcRect, LPDIRECTDRAWSURFACE3 lpDDDestSurface, LPRECT lpDestRect, DWORD dwFlags, LPDDOVERLAYFX lpDDOverlayFx) PURE; 176405b261ecSmrg STDMETHOD(UpdateOverlayDisplay)(THIS_ DWORD dwFlags) PURE; 176505b261ecSmrg STDMETHOD(UpdateOverlayZOrder)(THIS_ DWORD dwFlags, LPDIRECTDRAWSURFACE3 lpDDSReference) PURE; 176605b261ecSmrg /* added in v2 */ 176705b261ecSmrg STDMETHOD(GetDDInterface)(THIS_ LPVOID* lplpDD) PURE; 176805b261ecSmrg STDMETHOD(PageLock)(THIS_ DWORD dwFlags) PURE; 176905b261ecSmrg STDMETHOD(PageUnlock)(THIS_ DWORD dwFlags) PURE; 177005b261ecSmrg /* added in v3 */ 177105b261ecSmrg STDMETHOD(SetSurfaceDesc)(THIS_ LPDDSURFACEDESC lpDDSD, DWORD dwFlags) PURE; 177205b261ecSmrg}; 177305b261ecSmrg 177405b261ecSmrg /*** IUnknown methods ***/ 177505b261ecSmrg#define IDirectDrawSurface3_QueryInterface(p,a,b) ICOM_CALL_(QueryInterface,p,(p,a,b)) 177605b261ecSmrg#define IDirectDrawSurface3_AddRef(p) ICOM_CALL_(AddRef,p,(p)) 177705b261ecSmrg#define IDirectDrawSurface3_Release(p) ICOM_CALL_(Release,p,(p)) 177805b261ecSmrg/*** IDirectDrawSurface methods (almost) ***/ 177905b261ecSmrg#define IDirectDrawSurface3_AddAttachedSurface(p,a) ICOM_CALL_(AddAttachedSurface,p,(p,a)) 178005b261ecSmrg#define IDirectDrawSurface3_AddOverlayDirtyRect(p,a) ICOM_CALL_(AddOverlayDirtyRect,p,(p,a)) 178105b261ecSmrg#define IDirectDrawSurface3_Blt(p,a,b,c,d,e) ICOM_CALL_(Blt,p,(p,a,b,c,d,e)) 178205b261ecSmrg#define IDirectDrawSurface3_BltBatch(p,a,b,c) ICOM_CALL_(BltBatch,p,(p,a,b,c)) 178305b261ecSmrg#define IDirectDrawSurface3_BltFast(p,a,b,c,d,e) ICOM_CALL_(BltFast,p,(p,a,b,c,d,e)) 178405b261ecSmrg#define IDirectDrawSurface3_DeleteAttachedSurface(p,a,b) ICOM_CALL_(DeleteAttachedSurface,p,(p,a,b)) 178505b261ecSmrg#define IDirectDrawSurface3_EnumAttachedSurfaces(p,a,b) ICOM_CALL_(EnumAttachedSurfaces,p,(p,a,b)) 178605b261ecSmrg#define IDirectDrawSurface3_EnumOverlayZOrders(p,a,b,c) ICOM_CALL_(EnumOverlayZOrders,p,(p,a,b,c)) 178705b261ecSmrg#define IDirectDrawSurface3_Flip(p,a,b) ICOM_CALL_(Flip,p,(p,a,b)) 178805b261ecSmrg#define IDirectDrawSurface3_GetAttachedSurface(p,a,b) ICOM_CALL_(GetAttachedSurface,p,(p,a,b)) 178905b261ecSmrg#define IDirectDrawSurface3_GetBltStatus(p,a) ICOM_CALL_(GetBltStatus,p,(p,a)) 179005b261ecSmrg#define IDirectDrawSurface3_GetCaps(p,a) ICOM_CALL_(GetCaps,p,(p,a)) 179105b261ecSmrg#define IDirectDrawSurface3_GetClipper(p,a) ICOM_CALL_(GetClipper,p,(p,a)) 179205b261ecSmrg#define IDirectDrawSurface3_GetColorKey(p,a,b) ICOM_CALL_(GetColorKey,p,(p,a,b)) 179305b261ecSmrg#define IDirectDrawSurface3_GetDC(p,a) ICOM_CALL_(GetDC,p,(p,a)) 179405b261ecSmrg#define IDirectDrawSurface3_GetFlipStatus(p,a) ICOM_CALL_(GetFlipStatus,p,(p,a)) 179505b261ecSmrg#define IDirectDrawSurface3_GetOverlayPosition(p,a,b) ICOM_CALL_(GetOverlayPosition,p,(p,a,b)) 179605b261ecSmrg#define IDirectDrawSurface3_GetPalette(p,a) ICOM_CALL_(GetPalette,p,(p,a)) 179705b261ecSmrg#define IDirectDrawSurface3_GetPixelFormat(p,a) ICOM_CALL_(GetPixelFormat,p,(p,a)) 179805b261ecSmrg#define IDirectDrawSurface3_GetSurfaceDesc(p,a) ICOM_CALL_(GetSurfaceDesc,p,(p,a)) 179905b261ecSmrg#define IDirectDrawSurface3_Initialize(p,a,b) ICOM_CALL_(Initialize,p,(p,a,b)) 180005b261ecSmrg#define IDirectDrawSurface3_IsLost(p) ICOM_CALL_(IsLost,p,(p)) 180105b261ecSmrg#define IDirectDrawSurface3_Lock(p,a,b,c,d) ICOM_CALL_(Lock,p,(p,a,b,c,d)) 180205b261ecSmrg#define IDirectDrawSurface3_ReleaseDC(p,a) ICOM_CALL_(ReleaseDC,p,(p,a)) 180305b261ecSmrg#define IDirectDrawSurface3_Restore(p) ICOM_CALL_(Restore,p,(p)) 180405b261ecSmrg#define IDirectDrawSurface3_SetClipper(p,a) ICOM_CALL_(SetClipper,p,(p,a)) 180505b261ecSmrg#define IDirectDrawSurface3_SetColorKey(p,a,b) ICOM_CALL_(SetColorKey,p,(p,a,b)) 180605b261ecSmrg#define IDirectDrawSurface3_SetOverlayPosition(p,a,b) ICOM_CALL_(SetOverlayPosition,p,(p,a,b)) 180705b261ecSmrg#define IDirectDrawSurface3_SetPalette(p,a) ICOM_CALL_(SetPalette,p,(p,a)) 180805b261ecSmrg#define IDirectDrawSurface3_Unlock(p,a) ICOM_CALL_(Unlock,p,(p,a)) 180905b261ecSmrg#define IDirectDrawSurface3_UpdateOverlay(p,a,b,c,d,e) ICOM_CALL_(UpdateOverlay,p,(p,a,b,c,d,e)) 181005b261ecSmrg#define IDirectDrawSurface3_UpdateOverlayDisplay(p,a) ICOM_CALL_(UpdateOverlayDisplay,p,(p,a)) 181105b261ecSmrg#define IDirectDrawSurface3_UpdateOverlayZOrder(p,a,b) ICOM_CALL_(UpdateOverlayZOrder,p,(p,a,b)) 181205b261ecSmrg/*** IDirectDrawSurface2 methods ***/ 181305b261ecSmrg#define IDirectDrawSurface3_GetDDInterface(p,a) ICOM_CALL_(GetDDInterface,p,(p,a)) 181405b261ecSmrg#define IDirectDrawSurface3_PageLock(p,a) ICOM_CALL_(PageLock,p,(p,a)) 181505b261ecSmrg#define IDirectDrawSurface3_PageUnlock(p,a) ICOM_CALL_(PageUnlock,p,(p,a)) 181605b261ecSmrg/*** IDirectDrawSurface3 methods ***/ 181705b261ecSmrg#define IDirectDrawSurface3_SetSurfaceDesc(p,a,b) ICOM_CALL_(SetSurfaceDesc,p,(p,a,b)) 181805b261ecSmrg 181905b261ecSmrg 182005b261ecSmrg/***************************************************************************** 182105b261ecSmrg * IDirectDrawSurface4 interface 182205b261ecSmrg */ 182305b261ecSmrg/* Cannot inherit from IDirectDrawSurface2 because DDSCAPS changed to DDSCAPS2. 182405b261ecSmrg */ 182505b261ecSmrg#undef INTERFACE 182605b261ecSmrg#define INTERFACE IDirectDrawSurface4 182705b261ecSmrgDECLARE_INTERFACE_(IDirectDrawSurface4,IUnknown) 182805b261ecSmrg{ 182905b261ecSmrg STDMETHOD(QueryInterface)(THIS_ REFIID,LPVOID*) PURE; 183005b261ecSmrg STDMETHOD_(ULONG,AddRef)(THIS) PURE; 183105b261ecSmrg STDMETHOD_(ULONG,Release)(THIS) PURE; 183205b261ecSmrg STDMETHOD(AddAttachedSurface)(THIS_ LPDIRECTDRAWSURFACE4 lpDDSAttachedSurface) PURE; 183305b261ecSmrg STDMETHOD(AddOverlayDirtyRect)(THIS_ LPRECT lpRect) PURE; 183405b261ecSmrg STDMETHOD(Blt)(THIS_ LPRECT lpDestRect, LPDIRECTDRAWSURFACE4 lpDDSrcSurface, LPRECT lpSrcRect, DWORD dwFlags, LPDDBLTFX lpDDBltFx) PURE; 183505b261ecSmrg STDMETHOD(BltBatch)(THIS_ LPDDBLTBATCH lpDDBltBatch, DWORD dwCount, DWORD dwFlags) PURE; 183605b261ecSmrg STDMETHOD(BltFast)(THIS_ DWORD dwX, DWORD dwY, LPDIRECTDRAWSURFACE4 lpDDSrcSurface, LPRECT lpSrcRect, DWORD dwTrans) PURE; 183705b261ecSmrg STDMETHOD(DeleteAttachedSurface)(THIS_ DWORD dwFlags, LPDIRECTDRAWSURFACE4 lpDDSAttachedSurface) PURE; 183805b261ecSmrg STDMETHOD(EnumAttachedSurfaces)(THIS_ LPVOID lpContext, LPDDENUMSURFACESCALLBACK lpEnumSurfacesCallback) PURE; 183905b261ecSmrg STDMETHOD(EnumOverlayZOrders)(THIS_ DWORD dwFlags, LPVOID lpContext, LPDDENUMSURFACESCALLBACK lpfnCallback) PURE; 184005b261ecSmrg STDMETHOD(Flip)(THIS_ LPDIRECTDRAWSURFACE4 lpDDSurfaceTargetOverride, DWORD dwFlags) PURE; 184105b261ecSmrg STDMETHOD(GetAttachedSurface)(THIS_ LPDDSCAPS2 lpDDSCaps, LPDIRECTDRAWSURFACE4* lplpDDAttachedSurface) PURE; 184205b261ecSmrg STDMETHOD(GetBltStatus)(THIS_ DWORD dwFlags) PURE; 184305b261ecSmrg STDMETHOD(GetCaps)(THIS_ LPDDSCAPS2 lpDDSCaps) PURE; 184405b261ecSmrg STDMETHOD(GetClipper)(THIS_ LPDIRECTDRAWCLIPPER* lplpDDClipper) PURE; 184505b261ecSmrg STDMETHOD(GetColorKey)(THIS_ DWORD dwFlags, LPDDCOLORKEY lpDDColorKey) PURE; 184605b261ecSmrg STDMETHOD(GetDC)(THIS_ HDC* lphDC) PURE; 184705b261ecSmrg STDMETHOD(GetFlipStatus)(THIS_ DWORD dwFlags) PURE; 184805b261ecSmrg STDMETHOD(GetOverlayPosition)(THIS_ LPLONG lplX, LPLONG lplY) PURE; 184905b261ecSmrg STDMETHOD(GetPalette)(THIS_ LPDIRECTDRAWPALETTE* lplpDDPalette) PURE; 185005b261ecSmrg STDMETHOD(GetPixelFormat)(THIS_ LPDDPIXELFORMAT lpDDPixelFormat) PURE; 185105b261ecSmrg STDMETHOD(GetSurfaceDesc)(THIS_ LPDDSURFACEDESC lpDDSurfaceDesc) PURE; 185205b261ecSmrg STDMETHOD(Initialize)(THIS_ LPDIRECTDRAW lpDD, LPDDSURFACEDESC lpDDSurfaceDesc) PURE; 185305b261ecSmrg STDMETHOD(IsLost)(THIS) PURE; 185405b261ecSmrg STDMETHOD(Lock)(THIS_ LPRECT lpDestRect, LPDDSURFACEDESC lpDDSurfaceDesc, DWORD dwFlags, HANDLE hEvent) PURE; 185505b261ecSmrg STDMETHOD(ReleaseDC)(THIS_ HDC hDC) PURE; 185605b261ecSmrg STDMETHOD(Restore)(THIS) PURE; 185705b261ecSmrg STDMETHOD(SetClipper)(THIS_ LPDIRECTDRAWCLIPPER lpDDClipper) PURE; 185805b261ecSmrg STDMETHOD(SetColorKey)(THIS_ DWORD dwFlags, LPDDCOLORKEY lpDDColorKey) PURE; 185905b261ecSmrg STDMETHOD(SetOverlayPosition)(THIS_ LONG lX, LONG lY) PURE; 186005b261ecSmrg STDMETHOD(SetPalette)(THIS_ LPDIRECTDRAWPALETTE lpDDPalette) PURE; 186105b261ecSmrg STDMETHOD(Unlock)(THIS_ LPRECT lpSurfaceData) PURE; 186205b261ecSmrg STDMETHOD(UpdateOverlay)(THIS_ LPRECT lpSrcRect, LPDIRECTDRAWSURFACE4 lpDDDestSurface, LPRECT lpDestRect, DWORD dwFlags, LPDDOVERLAYFX lpDDOverlayFx) PURE; 186305b261ecSmrg STDMETHOD(UpdateOverlayDisplay)(THIS_ DWORD dwFlags) PURE; 186405b261ecSmrg STDMETHOD(UpdateOverlayZOrder)(THIS_ DWORD dwFlags, LPDIRECTDRAWSURFACE4 lpDDSReference) PURE; 186505b261ecSmrg /* added in v2 */ 186605b261ecSmrg STDMETHOD(GetDDInterface)(THIS_ LPVOID* lplpDD) PURE; 186705b261ecSmrg STDMETHOD(PageLock)(THIS_ DWORD dwFlags) PURE; 186805b261ecSmrg STDMETHOD(PageUnlock)(THIS_ DWORD dwFlags) PURE; 186905b261ecSmrg /* added in v3 */ 187005b261ecSmrg STDMETHOD(SetSurfaceDesc)(THIS_ LPDDSURFACEDESC lpDDSD, DWORD dwFlags) PURE; 187105b261ecSmrg /* added in v4 */ 187205b261ecSmrg STDMETHOD(SetPrivateData)(THIS_ REFGUID , LPVOID , DWORD , DWORD ) PURE; 187305b261ecSmrg STDMETHOD(GetPrivateData)(THIS_ REFGUID , LPVOID , LPDWORD ) PURE; 187405b261ecSmrg STDMETHOD(FreePrivateData)(THIS_ REFGUID ) PURE; 187505b261ecSmrg STDMETHOD(GetUniquenessValue)(THIS_ LPDWORD ) PURE; 187605b261ecSmrg STDMETHOD(ChangeUniquenessValue)(THIS) PURE; 187705b261ecSmrg}; 187805b261ecSmrg 187905b261ecSmrg /*** IUnknown methods ***/ 188005b261ecSmrg#define IDirectDrawSurface4_QueryInterface(p,a,b) ICOM_CALL_(QueryInterface,p,(p,a,b)) 188105b261ecSmrg#define IDirectDrawSurface4_AddRef(p) ICOM_CALL_(AddRef,p,(p)) 188205b261ecSmrg#define IDirectDrawSurface4_Release(p) ICOM_CALL_(Release,p,(p)) 188305b261ecSmrg/*** IDirectDrawSurface (almost) methods ***/ 188405b261ecSmrg#define IDirectDrawSurface4_AddAttachedSurface(p,a) ICOM_CALL_(AddAttachedSurface,p,(p,a)) 188505b261ecSmrg#define IDirectDrawSurface4_AddOverlayDirtyRect(p,a) ICOM_CALL_(AddOverlayDirtyRect,p,(p,a)) 188605b261ecSmrg#define IDirectDrawSurface4_Blt(p,a,b,c,d,e) ICOM_CALL_(Blt,p,(p,a,b,c,d,e)) 188705b261ecSmrg#define IDirectDrawSurface4_BltBatch(p,a,b,c) ICOM_CALL_(BltBatch,p,(p,a,b,c)) 188805b261ecSmrg#define IDirectDrawSurface4_BltFast(p,a,b,c,d,e) ICOM_CALL_(BltFast,p,(p,a,b,c,d,e)) 188905b261ecSmrg#define IDirectDrawSurface4_DeleteAttachedSurface(p,a,b) ICOM_CALL_(DeleteAttachedSurface,p,(p,a,b)) 189005b261ecSmrg#define IDirectDrawSurface4_EnumAttachedSurfaces(p,a,b) ICOM_CALL_(EnumAttachedSurfaces,p,(p,a,b)) 189105b261ecSmrg#define IDirectDrawSurface4_EnumOverlayZOrders(p,a,b,c) ICOM_CALL_(EnumOverlayZOrders,p,(p,a,b,c)) 189205b261ecSmrg#define IDirectDrawSurface4_Flip(p,a,b) ICOM_CALL_(Flip,p,(p,a,b)) 189305b261ecSmrg#define IDirectDrawSurface4_GetAttachedSurface(p,a,b) ICOM_CALL_(GetAttachedSurface,p,(p,a,b)) 189405b261ecSmrg#define IDirectDrawSurface4_GetBltStatus(p,a) ICOM_CALL_(GetBltStatus,p,(p,a)) 189505b261ecSmrg#define IDirectDrawSurface4_GetCaps(p,a) ICOM_CALL_(GetCaps,p,(p,a)) 189605b261ecSmrg#define IDirectDrawSurface4_GetClipper(p,a) ICOM_CALL_(GetClipper,p,(p,a)) 189705b261ecSmrg#define IDirectDrawSurface4_GetColorKey(p,a,b) ICOM_CALL_(GetColorKey,p,(p,a,b)) 189805b261ecSmrg#define IDirectDrawSurface4_GetDC(p,a) ICOM_CALL_(GetDC,p,(p,a)) 189905b261ecSmrg#define IDirectDrawSurface4_GetFlipStatus(p,a) ICOM_CALL_(GetFlipStatus,p,(p,a)) 190005b261ecSmrg#define IDirectDrawSurface4_GetOverlayPosition(p,a,b) ICOM_CALL_(GetOverlayPosition,p,(p,a,b)) 190105b261ecSmrg#define IDirectDrawSurface4_GetPalette(p,a) ICOM_CALL_(GetPalette,p,(p,a)) 190205b261ecSmrg#define IDirectDrawSurface4_GetPixelFormat(p,a) ICOM_CALL_(GetPixelFormat,p,(p,a)) 190305b261ecSmrg#define IDirectDrawSurface4_GetSurfaceDesc(p,a) ICOM_CALL_(GetSurfaceDesc,p,(p,a)) 190405b261ecSmrg#define IDirectDrawSurface4_Initialize(p,a,b) ICOM_CALL_(Initialize,p,(p,a,b)) 190505b261ecSmrg#define IDirectDrawSurface4_IsLost(p) ICOM_CALL_(IsLost,p,(p)) 190605b261ecSmrg#define IDirectDrawSurface4_Lock(p,a,b,c,d) ICOM_CALL_(Lock,p,(p,a,b,c,d)) 190705b261ecSmrg#define IDirectDrawSurface4_ReleaseDC(p,a) ICOM_CALL_(ReleaseDC,p,(p,a)) 190805b261ecSmrg#define IDirectDrawSurface4_Restore(p) ICOM_CALL_(Restore,p,(p)) 190905b261ecSmrg#define IDirectDrawSurface4_SetClipper(p,a) ICOM_CALL_(SetClipper,p,(p,a)) 191005b261ecSmrg#define IDirectDrawSurface4_SetColorKey(p,a,b) ICOM_CALL_(SetColorKey,p,(p,a,b)) 191105b261ecSmrg#define IDirectDrawSurface4_SetOverlayPosition(p,a,b) ICOM_CALL_(SetOverlayPosition,p,(p,a,b)) 191205b261ecSmrg#define IDirectDrawSurface4_SetPalette(p,a) ICOM_CALL_(SetPalette,p,(p,a)) 191305b261ecSmrg#define IDirectDrawSurface4_Unlock(p,a) ICOM_CALL_(Unlock,p,(p,a)) 191405b261ecSmrg#define IDirectDrawSurface4_UpdateOverlay(p,a,b,c,d,e) ICOM_CALL_(UpdateOverlay,p,(p,a,b,c,d,e)) 191505b261ecSmrg#define IDirectDrawSurface4_UpdateOverlayDisplay(p,a) ICOM_CALL_(UpdateOverlayDisplay,p,(p,a)) 191605b261ecSmrg#define IDirectDrawSurface4_UpdateOverlayZOrder(p,a,b) ICOM_CALL_(UpdateOverlayZOrder,p,(p,a,b)) 191705b261ecSmrg/*** IDirectDrawSurface2 methods ***/ 191805b261ecSmrg#define IDirectDrawSurface4_GetDDInterface(p,a) ICOM_CALL_(GetDDInterface,p,(p,a)) 191905b261ecSmrg#define IDirectDrawSurface4_PageLock(p,a) ICOM_CALL_(PageLock,p,(p,a)) 192005b261ecSmrg#define IDirectDrawSurface4_PageUnlock(p,a) ICOM_CALL_(PageUnlock,p,(p,a)) 192105b261ecSmrg/*** IDirectDrawSurface3 methods ***/ 192205b261ecSmrg#define IDirectDrawSurface4_SetSurfaceDesc(p,a,b) ICOM_CALL_(SetSurfaceDesc,p,(p,a,b)) 192305b261ecSmrg/*** IDirectDrawSurface4 methods ***/ 192405b261ecSmrg#define IDirectDrawSurface4_SetPrivateData(p,a,b,c,d) ICOM_CALL_(SetPrivateData,p,(p,a,b,c,d)) 192505b261ecSmrg#define IDirectDrawSurface4_GetPrivateData(p,a,b,c) ICOM_CALL_(GetPrivateData,p,(p,a,b,c)) 192605b261ecSmrg#define IDirectDrawSurface4_FreePrivateData(p,a) ICOM_CALL_(FreePrivateData,p,(p,a)) 192705b261ecSmrg#define IDirectDrawSurface4_GetUniquenessValue(p,a) ICOM_CALL_(GetUniquenessValue,p,(p,a)) 192805b261ecSmrg#define IDirectDrawSurface4_ChangeUniquenessValue(p) ICOM_CALL_(ChangeUniquenessValue,p,(p)) 192905b261ecSmrg 193005b261ecSmrg 193105b261ecSmrg/***************************************************************************** 193205b261ecSmrg * IDirectDrawSurface7 interface 193305b261ecSmrg */ 193405b261ecSmrg#undef INTERFACE 193505b261ecSmrg#define INTERFACE IDirectDrawSurface7 193605b261ecSmrgDECLARE_INTERFACE_(IDirectDrawSurface7,IUnknown) 193705b261ecSmrg{ 193805b261ecSmrg STDMETHOD(QueryInterface)(THIS_ REFIID,LPVOID*) PURE; 193905b261ecSmrg STDMETHOD_(ULONG,AddRef)(THIS) PURE; 194005b261ecSmrg STDMETHOD_(ULONG,Release)(THIS) PURE; 194105b261ecSmrg STDMETHOD(AddAttachedSurface)(THIS_ LPDIRECTDRAWSURFACE7 lpDDSAttachedSurface) PURE; 194205b261ecSmrg STDMETHOD(AddOverlayDirtyRect)(THIS_ LPRECT lpRect) PURE; 194305b261ecSmrg STDMETHOD(Blt)(THIS_ LPRECT lpDestRect, LPDIRECTDRAWSURFACE7 lpDDSrcSurface, LPRECT lpSrcRect, DWORD dwFlags, LPDDBLTFX lpDDBltFx) PURE; 194405b261ecSmrg STDMETHOD(BltBatch)(THIS_ LPDDBLTBATCH lpDDBltBatch, DWORD dwCount, DWORD dwFlags) PURE; 194505b261ecSmrg STDMETHOD(BltFast)(THIS_ DWORD dwX, DWORD dwY, LPDIRECTDRAWSURFACE7 lpDDSrcSurface, LPRECT lpSrcRect, DWORD dwTrans) PURE; 194605b261ecSmrg STDMETHOD(DeleteAttachedSurface)(THIS_ DWORD dwFlags, LPDIRECTDRAWSURFACE7 lpDDSAttachedSurface) PURE; 194705b261ecSmrg STDMETHOD(EnumAttachedSurfaces)(THIS_ LPVOID lpContext, LPDDENUMSURFACESCALLBACK7 lpEnumSurfacesCallback) PURE; 194805b261ecSmrg STDMETHOD(EnumOverlayZOrders)(THIS_ DWORD dwFlags, LPVOID lpContext, LPDDENUMSURFACESCALLBACK7 lpfnCallback) PURE; 194905b261ecSmrg STDMETHOD(Flip)(THIS_ LPDIRECTDRAWSURFACE7 lpDDSurfaceTargetOverride, DWORD dwFlags) PURE; 195005b261ecSmrg STDMETHOD(GetAttachedSurface)(THIS_ LPDDSCAPS2 lpDDSCaps, LPDIRECTDRAWSURFACE7* lplpDDAttachedSurface) PURE; 195105b261ecSmrg STDMETHOD(GetBltStatus)(THIS_ DWORD dwFlags) PURE; 195205b261ecSmrg STDMETHOD(GetCaps)(THIS_ LPDDSCAPS2 lpDDSCaps) PURE; 195305b261ecSmrg STDMETHOD(GetClipper)(THIS_ LPDIRECTDRAWCLIPPER* lplpDDClipper) PURE; 195405b261ecSmrg STDMETHOD(GetColorKey)(THIS_ DWORD dwFlags, LPDDCOLORKEY lpDDColorKey) PURE; 195505b261ecSmrg STDMETHOD(GetDC)(THIS_ HDC* lphDC) PURE; 195605b261ecSmrg STDMETHOD(GetFlipStatus)(THIS_ DWORD dwFlags) PURE; 195705b261ecSmrg STDMETHOD(GetOverlayPosition)(THIS_ LPLONG lplX, LPLONG lplY) PURE; 195805b261ecSmrg STDMETHOD(GetPalette)(THIS_ LPDIRECTDRAWPALETTE* lplpDDPalette) PURE; 195905b261ecSmrg STDMETHOD(GetPixelFormat)(THIS_ LPDDPIXELFORMAT lpDDPixelFormat) PURE; 196005b261ecSmrg STDMETHOD(GetSurfaceDesc)(THIS_ LPDDSURFACEDESC2 lpDDSurfaceDesc) PURE; 196105b261ecSmrg STDMETHOD(Initialize)(THIS_ LPDIRECTDRAW lpDD, LPDDSURFACEDESC2 lpDDSurfaceDesc) PURE; 196205b261ecSmrg STDMETHOD(IsLost)(THIS) PURE; 196305b261ecSmrg STDMETHOD(Lock)(THIS_ LPRECT lpDestRect, LPDDSURFACEDESC2 lpDDSurfaceDesc, DWORD dwFlags, HANDLE hEvent) PURE; 196405b261ecSmrg STDMETHOD(ReleaseDC)(THIS_ HDC hDC) PURE; 196505b261ecSmrg STDMETHOD(Restore)(THIS) PURE; 196605b261ecSmrg STDMETHOD(SetClipper)(THIS_ LPDIRECTDRAWCLIPPER lpDDClipper) PURE; 196705b261ecSmrg STDMETHOD(SetColorKey)(THIS_ DWORD dwFlags, LPDDCOLORKEY lpDDColorKey) PURE; 196805b261ecSmrg STDMETHOD(SetOverlayPosition)(THIS_ LONG lX, LONG lY) PURE; 196905b261ecSmrg STDMETHOD(SetPalette)(THIS_ LPDIRECTDRAWPALETTE lpDDPalette) PURE; 197005b261ecSmrg STDMETHOD(Unlock)(THIS_ LPRECT lpSurfaceData) PURE; 197105b261ecSmrg STDMETHOD(UpdateOverlay)(THIS_ LPRECT lpSrcRect, LPDIRECTDRAWSURFACE7 lpDDDestSurface, LPRECT lpDestRect, DWORD dwFlags, LPDDOVERLAYFX lpDDOverlayFx) PURE; 197205b261ecSmrg STDMETHOD(UpdateOverlayDisplay)(THIS_ DWORD dwFlags) PURE; 197305b261ecSmrg STDMETHOD(UpdateOverlayZOrder)(THIS_ DWORD dwFlags, LPDIRECTDRAWSURFACE7 lpDDSReference) PURE; 197405b261ecSmrg /* added in v2 */ 197505b261ecSmrg STDMETHOD(GetDDInterface)(THIS_ LPVOID* lplpDD) PURE; 197605b261ecSmrg STDMETHOD(PageLock)(THIS_ DWORD dwFlags) PURE; 197705b261ecSmrg STDMETHOD(PageUnlock)(THIS_ DWORD dwFlags) PURE; 197805b261ecSmrg /* added in v3 */ 197905b261ecSmrg STDMETHOD(SetSurfaceDesc)(THIS_ LPDDSURFACEDESC2 lpDDSD, DWORD dwFlags) PURE; 198005b261ecSmrg /* added in v4 */ 198105b261ecSmrg STDMETHOD(SetPrivateData)(THIS_ REFGUID , LPVOID , DWORD , DWORD ) PURE; 198205b261ecSmrg STDMETHOD(GetPrivateData)(THIS_ REFGUID , LPVOID , LPDWORD ) PURE; 198305b261ecSmrg STDMETHOD(FreePrivateData)(THIS_ REFGUID ) PURE; 198405b261ecSmrg STDMETHOD(GetUniquenessValue)(THIS_ LPDWORD ) PURE; 198505b261ecSmrg STDMETHOD(ChangeUniquenessValue)(THIS) PURE; 198605b261ecSmrg /* added in v7 */ 198705b261ecSmrg STDMETHOD(SetPriority)(THIS_ DWORD prio) PURE; 198805b261ecSmrg STDMETHOD(GetPriority)(THIS_ LPDWORD prio) PURE; 198905b261ecSmrg STDMETHOD(SetLOD)(THIS_ DWORD lod) PURE; 199005b261ecSmrg STDMETHOD(GetLOD)(THIS_ LPDWORD lod) PURE; 199105b261ecSmrg}; 199205b261ecSmrg 199305b261ecSmrg /*** IUnknown methods ***/ 199405b261ecSmrg#define IDirectDrawSurface7_QueryInterface(p,a,b) ICOM_CALL_(QueryInterface,p,(p,a,b)) 199505b261ecSmrg#define IDirectDrawSurface7_AddRef(p) ICOM_CALL_(AddRef,p,(p)) 199605b261ecSmrg#define IDirectDrawSurface7_Release(p) ICOM_CALL_(Release,p,(p)) 199705b261ecSmrg/*** IDirectDrawSurface (almost) methods ***/ 199805b261ecSmrg#define IDirectDrawSurface7_AddAttachedSurface(p,a) ICOM_CALL_(AddAttachedSurface,p,(p,a)) 199905b261ecSmrg#define IDirectDrawSurface7_AddOverlayDirtyRect(p,a) ICOM_CALL_(AddOverlayDirtyRect,p,(p,a)) 200005b261ecSmrg#define IDirectDrawSurface7_Blt(p,a,b,c,d,e) ICOM_CALL_(Blt,p,(p,a,b,c,d,e)) 200105b261ecSmrg#define IDirectDrawSurface7_BltBatch(p,a,b,c) ICOM_CALL_(BltBatch,p,(p,a,b,c)) 200205b261ecSmrg#define IDirectDrawSurface7_BltFast(p,a,b,c,d,e) ICOM_CALL_(BltFast,p,(p,a,b,c,d,e)) 200305b261ecSmrg#define IDirectDrawSurface7_DeleteAttachedSurface(p,a,b) ICOM_CALL_(DeleteAttachedSurface,p,(p,a,b)) 200405b261ecSmrg#define IDirectDrawSurface7_EnumAttachedSurfaces(p,a,b) ICOM_CALL_(EnumAttachedSurfaces,p,(p,a,b)) 200505b261ecSmrg#define IDirectDrawSurface7_EnumOverlayZOrders(p,a,b,c) ICOM_CALL_(EnumOverlayZOrders,p,(p,a,b,c)) 200605b261ecSmrg#define IDirectDrawSurface7_Flip(p,a,b) ICOM_CALL_(Flip,p,(p,a,b)) 200705b261ecSmrg#define IDirectDrawSurface7_GetAttachedSurface(p,a,b) ICOM_CALL_(GetAttachedSurface,p,(p,a,b)) 200805b261ecSmrg#define IDirectDrawSurface7_GetBltStatus(p,a) ICOM_CALL_(GetBltStatus,p,(p,a)) 200905b261ecSmrg#define IDirectDrawSurface7_GetCaps(p,a) ICOM_CALL_(GetCaps,p,(p,a)) 201005b261ecSmrg#define IDirectDrawSurface7_GetClipper(p,a) ICOM_CALL_(GetClipper,p,(p,a)) 201105b261ecSmrg#define IDirectDrawSurface7_GetColorKey(p,a,b) ICOM_CALL_(GetColorKey,p,(p,a,b)) 201205b261ecSmrg#define IDirectDrawSurface7_GetDC(p,a) ICOM_CALL_(GetDC,p,(p,a)) 201305b261ecSmrg#define IDirectDrawSurface7_GetFlipStatus(p,a) ICOM_CALL_(GetFlipStatus,p,(p,a)) 201405b261ecSmrg#define IDirectDrawSurface7_GetOverlayPosition(p,a,b) ICOM_CALL_(GetOverlayPosition,p,(p,a,b)) 201505b261ecSmrg#define IDirectDrawSurface7_GetPalette(p,a) ICOM_CALL_(GetPalette,p,(p,a)) 201605b261ecSmrg#define IDirectDrawSurface7_GetPixelFormat(p,a) ICOM_CALL_(GetPixelFormat,p,(p,a)) 201705b261ecSmrg#define IDirectDrawSurface7_GetSurfaceDesc(p,a) ICOM_CALL_(GetSurfaceDesc,p,(p,a)) 201805b261ecSmrg#define IDirectDrawSurface7_Initialize(p,a,b) ICOM_CALL_(Initialize,p,(p,a,b)) 201905b261ecSmrg#define IDirectDrawSurface7_IsLost(p) ICOM_CALL_(IsLost,p,(p)) 202005b261ecSmrg#define IDirectDrawSurface7_Lock(p,a,b,c,d) ICOM_CALL_(Lock,p,(p,a,b,c,d)) 202105b261ecSmrg#define IDirectDrawSurface7_ReleaseDC(p,a) ICOM_CALL_(ReleaseDC,p,(p,a)) 202205b261ecSmrg#define IDirectDrawSurface7_Restore(p) ICOM_CALL_(Restore,p,(p)) 202305b261ecSmrg#define IDirectDrawSurface7_SetClipper(p,a) ICOM_CALL_(SetClipper,p,(p,a)) 202405b261ecSmrg#define IDirectDrawSurface7_SetColorKey(p,a,b) ICOM_CALL_(SetColorKey,p,(p,a,b)) 202505b261ecSmrg#define IDirectDrawSurface7_SetOverlayPosition(p,a,b) ICOM_CALL_(SetOverlayPosition,p,(p,a,b)) 202605b261ecSmrg#define IDirectDrawSurface7_SetPalette(p,a) ICOM_CALL_(SetPalette,p,(p,a)) 202705b261ecSmrg#define IDirectDrawSurface7_Unlock(p,a) ICOM_CALL_(Unlock,p,(p,a)) 202805b261ecSmrg#define IDirectDrawSurface7_UpdateOverlay(p,a,b,c,d,e) ICOM_CALL_(UpdateOverlay,p,(p,a,b,c,d,e)) 202905b261ecSmrg#define IDirectDrawSurface7_UpdateOverlayDisplay(p,a) ICOM_CALL_(UpdateOverlayDisplay,p,(p,a)) 203005b261ecSmrg#define IDirectDrawSurface7_UpdateOverlayZOrder(p,a,b) ICOM_CALL_(UpdateOverlayZOrder,p,(p,a,b)) 203105b261ecSmrg/*** IDirectDrawSurface2 methods ***/ 203205b261ecSmrg#define IDirectDrawSurface7_GetDDInterface(p,a) ICOM_CALL_(GetDDInterface,p,(p,a)) 203305b261ecSmrg#define IDirectDrawSurface7_PageLock(p,a) ICOM_CALL_(PageLock,p,(p,a)) 203405b261ecSmrg#define IDirectDrawSurface7_PageUnlock(p,a) ICOM_CALL_(PageUnlock,p,(p,a)) 203505b261ecSmrg/*** IDirectDrawSurface3 methods ***/ 203605b261ecSmrg#define IDirectDrawSurface7_SetSurfaceDesc(p,a,b) ICOM_CALL_(SetSurfaceDesc,p,(p,a,b)) 203705b261ecSmrg/*** IDirectDrawSurface4 methods ***/ 203805b261ecSmrg#define IDirectDrawSurface7_SetPrivateData(p,a,b,c,d) ICOM_CALL_(SetPrivateData,p,(p,a,b,c,d)) 203905b261ecSmrg#define IDirectDrawSurface7_GetPrivateData(p,a,b,c) ICOM_CALL_(GetPrivateData,p,(p,a,b,c)) 204005b261ecSmrg#define IDirectDrawSurface7_FreePrivateData(p,a) ICOM_CALL_(FreePrivateData,p,(p,a)) 204105b261ecSmrg#define IDirectDrawSurface7_GetUniquenessValue(p,a) ICOM_CALL_(GetUniquenessValue,p,(p,a)) 204205b261ecSmrg#define IDirectDrawSurface7_ChangeUniquenessValue(p) ICOM_CALL_(ChangeUniquenessValue,p,(p)) 204305b261ecSmrg/*** IDirectDrawSurface7 methods ***/ 204405b261ecSmrg#define IDirectDrawSurface7_SetPriority(p,a) ICOM_CALL_(SetPriority,p,(p,a)) 204505b261ecSmrg#define IDirectDrawSurface7_GetPriority(p,a) ICOM_CALL_(GetPriority,p,(p,a)) 204605b261ecSmrg#define IDirectDrawSurface7_SetLOD(p,a) ICOM_CALL_(SetLOD,p,(p,a)) 204705b261ecSmrg#define IDirectDrawSurface7_GetLOD(p,a) ICOM_CALL_(GetLOD,p,(p,a)) 204805b261ecSmrg 204905b261ecSmrg/***************************************************************************** 205005b261ecSmrg * IDirectDrawColorControl interface 205105b261ecSmrg */ 205205b261ecSmrg#undef INTERFACE 205305b261ecSmrg#define INTERFACE IDirectDrawColorControl 205405b261ecSmrgDECLARE_INTERFACE_(IDirectDrawColorControl,IUnknown) 205505b261ecSmrg{ 205605b261ecSmrg STDMETHOD(QueryInterface)(THIS_ REFIID,LPVOID*) PURE; 205705b261ecSmrg STDMETHOD_(ULONG,AddRef)(THIS) PURE; 205805b261ecSmrg STDMETHOD_(ULONG,Release)(THIS) PURE; 205905b261ecSmrg STDMETHOD(GetColorControls)(THIS_ LPDDCOLORCONTROL lpColorControl) PURE; 206005b261ecSmrg STDMETHOD(SetColorControls)(THIS_ LPDDCOLORCONTROL lpColorControl) PURE; 206105b261ecSmrg}; 206205b261ecSmrg 206305b261ecSmrg /*** IUnknown methods ***/ 206405b261ecSmrg#define IDirectDrawColorControl_QueryInterface(p,a,b) ICOM_CALL_(QueryInterface,p,(p,a,b)) 206505b261ecSmrg#define IDirectDrawColorControl_AddRef(p) ICOM_CALL_(AddRef,p,(p)) 206605b261ecSmrg#define IDirectDrawColorControl_Release(p) ICOM_CALL_(Release,p,(p)) 206705b261ecSmrg /*** IDirectDrawColorControl methods ***/ 206805b261ecSmrg#define IDirectDrawColorControl_GetColorControls(p,a) ICOM_CALL_(GetColorControls,p,(p,a)) 206905b261ecSmrg#define IDirectDrawColorControl_SetColorControls(p,a) ICOM_CALL_(SetColorControls,p,(p,a)) 207005b261ecSmrg 207105b261ecSmrg/***************************************************************************** 207205b261ecSmrg * IDirectDrawGammaControl interface 207305b261ecSmrg */ 207405b261ecSmrg#undef INTERFACE 207505b261ecSmrg#define INTERFACE IDirectDrawGammaControl 207605b261ecSmrgDECLARE_INTERFACE_(IDirectDrawGammaControl,IUnknown) 207705b261ecSmrg{ 207805b261ecSmrg STDMETHOD(QueryInterface)(THIS_ REFIID,LPVOID*) PURE; 207905b261ecSmrg STDMETHOD_(ULONG,AddRef)(THIS) PURE; 208005b261ecSmrg STDMETHOD_(ULONG,Release)(THIS) PURE; 208105b261ecSmrg STDMETHOD(GetGammaRamp)(THIS_ DWORD dwFlags, LPDDGAMMARAMP lpGammaRamp) PURE; 208205b261ecSmrg STDMETHOD(SetGammaRamp)(THIS_ DWORD dwFlags, LPDDGAMMARAMP lpGammaRamp) PURE; 208305b261ecSmrg}; 208405b261ecSmrg 208505b261ecSmrg /*** IUnknown methods ***/ 208605b261ecSmrg#define IDirectDrawGammaControl_QueryInterface(p,a,b) ICOM_CALL_(QueryInterface,p,(p,a,b)) 208705b261ecSmrg#define IDirectDrawGammaControl_AddRef(p) ICOM_CALL_(AddRef,p,(p)) 208805b261ecSmrg#define IDirectDrawGammaControl_Release(p) ICOM_CALL_(Release,p,(p)) 208905b261ecSmrg /*** IDirectDrawGammaControl methods ***/ 209005b261ecSmrg#define IDirectDrawGammaControl_GetGammaRamp(p,a,b) ICOM_CALL_(GetGammaRamp,p,(p,a,b)) 209105b261ecSmrg#define IDirectDrawGammaControl_SetGammaRamp(p,a,b) ICOM_CALL_(SetGammaRamp,p,(p,a,b)) 209205b261ecSmrg 209305b261ecSmrg 209405b261ecSmrgHRESULT WINAPI DirectDrawCreate(LPGUID,LPDIRECTDRAW*,LPUNKNOWN); 209505b261ecSmrgHRESULT WINAPI DirectDrawCreateEx(LPGUID,LPVOID*,REFIID,LPUNKNOWN); 209605b261ecSmrgHRESULT WINAPI DirectDrawEnumerateA(LPDDENUMCALLBACKA,LPVOID); 209705b261ecSmrgHRESULT WINAPI DirectDrawEnumerateW(LPDDENUMCALLBACKW,LPVOID); 209805b261ecSmrg#define DirectDrawEnumerate WINELIB_NAME_AW(DirectDrawEnumerate) 209905b261ecSmrgHRESULT WINAPI DirectDrawCreateClipper(DWORD,LPDIRECTDRAWCLIPPER*,LPUNKNOWN); 210005b261ecSmrg 210105b261ecSmrg 210205b261ecSmrg#ifdef __cplusplus 210305b261ecSmrg} /* extern "C" */ 210405b261ecSmrg#endif /* defined(__cplusplus) */ 210505b261ecSmrg 210605b261ecSmrg#endif /* __XWIN_DDRAW_H */ 2107