Reactos
at listview 2673 lines 150 kB view raw
1 2#ifndef __DDRAW_INCLUDED__ 3#define __DDRAW_INCLUDED__ 4 5#if defined(_WIN32) && !defined(_NO_COM) 6 #define COM_NO_WINDOWS_H 7 #include <objbase.h> 8#else 9 #define IUnknown void 10 #if !defined(NT_BUILD_ENVIRONMENT) && !defined(WINNT) 11 #ifndef CO_E_NOTINITIALIZED /* Avoid conflict warning with _HRESULT_TYPEDEF_(0x800401F0L) in winerror.h */ 12 #define CO_E_NOTINITIALIZED 0x800401F0L 13 #endif 14 #endif 15#endif 16 17#define _FACDD 0x876 18 19#ifndef MAKE_DDHRESULT 20#define MAKE_DDHRESULT(c) MAKE_HRESULT(1,_FACDD,c) 21#endif 22 23#ifndef DIRECTDRAW_VERSION 24 #define DIRECTDRAW_VERSION 0x0700 25#endif 26 27#undef ENABLE_NAMELESS_UNION_PRAGMA 28#ifdef DIRECTX_REDIST 29 #define ENABLE_NAMELESS_UNION_PRAGMA 30#endif 31 32#ifdef ENABLE_NAMELESS_UNION_PRAGMA 33 #pragma warning(disable:4201) 34#endif 35 36#ifndef DUMMYUNIONNAMEN 37 #if defined(__cplusplus) || !defined(NONAMELESSUNION) 38 #define DUMMYUNIONNAMEN(n) 39 #else 40 #define DUMMYUNIONNAMEN(n) u##n 41 #endif 42#endif 43 44#if defined(WINNT) || !defined(WIN32) 45#ifndef _HRESULT_DEFINED 46#define _HRESULT_DEFINED 47 typedef long HRESULT; 48#endif 49#endif 50 51/* Helper macro to enable gcc's extension. */ 52#ifndef __GNU_EXTENSION 53#ifdef __GNUC__ 54#define __GNU_EXTENSION __extension__ 55#else 56#define __GNU_EXTENSION 57#endif 58#endif 59 60#ifdef __cplusplus 61extern "C" { 62#endif 63 64/* This define are obsolete in ms ddk, but are use internal in Windows NT4/2000/XP/2003/ReactOS */ 65#define DDCAPS_STEREOVIEW 0x00040000 66 67 68/* Orgnal */ 69#define DDERR_ALREADYINITIALIZED MAKE_DDHRESULT( 5) 70#define DDERR_CANNOTATTACHSURFACE MAKE_DDHRESULT(10) 71#define DDERR_CANNOTDETACHSURFACE MAKE_DDHRESULT(20) 72#define DDERR_CURRENTLYNOTAVAIL MAKE_DDHRESULT(40) 73#define DDERR_EXCEPTION MAKE_DDHRESULT(55) 74#define DDERR_GENERIC E_FAIL 75#define DDERR_HEIGHTALIGN MAKE_DDHRESULT( 90) 76#define DDERR_INCOMPATIBLEPRIMARY MAKE_DDHRESULT( 95) 77#define DDERR_INVALIDCAPS MAKE_DDHRESULT(100) 78#define DDERR_INVALIDCLIPLIST MAKE_DDHRESULT(110) 79#define DDERR_INVALIDMODE MAKE_DDHRESULT(120) 80#define DDERR_INVALIDOBJECT MAKE_DDHRESULT(130) 81#define DDERR_INVALIDPARAMS E_INVALIDARG 82#define DDERR_INVALIDPIXELFORMAT MAKE_DDHRESULT(145) 83#define DDERR_INVALIDRECT MAKE_DDHRESULT(150) 84#define DDERR_LOCKEDSURFACES MAKE_DDHRESULT(160) 85#define DDERR_NO3D MAKE_DDHRESULT(170) 86#define DDERR_NOALPHAHW MAKE_DDHRESULT(180) 87#define DDERR_NOSTEREOHARDWARE MAKE_DDHRESULT(181) 88#define DDERR_NOSURFACELEFT MAKE_DDHRESULT(182) 89#define DDERR_NOCLIPLIST MAKE_DDHRESULT(205) 90#define DDERR_NOCOLORCONVHW MAKE_DDHRESULT(210) 91#define DDERR_NOCOOPERATIVELEVELSET MAKE_DDHRESULT(212) 92#define DDERR_NOCOLORKEY MAKE_DDHRESULT(215) 93#define DDERR_NOCOLORKEYHW MAKE_DDHRESULT(220) 94#define DDERR_NODIRECTDRAWSUPPORT MAKE_DDHRESULT(222) 95#define DDERR_NOEXCLUSIVEMODE MAKE_DDHRESULT(225) 96#define DDERR_NOFLIPHW MAKE_DDHRESULT(230) 97#define DDERR_NOGDI MAKE_DDHRESULT(240) 98#define DDERR_NOMIRRORHW MAKE_DDHRESULT(250) 99#define DDERR_NOTFOUND MAKE_DDHRESULT(255) 100#define DDERR_NOOVERLAYHW MAKE_DDHRESULT(260) 101#define DDERR_OVERLAPPINGRECTS MAKE_DDHRESULT(270) 102#define DDERR_NORASTEROPHW MAKE_DDHRESULT(280) 103#define DDERR_NOROTATIONHW MAKE_DDHRESULT(290) 104#define DDERR_NOSTRETCHHW MAKE_DDHRESULT(310) 105#define DDERR_NOT4BITCOLOR MAKE_DDHRESULT(316) 106#define DDERR_NOT4BITCOLORINDEX MAKE_DDHRESULT(317) 107#define DDERR_NOT8BITCOLOR MAKE_DDHRESULT(320) 108#define DDERR_NOTEXTUREHW MAKE_DDHRESULT(330) 109#define DDERR_NOVSYNCHW MAKE_DDHRESULT(335) 110#define DDERR_NOZBUFFERHW MAKE_DDHRESULT(340) 111#define DDERR_NOZOVERLAYHW MAKE_DDHRESULT(350) 112#define DDERR_OUTOFCAPS MAKE_DDHRESULT(360) 113#define DDERR_OUTOFMEMORY E_OUTOFMEMORY 114#define DDERR_OUTOFVIDEOMEMORY MAKE_DDHRESULT(380) 115#define DDERR_OVERLAYCANTCLIP MAKE_DDHRESULT(382) 116#define DDERR_OVERLAYCOLORKEYONLYONEACTIVE MAKE_DDHRESULT(384) 117#define DDERR_PALETTEBUSY MAKE_DDHRESULT(387) 118#define DDERR_COLORKEYNOTSET MAKE_DDHRESULT(400) 119#define DDERR_SURFACEALREADYATTACHED MAKE_DDHRESULT(410) 120#define DDERR_SURFACEALREADYDEPENDENT MAKE_DDHRESULT(420) 121#define DDERR_SURFACEBUSY MAKE_DDHRESULT(430) 122#define DDERR_CANTLOCKSURFACE MAKE_DDHRESULT(435) 123#define DDERR_SURFACEISOBSCURED MAKE_DDHRESULT(440) 124#define DDERR_SURFACELOST MAKE_DDHRESULT(450) 125#define DDERR_SURFACENOTATTACHED MAKE_DDHRESULT(460) 126#define DDERR_TOOBIGHEIGHT MAKE_DDHRESULT(470) 127#define DDERR_TOOBIGSIZE MAKE_DDHRESULT(480) 128#define DDERR_TOOBIGWIDTH MAKE_DDHRESULT(490) 129#define DDERR_UNSUPPORTED E_NOTIMPL 130#define DDERR_UNSUPPORTEDFORMAT MAKE_DDHRESULT(510) 131#define DDERR_UNSUPPORTEDMASK MAKE_DDHRESULT(520) 132#define DDERR_INVALIDSTREAM MAKE_DDHRESULT(521) 133#define DDERR_VERTICALBLANKINPROGRESS MAKE_DDHRESULT(537) 134#define DDERR_WASSTILLDRAWING MAKE_DDHRESULT(540) 135#define DDERR_DDSCAPSCOMPLEXREQUIRED MAKE_DDHRESULT(542) 136#define DDERR_XALIGN MAKE_DDHRESULT(560) 137#define DDERR_INVALIDDIRECTDRAWGUID MAKE_DDHRESULT(561) 138#define DDERR_DIRECTDRAWALREADYCREATED MAKE_DDHRESULT(562) 139#define DDERR_NODIRECTDRAWHW MAKE_DDHRESULT(563) 140#define DDERR_PRIMARYSURFACEALREADYEXISTS MAKE_DDHRESULT(564) 141#define DDERR_NOEMULATION MAKE_DDHRESULT(565) 142#define DDERR_REGIONTOOSMALL MAKE_DDHRESULT(566) 143#define DDERR_CLIPPERISUSINGHWND MAKE_DDHRESULT(567) 144#define DDERR_NOCLIPPERATTACHED MAKE_DDHRESULT(568) 145#define DDERR_NOHWND MAKE_DDHRESULT(569) 146#define DDERR_HWNDSUBCLASSED MAKE_DDHRESULT(570) 147#define DDERR_HWNDALREADYSET MAKE_DDHRESULT(571) 148#define DDERR_NOPALETTEATTACHED MAKE_DDHRESULT(572) 149#define DDERR_NOPALETTEHW MAKE_DDHRESULT(573) 150#define DDERR_BLTFASTCANTCLIP MAKE_DDHRESULT(574) 151#define DDERR_NOBLTHW MAKE_DDHRESULT(575) 152#define DDERR_NODDROPSHW MAKE_DDHRESULT(576) 153#define DDERR_OVERLAYNOTVISIBLE MAKE_DDHRESULT(577) 154#define DDERR_NOOVERLAYDEST MAKE_DDHRESULT(578) 155#define DDERR_INVALIDPOSITION MAKE_DDHRESULT(579) 156#define DDERR_NOTAOVERLAYSURFACE MAKE_DDHRESULT(580) 157#define DDERR_EXCLUSIVEMODEALREADYSET MAKE_DDHRESULT(581) 158#define DDERR_NOTFLIPPABLE MAKE_DDHRESULT(582) 159#define DDERR_CANTDUPLICATE MAKE_DDHRESULT(583) 160#define DDERR_NOTLOCKED MAKE_DDHRESULT(584) 161#define DDERR_CANTCREATEDC MAKE_DDHRESULT(585) 162#define DDERR_NODC MAKE_DDHRESULT(586) 163#define DDERR_WRONGMODE MAKE_DDHRESULT(587) 164#define DDERR_IMPLICITLYCREATED MAKE_DDHRESULT(588) 165#define DDERR_NOTPALETTIZED MAKE_DDHRESULT(589) 166#define DDERR_UNSUPPORTEDMODE MAKE_DDHRESULT(590) 167#define DDERR_NOMIPMAPHW MAKE_DDHRESULT(591) 168#define DDERR_INVALIDSURFACETYPE MAKE_DDHRESULT(592) 169#define DDERR_NOOPTIMIZEHW MAKE_DDHRESULT(600) 170#define DDERR_NOTLOADED MAKE_DDHRESULT(601) 171#define DDERR_NOFOCUSWINDOW MAKE_DDHRESULT(602) 172#define DDERR_NOTONMIPMAPSUBLEVEL MAKE_DDHRESULT(603) 173#define DDERR_DCALREADYCREATED MAKE_DDHRESULT(620) 174#define DDERR_NONONLOCALVIDMEM MAKE_DDHRESULT(630) 175#define DDERR_CANTPAGELOCK MAKE_DDHRESULT(640) 176#define DDERR_CANTPAGEUNLOCK MAKE_DDHRESULT(660) 177#define DDERR_NOTPAGELOCKED MAKE_DDHRESULT(680) 178#define DDERR_MOREDATA MAKE_DDHRESULT(690) 179#define DDERR_EXPIRED MAKE_DDHRESULT(691) 180#define DDERR_TESTFINISHED MAKE_DDHRESULT(692) 181#define DDERR_NEWMODE MAKE_DDHRESULT(693) 182#define DDERR_D3DNOTINITIALIZED MAKE_DDHRESULT(694) 183#define DDERR_VIDEONOTACTIVE MAKE_DDHRESULT(695) 184#define DDERR_NOMONITORINFORMATION MAKE_DDHRESULT(696) 185#define DDERR_NODRIVERSUPPORT MAKE_DDHRESULT(697) 186#define DDERR_DEVICEDOESNTOWNSURFACE MAKE_DDHRESULT(699) 187#define DDERR_NOTINITIALIZED CO_E_NOTINITIALIZED 188#define DD_OK S_OK 189#define DD_FALSE S_FALSE 190#define DDENUMRET_CANCEL 0 191#define DDENUMRET_OK 1 192 193#define DDENUM_ATTACHEDSECONDARYDEVICES 0x00000001 194#define DDENUM_DETACHEDSECONDARYDEVICES 0x00000002 195#define DDENUM_NONDISPLAYDEVICES 0x00000004 196 197#define REGSTR_KEY_DDHW_DESCRIPTION "Description" 198#define REGSTR_KEY_DDHW_DRIVERNAME "DriverName" 199#define REGSTR_PATH_DDHW "Hardware\\DirectDrawDrivers" 200#define DDCREATE_HARDWAREONLY 0x00000001 201#define DDCREATE_EMULATIONONLY 0x00000002 202#define DD_ROP_SPACE (256/32) 203#define MAX_DDDEVICEID_STRING 512 204#define DDGDI_GETHOSTIDENTIFIER 0x00000001 205#define DDSGR_CALIBRATE 0x00000001 206#define DDSMT_ISTESTREQUIRED 0x00000001 207#define DDEM_MODEPASSED 0x00000001 208#define DDEM_MODEFAILED 0x00000002 209 210#define DDSD_CAPS 0x00000001 211#define DDSD_HEIGHT 0x00000002 212#define DDSD_WIDTH 0x00000004 213#define DDSD_PITCH 0x00000008 214#define DDSD_BACKBUFFERCOUNT 0x00000020 215#define DDSD_ZBUFFERBITDEPTH 0x00000040 216#define DDSD_ALPHABITDEPTH 0x00000080 217#define DDSD_LPSURFACE 0x00000800 218#define DDSD_PIXELFORMAT 0x00001000 219#define DDSD_CKDESTOVERLAY 0x00002000 220#define DDSD_CKDESTBLT 0x00004000 221#define DDSD_CKSRCOVERLAY 0x00008000 222#define DDSD_CKSRCBLT 0x00010000 223#define DDSD_MIPMAPCOUNT 0x00020000 224#define DDSD_REFRESHRATE 0x00040000 225#define DDSD_LINEARSIZE 0x00080000 226#define DDSD_TEXTURESTAGE 0x00100000 227#define DDSD_FVF 0x00200000 228#define DDSD_SRCVBHANDLE 0x00400000 229#define DDSD_DEPTH 0x00800000 230#define DDSD_ALL 0x00FFF9EE 231 232#define DDOSD_GUID 0x00000001 233#define DDOSD_COMPRESSION_RATIO 0x00000002 234#define DDOSD_SCAPS 0x00000004 235#define DDOSD_OSCAPS 0x00000008 236#define DDOSD_ALL 0x0000000f 237#define DDOSDCAPS_OPTCOMPRESSED 0x00000001 238#define DDOSDCAPS_OPTREORDERED 0x00000002 239#define DDOSDCAPS_MONOLITHICMIPMAP 0x00000004 240#define DDOSDCAPS_VALIDSCAPS 0x30004800 241#define DDOSDCAPS_VALIDOSCAPS 0x00000007 242 243#define DDCOLOR_BRIGHTNESS 0x00000001 244#define DDCOLOR_CONTRAST 0x00000002 245#define DDCOLOR_HUE 0x00000004 246#define DDCOLOR_SATURATION 0x00000008 247#define DDCOLOR_SHARPNESS 0x00000010 248#define DDCOLOR_GAMMA 0x00000020 249#define DDCOLOR_COLORENABLE 0x00000040 250 251#define DDSCAPS_RESERVED1 0x00000001 252#define DDSCAPS_ALPHA 0x00000002 253#define DDSCAPS_BACKBUFFER 0x00000004 254#define DDSCAPS_COMPLEX 0x00000008 255#define DDSCAPS_FLIP 0x00000010 256#define DDSCAPS_FRONTBUFFER 0x00000020 257#define DDSCAPS_OFFSCREENPLAIN 0x00000040 258#define DDSCAPS_OVERLAY 0x00000080 259#define DDSCAPS_PALETTE 0x00000100 260#define DDSCAPS_PRIMARYSURFACE 0x00000200 261#define DDSCAPS_RESERVED3 0x00000400 262#define DDSCAPS_PRIMARYSURFACELEFT 0x00000000 263#define DDSCAPS_SYSTEMMEMORY 0x00000800 264#define DDSCAPS_TEXTURE 0x00001000 265#define DDSCAPS_3DDEVICE 0x00002000 266#define DDSCAPS_VIDEOMEMORY 0x00004000 267#define DDSCAPS_VISIBLE 0x00008000 268#define DDSCAPS_WRITEONLY 0x00010000 269#define DDSCAPS_ZBUFFER 0x00020000 270#define DDSCAPS_OWNDC 0x00040000 271#define DDSCAPS_LIVEVIDEO 0x00080000 272#define DDSCAPS_HWCODEC 0x00100000 273#define DDSCAPS_MODEX 0x00200000 274#define DDSCAPS_MIPMAP 0x00400000 275#define DDSCAPS_RESERVED2 0x00800000 276#define DDSCAPS_ALLOCONLOAD 0x04000000 277#define DDSCAPS_VIDEOPORT 0x08000000 278#define DDSCAPS_LOCALVIDMEM 0x10000000 279#define DDSCAPS_NONLOCALVIDMEM 0x20000000 280#define DDSCAPS_STANDARDVGAMODE 0x40000000 281#define DDSCAPS_OPTIMIZED 0x80000000 282 283#define DDSCAPS2_HARDWAREDEINTERLACE 0x00000000 284#define DDSCAPS2_RESERVED4 0x00000002 285#define DDSCAPS2_HINTDYNAMIC 0x00000004 286#define DDSCAPS2_HINTSTATIC 0x00000008 287#define DDSCAPS2_TEXTUREMANAGE 0x00000010 288#define DDSCAPS2_RESERVED1 0x00000020 289#define DDSCAPS2_RESERVED2 0x00000040 290#define DDSCAPS2_OPAQUE 0x00000080 291#define DDSCAPS2_HINTANTIALIASING 0x00000100 292#define DDSCAPS2_CUBEMAP 0x00000200 293#define DDSCAPS2_CUBEMAP_POSITIVEX 0x00000400 294#define DDSCAPS2_CUBEMAP_NEGATIVEX 0x00000800 295#define DDSCAPS2_CUBEMAP_POSITIVEY 0x00001000 296#define DDSCAPS2_CUBEMAP_NEGATIVEY 0x00002000 297#define DDSCAPS2_CUBEMAP_POSITIVEZ 0x00004000 298#define DDSCAPS2_CUBEMAP_NEGATIVEZ 0x00008000 299#define DDSCAPS2_CUBEMAP_ALLFACES ( DDSCAPS2_CUBEMAP_POSITIVEX |\ 300 DDSCAPS2_CUBEMAP_NEGATIVEX |\ 301 DDSCAPS2_CUBEMAP_POSITIVEY |\ 302 DDSCAPS2_CUBEMAP_NEGATIVEY |\ 303 DDSCAPS2_CUBEMAP_POSITIVEZ |\ 304 DDSCAPS2_CUBEMAP_NEGATIVEZ ) 305 306#define DDSCAPS2_MIPMAPSUBLEVEL 0x00010000 307#define DDSCAPS2_D3DTEXTUREMANAGE 0x00020000 308#define DDSCAPS2_DONOTPERSIST 0x00040000 309#define DDSCAPS2_STEREOSURFACELEFT 0x00080000 310#define DDSCAPS2_VOLUME 0x00200000 311#define DDSCAPS2_NOTUSERLOCKABLE 0x00400000 312#define DDSCAPS2_POINTS 0x00800000 313 314#define DDSCAPS2_RTPATCHES 0x01000000 315#define DDSCAPS2_NPATCHES 0x02000000 316#define DDSCAPS2_RESERVED3 0x04000000 317#define DDSCAPS2_DISCARDBACKBUFFER 0x10000000 318#define DDSCAPS2_ENABLEALPHACHANNEL 0x20000000 319#define DDSCAPS2_EXTENDEDFORMATPRIMARY 0x40000000 320#define DDSCAPS2_ADDITIONALPRIMARY 0x80000000 321 322#define DDSCAPS3_MULTISAMPLE_MASK 0x0000001F 323#define DDSCAPS3_MULTISAMPLE_QUALITY_MASK 0x000000E0 324#define DDSCAPS3_MULTISAMPLE_QUALITY_SHIFT 5 325#define DDSCAPS3_RESERVED1 0x00000100 326#define DDSCAPS3_RESERVED2 0x00000200 327#define DDSCAPS3_LIGHTWEIGHTMIPMAP 0x00000400 328#define DDSCAPS3_AUTOGENMIPMAP 0x00000800 329#define DDSCAPS3_DMAP 0x00001000 330 331#define DDCAPS_3D 0x00000001 332#define DDCAPS_ALIGNBOUNDARYDEST 0x00000002 333#define DDCAPS_ALIGNSIZEDEST 0x00000004 334#define DDCAPS_ALIGNBOUNDARYSRC 0x00000008 335#define DDCAPS_ALIGNSIZESRC 0x00000010 336#define DDCAPS_ALIGNSTRIDE 0x00000020 337#define DDCAPS_BLT 0x00000040 338#define DDCAPS_BLTQUEUE 0x00000080 339#define DDCAPS_BLTFOURCC 0x00000100 340#define DDCAPS_BLTSTRETCH 0x00000200 341#define DDCAPS_GDI 0x00000400 342#define DDCAPS_OVERLAY 0x00000800 343#define DDCAPS_OVERLAYCANTCLIP 0x00001000 344#define DDCAPS_OVERLAYFOURCC 0x00002000 345#define DDCAPS_OVERLAYSTRETCH 0x00004000 346#define DDCAPS_PALETTE 0x00008000 347#define DDCAPS_PALETTEVSYNC 0x00010000 348#define DDCAPS_READSCANLINE 0x00020000 349#define DDCAPS_RESERVED1 0x00040000 350#define DDCAPS_VBI 0x00080000 351#define DDCAPS_ZBLTS 0x00100000 352#define DDCAPS_ZOVERLAYS 0x00200000 353#define DDCAPS_COLORKEY 0x00400000 354#define DDCAPS_ALPHA 0x00800000 355#define DDCAPS_COLORKEYHWASSIST 0x01000000 356#define DDCAPS_NOHARDWARE 0x02000000 357#define DDCAPS_BLTCOLORFILL 0x04000000 358#define DDCAPS_BANKSWITCHED 0x08000000 359#define DDCAPS_BLTDEPTHFILL 0x10000000 360#define DDCAPS_CANCLIP 0x20000000 361#define DDCAPS_CANCLIPSTRETCHED 0x40000000 362#define DDCAPS_CANBLTSYSMEM 0x80000000 363 364#define DDCAPS2_CERTIFIED 0x00000001 365#define DDCAPS2_NO2DDURING3DSCENE 0x00000002 366#define DDCAPS2_VIDEOPORT 0x00000004 367#define DDCAPS2_AUTOFLIPOVERLAY 0x00000008 368#define DDCAPS2_CANBOBINTERLEAVED 0x00000010 369#define DDCAPS2_CANBOBNONINTERLEAVED 0x00000020 370#define DDCAPS2_COLORCONTROLOVERLAY 0x00000040 371#define DDCAPS2_COLORCONTROLPRIMARY 0x00000080 372#define DDCAPS2_CANDROPZ16BIT 0x00000100 373#define DDCAPS2_NONLOCALVIDMEM 0x00000200 374#define DDCAPS2_NONLOCALVIDMEMCAPS 0x00000400 375#define DDCAPS2_NOPAGELOCKREQUIRED 0x00000800 376#define DDCAPS2_WIDESURFACES 0x00001000 377#define DDCAPS2_CANFLIPODDEVEN 0x00002000 378#define DDCAPS2_CANBOBHARDWARE 0x00004000 379#define DDCAPS2_COPYFOURCC 0x00008000 380#define DDCAPS2_PRIMARYGAMMA 0x00020000 381#define DDCAPS2_CANRENDERWINDOWED 0x00080000 382#define DDCAPS2_CANCALIBRATEGAMMA 0x00100000 383#define DDCAPS2_FLIPINTERVAL 0x00200000 384#define DDCAPS2_FLIPNOVSYNC 0x00400000 385#define DDCAPS2_CANMANAGETEXTURE 0x00800000 386#define DDCAPS2_TEXMANINNONLOCALVIDMEM 0x01000000 387#define DDCAPS2_STEREO 0x02000000 388#define DDCAPS2_SYSTONONLOCAL_AS_SYSTOLOCAL 0x04000000 389#define DDCAPS2_RESERVED1 0x08000000 390#define DDCAPS2_CANMANAGERESOURCE 0x10000000 391#define DDCAPS2_DYNAMICTEXTURES 0x20000000 392#define DDCAPS2_CANAUTOGENMIPMAP 0x40000000 393 394#define DDFXALPHACAPS_BLTALPHAEDGEBLEND 0x00000001 395#define DDFXALPHACAPS_BLTALPHAPIXELS 0x00000002 396#define DDFXALPHACAPS_BLTALPHAPIXELSNEG 0x00000004 397#define DDFXALPHACAPS_BLTALPHASURFACES 0x00000008 398#define DDFXALPHACAPS_BLTALPHASURFACESNEG 0x00000010 399#define DDFXALPHACAPS_OVERLAYALPHAEDGEBLEND 0x00000020 400#define DDFXALPHACAPS_OVERLAYALPHAPIXELS 0x00000040 401#define DDFXALPHACAPS_OVERLAYALPHAPIXELSNEG 0x00000080 402#define DDFXALPHACAPS_OVERLAYALPHASURFACES 0x00000100 403#define DDFXALPHACAPS_OVERLAYALPHASURFACESNEG 0x00000200 404 405 406#define DDFXCAPS_BLTALPHA 0x00000001 407#define DDFXCAPS_OVERLAYALPHA 0x00000004 408#define DDFXCAPS_OVERLAYARITHSTRETCHYN 0x00000008 409#define DDFXCAPS_BLTARITHSTRETCHY 0x00000020 410#define DDFXCAPS_BLTARITHSTRETCHYN 0x00000010 411#define DDFXCAPS_BLTMIRRORLEFTRIGHT 0x00000040 412#define DDFXCAPS_BLTMIRRORUPDOWN 0x00000080 413#define DDFXCAPS_BLTROTATION 0x00000100 414#define DDFXCAPS_BLTROTATION90 0x00000200 415#define DDFXCAPS_BLTSHRINKX 0x00000400 416#define DDFXCAPS_BLTSHRINKXN 0x00000800 417#define DDFXCAPS_BLTSHRINKY 0x00001000 418#define DDFXCAPS_BLTSHRINKYN 0x00002000 419#define DDFXCAPS_BLTSTRETCHX 0x00004000 420#define DDFXCAPS_BLTSTRETCHXN 0x00008000 421#define DDFXCAPS_BLTSTRETCHY 0x00010000 422#define DDFXCAPS_BLTSTRETCHYN 0x00020000 423#define DDFXCAPS_OVERLAYARITHSTRETCHY 0x00040000 424#define DDFXCAPS_OVERLAYSHRINKX 0x00080000 425#define DDFXCAPS_OVERLAYSHRINKXN 0x00100000 426#define DDFXCAPS_OVERLAYSHRINKY 0x00200000 427#define DDFXCAPS_OVERLAYSHRINKYN 0x00400000 428#define DDFXCAPS_OVERLAYSTRETCHX 0x00800000 429#define DDFXCAPS_OVERLAYSTRETCHXN 0x01000000 430#define DDFXCAPS_OVERLAYSTRETCHY 0x02000000 431#define DDFXCAPS_OVERLAYSTRETCHYN 0x04000000 432#define DDFXCAPS_OVERLAYMIRRORLEFTRIGHT 0x08000000 433#define DDFXCAPS_OVERLAYMIRRORUPDOWN 0x10000000 434#define DDFXCAPS_OVERLAYDEINTERLACE 0x20000000 435#define DDFXCAPS_BLTFILTER DDFXCAPS_BLTARITHSTRETCHY 436#define DDFXCAPS_OVERLAYFILTER DDFXCAPS_OVERLAYARITHSTRETCHY 437 438 439 #define DDSVCAPS_RESERVED1 0x00000001 440 #define DDSVCAPS_RESERVED2 0x00000002 441 #define DDSVCAPS_RESERVED3 0x00000004 442 #define DDSVCAPS_RESERVED4 0x00000008 443/* rember that DDSVCAPS_ENIGMA is same as DDSVCAPS_RESERVED1 */ 444 #define DDSVCAPS_ENIGMA 0x00000001 445/* rember that DDSVCAPS_FLICKER is same as DDSVCAPS_RESERVED2 */ 446 #define DDSVCAPS_FLICKER 0x00000002 447/* rember that DDSVCAPS_REDBLUE is same as DDSVCAPS_RESERVED3 */ 448 #define DDSVCAPS_REDBLUE 0x00000004 449/* rember that DDSVCAPS_SPLIT is same as DDSVCAPS_RESERVED4 */ 450 #define DDSVCAPS_SPLIT 0x00000008 451 452#define DDSVCAPS_STEREOSEQUENTIAL 0x00000010 453 454#define DDPCAPS_INITIALIZE 0x00000000 455#define DDPCAPS_4BIT 0x00000001 456#define DDPCAPS_8BITENTRIES 0x00000002 457#define DDPCAPS_8BIT 0x00000004 458#define DDPCAPS_PRIMARYSURFACE 0x00000010 459#define DDPCAPS_PRIMARYSURFACELEFT 0x00000020 460#define DDPCAPS_ALLOW256 0x00000040 461#define DDPCAPS_VSYNC 0x00000080 462#define DDPCAPS_1BIT 0x00000100 463#define DDPCAPS_2BIT 0x00000200 464#define DDPCAPS_ALPHA 0x00000400 465 466#define DDSPD_IUNKNOWNPOINTER 0x00000001 467#define DDSPD_VOLATILE 0x00000002 468 469#define DDBD_1 0x00004000 470#define DDBD_2 0x00002000 471#define DDBD_4 0x00001000 472#define DDBD_8 0x00000800 473#define DDBD_16 0x00000400 474#define DDBD_24 0x00000200 475#define DDBD_32 0x00000100 476 477#define DDCKEY_COLORSPACE 0x00000001 478#define DDCKEY_DESTBLT 0x00000002 479#define DDCKEY_DESTOVERLAY 0x00000004 480#define DDCKEY_SRCBLT 0x00000008 481#define DDCKEY_SRCOVERLAY 0x00000010 482 483#define DDCKEYCAPS_DESTBLT 0x00000001 484#define DDCKEYCAPS_DESTBLTCLRSPACE 0x00000002 485#define DDCKEYCAPS_DESTBLTCLRSPACEYUV 0x00000004 486#define DDCKEYCAPS_DESTBLTYUV 0x00000008 487#define DDCKEYCAPS_DESTOVERLAY 0x00000010 488#define DDCKEYCAPS_DESTOVERLAYCLRSPACE 0x00000020 489#define DDCKEYCAPS_DESTOVERLAYCLRSPACEYUV 0x00000040 490#define DDCKEYCAPS_DESTOVERLAYONEACTIVE 0x00000080 491#define DDCKEYCAPS_DESTOVERLAYYUV 0x00000100 492#define DDCKEYCAPS_SRCBLT 0x00000200 493#define DDCKEYCAPS_SRCBLTCLRSPACE 0x00000400 494#define DDCKEYCAPS_SRCBLTCLRSPACEYUV 0x00000800 495#define DDCKEYCAPS_SRCBLTYUV 0x00001000 496#define DDCKEYCAPS_SRCOVERLAY 0x00002000 497#define DDCKEYCAPS_SRCOVERLAYCLRSPACE 0x00004000 498#define DDCKEYCAPS_SRCOVERLAYCLRSPACEYUV 0x00008000 499#define DDCKEYCAPS_SRCOVERLAYONEACTIVE 0x00010000 500#define DDCKEYCAPS_SRCOVERLAYYUV 0x00020000 501#define DDCKEYCAPS_NOCOSTOVERLAY 0x00040000 502 503#define DDPF_ALPHAPIXELS 0x00000001 504#define DDPF_ALPHA 0x00000002 505#define DDPF_FOURCC 0x00000004 506#define DDPF_PALETTEINDEXED4 0x00000008 507#define DDPF_PALETTEINDEXEDTO8 0x00000010 508#define DDPF_PALETTEINDEXED8 0x00000020 509#define DDPF_RGB 0x00000040 510#define DDPF_COMPRESSED 0x00000080 511#define DDPF_RGBTOYUV 0x00000100 512#define DDPF_YUV 0x00000200 513#define DDPF_ZBUFFER 0x00000400 514#define DDPF_PALETTEINDEXED1 0x00000800 515#define DDPF_PALETTEINDEXED2 0x00001000 516#define DDPF_ZPIXELS 0x00002000 517#define DDPF_STENCILBUFFER 0x00004000 518#define DDPF_ALPHAPREMULT 0x00008000 519#define DDPF_LUMINANCE 0x00020000 520#define DDPF_BUMPLUMINANCE 0x00040000 521#define DDPF_BUMPDUDV 0x00080000 522 523#define DDENUMSURFACES_ALL 0x00000001 524#define DDENUMSURFACES_MATCH 0x00000002 525#define DDENUMSURFACES_NOMATCH 0x00000004 526#define DDENUMSURFACES_CANBECREATED 0x00000008 527#define DDENUMSURFACES_DOESEXIST 0x00000010 528 529#define DDSDM_STANDARDVGAMODE 0x00000001 530 531#define DDEDM_REFRESHRATES 0x00000001 532#define DDEDM_STANDARDVGAMODES 0x00000002 533 534#define DDSCL_FULLSCREEN 0x00000001 535#define DDSCL_ALLOWREBOOT 0x00000002 536#define DDSCL_NOWINDOWCHANGES 0x00000004 537#define DDSCL_NORMAL 0x00000008 538#define DDSCL_EXCLUSIVE 0x00000010 539#define DDSCL_ALLOWMODEX 0x00000040 540#define DDSCL_SETFOCUSWINDOW 0x00000080 541#define DDSCL_SETDEVICEWINDOW 0x00000100 542#define DDSCL_CREATEDEVICEWINDOW 0x00000200 543#define DDSCL_MULTITHREADED 0x00000400 544#define DDSCL_FPUSETUP 0x00000800 545#define DDSCL_FPUPRESERVE 0x00001000 546 547#define DDBLT_ALPHADEST 0x00000001 548#define DDBLT_ALPHADESTCONSTOVERRIDE 0x00000002 549#define DDBLT_ALPHADESTNEG 0x00000004 550#define DDBLT_ALPHADESTSURFACEOVERRIDE 0x00000008 551#define DDBLT_ALPHAEDGEBLEND 0x00000010 552#define DDBLT_ALPHASRC 0x00000020 553#define DDBLT_ALPHASRCCONSTOVERRIDE 0x00000040 554#define DDBLT_ALPHASRCNEG 0x00000080 555#define DDBLT_ALPHASRCSURFACEOVERRIDE 0x00000100 556#define DDBLT_ASYNC 0x00000200 557#define DDBLT_COLORFILL 0x00000400 558#define DDBLT_DDFX 0x00000800 559#define DDBLT_DDROPS 0x00001000 560#define DDBLT_KEYDEST 0x00002000 561#define DDBLT_KEYDESTOVERRIDE 0x00004000 562#define DDBLT_KEYSRC 0x00008000 563#define DDBLT_KEYSRCOVERRIDE 0x00010000 564#define DDBLT_ROP 0x00020000 565#define DDBLT_ROTATIONANGLE 0x00040000 566#define DDBLT_ZBUFFER 0x00080000 567#define DDBLT_ZBUFFERDESTCONSTOVERRIDE 0x00100000 568#define DDBLT_ZBUFFERDESTOVERRIDE 0x00200000 569#define DDBLT_ZBUFFERSRCCONSTOVERRIDE 0x00400000 570#define DDBLT_ZBUFFERSRCOVERRIDE 0x00800000 571#define DDBLT_WAIT 0x01000000 572#define DDBLT_DEPTHFILL 0x02000000 573#define DDBLT_DONOTWAIT 0x08000000 574#define DDBLT_PRESENTATION 0x10000000 575#define DDBLT_LAST_PRESENTATION 0x20000000 576#define DDBLT_EXTENDED_FLAGS 0x40000000 577#define DDBLT_EXTENDED_LINEAR_CONTENT 0x00000004 578 579#define DDBLTFAST_NOCOLORKEY 0x00000000 580#define DDBLTFAST_SRCCOLORKEY 0x00000001 581#define DDBLTFAST_DESTCOLORKEY 0x00000002 582#define DDBLTFAST_WAIT 0x00000010 583#define DDBLTFAST_DONOTWAIT 0x00000020 584 585#define DDFLIP_WAIT 0x00000001 586#define DDFLIP_EVEN 0x00000002 587#define DDFLIP_ODD 0x00000004 588#define DDFLIP_NOVSYNC 0x00000008 589#define DDFLIP_STEREO 0x00000010 590#define DDFLIP_DONOTWAIT 0x00000020 591#define DDFLIP_INTERVAL2 0x02000000 592#define DDFLIP_INTERVAL3 0x03000000 593#define DDFLIP_INTERVAL4 0x04000000 594 595 596#define DDOVER_ALPHADEST 0x00000001 597#define DDOVER_ALPHADESTCONSTOVERRIDE 0x00000002 598#define DDOVER_ALPHADESTNEG 0x00000004 599#define DDOVER_ALPHADESTSURFACEOVERRIDE 0x00000008 600#define DDOVER_ALPHAEDGEBLEND 0x00000010 601#define DDOVER_ALPHASRC 0x00000020 602#define DDOVER_ALPHASRCCONSTOVERRIDE 0x00000040 603#define DDOVER_ALPHASRCNEG 0x00000080 604#define DDOVER_ALPHASRCSURFACEOVERRIDE 0x00000100 605#define DDOVER_HIDE 0x00000200 606#define DDOVER_KEYDEST 0x00000400 607#define DDOVER_KEYDESTOVERRIDE 0x00000800 608#define DDOVER_KEYSRC 0x00001000 609#define DDOVER_KEYSRCOVERRIDE 0x00002000 610#define DDOVER_SHOW 0x00004000 611#define DDOVER_ADDDIRTYRECT 0x00008000 612#define DDOVER_REFRESHDIRTYRECTS 0x00010000 613#define DDOVER_REFRESHALL 0x00020000 614#define DDOVER_DDFX 0x00080000 615#define DDOVER_AUTOFLIP 0x00100000 616#define DDOVER_BOB 0x00200000 617#define DDOVER_OVERRIDEBOBWEAVE 0x00400000 618#define DDOVER_INTERLEAVED 0x00800000 619#define DDOVER_BOBHARDWARE 0x01000000 620#define DDOVER_ARGBSCALEFACTORS 0x02000000 621#define DDOVER_DEGRADEARGBSCALING 0x04000000 622 623#define DDLOCK_SURFACEMEMORYPTR 0x00000000 624#define DDLOCK_WAIT 0x00000001 625#define DDLOCK_EVENT 0x00000002 626#define DDLOCK_READONLY 0x00000010 627#define DDLOCK_WRITEONLY 0x00000020 628#define DDLOCK_NOSYSLOCK 0x00000800 629#define DDLOCK_NOOVERWRITE 0x00001000 630#define DDLOCK_DISCARDCONTENTS 0x00002000 631#define DDLOCK_OKTOSWAP 0x00002000 632#define DDLOCK_DONOTWAIT 0x00004000 633#define DDLOCK_HASVOLUMETEXTUREBOXRECT 0x00008000 634#define DDLOCK_NODIRTYUPDATE 0x00010000 635 636#define DDBLTFX_ARITHSTRETCHY 0x00000001 637#define DDBLTFX_MIRRORLEFTRIGHT 0x00000002 638#define DDBLTFX_MIRRORUPDOWN 0x00000004 639#define DDBLTFX_NOTEARING 0x00000008 640#define DDBLTFX_ROTATE180 0x00000010 641#define DDBLTFX_ROTATE270 0x00000020 642#define DDBLTFX_ROTATE90 0x00000040 643#define DDBLTFX_ZBUFFERRANGE 0x00000080 644#define DDBLTFX_ZBUFFERBASEDEST 0x00000100 645 646#define DDOVERFX_ARITHSTRETCHY 0x00000001 647#define DDOVERFX_MIRRORLEFTRIGHT 0x00000002 648#define DDOVERFX_MIRRORUPDOWN 0x00000004 649#define DDOVERFX_DEINTERLACE 0x00000008 650 651#define DDWAITVB_BLOCKBEGIN 0x00000001 652#define DDWAITVB_BLOCKBEGINEVENT 0x00000002 653#define DDWAITVB_BLOCKEND 0x00000004 654 655#define DDGFS_CANFLIP 0x00000001 656#define DDGFS_ISFLIPDONE 0x00000002 657 658#define DDGBS_CANBLT 0x00000001 659#define DDGBS_ISBLTDONE 0x00000002 660 661#define DDENUMOVERLAYZ_BACKTOFRONT 0x00000000 662#define DDENUMOVERLAYZ_FRONTTOBACK 0x00000001 663 664#define DDOVERZ_SENDTOFRONT 0x00000000 665#define DDOVERZ_SENDTOBACK 0x00000001 666#define DDOVERZ_MOVEFORWARD 0x00000002 667#define DDOVERZ_MOVEBACKWARD 0x00000003 668#define DDOVERZ_INSERTINFRONTOF 0x00000004 669#define DDOVERZ_INSERTINBACKOF 0x00000005 670 671#define GET_WHQL_YEAR (dwWHQLLevel) ((dwWHQLLevel)/0x10000) 672#define GET_WHQL_MONTH (dwWHQLLevel) (((dwWHQLLevel)/0x100)&0x00ff) 673#define GET_WHQL_DAY (dwWHQLLevel) ((dwWHQLLevel)&0xff) 674 675#ifndef MAKEFOURCC 676#define MAKEFOURCC(c0,c1,c2,c3) \ 677 ((DWORD)(BYTE)(c0)|((DWORD)(BYTE)(c1)<<8)|((DWORD)(BYTE)(c2)<< 16)|((DWORD)(BYTE)(c3)<<24)) 678#endif 679 680#define FOURCC_DXT1 (MAKEFOURCC('D','X','T','1')) 681#define FOURCC_DXT2 (MAKEFOURCC('D','X','T','2')) 682#define FOURCC_DXT3 (MAKEFOURCC('D','X','T','3')) 683#define FOURCC_DXT4 (MAKEFOURCC('D','X','T','4')) 684#define FOURCC_DXT5 (MAKEFOURCC('D','X','T','5')) 685 686#if defined(_WIN32) && !defined(_NO_COM) 687DEFINE_GUID( CLSID_DirectDraw, 0xD7B70EE0,0x4340,0x11CF,0xB0,0x63,0x00,0x20,0xAF,0xC2,0xCD,0x35 ); 688DEFINE_GUID( CLSID_DirectDraw7, 0x3C305196,0x50DB,0x11D3,0x9C,0xFE,0x00,0xC0,0x4F,0xD9,0x30,0xC5 ); 689DEFINE_GUID( CLSID_DirectDrawClipper, 0x593817A0,0x7DB3,0x11CF,0xA2,0xDE,0x00,0xAA,0x00,0xB9,0x33,0x56 ); 690DEFINE_GUID( IID_IDirectDraw, 0x6C14DB80,0xA733,0x11CE,0xA5,0x21,0x00,0x20,0xAF,0x0B,0xE5,0x60 ); 691DEFINE_GUID( IID_IDirectDraw2, 0xB3A6F3E0,0x2B43,0x11CF,0xA2,0xDE,0x00,0xAA,0x00,0xB9,0x33,0x56 ); 692DEFINE_GUID( IID_IDirectDraw3, 0x618F8AD4,0x8B7A,0x11D0,0x8F,0xCC,0x00,0xC0,0x4F,0xD9,0x18,0x9D ); 693DEFINE_GUID( IID_IDirectDraw4, 0x9C59509A,0x39BD,0x11D1,0x8C,0x4A,0x00,0xC0,0x4F,0xD9,0x30,0xC5 ); 694DEFINE_GUID( IID_IDirectDraw7, 0x15E65EC0,0x3B9C,0x11D2,0xB9,0x2F,0x00,0x60,0x97,0x97,0xEA,0x5B ); 695DEFINE_GUID( IID_IDirectDrawSurface, 0x6C14DB81,0xA733,0x11CE,0xA5,0x21,0x00,0x20,0xAF,0x0B,0xE5,0x60 ); 696DEFINE_GUID( IID_IDirectDrawSurface2, 0x57805885,0x6EEC,0x11CF,0x94,0x41,0xA8,0x23,0x03,0xC1,0x0E,0x27 ); 697DEFINE_GUID( IID_IDirectDrawSurface3, 0xDA044E00,0x69B2,0x11D0,0xA1,0xD5,0x00,0xAA,0x00,0xB8,0xDF,0xBB ); 698DEFINE_GUID( IID_IDirectDrawSurface4, 0x0B2B8630,0xAD35,0x11D0,0x8E,0xA6,0x00,0x60,0x97,0x97,0xEA,0x5B ); 699DEFINE_GUID( IID_IDirectDrawSurface7, 0x06675A80,0x3B9B,0x11D2,0xB9,0x2F,0x00,0x60,0x97,0x97,0xEA,0x5B ); 700DEFINE_GUID( IID_IDirectDrawPalette, 0x6C14DB84,0xA733,0x11CE,0xA5,0x21,0x00,0x20,0xAF,0x0B,0xE5,0x60 ); 701DEFINE_GUID( IID_IDirectDrawClipper, 0x6C14DB85,0xA733,0x11CE,0xA5,0x21,0x00,0x20,0xAF,0x0B,0xE5,0x60 ); 702DEFINE_GUID( IID_IDirectDrawColorControl, 0x4B9F0EE0,0x0D7E,0x11D0,0x9B,0x06,0x00,0xA0,0xC9,0x03,0xA3,0xB8 ); 703DEFINE_GUID( IID_IDirectDrawGammaControl, 0x69C11C3E,0xB46B,0x11D1,0xAD,0x7A,0x00,0xC0,0x4F,0xC2,0x9B,0x4E ); 704#endif 705 706 707struct IDirectDraw; 708struct IDirectDrawSurface; 709struct IDirectDrawPalette; 710struct IDirectDrawClipper; 711 712typedef struct IDirectDraw *LPDIRECTDRAW; 713typedef struct IDirectDraw2 *LPDIRECTDRAW2; 714typedef struct IDirectDraw3 *LPDIRECTDRAW3; 715typedef struct IDirectDraw4 *LPDIRECTDRAW4; 716typedef struct IDirectDraw7 *LPDIRECTDRAW7; 717typedef struct IDirectDrawSurface *LPDIRECTDRAWSURFACE; 718typedef struct IDirectDrawSurface2 *LPDIRECTDRAWSURFACE2; 719typedef struct IDirectDrawSurface3 *LPDIRECTDRAWSURFACE3; 720typedef struct IDirectDrawSurface4 *LPDIRECTDRAWSURFACE4; 721typedef struct IDirectDrawSurface7 *LPDIRECTDRAWSURFACE7; 722typedef struct IDirectDrawPalette *LPDIRECTDRAWPALETTE; 723typedef struct IDirectDrawClipper *LPDIRECTDRAWCLIPPER; 724typedef struct IDirectDrawColorControl *LPDIRECTDRAWCOLORCONTROL; 725typedef struct IDirectDrawGammaControl *LPDIRECTDRAWGAMMACONTROL; 726 727typedef struct _DDSCAPS 728{ 729 DWORD dwCaps; 730} DDSCAPS, *LPDDSCAPS; 731 732typedef struct _DDSCAPS2 733{ 734 DWORD dwCaps; 735 DWORD dwCaps2; 736 DWORD dwCaps3; 737 union 738 { 739 DWORD dwCaps4; 740 DWORD dwVolumeDepth; 741 } DUMMYUNIONNAMEN(1); 742} DDSCAPS2, *LPDDSCAPS2; 743 744typedef struct _DDCAPS_DX1 745{ 746 DWORD dwSize; 747 DWORD dwCaps; 748 DWORD dwCaps2; 749 DWORD dwCKeyCaps; 750 DWORD dwFXCaps; 751 DWORD dwFXAlphaCaps; 752 DWORD dwPalCaps; 753 DWORD dwSVCaps; 754 DWORD dwAlphaBltConstBitDepths; 755 DWORD dwAlphaBltPixelBitDepths; 756 DWORD dwAlphaBltSurfaceBitDepths; 757 DWORD dwAlphaOverlayConstBitDepths; 758 DWORD dwAlphaOverlayPixelBitDepths; 759 DWORD dwAlphaOverlaySurfaceBitDepths; 760 DWORD dwZBufferBitDepths; 761 DWORD dwVidMemTotal; 762 DWORD dwVidMemFree; 763 DWORD dwMaxVisibleOverlays; 764 DWORD dwCurrVisibleOverlays; 765 DWORD dwNumFourCCCodes; 766 DWORD dwAlignBoundarySrc; 767 DWORD dwAlignSizeSrc; 768 DWORD dwAlignBoundaryDest; 769 DWORD dwAlignSizeDest; 770 DWORD dwAlignStrideAlign; 771 DWORD dwRops[DD_ROP_SPACE]; 772 DDSCAPS ddsCaps; 773 DWORD dwMinOverlayStretch; 774 DWORD dwMaxOverlayStretch; 775 DWORD dwMinLiveVideoStretch; 776 DWORD dwMaxLiveVideoStretch; 777 DWORD dwMinHwCodecStretch; 778 DWORD dwMaxHwCodecStretch; 779 DWORD dwReserved1; 780 DWORD dwReserved2; 781 DWORD dwReserved3; 782} DDCAPS_DX1, *LPDDCAPS_DX1; 783 784typedef struct _DDCAPS_DX3 785{ 786 DWORD dwSize; 787 DWORD dwCaps; 788 DWORD dwCaps2; 789 DWORD dwCKeyCaps; 790 DWORD dwFXCaps; 791 DWORD dwFXAlphaCaps; 792 DWORD dwPalCaps; 793 DWORD dwSVCaps; 794 DWORD dwAlphaBltConstBitDepths; 795 DWORD dwAlphaBltPixelBitDepths; 796 DWORD dwAlphaBltSurfaceBitDepths; 797 DWORD dwAlphaOverlayConstBitDepths; 798 DWORD dwAlphaOverlayPixelBitDepths; 799 DWORD dwAlphaOverlaySurfaceBitDepths; 800 DWORD dwZBufferBitDepths; 801 DWORD dwVidMemTotal; 802 DWORD dwVidMemFree; 803 DWORD dwMaxVisibleOverlays; 804 DWORD dwCurrVisibleOverlays; 805 DWORD dwNumFourCCCodes; 806 DWORD dwAlignBoundarySrc; 807 DWORD dwAlignSizeSrc; 808 DWORD dwAlignBoundaryDest; 809 DWORD dwAlignSizeDest; 810 DWORD dwAlignStrideAlign; 811 DWORD dwRops[DD_ROP_SPACE]; 812 DDSCAPS ddsCaps; 813 DWORD dwMinOverlayStretch; 814 DWORD dwMaxOverlayStretch; 815 DWORD dwMinLiveVideoStretch; 816 DWORD dwMaxLiveVideoStretch; 817 DWORD dwMinHwCodecStretch; 818 DWORD dwMaxHwCodecStretch; 819 DWORD dwReserved1; 820 DWORD dwReserved2; 821 DWORD dwReserved3; 822 DWORD dwSVBCaps; 823 DWORD dwSVBCKeyCaps; 824 DWORD dwSVBFXCaps; 825 DWORD dwSVBRops[DD_ROP_SPACE]; 826 DWORD dwVSBCaps; 827 DWORD dwVSBCKeyCaps; 828 DWORD dwVSBFXCaps; 829 DWORD dwVSBRops[DD_ROP_SPACE]; 830 DWORD dwSSBCaps; 831 DWORD dwSSBCKeyCaps; 832 DWORD dwSSBFXCaps; 833 DWORD dwSSBRops[DD_ROP_SPACE]; 834 DWORD dwReserved4; 835 DWORD dwReserved5; 836 DWORD dwReserved6; 837} DDCAPS_DX3, *LPDDCAPS_DX3; 838 839typedef struct _DDCAPS_DX5 840{ 841 DWORD dwSize; 842 DWORD dwCaps; 843 DWORD dwCaps2; 844 DWORD dwCKeyCaps; 845 DWORD dwFXCaps; 846 DWORD dwFXAlphaCaps; 847 DWORD dwPalCaps; 848 DWORD dwSVCaps; 849 DWORD dwAlphaBltConstBitDepths; 850 DWORD dwAlphaBltPixelBitDepths; 851 DWORD dwAlphaBltSurfaceBitDepths; 852 DWORD dwAlphaOverlayConstBitDepths; 853 DWORD dwAlphaOverlayPixelBitDepths; 854 DWORD dwAlphaOverlaySurfaceBitDepths; 855 DWORD dwZBufferBitDepths; 856 DWORD dwVidMemTotal; 857 DWORD dwVidMemFree; 858 DWORD dwMaxVisibleOverlays; 859 DWORD dwCurrVisibleOverlays; 860 DWORD dwNumFourCCCodes; 861 DWORD dwAlignBoundarySrc; 862 DWORD dwAlignSizeSrc; 863 DWORD dwAlignBoundaryDest; 864 DWORD dwAlignSizeDest; 865 DWORD dwAlignStrideAlign; 866 DWORD dwRops[DD_ROP_SPACE]; 867 DDSCAPS ddsCaps; 868 DWORD dwMinOverlayStretch; 869 DWORD dwMaxOverlayStretch; 870 DWORD dwMinLiveVideoStretch; 871 DWORD dwMaxLiveVideoStretch; 872 DWORD dwMinHwCodecStretch; 873 DWORD dwMaxHwCodecStretch; 874 DWORD dwReserved1; 875 DWORD dwReserved2; 876 DWORD dwReserved3; 877 DWORD dwSVBCaps; 878 DWORD dwSVBCKeyCaps; 879 DWORD dwSVBFXCaps; 880 DWORD dwSVBRops[DD_ROP_SPACE]; 881 DWORD dwVSBCaps; 882 DWORD dwVSBCKeyCaps; 883 DWORD dwVSBFXCaps; 884 DWORD dwVSBRops[DD_ROP_SPACE]; 885 DWORD dwSSBCaps; 886 DWORD dwSSBCKeyCaps; 887 DWORD dwSSBFXCaps; 888 DWORD dwSSBRops[DD_ROP_SPACE]; 889 DWORD dwMaxVideoPorts; 890 DWORD dwCurrVideoPorts; 891 DWORD dwSVBCaps2; 892 DWORD dwNLVBCaps; 893 DWORD dwNLVBCaps2; 894 DWORD dwNLVBCKeyCaps; 895 DWORD dwNLVBFXCaps; 896 DWORD dwNLVBRops[DD_ROP_SPACE]; 897} DDCAPS_DX5, *LPDDCAPS_DX5; 898 899typedef struct _DDCAPS_DX6 900{ 901 DWORD dwSize; 902 DWORD dwCaps; 903 DWORD dwCaps2; 904 DWORD dwCKeyCaps; 905 DWORD dwFXCaps; 906 DWORD dwFXAlphaCaps; 907 DWORD dwPalCaps; 908 DWORD dwSVCaps; 909 DWORD dwAlphaBltConstBitDepths; 910 DWORD dwAlphaBltPixelBitDepths; 911 DWORD dwAlphaBltSurfaceBitDepths; 912 DWORD dwAlphaOverlayConstBitDepths; 913 DWORD dwAlphaOverlayPixelBitDepths; 914 DWORD dwAlphaOverlaySurfaceBitDepths; 915 DWORD dwZBufferBitDepths; 916 DWORD dwVidMemTotal; 917 DWORD dwVidMemFree; 918 DWORD dwMaxVisibleOverlays; 919 DWORD dwCurrVisibleOverlays; 920 DWORD dwNumFourCCCodes; 921 DWORD dwAlignBoundarySrc; 922 DWORD dwAlignSizeSrc; 923 DWORD dwAlignBoundaryDest; 924 DWORD dwAlignSizeDest; 925 DWORD dwAlignStrideAlign; 926 DWORD dwRops[DD_ROP_SPACE]; 927 DDSCAPS ddsOldCaps; 928 DWORD dwMinOverlayStretch; 929 DWORD dwMaxOverlayStretch; 930 DWORD dwMinLiveVideoStretch; 931 DWORD dwMaxLiveVideoStretch; 932 DWORD dwMinHwCodecStretch; 933 DWORD dwMaxHwCodecStretch; 934 DWORD dwReserved1; 935 DWORD dwReserved2; 936 DWORD dwReserved3; 937 DWORD dwSVBCaps; 938 DWORD dwSVBCKeyCaps; 939 DWORD dwSVBFXCaps; 940 DWORD dwSVBRops[DD_ROP_SPACE]; 941 DWORD dwVSBCaps; 942 DWORD dwVSBCKeyCaps; 943 DWORD dwVSBFXCaps; 944 DWORD dwVSBRops[DD_ROP_SPACE]; 945 DWORD dwSSBCaps; 946 DWORD dwSSBCKeyCaps; 947 DWORD dwSSBFXCaps; 948 DWORD dwSSBRops[DD_ROP_SPACE]; 949 DWORD dwMaxVideoPorts; 950 DWORD dwCurrVideoPorts; 951 DWORD dwSVBCaps2; 952 DWORD dwNLVBCaps; 953 DWORD dwNLVBCaps2; 954 DWORD dwNLVBCKeyCaps; 955 DWORD dwNLVBFXCaps; 956 DWORD dwNLVBRops[DD_ROP_SPACE]; 957 DDSCAPS2 ddsCaps; 958} DDCAPS_DX6, *LPDDCAPS_DX6; 959 960typedef struct _DDCAPS_DX7 961{ 962 DWORD dwSize; 963 DWORD dwCaps; 964 DWORD dwCaps2; 965 DWORD dwCKeyCaps; 966 DWORD dwFXCaps; 967 DWORD dwFXAlphaCaps; 968 DWORD dwPalCaps; 969 DWORD dwSVCaps; 970 DWORD dwAlphaBltConstBitDepths; 971 DWORD dwAlphaBltPixelBitDepths; 972 DWORD dwAlphaBltSurfaceBitDepths; 973 DWORD dwAlphaOverlayConstBitDepths; 974 DWORD dwAlphaOverlayPixelBitDepths; 975 DWORD dwAlphaOverlaySurfaceBitDepths; 976 DWORD dwZBufferBitDepths; 977 DWORD dwVidMemTotal; 978 DWORD dwVidMemFree; 979 DWORD dwMaxVisibleOverlays; 980 DWORD dwCurrVisibleOverlays; 981 DWORD dwNumFourCCCodes; 982 DWORD dwAlignBoundarySrc; 983 DWORD dwAlignSizeSrc; 984 DWORD dwAlignBoundaryDest; 985 DWORD dwAlignSizeDest; 986 DWORD dwAlignStrideAlign; 987 DWORD dwRops[DD_ROP_SPACE]; 988 DDSCAPS ddsOldCaps; 989 DWORD dwMinOverlayStretch; 990 DWORD dwMaxOverlayStretch; 991 DWORD dwMinLiveVideoStretch; 992 DWORD dwMaxLiveVideoStretch; 993 DWORD dwMinHwCodecStretch; 994 DWORD dwMaxHwCodecStretch; 995 DWORD dwReserved1; 996 DWORD dwReserved2; 997 DWORD dwReserved3; 998 DWORD dwSVBCaps; 999 DWORD dwSVBCKeyCaps; 1000 DWORD dwSVBFXCaps; 1001 DWORD dwSVBRops[DD_ROP_SPACE]; 1002 DWORD dwVSBCaps; 1003 DWORD dwVSBCKeyCaps; 1004 DWORD dwVSBFXCaps; 1005 DWORD dwVSBRops[DD_ROP_SPACE]; 1006 DWORD dwSSBCaps; 1007 DWORD dwSSBCKeyCaps; 1008 DWORD dwSSBFXCaps; 1009 DWORD dwSSBRops[DD_ROP_SPACE]; 1010 DWORD dwMaxVideoPorts; 1011 DWORD dwCurrVideoPorts; 1012 DWORD dwSVBCaps2; 1013 DWORD dwNLVBCaps; 1014 DWORD dwNLVBCaps2; 1015 DWORD dwNLVBCKeyCaps; 1016 DWORD dwNLVBFXCaps; 1017 DWORD dwNLVBRops[DD_ROP_SPACE]; 1018 DDSCAPS2 ddsCaps; 1019} DDCAPS_DX7, *LPDDCAPS_DX7; 1020 1021#if DIRECTDRAW_VERSION<=0x300 1022 typedef DDCAPS_DX3 DDCAPS; 1023#elif DIRECTDRAW_VERSION<=0x500 1024 typedef DDCAPS_DX5 DDCAPS; 1025#elif DIRECTDRAW_VERSION<=0x600 1026 typedef DDCAPS_DX6 DDCAPS; 1027#else 1028 typedef DDCAPS_DX7 DDCAPS; 1029#endif 1030typedef DDCAPS *LPDDCAPS; 1031 1032 1033typedef struct _DDCOLORCONTROL 1034{ 1035 DWORD dwSize; 1036 DWORD dwFlags; 1037 LONG lBrightness; 1038 LONG lContrast; 1039 LONG lHue; 1040 LONG lSaturation; 1041 LONG lSharpness; 1042 LONG lGamma; 1043 LONG lColorEnable; 1044 DWORD dwReserved1; 1045} DDCOLORCONTROL, *LPDDCOLORCONTROL; 1046 1047typedef struct _DDCOLORKEY 1048{ 1049 DWORD dwColorSpaceLowValue; 1050 DWORD dwColorSpaceHighValue; 1051 1052} DDCOLORKEY, *LPDDCOLORKEY; 1053 1054typedef struct _DDOSCAPS 1055{ 1056 DWORD dwCaps; 1057} DDOSCAPS, *LPDDOSCAPS; 1058 1059typedef struct _DDSCAPSEX 1060{ 1061 DWORD dwCaps2; 1062 DWORD dwCaps3; 1063 union 1064 { 1065 DWORD dwCaps4; 1066 DWORD dwVolumeDepth; 1067 } DUMMYUNIONNAMEN(1); 1068} DDSCAPSEX, *LPDDSCAPSEX; 1069 1070typedef struct _DDPIXELFORMAT 1071{ 1072 DWORD dwSize; 1073 DWORD dwFlags; 1074 DWORD dwFourCC; 1075 union 1076 { 1077 DWORD dwRGBBitCount; 1078 DWORD dwYUVBitCount; 1079 DWORD dwZBufferBitDepth; 1080 DWORD dwAlphaBitDepth; 1081 DWORD dwLuminanceBitCount; 1082 DWORD dwBumpBitCount; 1083 DWORD dwPrivateFormatBitCount; 1084 } DUMMYUNIONNAMEN(1); 1085 union 1086 { 1087 DWORD dwRBitMask; 1088 DWORD dwYBitMask; 1089 DWORD dwStencilBitDepth; 1090 DWORD dwLuminanceBitMask; 1091 DWORD dwBumpDuBitMask; 1092 DWORD dwOperations; 1093 } DUMMYUNIONNAMEN(2); 1094 union 1095 { 1096 DWORD dwGBitMask; 1097 DWORD dwUBitMask; 1098 DWORD dwZBitMask; 1099 DWORD dwBumpDvBitMask; 1100 struct 1101 { 1102 WORD wFlipMSTypes; 1103 WORD wBltMSTypes; 1104 } MultiSampleCaps; 1105 } DUMMYUNIONNAMEN(3); 1106 union 1107 { 1108 DWORD dwBBitMask; 1109 DWORD dwVBitMask; 1110 DWORD dwStencilBitMask; 1111 DWORD dwBumpLuminanceBitMask; 1112 } DUMMYUNIONNAMEN(4); 1113 union 1114 { 1115 DWORD dwRGBAlphaBitMask; 1116 DWORD dwYUVAlphaBitMask; 1117 DWORD dwLuminanceAlphaBitMask; 1118 DWORD dwRGBZBitMask; 1119 DWORD dwYUVZBitMask; 1120 } DUMMYUNIONNAMEN(5); 1121} DDPIXELFORMAT, *LPDDPIXELFORMAT; 1122 1123typedef struct _DDSURFACEDESC 1124{ 1125 DWORD dwSize; 1126 DWORD dwFlags; 1127 DWORD dwHeight; 1128 DWORD dwWidth; 1129 union 1130 { 1131 LONG lPitch; 1132 DWORD dwLinearSize; 1133 } DUMMYUNIONNAMEN(1); 1134 DWORD dwBackBufferCount; 1135 union 1136 { 1137 DWORD dwMipMapCount; 1138 DWORD dwZBufferBitDepth; 1139 DWORD dwRefreshRate; 1140 } DUMMYUNIONNAMEN(2); 1141 DWORD dwAlphaBitDepth; 1142 DWORD dwReserved; 1143 LPVOID lpSurface; 1144 DDCOLORKEY ddckCKDestOverlay; 1145 DDCOLORKEY ddckCKDestBlt; 1146 DDCOLORKEY ddckCKSrcOverlay; 1147 DDCOLORKEY ddckCKSrcBlt; 1148 DDPIXELFORMAT ddpfPixelFormat; 1149 DDSCAPS ddsCaps; 1150} DDSURFACEDESC, *LPDDSURFACEDESC; 1151 1152typedef struct _DDSURFACEDESC2 1153{ 1154 DWORD dwSize; 1155 DWORD dwFlags; 1156 DWORD dwHeight; 1157 DWORD dwWidth; 1158 union 1159 { 1160 LONG lPitch; 1161 DWORD dwLinearSize; 1162 } DUMMYUNIONNAMEN(1); 1163 union 1164 { 1165 DWORD dwBackBufferCount; 1166 DWORD dwDepth; 1167 } DUMMYUNIONNAMEN(5); 1168 union 1169 { 1170 DWORD dwMipMapCount; 1171 DWORD dwRefreshRate; 1172 DWORD dwSrcVBHandle; 1173 } DUMMYUNIONNAMEN(2); 1174 DWORD dwAlphaBitDepth; 1175 DWORD dwReserved; 1176 LPVOID lpSurface; 1177 union 1178 { 1179 DDCOLORKEY ddckCKDestOverlay; 1180 DWORD dwEmptyFaceColor; 1181 } DUMMYUNIONNAMEN(3); 1182 DDCOLORKEY ddckCKDestBlt; 1183 DDCOLORKEY ddckCKSrcOverlay; 1184 DDCOLORKEY ddckCKSrcBlt; 1185 union 1186 { 1187 DDPIXELFORMAT ddpfPixelFormat; 1188 DWORD dwFVF; 1189 } DUMMYUNIONNAMEN(4); 1190 DDSCAPS2 ddsCaps; 1191 DWORD dwTextureStage; 1192} DDSURFACEDESC2, *LPDDSURFACEDESC2; 1193 1194typedef struct _DDOPTSURFACEDESC 1195{ 1196 DWORD dwSize; 1197 DWORD dwFlags; 1198 DDSCAPS2 ddSCaps; 1199 DDOSCAPS ddOSCaps; 1200 GUID guid; 1201 DWORD dwCompressionRatio; 1202} DDOPTSURFACEDESC; 1203 1204typedef struct _DDARGB 1205{ 1206 BYTE blue; 1207 BYTE green; 1208 BYTE red; 1209 BYTE alpha; 1210} DDARGB, *LPDDARGB; 1211 1212typedef struct _DDRGBA 1213{ 1214 BYTE red; 1215 BYTE green; 1216 BYTE blue; 1217 BYTE alpha; 1218} DDRGBA, *LPDDRGBA; 1219 1220 1221#if (defined (WIN32) || defined( _WIN32 ) ) && !defined( _NO_COM ) 1222 typedef BOOL (WINAPI *LPDDENUMCALLBACKA)(GUID *, LPSTR, LPSTR, LPVOID); 1223 typedef BOOL (WINAPI *LPDDENUMCALLBACKW)(GUID *, LPWSTR, LPWSTR, LPVOID); 1224 extern HRESULT WINAPI DirectDrawEnumerateW( LPDDENUMCALLBACKW lpCallback, LPVOID lpContext ); 1225 extern HRESULT WINAPI DirectDrawEnumerateA( LPDDENUMCALLBACKA lpCallback, LPVOID lpContext ); 1226 1227 #if !defined(HMONITOR_DECLARED) && (WINVER < 0x0500) 1228 #define HMONITOR_DECLARED 1229 DECLARE_HANDLE(HMONITOR); 1230 #endif 1231 1232 typedef BOOL (WINAPI *LPDDENUMCALLBACKEXA)(GUID *, LPSTR, LPSTR, LPVOID, HMONITOR); 1233 typedef BOOL (WINAPI *LPDDENUMCALLBACKEXW)(GUID *, LPWSTR, LPWSTR, LPVOID, HMONITOR); 1234 1235 extern HRESULT WINAPI DirectDrawEnumerateExW( LPDDENUMCALLBACKEXW lpCallback, LPVOID lpContext, DWORD dwFlags); 1236 extern HRESULT WINAPI DirectDrawEnumerateExA( LPDDENUMCALLBACKEXA lpCallback, LPVOID lpContext, DWORD dwFlags); 1237 1238 typedef HRESULT (WINAPI * LPDIRECTDRAWENUMERATEEXA)( LPDDENUMCALLBACKEXA lpCallback, LPVOID lpContext, DWORD dwFlags); 1239 typedef HRESULT (WINAPI * LPDIRECTDRAWENUMERATEEXW)( LPDDENUMCALLBACKEXW lpCallback, LPVOID lpContext, DWORD dwFlags); 1240 1241 #ifdef UNICODE 1242 typedef LPDDENUMCALLBACKW LPDDENUMCALLBACK; 1243 #define DirectDrawEnumerate DirectDrawEnumerateW 1244 typedef LPDDENUMCALLBACKEXW LPDDENUMCALLBACKEX; 1245 typedef LPDIRECTDRAWENUMERATEEXW LPDIRECTDRAWENUMERATEEX; 1246 #define DirectDrawEnumerateEx DirectDrawEnumerateExW 1247 #else 1248 typedef LPDDENUMCALLBACKA LPDDENUMCALLBACK; 1249 #define DirectDrawEnumerate DirectDrawEnumerateA 1250 typedef LPDDENUMCALLBACKEXA LPDDENUMCALLBACKEX; 1251 typedef LPDIRECTDRAWENUMERATEEXA LPDIRECTDRAWENUMERATEEX; 1252 #define DirectDrawEnumerateEx DirectDrawEnumerateExA 1253 #endif 1254 extern HRESULT WINAPI DirectDrawCreate(GUID *lpGUID,LPDIRECTDRAW *lplpDD, IUnknown *pUnkOuter ); 1255 extern HRESULT WINAPI DirectDrawCreateEx(GUID * lpGuid,LPVOID *lplpDD,REFIID iid,IUnknown *pUnkOuter ); 1256 extern HRESULT WINAPI DirectDrawCreateClipper(DWORD dwFlags,LPDIRECTDRAWCLIPPER *lplpDDClipper,IUnknown *pUnkOuter ); 1257#endif 1258 1259 1260typedef HRESULT (WINAPI *LPDDENUMMODESCALLBACK)(LPDDSURFACEDESC, LPVOID); 1261typedef HRESULT (WINAPI *LPDDENUMMODESCALLBACK2)(LPDDSURFACEDESC2, LPVOID); 1262typedef HRESULT (WINAPI *LPDDENUMSURFACESCALLBACK)(LPDIRECTDRAWSURFACE, LPDDSURFACEDESC, LPVOID); 1263typedef HRESULT (WINAPI *LPDDENUMSURFACESCALLBACK2)(LPDIRECTDRAWSURFACE4, LPDDSURFACEDESC2, LPVOID); 1264typedef HRESULT (WINAPI *LPDDENUMSURFACESCALLBACK7)(LPDIRECTDRAWSURFACE7, LPDDSURFACEDESC2, LPVOID); 1265 1266typedef DWORD (*LPCLIPPERCALLBACK)(LPDIRECTDRAWCLIPPER lpDDClipper, HWND hWnd, DWORD code, LPVOID lpContext ); 1267#ifdef STREAMING 1268typedef DWORD (*LPSURFACESTREAMINGCALLBACK)(DWORD); 1269#endif 1270 1271 1272typedef struct _DDBLTFX 1273{ 1274 DWORD dwSize; 1275 DWORD dwDDFX; 1276 DWORD dwROP; 1277 DWORD dwDDROP; 1278 DWORD dwRotationAngle; 1279 DWORD dwZBufferOpCode; 1280 DWORD dwZBufferLow; 1281 DWORD dwZBufferHigh; 1282 DWORD dwZBufferBaseDest; 1283 DWORD dwZDestConstBitDepth; 1284 union 1285 { 1286 DWORD dwZDestConst; 1287 LPDIRECTDRAWSURFACE lpDDSZBufferDest; 1288 } DUMMYUNIONNAMEN(1); 1289 DWORD dwZSrcConstBitDepth; 1290 union 1291 { 1292 DWORD dwZSrcConst; 1293 LPDIRECTDRAWSURFACE lpDDSZBufferSrc; 1294 } DUMMYUNIONNAMEN(2); 1295 DWORD dwAlphaEdgeBlendBitDepth; 1296 DWORD dwAlphaEdgeBlend; 1297 DWORD dwReserved; 1298 DWORD dwAlphaDestConstBitDepth; 1299 union 1300 { 1301 DWORD dwAlphaDestConst; 1302 LPDIRECTDRAWSURFACE lpDDSAlphaDest; 1303 } DUMMYUNIONNAMEN(3); 1304 DWORD dwAlphaSrcConstBitDepth; 1305 union 1306 { 1307 DWORD dwAlphaSrcConst; 1308 LPDIRECTDRAWSURFACE lpDDSAlphaSrc; 1309 } DUMMYUNIONNAMEN(4); 1310 union 1311 { 1312 DWORD dwFillColor; 1313 DWORD dwFillDepth; 1314 DWORD dwFillPixel; 1315 LPDIRECTDRAWSURFACE lpDDSPattern; 1316 } DUMMYUNIONNAMEN(5); 1317 DDCOLORKEY ddckDestColorkey; 1318 DDCOLORKEY ddckSrcColorkey; 1319} DDBLTFX, *LPDDBLTFX; 1320 1321typedef struct _DDGAMMARAMP 1322{ 1323 WORD red[256]; 1324 WORD green[256]; 1325 WORD blue[256]; 1326} DDGAMMARAMP, *LPDDGAMMARAMP; 1327 1328typedef struct tagDDDEVICEIDENTIFIER 1329{ 1330 char szDriver[MAX_DDDEVICEID_STRING]; 1331 char szDescription[MAX_DDDEVICEID_STRING]; 1332#ifdef _WIN32 1333 LARGE_INTEGER liDriverVersion; 1334#else 1335 DWORD dwDriverVersionLowPart; 1336 DWORD dwDriverVersionHighPart; 1337#endif 1338 DWORD dwVendorId; 1339 DWORD dwDeviceId; 1340 DWORD dwSubSysId; 1341 DWORD dwRevision; 1342 GUID guidDeviceIdentifier; 1343} DDDEVICEIDENTIFIER, * LPDDDEVICEIDENTIFIER; 1344 1345typedef struct tagDDDEVICEIDENTIFIER2 1346{ 1347 char szDriver[MAX_DDDEVICEID_STRING]; 1348 char szDescription[MAX_DDDEVICEID_STRING]; 1349#ifdef _WIN32 1350 LARGE_INTEGER liDriverVersion; 1351#else 1352 DWORD dwDriverVersionLowPart; 1353 DWORD dwDriverVersionHighPart; 1354#endif 1355 DWORD dwVendorId; 1356 DWORD dwDeviceId; 1357 DWORD dwSubSysId; 1358 DWORD dwRevision; 1359 GUID guidDeviceIdentifier; 1360 DWORD dwWHQLLevel; 1361} DDDEVICEIDENTIFIER2, *LPDDDEVICEIDENTIFIER2; 1362 1363typedef struct _DDBLTBATCH 1364{ 1365 LPRECT lprDest; 1366 LPDIRECTDRAWSURFACE lpDDSSrc; 1367 LPRECT lprSrc; 1368 DWORD dwFlags; 1369 LPDDBLTFX lpDDBltFx; 1370} DDBLTBATCH, *LPDDBLTBATCH; 1371 1372typedef struct _DDOVERLAYFX 1373{ 1374 DWORD dwSize; 1375 DWORD dwAlphaEdgeBlendBitDepth; 1376 DWORD dwAlphaEdgeBlend; 1377 DWORD dwReserved; 1378 DWORD dwAlphaDestConstBitDepth; 1379 union 1380 { 1381 DWORD dwAlphaDestConst; 1382 LPDIRECTDRAWSURFACE lpDDSAlphaDest; 1383 } DUMMYUNIONNAMEN(1); 1384 DWORD dwAlphaSrcConstBitDepth; 1385 union 1386 { 1387 DWORD dwAlphaSrcConst; 1388 LPDIRECTDRAWSURFACE lpDDSAlphaSrc; 1389 } DUMMYUNIONNAMEN(2); 1390 DDCOLORKEY dckDestColorkey; 1391 DDCOLORKEY dckSrcColorkey; 1392 DWORD dwDDFX; 1393 DWORD dwFlags; 1394} DDOVERLAYFX, *LPDDOVERLAYFX; 1395 1396 1397 1398#if defined( _WIN32 ) && !defined( _NO_COM ) 1399 #undef INTERFACE 1400 #define INTERFACE IDirectDraw 1401 1402 DECLARE_INTERFACE_( IDirectDraw, IUnknown ) 1403 { 1404 STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID *ppvObj) PURE; 1405 STDMETHOD_(ULONG,AddRef) (THIS) PURE; 1406 STDMETHOD_(ULONG,Release) (THIS) PURE; 1407 1408 STDMETHOD(Compact)(THIS) PURE; 1409 STDMETHOD(CreateClipper)(THIS_ DWORD, LPDIRECTDRAWCLIPPER *, IUnknown * ) PURE; 1410 STDMETHOD(CreatePalette)(THIS_ DWORD, LPPALETTEENTRY, LPDIRECTDRAWPALETTE *, IUnknown * ) PURE; 1411 STDMETHOD(CreateSurface)(THIS_ LPDDSURFACEDESC, LPDIRECTDRAWSURFACE *, IUnknown *) PURE; 1412 STDMETHOD(DuplicateSurface)( THIS_ LPDIRECTDRAWSURFACE, LPDIRECTDRAWSURFACE * ) PURE; 1413 STDMETHOD(EnumDisplayModes)( THIS_ DWORD, LPDDSURFACEDESC, LPVOID, LPDDENUMMODESCALLBACK ) PURE; 1414 STDMETHOD(EnumSurfaces)(THIS_ DWORD, LPDDSURFACEDESC, LPVOID,LPDDENUMSURFACESCALLBACK ) PURE; 1415 STDMETHOD(FlipToGDISurface)(THIS) PURE; 1416 STDMETHOD(GetCaps)( THIS_ LPDDCAPS, LPDDCAPS) PURE; 1417 STDMETHOD(GetDisplayMode)( THIS_ LPDDSURFACEDESC) PURE; 1418 STDMETHOD(GetFourCCCodes)(THIS_ LPDWORD, LPDWORD ) PURE; 1419 STDMETHOD(GetGDISurface)(THIS_ LPDIRECTDRAWSURFACE *) PURE; 1420 STDMETHOD(GetMonitorFrequency)(THIS_ LPDWORD) PURE; 1421 STDMETHOD(GetScanLine)(THIS_ LPDWORD) PURE; 1422 STDMETHOD(GetVerticalBlankStatus)(THIS_ LPBOOL ) PURE; 1423 STDMETHOD(Initialize)(THIS_ GUID *) PURE; 1424 STDMETHOD(RestoreDisplayMode)(THIS) PURE; 1425 STDMETHOD(SetCooperativeLevel)(THIS_ HWND, DWORD) PURE; 1426 STDMETHOD(SetDisplayMode)(THIS_ DWORD, DWORD,DWORD) PURE; 1427 STDMETHOD(WaitForVerticalBlank)(THIS_ DWORD, HANDLE ) PURE; 1428 }; 1429 1430 #if !defined(__cplusplus) || defined(CINTERFACE) 1431 #define IDirectDraw_QueryInterface(p, a, b) (p)->lpVtbl->QueryInterface(p, a, b) 1432 #define IDirectDraw_AddRef(p) (p)->lpVtbl->AddRef(p) 1433 #define IDirectDraw_Release(p) (p)->lpVtbl->Release(p) 1434 #define IDirectDraw_Compact(p) (p)->lpVtbl->Compact(p) 1435 #define IDirectDraw_CreateClipper(p, a, b, c) (p)->lpVtbl->CreateClipper(p, a, b, c) 1436 #define IDirectDraw_CreatePalette(p, a, b, c, d) (p)->lpVtbl->CreatePalette(p, a, b, c, d) 1437 #define IDirectDraw_CreateSurface(p, a, b, c) (p)->lpVtbl->CreateSurface(p, a, b, c) 1438 #define IDirectDraw_DuplicateSurface(p, a, b) (p)->lpVtbl->DuplicateSurface(p, a, b) 1439 #define IDirectDraw_EnumDisplayModes(p, a, b, c, d) (p)->lpVtbl->EnumDisplayModes(p, a, b, c, d) 1440 #define IDirectDraw_EnumSurfaces(p, a, b, c, d) (p)->lpVtbl->EnumSurfaces(p, a, b, c, d) 1441 #define IDirectDraw_FlipToGDISurface(p) (p)->lpVtbl->FlipToGDISurface(p) 1442 #define IDirectDraw_GetCaps(p, a, b) (p)->lpVtbl->GetCaps(p, a, b) 1443 #define IDirectDraw_GetDisplayMode(p, a) (p)->lpVtbl->GetDisplayMode(p, a) 1444 #define IDirectDraw_GetFourCCCodes(p, a, b) (p)->lpVtbl->GetFourCCCodes(p, a, b) 1445 #define IDirectDraw_GetGDISurface(p, a) (p)->lpVtbl->GetGDISurface(p, a) 1446 #define IDirectDraw_GetMonitorFrequency(p, a) (p)->lpVtbl->GetMonitorFrequency(p, a) 1447 #define IDirectDraw_GetScanLine(p, a) (p)->lpVtbl->GetScanLine(p, a) 1448 #define IDirectDraw_GetVerticalBlankStatus(p, a) (p)->lpVtbl->GetVerticalBlankStatus(p, a) 1449 #define IDirectDraw_Initialize(p, a) (p)->lpVtbl->Initialize(p, a) 1450 #define IDirectDraw_RestoreDisplayMode(p) (p)->lpVtbl->RestoreDisplayMode(p) 1451 #define IDirectDraw_SetCooperativeLevel(p, a, b) (p)->lpVtbl->SetCooperativeLevel(p, a, b) 1452 #define IDirectDraw_SetDisplayMode(p, a, b, c) (p)->lpVtbl->SetDisplayMode(p, a, b, c) 1453 #define IDirectDraw_WaitForVerticalBlank(p, a, b) (p)->lpVtbl->WaitForVerticalBlank(p, a, b) 1454 #else 1455 #define IDirectDraw_QueryInterface(p, a, b) (p)->QueryInterface(a, b) 1456 #define IDirectDraw_AddRef(p) (p)->AddRef() 1457 #define IDirectDraw_Release(p) (p)->Release() 1458 #define IDirectDraw_Compact(p) (p)->Compact() 1459 #define IDirectDraw_CreateClipper(p, a, b, c) (p)->CreateClipper(a, b, c) 1460 #define IDirectDraw_CreatePalette(p, a, b, c, d) (p)->CreatePalette(a, b, c, d) 1461 #define IDirectDraw_CreateSurface(p, a, b, c) (p)->CreateSurface(a, b, c) 1462 #define IDirectDraw_DuplicateSurface(p, a, b) (p)->DuplicateSurface(a, b) 1463 #define IDirectDraw_EnumDisplayModes(p, a, b, c, d) (p)->EnumDisplayModes(a, b, c, d) 1464 #define IDirectDraw_EnumSurfaces(p, a, b, c, d) (p)->EnumSurfaces(a, b, c, d) 1465 #define IDirectDraw_FlipToGDISurface(p) (p)->FlipToGDISurface() 1466 #define IDirectDraw_GetCaps(p, a, b) (p)->GetCaps(a, b) 1467 #define IDirectDraw_GetDisplayMode(p, a) (p)->GetDisplayMode(a) 1468 #define IDirectDraw_GetFourCCCodes(p, a, b) (p)->GetFourCCCodes(a, b) 1469 #define IDirectDraw_GetGDISurface(p, a) (p)->GetGDISurface(a) 1470 #define IDirectDraw_GetMonitorFrequency(p, a) (p)->GetMonitorFrequency(a) 1471 #define IDirectDraw_GetScanLine(p, a) (p)->GetScanLine(a) 1472 #define IDirectDraw_GetVerticalBlankStatus(p, a) (p)->GetVerticalBlankStatus(a) 1473 #define IDirectDraw_Initialize(p, a) (p)->Initialize(a) 1474 #define IDirectDraw_RestoreDisplayMode(p) (p)->RestoreDisplayMode() 1475 #define IDirectDraw_SetCooperativeLevel(p, a, b) (p)->SetCooperativeLevel(a, b) 1476 #define IDirectDraw_SetDisplayMode(p, a, b, c) (p)->SetDisplayMode(a, b, c) 1477 #define IDirectDraw_WaitForVerticalBlank(p, a, b) (p)->WaitForVerticalBlank(a, b) 1478 #endif 1479#endif 1480 1481#if defined( _WIN32 ) && !defined( _NO_COM ) 1482 #undef INTERFACE 1483 #define INTERFACE IDirectDraw2 1484 DECLARE_INTERFACE_( IDirectDraw2, IUnknown ) 1485 { 1486 STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID * ppvObj) PURE; 1487 STDMETHOD_(ULONG,AddRef) (THIS) PURE; 1488 STDMETHOD_(ULONG,Release) (THIS) PURE; 1489 STDMETHOD(Compact)(THIS) PURE; 1490 STDMETHOD(CreateClipper)(THIS_ DWORD, LPDIRECTDRAWCLIPPER *, IUnknown * ) PURE; 1491 STDMETHOD(CreatePalette)(THIS_ DWORD, LPPALETTEENTRY, LPDIRECTDRAWPALETTE *, IUnknown * ) PURE; 1492 STDMETHOD(CreateSurface)(THIS_ LPDDSURFACEDESC, LPDIRECTDRAWSURFACE *, IUnknown *) PURE; 1493 STDMETHOD(DuplicateSurface)( THIS_ LPDIRECTDRAWSURFACE, LPDIRECTDRAWSURFACE * ) PURE; 1494 STDMETHOD(EnumDisplayModes)( THIS_ DWORD, LPDDSURFACEDESC, LPVOID, LPDDENUMMODESCALLBACK ) PURE; 1495 STDMETHOD(EnumSurfaces)(THIS_ DWORD, LPDDSURFACEDESC, LPVOID,LPDDENUMSURFACESCALLBACK ) PURE; 1496 STDMETHOD(FlipToGDISurface)(THIS) PURE; 1497 STDMETHOD(GetCaps)( THIS_ LPDDCAPS, LPDDCAPS) PURE; 1498 STDMETHOD(GetDisplayMode)( THIS_ LPDDSURFACEDESC) PURE; 1499 STDMETHOD(GetFourCCCodes)(THIS_ LPDWORD, LPDWORD ) PURE; 1500 STDMETHOD(GetGDISurface)(THIS_ LPDIRECTDRAWSURFACE *) PURE; 1501 STDMETHOD(GetMonitorFrequency)(THIS_ LPDWORD) PURE; 1502 STDMETHOD(GetScanLine)(THIS_ LPDWORD) PURE; 1503 STDMETHOD(GetVerticalBlankStatus)(THIS_ LPBOOL ) PURE; 1504 STDMETHOD(Initialize)(THIS_ GUID *) PURE; 1505 STDMETHOD(RestoreDisplayMode)(THIS) PURE; 1506 STDMETHOD(SetCooperativeLevel)(THIS_ HWND, DWORD) PURE; 1507 STDMETHOD(SetDisplayMode)(THIS_ DWORD, DWORD,DWORD, DWORD, DWORD) PURE; 1508 STDMETHOD(WaitForVerticalBlank)(THIS_ DWORD, HANDLE ) PURE; 1509 STDMETHOD(GetAvailableVidMem)(THIS_ LPDDSCAPS, LPDWORD, LPDWORD) PURE; 1510 }; 1511 1512 #if !defined(__cplusplus) || defined(CINTERFACE) 1513 #define IDirectDraw2_QueryInterface(p, a, b) (p)->lpVtbl->QueryInterface(p, a, b) 1514 #define IDirectDraw2_AddRef(p) (p)->lpVtbl->AddRef(p) 1515 #define IDirectDraw2_Release(p) (p)->lpVtbl->Release(p) 1516 #define IDirectDraw2_Compact(p) (p)->lpVtbl->Compact(p) 1517 #define IDirectDraw2_CreateClipper(p, a, b, c) (p)->lpVtbl->CreateClipper(p, a, b, c) 1518 #define IDirectDraw2_CreatePalette(p, a, b, c, d) (p)->lpVtbl->CreatePalette(p, a, b, c, d) 1519 #define IDirectDraw2_CreateSurface(p, a, b, c) (p)->lpVtbl->CreateSurface(p, a, b, c) 1520 #define IDirectDraw2_DuplicateSurface(p, a, b) (p)->lpVtbl->DuplicateSurface(p, a, b) 1521 #define IDirectDraw2_EnumDisplayModes(p, a, b, c, d) (p)->lpVtbl->EnumDisplayModes(p, a, b, c, d) 1522 #define IDirectDraw2_EnumSurfaces(p, a, b, c, d) (p)->lpVtbl->EnumSurfaces(p, a, b, c, d) 1523 #define IDirectDraw2_FlipToGDISurface(p) (p)->lpVtbl->FlipToGDISurface(p) 1524 #define IDirectDraw2_GetCaps(p, a, b) (p)->lpVtbl->GetCaps(p, a, b) 1525 #define IDirectDraw2_GetDisplayMode(p, a) (p)->lpVtbl->GetDisplayMode(p, a) 1526 #define IDirectDraw2_GetFourCCCodes(p, a, b) (p)->lpVtbl->GetFourCCCodes(p, a, b) 1527 #define IDirectDraw2_GetGDISurface(p, a) (p)->lpVtbl->GetGDISurface(p, a) 1528 #define IDirectDraw2_GetMonitorFrequency(p, a) (p)->lpVtbl->GetMonitorFrequency(p, a) 1529 #define IDirectDraw2_GetScanLine(p, a) (p)->lpVtbl->GetScanLine(p, a) 1530 #define IDirectDraw2_GetVerticalBlankStatus(p, a) (p)->lpVtbl->GetVerticalBlankStatus(p, a) 1531 #define IDirectDraw2_Initialize(p, a) (p)->lpVtbl->Initialize(p, a) 1532 #define IDirectDraw2_RestoreDisplayMode(p) (p)->lpVtbl->RestoreDisplayMode(p) 1533 #define IDirectDraw2_SetCooperativeLevel(p, a, b) (p)->lpVtbl->SetCooperativeLevel(p, a, b) 1534 #define IDirectDraw2_SetDisplayMode(p, a, b, c, d, e) (p)->lpVtbl->SetDisplayMode(p, a, b, c, d, e) 1535 #define IDirectDraw2_WaitForVerticalBlank(p, a, b) (p)->lpVtbl->WaitForVerticalBlank(p, a, b) 1536 #define IDirectDraw2_GetAvailableVidMem(p, a, b, c) (p)->lpVtbl->GetAvailableVidMem(p, a, b, c) 1537 #else 1538 #define IDirectDraw2_QueryInterface(p, a, b) (p)->QueryInterface(a, b) 1539 #define IDirectDraw2_AddRef(p) (p)->AddRef() 1540 #define IDirectDraw2_Release(p) (p)->Release() 1541 #define IDirectDraw2_Compact(p) (p)->Compact() 1542 #define IDirectDraw2_CreateClipper(p, a, b, c) (p)->CreateClipper(a, b, c) 1543 #define IDirectDraw2_CreatePalette(p, a, b, c, d) (p)->CreatePalette(a, b, c, d) 1544 #define IDirectDraw2_CreateSurface(p, a, b, c) (p)->CreateSurface(a, b, c) 1545 #define IDirectDraw2_DuplicateSurface(p, a, b) (p)->DuplicateSurface(a, b) 1546 #define IDirectDraw2_EnumDisplayModes(p, a, b, c, d) (p)->EnumDisplayModes(a, b, c, d) 1547 #define IDirectDraw2_EnumSurfaces(p, a, b, c, d) (p)->EnumSurfaces(a, b, c, d) 1548 #define IDirectDraw2_FlipToGDISurface(p) (p)->FlipToGDISurface() 1549 #define IDirectDraw2_GetCaps(p, a, b) (p)->GetCaps(a, b) 1550 #define IDirectDraw2_GetDisplayMode(p, a) (p)->GetDisplayMode(a) 1551 #define IDirectDraw2_GetFourCCCodes(p, a, b) (p)->GetFourCCCodes(a, b) 1552 #define IDirectDraw2_GetGDISurface(p, a) (p)->GetGDISurface(a) 1553 #define IDirectDraw2_GetMonitorFrequency(p, a) (p)->GetMonitorFrequency(a) 1554 #define IDirectDraw2_GetScanLine(p, a) (p)->GetScanLine(a) 1555 #define IDirectDraw2_GetVerticalBlankStatus(p, a) (p)->GetVerticalBlankStatus(a) 1556 #define IDirectDraw2_Initialize(p, a) (p)->Initialize(a) 1557 #define IDirectDraw2_RestoreDisplayMode(p) (p)->RestoreDisplayMode() 1558 #define IDirectDraw2_SetCooperativeLevel(p, a, b) (p)->SetCooperativeLevel(a, b) 1559 #define IDirectDraw2_SetDisplayMode(p, a, b, c, d, e) (p)->SetDisplayMode(a, b, c, d, e) 1560 #define IDirectDraw2_WaitForVerticalBlank(p, a, b) (p)->WaitForVerticalBlank(a, b) 1561 #define IDirectDraw2_GetAvailableVidMem(p, a, b, c) (p)->GetAvailableVidMem(a, b, c) 1562 #endif 1563#endif 1564 1565#if defined( _WIN32 ) && !defined( _NO_COM ) 1566 #undef INTERFACE 1567 #define INTERFACE IDirectDraw3 1568 DECLARE_INTERFACE_(IDirectDraw3,IUnknown) 1569 { 1570 STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID * ppvObj) PURE; 1571 STDMETHOD_(ULONG,AddRef) (THIS) PURE; 1572 STDMETHOD_(ULONG,Release) (THIS) PURE; 1573 STDMETHOD(Compact)(THIS) PURE; 1574 STDMETHOD(CreateClipper)(THIS_ DWORD, LPDIRECTDRAWCLIPPER *, IUnknown * ) PURE; 1575 STDMETHOD(CreatePalette)(THIS_ DWORD, LPPALETTEENTRY, LPDIRECTDRAWPALETTE *, IUnknown * ) PURE; 1576 STDMETHOD(CreateSurface)(THIS_ LPDDSURFACEDESC, LPDIRECTDRAWSURFACE *, IUnknown *) PURE; 1577 STDMETHOD(DuplicateSurface)( THIS_ LPDIRECTDRAWSURFACE, LPDIRECTDRAWSURFACE * ) PURE; 1578 STDMETHOD(EnumDisplayModes)( THIS_ DWORD, LPDDSURFACEDESC, LPVOID, LPDDENUMMODESCALLBACK ) PURE; 1579 STDMETHOD(EnumSurfaces)(THIS_ DWORD, LPDDSURFACEDESC, LPVOID,LPDDENUMSURFACESCALLBACK ) PURE; 1580 STDMETHOD(FlipToGDISurface)(THIS) PURE; 1581 STDMETHOD(GetCaps)( THIS_ LPDDCAPS, LPDDCAPS) PURE; 1582 STDMETHOD(GetDisplayMode)( THIS_ LPDDSURFACEDESC) PURE; 1583 STDMETHOD(GetFourCCCodes)(THIS_ LPDWORD, LPDWORD ) PURE; 1584 STDMETHOD(GetGDISurface)(THIS_ LPDIRECTDRAWSURFACE *) PURE; 1585 STDMETHOD(GetMonitorFrequency)(THIS_ LPDWORD) PURE; 1586 STDMETHOD(GetScanLine)(THIS_ LPDWORD) PURE; 1587 STDMETHOD(GetVerticalBlankStatus)(THIS_ LPBOOL ) PURE; 1588 STDMETHOD(Initialize)(THIS_ GUID *) PURE; 1589 STDMETHOD(RestoreDisplayMode)(THIS) PURE; 1590 STDMETHOD(SetCooperativeLevel)(THIS_ HWND, DWORD) PURE; 1591 STDMETHOD(SetDisplayMode)(THIS_ DWORD, DWORD,DWORD, DWORD, DWORD) PURE; 1592 STDMETHOD(WaitForVerticalBlank)(THIS_ DWORD, HANDLE ) PURE; 1593 STDMETHOD(GetAvailableVidMem)(THIS_ LPDDSCAPS, LPDWORD, LPDWORD) PURE; 1594 STDMETHOD(GetSurfaceFromDC)(THIS_ HDC, LPDIRECTDRAWSURFACE*) PURE; 1595}; 1596 1597 #if !defined(__cplusplus) || defined(CINTERFACE) 1598 #define IDirectDraw3_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) 1599 #define IDirectDraw3_AddRef(p) (p)->lpVtbl->AddRef(p) 1600 #define IDirectDraw3_Release(p) (p)->lpVtbl->Release(p) 1601 #define IDirectDraw3_Compact(p) (p)->lpVtbl->Compact(p) 1602 #define IDirectDraw3_CreateClipper(p,a,b,c) (p)->lpVtbl->CreateClipper(p,a,b,c) 1603 #define IDirectDraw3_CreatePalette(p,a,b,c,d) (p)->lpVtbl->CreatePalette(p,a,b,c,d) 1604 #define IDirectDraw3_CreateSurface(p,a,b,c) (p)->lpVtbl->CreateSurface(p,a,b,c) 1605 #define IDirectDraw3_DuplicateSurface(p,a,b) (p)->lpVtbl->DuplicateSurface(p,a,b) 1606 #define IDirectDraw3_EnumDisplayModes(p,a,b,c,d) (p)->lpVtbl->EnumDisplayModes(p,a,b,c,d) 1607 #define IDirectDraw3_EnumSurfaces(p,a,b,c,d) (p)->lpVtbl->EnumSurfaces(p,a,b,c,d) 1608 #define IDirectDraw3_FlipToGDISurface(p) (p)->lpVtbl->FlipToGDISurface(p) 1609 #define IDirectDraw3_GetCaps(p,a,b) (p)->lpVtbl->GetCaps(p,a,b) 1610 #define IDirectDraw3_GetDisplayMode(p,a) (p)->lpVtbl->GetDisplayMode(p,a) 1611 #define IDirectDraw3_GetFourCCCodes(p,a,b) (p)->lpVtbl->GetFourCCCodes(p,a,b) 1612 #define IDirectDraw3_GetGDISurface(p,a) (p)->lpVtbl->GetGDISurface(p,a) 1613 #define IDirectDraw3_GetMonitorFrequency(p,a) (p)->lpVtbl->GetMonitorFrequency(p,a) 1614 #define IDirectDraw3_GetScanLine(p,a) (p)->lpVtbl->GetScanLine(p,a) 1615 #define IDirectDraw3_GetVerticalBlankStatus(p,a) (p)->lpVtbl->GetVerticalBlankStatus(p,a) 1616 #define IDirectDraw3_Initialize(p,a) (p)->lpVtbl->Initialize(p,a) 1617 #define IDirectDraw3_RestoreDisplayMode(p) (p)->lpVtbl->RestoreDisplayMode(p) 1618 #define IDirectDraw3_SetCooperativeLevel(p,a,b) (p)->lpVtbl->SetCooperativeLevel(p,a,b) 1619 #define IDirectDraw3_SetDisplayMode(p,a,b,c,d,e) (p)->lpVtbl->SetDisplayMode(p,a,b,c,d,e) 1620 #define IDirectDraw3_WaitForVerticalBlank(p,a,b) (p)->lpVtbl->WaitForVerticalBlank(p,a,b) 1621 #define IDirectDraw3_GetAvailableVidMem(p,a,b,c) (p)->lpVtbl->GetAvailableVidMem(p,a,b,c) 1622 #define IDirectDraw3_GetSurfaceFromDC(p,a,b) (p)->lpVtbl->GetSurfaceFromDC(p,a,b) 1623 #else 1624 #define IDirectDraw3_QueryInterface(p,a,b) (p)->QueryInterface(a,b) 1625 #define IDirectDraw3_AddRef(p) (p)->AddRef() 1626 #define IDirectDraw3_Release(p) (p)->Release() 1627 #define IDirectDraw3_Compact(p) (p)->Compact() 1628 #define IDirectDraw3_CreateClipper(p,a,b,c) (p)->CreateClipper(a,b,c) 1629 #define IDirectDraw3_CreatePalette(p,a,b,c,d) (p)->CreatePalette(a,b,c,d) 1630 #define IDirectDraw3_CreateSurface(p,a,b,c) (p)->CreateSurface(a,b,c) 1631 #define IDirectDraw3_DuplicateSurface(p,a,b) (p)->DuplicateSurface(a,b) 1632 #define IDirectDraw3_EnumDisplayModes(p,a,b,c,d) (p)->EnumDisplayModes(a,b,c,d) 1633 #define IDirectDraw3_EnumSurfaces(p,a,b,c,d) (p)->EnumSurfaces(a,b,c,d) 1634 #define IDirectDraw3_FlipToGDISurface(p) (p)->FlipToGDISurface() 1635 #define IDirectDraw3_GetCaps(p,a,b) (p)->GetCaps(a,b) 1636 #define IDirectDraw3_GetDisplayMode(p,a) (p)->GetDisplayMode(a) 1637 #define IDirectDraw3_GetFourCCCodes(p,a,b) (p)->GetFourCCCodes(a,b) 1638 #define IDirectDraw3_GetGDISurface(p,a) (p)->GetGDISurface(a) 1639 #define IDirectDraw3_GetMonitorFrequency(p,a) (p)->GetMonitorFrequency(a) 1640 #define IDirectDraw3_GetScanLine(p,a) (p)->GetScanLine(a) 1641 #define IDirectDraw3_GetVerticalBlankStatus(p,a) (p)->GetVerticalBlankStatus(a) 1642 #define IDirectDraw3_Initialize(p,a) (p)->Initialize(a) 1643 #define IDirectDraw3_RestoreDisplayMode(p) (p)->RestoreDisplayMode() 1644 #define IDirectDraw3_SetCooperativeLevel(p,a,b) (p)->SetCooperativeLevel(a,b) 1645 #define IDirectDraw3_SetDisplayMode(p,a,b,c,d,e) (p)->SetDisplayMode(a,b,c,d,e) 1646 #define IDirectDraw3_WaitForVerticalBlank(p,a,b) (p)->WaitForVerticalBlank(a,b) 1647 #define IDirectDraw3_GetAvailableVidMem(p,a,b,c) (p)->GetAvailableVidMem(a,b,c) 1648 #define IDirectDraw3_GetSurfaceFromDC(p,a,b) (p)->GetSurfaceFromDC(a,b) 1649 #endif 1650#endif 1651 1652 1653#if defined( _WIN32 ) && !defined( _NO_COM ) 1654 #undef INTERFACE 1655 #define INTERFACE IDirectDraw4 1656 1657 DECLARE_INTERFACE_( IDirectDraw4, IUnknown ) 1658 { 1659 STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID * ppvObj) PURE; 1660 STDMETHOD_(ULONG,AddRef) (THIS) PURE; 1661 STDMETHOD_(ULONG,Release) (THIS) PURE; 1662 STDMETHOD(Compact)(THIS) PURE; 1663 STDMETHOD(CreateClipper)(THIS_ DWORD, LPDIRECTDRAWCLIPPER *, IUnknown * ) PURE; 1664 STDMETHOD(CreatePalette)(THIS_ DWORD, LPPALETTEENTRY, LPDIRECTDRAWPALETTE *, IUnknown * ) PURE; 1665 STDMETHOD(CreateSurface)(THIS_ LPDDSURFACEDESC2, LPDIRECTDRAWSURFACE4 *, IUnknown *) PURE; 1666 STDMETHOD(DuplicateSurface)( THIS_ LPDIRECTDRAWSURFACE4, LPDIRECTDRAWSURFACE4 * ) PURE; 1667 STDMETHOD(EnumDisplayModes)( THIS_ DWORD, LPDDSURFACEDESC2, LPVOID, LPDDENUMMODESCALLBACK2 ) PURE; 1668 STDMETHOD(EnumSurfaces)(THIS_ DWORD, LPDDSURFACEDESC2, LPVOID,LPDDENUMSURFACESCALLBACK2 ) PURE; 1669 STDMETHOD(FlipToGDISurface)(THIS) PURE; 1670 STDMETHOD(GetCaps)( THIS_ LPDDCAPS, LPDDCAPS) PURE; 1671 STDMETHOD(GetDisplayMode)( THIS_ LPDDSURFACEDESC2) PURE; 1672 STDMETHOD(GetFourCCCodes)(THIS_ LPDWORD, LPDWORD ) PURE; 1673 STDMETHOD(GetGDISurface)(THIS_ LPDIRECTDRAWSURFACE4 *) PURE; 1674 STDMETHOD(GetMonitorFrequency)(THIS_ LPDWORD) PURE; 1675 STDMETHOD(GetScanLine)(THIS_ LPDWORD) PURE; 1676 STDMETHOD(GetVerticalBlankStatus)(THIS_ LPBOOL ) PURE; 1677 STDMETHOD(Initialize)(THIS_ GUID *) PURE; 1678 STDMETHOD(RestoreDisplayMode)(THIS) PURE; 1679 STDMETHOD(SetCooperativeLevel)(THIS_ HWND, DWORD) PURE; 1680 STDMETHOD(SetDisplayMode)(THIS_ DWORD, DWORD,DWORD, DWORD, DWORD) PURE; 1681 STDMETHOD(WaitForVerticalBlank)(THIS_ DWORD, HANDLE ) PURE; 1682 STDMETHOD(GetAvailableVidMem)(THIS_ LPDDSCAPS2, LPDWORD, LPDWORD) PURE; 1683 STDMETHOD(GetSurfaceFromDC) (THIS_ HDC, LPDIRECTDRAWSURFACE4 *) PURE; 1684 STDMETHOD(RestoreAllSurfaces)(THIS) PURE; 1685 STDMETHOD(TestCooperativeLevel)(THIS) PURE; 1686 STDMETHOD(GetDeviceIdentifier)(THIS_ LPDDDEVICEIDENTIFIER, DWORD ) PURE; 1687 }; 1688#if !defined(__cplusplus) || defined(CINTERFACE) 1689 #define IDirectDraw4_QueryInterface(p, a, b) (p)->lpVtbl->QueryInterface(p, a, b) 1690 #define IDirectDraw4_AddRef(p) (p)->lpVtbl->AddRef(p) 1691 #define IDirectDraw4_Release(p) (p)->lpVtbl->Release(p) 1692 #define IDirectDraw4_Compact(p) (p)->lpVtbl->Compact(p) 1693 #define IDirectDraw4_CreateClipper(p, a, b, c) (p)->lpVtbl->CreateClipper(p, a, b, c) 1694 #define IDirectDraw4_CreatePalette(p, a, b, c, d) (p)->lpVtbl->CreatePalette(p, a, b, c, d) 1695 #define IDirectDraw4_CreateSurface(p, a, b, c) (p)->lpVtbl->CreateSurface(p, a, b, c) 1696 #define IDirectDraw4_DuplicateSurface(p, a, b) (p)->lpVtbl->DuplicateSurface(p, a, b) 1697 #define IDirectDraw4_EnumDisplayModes(p, a, b, c, d) (p)->lpVtbl->EnumDisplayModes(p, a, b, c, d) 1698 #define IDirectDraw4_EnumSurfaces(p, a, b, c, d) (p)->lpVtbl->EnumSurfaces(p, a, b, c, d) 1699 #define IDirectDraw4_FlipToGDISurface(p) (p)->lpVtbl->FlipToGDISurface(p) 1700 #define IDirectDraw4_GetCaps(p, a, b) (p)->lpVtbl->GetCaps(p, a, b) 1701 #define IDirectDraw4_GetDisplayMode(p, a) (p)->lpVtbl->GetDisplayMode(p, a) 1702 #define IDirectDraw4_GetFourCCCodes(p, a, b) (p)->lpVtbl->GetFourCCCodes(p, a, b) 1703 #define IDirectDraw4_GetGDISurface(p, a) (p)->lpVtbl->GetGDISurface(p, a) 1704 #define IDirectDraw4_GetMonitorFrequency(p, a) (p)->lpVtbl->GetMonitorFrequency(p, a) 1705 #define IDirectDraw4_GetScanLine(p, a) (p)->lpVtbl->GetScanLine(p, a) 1706 #define IDirectDraw4_GetVerticalBlankStatus(p, a) (p)->lpVtbl->GetVerticalBlankStatus(p, a) 1707 #define IDirectDraw4_Initialize(p, a) (p)->lpVtbl->Initialize(p, a) 1708 #define IDirectDraw4_RestoreDisplayMode(p) (p)->lpVtbl->RestoreDisplayMode(p) 1709 #define IDirectDraw4_SetCooperativeLevel(p, a, b) (p)->lpVtbl->SetCooperativeLevel(p, a, b) 1710 #define IDirectDraw4_SetDisplayMode(p, a, b, c, d, e) (p)->lpVtbl->SetDisplayMode(p, a, b, c, d, e) 1711 #define IDirectDraw4_WaitForVerticalBlank(p, a, b) (p)->lpVtbl->WaitForVerticalBlank(p, a, b) 1712 #define IDirectDraw4_GetAvailableVidMem(p, a, b, c) (p)->lpVtbl->GetAvailableVidMem(p, a, b, c) 1713 #define IDirectDraw4_GetSurfaceFromDC(p, a, b) (p)->lpVtbl->GetSurfaceFromDC(p, a, b) 1714 #define IDirectDraw4_RestoreAllSurfaces(p) (p)->lpVtbl->RestoreAllSurfaces(p) 1715 #define IDirectDraw4_TestCooperativeLevel(p) (p)->lpVtbl->TestCooperativeLevel(p) 1716 #define IDirectDraw4_GetDeviceIdentifier(p,a,b) (p)->lpVtbl->GetDeviceIdentifier(p,a,b) 1717 #else 1718 #define IDirectDraw4_QueryInterface(p, a, b) (p)->QueryInterface(a, b) 1719 #define IDirectDraw4_AddRef(p) (p)->AddRef() 1720 #define IDirectDraw4_Release(p) (p)->Release() 1721 #define IDirectDraw4_Compact(p) (p)->Compact() 1722 #define IDirectDraw4_CreateClipper(p, a, b, c) (p)->CreateClipper(a, b, c) 1723 #define IDirectDraw4_CreatePalette(p, a, b, c, d) (p)->CreatePalette(a, b, c, d) 1724 #define IDirectDraw4_CreateSurface(p, a, b, c) (p)->CreateSurface(a, b, c) 1725 #define IDirectDraw4_DuplicateSurface(p, a, b) (p)->DuplicateSurface(a, b) 1726 #define IDirectDraw4_EnumDisplayModes(p, a, b, c, d) (p)->EnumDisplayModes(a, b, c, d) 1727 #define IDirectDraw4_EnumSurfaces(p, a, b, c, d) (p)->EnumSurfaces(a, b, c, d) 1728 #define IDirectDraw4_FlipToGDISurface(p) (p)->FlipToGDISurface() 1729 #define IDirectDraw4_GetCaps(p, a, b) (p)->GetCaps(a, b) 1730 #define IDirectDraw4_GetDisplayMode(p, a) (p)->GetDisplayMode(a) 1731 #define IDirectDraw4_GetFourCCCodes(p, a, b) (p)->GetFourCCCodes(a, b) 1732 #define IDirectDraw4_GetGDISurface(p, a) (p)->GetGDISurface(a) 1733 #define IDirectDraw4_GetMonitorFrequency(p, a) (p)->GetMonitorFrequency(a) 1734 #define IDirectDraw4_GetScanLine(p, a) (p)->GetScanLine(a) 1735 #define IDirectDraw4_GetVerticalBlankStatus(p, a) (p)->GetVerticalBlankStatus(a) 1736 #define IDirectDraw4_Initialize(p, a) (p)->Initialize(a) 1737 #define IDirectDraw4_RestoreDisplayMode(p) (p)->RestoreDisplayMode() 1738 #define IDirectDraw4_SetCooperativeLevel(p, a, b) (p)->SetCooperativeLevel(a, b) 1739 #define IDirectDraw4_SetDisplayMode(p, a, b, c, d, e) (p)->SetDisplayMode(a, b, c, d, e) 1740 #define IDirectDraw4_WaitForVerticalBlank(p, a, b) (p)->WaitForVerticalBlank(a, b) 1741 #define IDirectDraw4_GetAvailableVidMem(p, a, b, c) (p)->GetAvailableVidMem(a, b, c) 1742 #define IDirectDraw4_GetSurfaceFromDC(p, a, b) (p)->GetSurfaceFromDC(a, b) 1743 #define IDirectDraw4_RestoreAllSurfaces(p) (p)->RestoreAllSurfaces() 1744 #define IDirectDraw4_TestCooperativeLevel(p) (p)->TestCooperativeLevel() 1745 #define IDirectDraw4_GetDeviceIdentifier(p,a,b) (p)->GetDeviceIdentifier(a,b) 1746 #endif 1747#endif 1748 1749#if defined( _WIN32 ) && !defined( _NO_COM ) 1750 #undef INTERFACE 1751 #define INTERFACE IDirectDraw7 1752 1753 DECLARE_INTERFACE_( IDirectDraw7, IUnknown ) 1754 { 1755 STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID * ppvObj) PURE; 1756 STDMETHOD_(ULONG,AddRef) (THIS) PURE; 1757 STDMETHOD_(ULONG,Release) (THIS) PURE; 1758 STDMETHOD(Compact)(THIS) PURE; 1759 STDMETHOD(CreateClipper)(THIS_ DWORD, LPDIRECTDRAWCLIPPER *, IUnknown * ) PURE; 1760 STDMETHOD(CreatePalette)(THIS_ DWORD, LPPALETTEENTRY, LPDIRECTDRAWPALETTE *, IUnknown * ) PURE; 1761 STDMETHOD(CreateSurface)(THIS_ LPDDSURFACEDESC2, LPDIRECTDRAWSURFACE7 *, IUnknown *) PURE; 1762 STDMETHOD(DuplicateSurface)( THIS_ LPDIRECTDRAWSURFACE7, LPDIRECTDRAWSURFACE7 * ) PURE; 1763 STDMETHOD(EnumDisplayModes)( THIS_ DWORD, LPDDSURFACEDESC2, LPVOID, LPDDENUMMODESCALLBACK2 ) PURE; 1764 STDMETHOD(EnumSurfaces)(THIS_ DWORD, LPDDSURFACEDESC2, LPVOID,LPDDENUMSURFACESCALLBACK7 ) PURE; 1765 STDMETHOD(FlipToGDISurface)(THIS) PURE; 1766 STDMETHOD(GetCaps)( THIS_ LPDDCAPS, LPDDCAPS) PURE; 1767 STDMETHOD(GetDisplayMode)( THIS_ LPDDSURFACEDESC2) PURE; 1768 STDMETHOD(GetFourCCCodes)(THIS_ LPDWORD, LPDWORD ) PURE; 1769 STDMETHOD(GetGDISurface)(THIS_ LPDIRECTDRAWSURFACE7 *) PURE; 1770 STDMETHOD(GetMonitorFrequency)(THIS_ LPDWORD) PURE; 1771 STDMETHOD(GetScanLine)(THIS_ LPDWORD) PURE; 1772 STDMETHOD(GetVerticalBlankStatus)(THIS_ LPBOOL ) PURE; 1773 STDMETHOD(Initialize)(THIS_ GUID *) PURE; 1774 STDMETHOD(RestoreDisplayMode)(THIS) PURE; 1775 STDMETHOD(SetCooperativeLevel)(THIS_ HWND, DWORD) PURE; 1776 STDMETHOD(SetDisplayMode)(THIS_ DWORD, DWORD,DWORD, DWORD, DWORD) PURE; 1777 STDMETHOD(WaitForVerticalBlank)(THIS_ DWORD, HANDLE ) PURE; 1778 STDMETHOD(GetAvailableVidMem)(THIS_ LPDDSCAPS2, LPDWORD, LPDWORD) PURE; 1779 STDMETHOD(GetSurfaceFromDC) (THIS_ HDC, LPDIRECTDRAWSURFACE7 *) PURE; 1780 STDMETHOD(RestoreAllSurfaces)(THIS) PURE; 1781 STDMETHOD(TestCooperativeLevel)(THIS) PURE; 1782 STDMETHOD(GetDeviceIdentifier)(THIS_ LPDDDEVICEIDENTIFIER2, DWORD ) PURE; 1783 STDMETHOD(StartModeTest)(THIS_ LPSIZE, DWORD, DWORD ) PURE; 1784 STDMETHOD(EvaluateMode)(THIS_ DWORD, DWORD * ) PURE; 1785 }; 1786 #if !defined(__cplusplus) || defined(CINTERFACE) 1787 #define IDirectDraw7_QueryInterface(p, a, b) (p)->lpVtbl->QueryInterface(p, a, b) 1788 #define IDirectDraw7_AddRef(p) (p)->lpVtbl->AddRef(p) 1789 #define IDirectDraw7_Release(p) (p)->lpVtbl->Release(p) 1790 #define IDirectDraw7_Compact(p) (p)->lpVtbl->Compact(p) 1791 #define IDirectDraw7_CreateClipper(p, a, b, c) (p)->lpVtbl->CreateClipper(p, a, b, c) 1792 #define IDirectDraw7_CreatePalette(p, a, b, c, d) (p)->lpVtbl->CreatePalette(p, a, b, c, d) 1793 #define IDirectDraw7_CreateSurface(p, a, b, c) (p)->lpVtbl->CreateSurface(p, a, b, c) 1794 #define IDirectDraw7_DuplicateSurface(p, a, b) (p)->lpVtbl->DuplicateSurface(p, a, b) 1795 #define IDirectDraw7_EnumDisplayModes(p, a, b, c, d) (p)->lpVtbl->EnumDisplayModes(p, a, b, c, d) 1796 #define IDirectDraw7_EnumSurfaces(p, a, b, c, d) (p)->lpVtbl->EnumSurfaces(p, a, b, c, d) 1797 #define IDirectDraw7_FlipToGDISurface(p) (p)->lpVtbl->FlipToGDISurface(p) 1798 #define IDirectDraw7_GetCaps(p, a, b) (p)->lpVtbl->GetCaps(p, a, b) 1799 #define IDirectDraw7_GetDisplayMode(p, a) (p)->lpVtbl->GetDisplayMode(p, a) 1800 #define IDirectDraw7_GetFourCCCodes(p, a, b) (p)->lpVtbl->GetFourCCCodes(p, a, b) 1801 #define IDirectDraw7_GetGDISurface(p, a) (p)->lpVtbl->GetGDISurface(p, a) 1802 #define IDirectDraw7_GetMonitorFrequency(p, a) (p)->lpVtbl->GetMonitorFrequency(p, a) 1803 #define IDirectDraw7_GetScanLine(p, a) (p)->lpVtbl->GetScanLine(p, a) 1804 #define IDirectDraw7_GetVerticalBlankStatus(p, a) (p)->lpVtbl->GetVerticalBlankStatus(p, a) 1805 #define IDirectDraw7_Initialize(p, a) (p)->lpVtbl->Initialize(p, a) 1806 #define IDirectDraw7_RestoreDisplayMode(p) (p)->lpVtbl->RestoreDisplayMode(p) 1807 #define IDirectDraw7_SetCooperativeLevel(p, a, b) (p)->lpVtbl->SetCooperativeLevel(p, a, b) 1808 #define IDirectDraw7_SetDisplayMode(p, a, b, c, d, e) (p)->lpVtbl->SetDisplayMode(p, a, b, c, d, e) 1809 #define IDirectDraw7_WaitForVerticalBlank(p, a, b) (p)->lpVtbl->WaitForVerticalBlank(p, a, b) 1810 #define IDirectDraw7_GetAvailableVidMem(p, a, b, c) (p)->lpVtbl->GetAvailableVidMem(p, a, b, c) 1811 #define IDirectDraw7_GetSurfaceFromDC(p, a, b) (p)->lpVtbl->GetSurfaceFromDC(p, a, b) 1812 #define IDirectDraw7_RestoreAllSurfaces(p) (p)->lpVtbl->RestoreAllSurfaces(p) 1813 #define IDirectDraw7_TestCooperativeLevel(p) (p)->lpVtbl->TestCooperativeLevel(p) 1814 #define IDirectDraw7_GetDeviceIdentifier(p,a,b) (p)->lpVtbl->GetDeviceIdentifier(p,a,b) 1815 #define IDirectDraw7_StartModeTest(p,a,b,c) (p)->lpVtbl->StartModeTest(p,a,b,c) 1816 #define IDirectDraw7_EvaluateMode(p,a,b) (p)->lpVtbl->EvaluateMode(p,a,b) 1817 #else 1818 #define IDirectDraw7_QueryInterface(p, a, b) (p)->QueryInterface(a, b) 1819 #define IDirectDraw7_AddRef(p) (p)->AddRef() 1820 #define IDirectDraw7_Release(p) (p)->Release() 1821 #define IDirectDraw7_Compact(p) (p)->Compact() 1822 #define IDirectDraw7_CreateClipper(p, a, b, c) (p)->CreateClipper(a, b, c) 1823 #define IDirectDraw7_CreatePalette(p, a, b, c, d) (p)->CreatePalette(a, b, c, d) 1824 #define IDirectDraw7_CreateSurface(p, a, b, c) (p)->CreateSurface(a, b, c) 1825 #define IDirectDraw7_DuplicateSurface(p, a, b) (p)->DuplicateSurface(a, b) 1826 #define IDirectDraw7_EnumDisplayModes(p, a, b, c, d) (p)->EnumDisplayModes(a, b, c, d) 1827 #define IDirectDraw7_EnumSurfaces(p, a, b, c, d) (p)->EnumSurfaces(a, b, c, d) 1828 #define IDirectDraw7_FlipToGDISurface(p) (p)->FlipToGDISurface() 1829 #define IDirectDraw7_GetCaps(p, a, b) (p)->GetCaps(a, b) 1830 #define IDirectDraw7_GetDisplayMode(p, a) (p)->GetDisplayMode(a) 1831 #define IDirectDraw7_GetFourCCCodes(p, a, b) (p)->GetFourCCCodes(a, b) 1832 #define IDirectDraw7_GetGDISurface(p, a) (p)->GetGDISurface(a) 1833 #define IDirectDraw7_GetMonitorFrequency(p, a) (p)->GetMonitorFrequency(a) 1834 #define IDirectDraw7_GetScanLine(p, a) (p)->GetScanLine(a) 1835 #define IDirectDraw7_GetVerticalBlankStatus(p, a) (p)->GetVerticalBlankStatus(a) 1836 #define IDirectDraw7_Initialize(p, a) (p)->Initialize(a) 1837 #define IDirectDraw7_RestoreDisplayMode(p) (p)->RestoreDisplayMode() 1838 #define IDirectDraw7_SetCooperativeLevel(p, a, b) (p)->SetCooperativeLevel(a, b) 1839 #define IDirectDraw7_SetDisplayMode(p, a, b, c, d, e) (p)->SetDisplayMode(a, b, c, d, e) 1840 #define IDirectDraw7_WaitForVerticalBlank(p, a, b) (p)->WaitForVerticalBlank(a, b) 1841 #define IDirectDraw7_GetAvailableVidMem(p, a, b, c) (p)->GetAvailableVidMem(a, b, c) 1842 #define IDirectDraw7_GetSurfaceFromDC(p, a, b) (p)->GetSurfaceFromDC(a, b) 1843 #define IDirectDraw7_RestoreAllSurfaces(p) (p)->RestoreAllSurfaces() 1844 #define IDirectDraw7_TestCooperativeLevel(p) (p)->TestCooperativeLevel() 1845 #define IDirectDraw7_GetDeviceIdentifier(p,a,b) (p)->GetDeviceIdentifier(a,b) 1846 #define IDirectDraw7_StartModeTest(p,a,b,c) (p)->lpVtbl->StartModeTest(a,b,c) 1847 #define IDirectDraw7_EvaluateMode(p,a,b) (p)->lpVtbl->EvaluateMode(a,b) 1848 #endif 1849#endif 1850 1851#if defined( _WIN32 ) && !defined( _NO_COM ) 1852 #undef INTERFACE 1853 #define INTERFACE IDirectDrawPalette 1854 1855 DECLARE_INTERFACE_( IDirectDrawPalette, IUnknown ) 1856 { 1857 STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID * ppvObj) PURE; 1858 STDMETHOD_(ULONG,AddRef) (THIS) PURE; 1859 STDMETHOD_(ULONG,Release) (THIS) PURE; 1860 STDMETHOD(GetCaps)(THIS_ LPDWORD) PURE; 1861 STDMETHOD(GetEntries)(THIS_ DWORD,DWORD,DWORD,LPPALETTEENTRY) PURE; 1862 STDMETHOD(Initialize)(THIS_ LPDIRECTDRAW, DWORD, LPPALETTEENTRY) PURE; 1863 STDMETHOD(SetEntries)(THIS_ DWORD,DWORD,DWORD,LPPALETTEENTRY) PURE; 1864 }; 1865 #if !defined(__cplusplus) || defined(CINTERFACE) 1866 #define IDirectDrawPalette_QueryInterface(p, a, b) (p)->lpVtbl->QueryInterface(p, a, b) 1867 #define IDirectDrawPalette_AddRef(p) (p)->lpVtbl->AddRef(p) 1868 #define IDirectDrawPalette_Release(p) (p)->lpVtbl->Release(p) 1869 #define IDirectDrawPalette_GetCaps(p, a) (p)->lpVtbl->GetCaps(p, a) 1870 #define IDirectDrawPalette_GetEntries(p, a, b, c, d) (p)->lpVtbl->GetEntries(p, a, b, c, d) 1871 #define IDirectDrawPalette_Initialize(p, a, b, c) (p)->lpVtbl->Initialize(p, a, b, c) 1872 #define IDirectDrawPalette_SetEntries(p, a, b, c, d) (p)->lpVtbl->SetEntries(p, a, b, c, d) 1873 #else 1874 #define IDirectDrawPalette_QueryInterface(p, a, b) (p)->QueryInterface(a, b) 1875 #define IDirectDrawPalette_AddRef(p) (p)->AddRef() 1876 #define IDirectDrawPalette_Release(p) (p)->Release() 1877 #define IDirectDrawPalette_GetCaps(p, a) (p)->GetCaps(a) 1878 #define IDirectDrawPalette_GetEntries(p, a, b, c, d) (p)->GetEntries(a, b, c, d) 1879 #define IDirectDrawPalette_Initialize(p, a, b, c) (p)->Initialize(a, b, c) 1880 #define IDirectDrawPalette_SetEntries(p, a, b, c, d) (p)->SetEntries(a, b, c, d) 1881 #endif 1882#endif 1883 1884#if defined( _WIN32 ) && !defined( _NO_COM ) 1885 #undef INTERFACE 1886 #define INTERFACE IDirectDrawGammaControl 1887 1888 DECLARE_INTERFACE_( IDirectDrawGammaControl, IUnknown ) 1889 { 1890 STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID * ppvObj) PURE; 1891 STDMETHOD_(ULONG,AddRef) (THIS) PURE; 1892 STDMETHOD_(ULONG,Release) (THIS) PURE; 1893 STDMETHOD(GetGammaRamp)(THIS_ DWORD, LPDDGAMMARAMP) PURE; 1894 STDMETHOD(SetGammaRamp)(THIS_ DWORD, LPDDGAMMARAMP) PURE; 1895 }; 1896 #if !defined(__cplusplus) || defined(CINTERFACE) 1897 #define IDirectDrawGammaControl_QueryInterface(p, a, b) (p)->lpVtbl->QueryInterface(p, a, b) 1898 #define IDirectDrawGammaControl_AddRef(p) (p)->lpVtbl->AddRef(p) 1899 #define IDirectDrawGammaControl_Release(p) (p)->lpVtbl->Release(p) 1900 #define IDirectDrawGammaControl_GetGammaRamp(p, a, b) (p)->lpVtbl->GetGammaRamp(p, a, b) 1901 #define IDirectDrawGammaControl_SetGammaRamp(p, a, b) (p)->lpVtbl->SetGammaRamp(p, a, b) 1902 #else 1903 #define IDirectDrawGammaControl_QueryInterface(p, a, b) (p)->QueryInterface(a, b) 1904 #define IDirectDrawGammaControl_AddRef(p) (p)->AddRef() 1905 #define IDirectDrawGammaControl_Release(p) (p)->Release() 1906 #define IDirectDrawGammaControl_GetGammaRamp(p, a, b) (p)->GetGammaRamp(a, b) 1907 #define IDirectDrawGammaControl_SetGammaRamp(p, a, b) (p)->SetGammaRamp(a, b) 1908 #endif 1909#endif 1910 1911#if defined( _WIN32 ) && !defined( _NO_COM ) 1912 #undef INTERFACE 1913 #define INTERFACE IDirectDrawColorControl 1914 1915 DECLARE_INTERFACE_( IDirectDrawColorControl, IUnknown ) 1916 { 1917 STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID * ppvObj) PURE; 1918 STDMETHOD_(ULONG,AddRef) (THIS) PURE; 1919 STDMETHOD_(ULONG,Release) (THIS) PURE; 1920 STDMETHOD(GetColorControls)(THIS_ LPDDCOLORCONTROL) PURE; 1921 STDMETHOD(SetColorControls)(THIS_ LPDDCOLORCONTROL) PURE; 1922 }; 1923 #if !defined(__cplusplus) || defined(CINTERFACE) 1924 #define IDirectDrawColorControl_QueryInterface(p, a, b) (p)->lpVtbl->QueryInterface(p, a, b) 1925 #define IDirectDrawColorControl_AddRef(p) (p)->lpVtbl->AddRef(p) 1926 #define IDirectDrawColorControl_Release(p) (p)->lpVtbl->Release(p) 1927 #define IDirectDrawColorControl_GetColorControls(p, a) (p)->lpVtbl->GetColorControls(p, a) 1928 #define IDirectDrawColorControl_SetColorControls(p, a) (p)->lpVtbl->SetColorControls(p, a) 1929 #else 1930 #define IDirectDrawColorControl_QueryInterface(p, a, b) (p)->QueryInterface(a, b) 1931 #define IDirectDrawColorControl_AddRef(p) (p)->AddRef() 1932 #define IDirectDrawColorControl_Release(p) (p)->Release() 1933 #define IDirectDrawColorControl_GetColorControls(p, a) (p)->GetColorControls(a) 1934 #define IDirectDrawColorControl_SetColorControls(p, a) (p)->SetColorControls(a) 1935 #endif 1936#endif 1937 1938 1939#if defined( _WIN32 ) && !defined( _NO_COM ) 1940 #undef INTERFACE 1941 #define INTERFACE IDirectDrawClipper 1942 DECLARE_INTERFACE_( IDirectDrawClipper, IUnknown ) 1943 { 1944 STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID * ppvObj) PURE; 1945 STDMETHOD_(ULONG,AddRef) (THIS) PURE; 1946 STDMETHOD_(ULONG,Release) (THIS) PURE; 1947 STDMETHOD(GetClipList)(THIS_ LPRECT, LPRGNDATA, LPDWORD) PURE; 1948 STDMETHOD(GetHWnd)(THIS_ HWND *) PURE; 1949 STDMETHOD(Initialize)(THIS_ LPDIRECTDRAW, DWORD) PURE; 1950 STDMETHOD(IsClipListChanged)(THIS_ BOOL *) PURE; 1951 STDMETHOD(SetClipList)(THIS_ LPRGNDATA,DWORD) PURE; 1952 STDMETHOD(SetHWnd)(THIS_ DWORD, HWND ) PURE; 1953 }; 1954 #if !defined(__cplusplus) || defined(CINTERFACE) 1955 #define IDirectDrawClipper_QueryInterface(p, a, b) (p)->lpVtbl->QueryInterface(p, a, b) 1956 #define IDirectDrawClipper_AddRef(p) (p)->lpVtbl->AddRef(p) 1957 #define IDirectDrawClipper_Release(p) (p)->lpVtbl->Release(p) 1958 #define IDirectDrawClipper_GetClipList(p, a, b, c) (p)->lpVtbl->GetClipList(p, a, b, c) 1959 #define IDirectDrawClipper_GetHWnd(p, a) (p)->lpVtbl->GetHWnd(p, a) 1960 #define IDirectDrawClipper_Initialize(p, a, b) (p)->lpVtbl->Initialize(p, a, b) 1961 #define IDirectDrawClipper_IsClipListChanged(p, a) (p)->lpVtbl->IsClipListChanged(p, a) 1962 #define IDirectDrawClipper_SetClipList(p, a, b) (p)->lpVtbl->SetClipList(p, a, b) 1963 #define IDirectDrawClipper_SetHWnd(p, a, b) (p)->lpVtbl->SetHWnd(p, a, b) 1964 #else 1965 #define IDirectDrawClipper_QueryInterface(p, a, b) (p)->QueryInterface(a, b) 1966 #define IDirectDrawClipper_AddRef(p) (p)->AddRef() 1967 #define IDirectDrawClipper_Release(p) (p)->Release() 1968 #define IDirectDrawClipper_GetClipList(p, a, b, c) (p)->GetClipList(a, b, c) 1969 #define IDirectDrawClipper_GetHWnd(p, a) (p)->GetHWnd(a) 1970 #define IDirectDrawClipper_Initialize(p, a, b) (p)->Initialize(a, b) 1971 #define IDirectDrawClipper_IsClipListChanged(p, a) (p)->IsClipListChanged(a) 1972 #define IDirectDrawClipper_SetClipList(p, a, b) (p)->SetClipList(a, b) 1973 #define IDirectDrawClipper_SetHWnd(p, a, b) (p)->SetHWnd(a, b) 1974 #endif 1975#endif 1976 1977#if defined( _WIN32 ) && !defined( _NO_COM ) 1978 #undef INTERFACE 1979 #define INTERFACE IDirectDrawSurface 1980 1981 DECLARE_INTERFACE_( IDirectDrawSurface, IUnknown ) 1982 { 1983 STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID * ppvObj) PURE; 1984 STDMETHOD_(ULONG,AddRef) (THIS) PURE; 1985 STDMETHOD_(ULONG,Release) (THIS) PURE; 1986 STDMETHOD(AddAttachedSurface)(THIS_ LPDIRECTDRAWSURFACE) PURE; 1987 STDMETHOD(AddOverlayDirtyRect)(THIS_ LPRECT) PURE; 1988 STDMETHOD(Blt)(THIS_ LPRECT,LPDIRECTDRAWSURFACE, LPRECT,DWORD, LPDDBLTFX) PURE; 1989 STDMETHOD(BltBatch)(THIS_ LPDDBLTBATCH, DWORD, DWORD ) PURE; 1990 STDMETHOD(BltFast)(THIS_ DWORD,DWORD,LPDIRECTDRAWSURFACE, LPRECT,DWORD) PURE; 1991 STDMETHOD(DeleteAttachedSurface)(THIS_ DWORD,LPDIRECTDRAWSURFACE) PURE; 1992 STDMETHOD(EnumAttachedSurfaces)(THIS_ LPVOID,LPDDENUMSURFACESCALLBACK) PURE; 1993 STDMETHOD(EnumOverlayZOrders)(THIS_ DWORD,LPVOID,LPDDENUMSURFACESCALLBACK) PURE; 1994 STDMETHOD(Flip)(THIS_ LPDIRECTDRAWSURFACE, DWORD) PURE; 1995 STDMETHOD(GetAttachedSurface)(THIS_ LPDDSCAPS, LPDIRECTDRAWSURFACE *) PURE; 1996 STDMETHOD(GetBltStatus)(THIS_ DWORD) PURE; 1997 STDMETHOD(GetCaps)(THIS_ LPDDSCAPS) PURE; 1998 STDMETHOD(GetClipper)(THIS_ LPDIRECTDRAWCLIPPER *) PURE; 1999 STDMETHOD(GetColorKey)(THIS_ DWORD, LPDDCOLORKEY) PURE; 2000 STDMETHOD(GetDC)(THIS_ HDC *) PURE; 2001 STDMETHOD(GetFlipStatus)(THIS_ DWORD) PURE; 2002 STDMETHOD(GetOverlayPosition)(THIS_ LPLONG, LPLONG ) PURE; 2003 STDMETHOD(GetPalette)(THIS_ LPDIRECTDRAWPALETTE *) PURE; 2004 STDMETHOD(GetPixelFormat)(THIS_ LPDDPIXELFORMAT) PURE; 2005 STDMETHOD(GetSurfaceDesc)(THIS_ LPDDSURFACEDESC) PURE; 2006 STDMETHOD(Initialize)(THIS_ LPDIRECTDRAW, LPDDSURFACEDESC) PURE; 2007 STDMETHOD(IsLost)(THIS) PURE; 2008 STDMETHOD(Lock)(THIS_ LPRECT,LPDDSURFACEDESC,DWORD,HANDLE) PURE; 2009 STDMETHOD(ReleaseDC)(THIS_ HDC) PURE; 2010 STDMETHOD(Restore)(THIS) PURE; 2011 STDMETHOD(SetClipper)(THIS_ LPDIRECTDRAWCLIPPER) PURE; 2012 STDMETHOD(SetColorKey)(THIS_ DWORD, LPDDCOLORKEY) PURE; 2013 STDMETHOD(SetOverlayPosition)(THIS_ LONG, LONG ) PURE; 2014 STDMETHOD(SetPalette)(THIS_ LPDIRECTDRAWPALETTE) PURE; 2015 STDMETHOD(Unlock)(THIS_ LPVOID) PURE; 2016 STDMETHOD(UpdateOverlay)(THIS_ LPRECT, LPDIRECTDRAWSURFACE,LPRECT,DWORD, LPDDOVERLAYFX) PURE; 2017 STDMETHOD(UpdateOverlayDisplay)(THIS_ DWORD) PURE; 2018 STDMETHOD(UpdateOverlayZOrder)(THIS_ DWORD, LPDIRECTDRAWSURFACE) PURE; 2019 }; 2020 #if !defined(__cplusplus) || defined(CINTERFACE) 2021 #define IDirectDrawSurface_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) 2022 #define IDirectDrawSurface_AddRef(p) (p)->lpVtbl->AddRef(p) 2023 #define IDirectDrawSurface_Release(p) (p)->lpVtbl->Release(p) 2024 #define IDirectDrawSurface_AddAttachedSurface(p,a) (p)->lpVtbl->AddAttachedSurface(p,a) 2025 #define IDirectDrawSurface_AddOverlayDirtyRect(p,a) (p)->lpVtbl->AddOverlayDirtyRect(p,a) 2026 #define IDirectDrawSurface_Blt(p,a,b,c,d,e) (p)->lpVtbl->Blt(p,a,b,c,d,e) 2027 #define IDirectDrawSurface_BltBatch(p,a,b,c) (p)->lpVtbl->BltBatch(p,a,b,c) 2028 #define IDirectDrawSurface_BltFast(p,a,b,c,d,e) (p)->lpVtbl->BltFast(p,a,b,c,d,e) 2029 #define IDirectDrawSurface_DeleteAttachedSurface(p,a,b) (p)->lpVtbl->DeleteAttachedSurface(p,a,b) 2030 #define IDirectDrawSurface_EnumAttachedSurfaces(p,a,b) (p)->lpVtbl->EnumAttachedSurfaces(p,a,b) 2031 #define IDirectDrawSurface_EnumOverlayZOrders(p,a,b,c) (p)->lpVtbl->EnumOverlayZOrders(p,a,b,c) 2032 #define IDirectDrawSurface_Flip(p,a,b) (p)->lpVtbl->Flip(p,a,b) 2033 #define IDirectDrawSurface_GetAttachedSurface(p,a,b) (p)->lpVtbl->GetAttachedSurface(p,a,b) 2034 #define IDirectDrawSurface_GetBltStatus(p,a) (p)->lpVtbl->GetBltStatus(p,a) 2035 #define IDirectDrawSurface_GetCaps(p,b) (p)->lpVtbl->GetCaps(p,b) 2036 #define IDirectDrawSurface_GetClipper(p,a) (p)->lpVtbl->GetClipper(p,a) 2037 #define IDirectDrawSurface_GetColorKey(p,a,b) (p)->lpVtbl->GetColorKey(p,a,b) 2038 #define IDirectDrawSurface_GetDC(p,a) (p)->lpVtbl->GetDC(p,a) 2039 #define IDirectDrawSurface_GetFlipStatus(p,a) (p)->lpVtbl->GetFlipStatus(p,a) 2040 #define IDirectDrawSurface_GetOverlayPosition(p,a,b) (p)->lpVtbl->GetOverlayPosition(p,a,b) 2041 #define IDirectDrawSurface_GetPalette(p,a) (p)->lpVtbl->GetPalette(p,a) 2042 #define IDirectDrawSurface_GetPixelFormat(p,a) (p)->lpVtbl->GetPixelFormat(p,a) 2043 #define IDirectDrawSurface_GetSurfaceDesc(p,a) (p)->lpVtbl->GetSurfaceDesc(p,a) 2044 #define IDirectDrawSurface_Initialize(p,a,b) (p)->lpVtbl->Initialize(p,a,b) 2045 #define IDirectDrawSurface_IsLost(p) (p)->lpVtbl->IsLost(p) 2046 #define IDirectDrawSurface_Lock(p,a,b,c,d) (p)->lpVtbl->Lock(p,a,b,c,d) 2047 #define IDirectDrawSurface_ReleaseDC(p,a) (p)->lpVtbl->ReleaseDC(p,a) 2048 #define IDirectDrawSurface_Restore(p) (p)->lpVtbl->Restore(p) 2049 #define IDirectDrawSurface_SetClipper(p,a) (p)->lpVtbl->SetClipper(p,a) 2050 #define IDirectDrawSurface_SetColorKey(p,a,b) (p)->lpVtbl->SetColorKey(p,a,b) 2051 #define IDirectDrawSurface_SetOverlayPosition(p,a,b) (p)->lpVtbl->SetOverlayPosition(p,a,b) 2052 #define IDirectDrawSurface_SetPalette(p,a) (p)->lpVtbl->SetPalette(p,a) 2053 #define IDirectDrawSurface_Unlock(p,b) (p)->lpVtbl->Unlock(p,b) 2054 #define IDirectDrawSurface_UpdateOverlay(p,a,b,c,d,e) (p)->lpVtbl->UpdateOverlay(p,a,b,c,d,e) 2055 #define IDirectDrawSurface_UpdateOverlayDisplay(p,a) (p)->lpVtbl->UpdateOverlayDisplay(p,a) 2056 #define IDirectDrawSurface_UpdateOverlayZOrder(p,a,b) (p)->lpVtbl->UpdateOverlayZOrder(p,a,b) 2057 #else 2058 #define IDirectDrawSurface_QueryInterface(p,a,b) (p)->QueryInterface(a,b) 2059 #define IDirectDrawSurface_AddRef(p) (p)->AddRef() 2060 #define IDirectDrawSurface_Release(p) (p)->Release() 2061 #define IDirectDrawSurface_AddAttachedSurface(p,a) (p)->AddAttachedSurface(a) 2062 #define IDirectDrawSurface_AddOverlayDirtyRect(p,a) (p)->AddOverlayDirtyRect(a) 2063 #define IDirectDrawSurface_Blt(p,a,b,c,d,e) (p)->Blt(a,b,c,d,e) 2064 #define IDirectDrawSurface_BltBatch(p,a,b,c) (p)->BltBatch(a,b,c) 2065 #define IDirectDrawSurface_BltFast(p,a,b,c,d,e) (p)->BltFast(a,b,c,d,e) 2066 #define IDirectDrawSurface_DeleteAttachedSurface(p,a,b) (p)->DeleteAttachedSurface(a,b) 2067 #define IDirectDrawSurface_EnumAttachedSurfaces(p,a,b) (p)->EnumAttachedSurfaces(a,b) 2068 #define IDirectDrawSurface_EnumOverlayZOrders(p,a,b,c) (p)->EnumOverlayZOrders(a,b,c) 2069 #define IDirectDrawSurface_Flip(p,a,b) (p)->Flip(a,b) 2070 #define IDirectDrawSurface_GetAttachedSurface(p,a,b) (p)->GetAttachedSurface(a,b) 2071 #define IDirectDrawSurface_GetBltStatus(p,a) (p)->GetBltStatus(a) 2072 #define IDirectDrawSurface_GetCaps(p,b) (p)->GetCaps(b) 2073 #define IDirectDrawSurface_GetClipper(p,a) (p)->GetClipper(a) 2074 #define IDirectDrawSurface_GetColorKey(p,a,b) (p)->GetColorKey(a,b) 2075 #define IDirectDrawSurface_GetDC(p,a) (p)->GetDC(a) 2076 #define IDirectDrawSurface_GetFlipStatus(p,a) (p)->GetFlipStatus(a) 2077 #define IDirectDrawSurface_GetOverlayPosition(p,a,b) (p)->GetOverlayPosition(a,b) 2078 #define IDirectDrawSurface_GetPalette(p,a) (p)->GetPalette(a) 2079 #define IDirectDrawSurface_GetPixelFormat(p,a) (p)->GetPixelFormat(a) 2080 #define IDirectDrawSurface_GetSurfaceDesc(p,a) (p)->GetSurfaceDesc(a) 2081 #define IDirectDrawSurface_Initialize(p,a,b) (p)->Initialize(a,b) 2082 #define IDirectDrawSurface_IsLost(p) (p)->IsLost() 2083 #define IDirectDrawSurface_Lock(p,a,b,c,d) (p)->Lock(a,b,c,d) 2084 #define IDirectDrawSurface_ReleaseDC(p,a) (p)->ReleaseDC(a) 2085 #define IDirectDrawSurface_Restore(p) (p)->Restore() 2086 #define IDirectDrawSurface_SetClipper(p,a) (p)->SetClipper(a) 2087 #define IDirectDrawSurface_SetColorKey(p,a,b) (p)->SetColorKey(a,b) 2088 #define IDirectDrawSurface_SetOverlayPosition(p,a,b) (p)->SetOverlayPosition(a,b) 2089 #define IDirectDrawSurface_SetPalette(p,a) (p)->SetPalette(a) 2090 #define IDirectDrawSurface_Unlock(p,b) (p)->Unlock(b) 2091 #define IDirectDrawSurface_UpdateOverlay(p,a,b,c,d,e) (p)->UpdateOverlay(a,b,c,d,e) 2092 #define IDirectDrawSurface_UpdateOverlayDisplay(p,a) (p)->UpdateOverlayDisplay(a) 2093 #define IDirectDrawSurface_UpdateOverlayZOrder(p,a,b) (p)->UpdateOverlayZOrder(a,b) 2094 #endif 2095#endif 2096 2097#if defined( _WIN32 ) && !defined( _NO_COM ) 2098 #undef INTERFACE 2099 #define INTERFACE IDirectDrawSurface2 2100 DECLARE_INTERFACE_( IDirectDrawSurface2, IUnknown ) 2101 { 2102 STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID * ppvObj) PURE; 2103 STDMETHOD_(ULONG,AddRef) (THIS) PURE; 2104 STDMETHOD_(ULONG,Release) (THIS) PURE; 2105 STDMETHOD(AddAttachedSurface)(THIS_ LPDIRECTDRAWSURFACE2) PURE; 2106 STDMETHOD(AddOverlayDirtyRect)(THIS_ LPRECT) PURE; 2107 STDMETHOD(Blt)(THIS_ LPRECT,LPDIRECTDRAWSURFACE2, LPRECT,DWORD, LPDDBLTFX) PURE; 2108 STDMETHOD(BltBatch)(THIS_ LPDDBLTBATCH, DWORD, DWORD ) PURE; 2109 STDMETHOD(BltFast)(THIS_ DWORD,DWORD,LPDIRECTDRAWSURFACE2, LPRECT,DWORD) PURE; 2110 STDMETHOD(DeleteAttachedSurface)(THIS_ DWORD,LPDIRECTDRAWSURFACE2) PURE; 2111 STDMETHOD(EnumAttachedSurfaces)(THIS_ LPVOID,LPDDENUMSURFACESCALLBACK) PURE; 2112 STDMETHOD(EnumOverlayZOrders)(THIS_ DWORD,LPVOID,LPDDENUMSURFACESCALLBACK) PURE; 2113 STDMETHOD(Flip)(THIS_ LPDIRECTDRAWSURFACE2, DWORD) PURE; 2114 STDMETHOD(GetAttachedSurface)(THIS_ LPDDSCAPS, LPDIRECTDRAWSURFACE2 *) PURE; 2115 STDMETHOD(GetBltStatus)(THIS_ DWORD) PURE; 2116 STDMETHOD(GetCaps)(THIS_ LPDDSCAPS) PURE; 2117 STDMETHOD(GetClipper)(THIS_ LPDIRECTDRAWCLIPPER *) PURE; 2118 STDMETHOD(GetColorKey)(THIS_ DWORD, LPDDCOLORKEY) PURE; 2119 STDMETHOD(GetDC)(THIS_ HDC *) PURE; 2120 STDMETHOD(GetFlipStatus)(THIS_ DWORD) PURE; 2121 STDMETHOD(GetOverlayPosition)(THIS_ LPLONG, LPLONG ) PURE; 2122 STDMETHOD(GetPalette)(THIS_ LPDIRECTDRAWPALETTE *) PURE; 2123 STDMETHOD(GetPixelFormat)(THIS_ LPDDPIXELFORMAT) PURE; 2124 STDMETHOD(GetSurfaceDesc)(THIS_ LPDDSURFACEDESC) PURE; 2125 STDMETHOD(Initialize)(THIS_ LPDIRECTDRAW, LPDDSURFACEDESC) PURE; 2126 STDMETHOD(IsLost)(THIS) PURE; 2127 STDMETHOD(Lock)(THIS_ LPRECT,LPDDSURFACEDESC,DWORD,HANDLE) PURE; 2128 STDMETHOD(ReleaseDC)(THIS_ HDC) PURE; 2129 STDMETHOD(Restore)(THIS) PURE; 2130 STDMETHOD(SetClipper)(THIS_ LPDIRECTDRAWCLIPPER) PURE; 2131 STDMETHOD(SetColorKey)(THIS_ DWORD, LPDDCOLORKEY) PURE; 2132 STDMETHOD(SetOverlayPosition)(THIS_ LONG, LONG ) PURE; 2133 STDMETHOD(SetPalette)(THIS_ LPDIRECTDRAWPALETTE) PURE; 2134 STDMETHOD(Unlock)(THIS_ LPVOID) PURE; 2135 STDMETHOD(UpdateOverlay)(THIS_ LPRECT, LPDIRECTDRAWSURFACE2,LPRECT,DWORD, LPDDOVERLAYFX) PURE; 2136 STDMETHOD(UpdateOverlayDisplay)(THIS_ DWORD) PURE; 2137 STDMETHOD(UpdateOverlayZOrder)(THIS_ DWORD, LPDIRECTDRAWSURFACE2) PURE; 2138 STDMETHOD(GetDDInterface)(THIS_ LPVOID *) PURE; 2139 STDMETHOD(PageLock)(THIS_ DWORD) PURE; 2140 STDMETHOD(PageUnlock)(THIS_ DWORD) PURE; 2141 }; 2142 2143 #if !defined(__cplusplus) || defined(CINTERFACE) 2144 #define IDirectDrawSurface2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) 2145 #define IDirectDrawSurface2_AddRef(p) (p)->lpVtbl->AddRef(p) 2146 #define IDirectDrawSurface2_Release(p) (p)->lpVtbl->Release(p) 2147 #define IDirectDrawSurface2_AddAttachedSurface(p,a) (p)->lpVtbl->AddAttachedSurface(p,a) 2148 #define IDirectDrawSurface2_AddOverlayDirtyRect(p,a) (p)->lpVtbl->AddOverlayDirtyRect(p,a) 2149 #define IDirectDrawSurface2_Blt(p,a,b,c,d,e) (p)->lpVtbl->Blt(p,a,b,c,d,e) 2150 #define IDirectDrawSurface2_BltBatch(p,a,b,c) (p)->lpVtbl->BltBatch(p,a,b,c) 2151 #define IDirectDrawSurface2_BltFast(p,a,b,c,d,e) (p)->lpVtbl->BltFast(p,a,b,c,d,e) 2152 #define IDirectDrawSurface2_DeleteAttachedSurface(p,a,b) (p)->lpVtbl->DeleteAttachedSurface(p,a,b) 2153 #define IDirectDrawSurface2_EnumAttachedSurfaces(p,a,b) (p)->lpVtbl->EnumAttachedSurfaces(p,a,b) 2154 #define IDirectDrawSurface2_EnumOverlayZOrders(p,a,b,c) (p)->lpVtbl->EnumOverlayZOrders(p,a,b,c) 2155 #define IDirectDrawSurface2_Flip(p,a,b) (p)->lpVtbl->Flip(p,a,b) 2156 #define IDirectDrawSurface2_GetAttachedSurface(p,a,b) (p)->lpVtbl->GetAttachedSurface(p,a,b) 2157 #define IDirectDrawSurface2_GetBltStatus(p,a) (p)->lpVtbl->GetBltStatus(p,a) 2158 #define IDirectDrawSurface2_GetCaps(p,b) (p)->lpVtbl->GetCaps(p,b) 2159 #define IDirectDrawSurface2_GetClipper(p,a) (p)->lpVtbl->GetClipper(p,a) 2160 #define IDirectDrawSurface2_GetColorKey(p,a,b) (p)->lpVtbl->GetColorKey(p,a,b) 2161 #define IDirectDrawSurface2_GetDC(p,a) (p)->lpVtbl->GetDC(p,a) 2162 #define IDirectDrawSurface2_GetFlipStatus(p,a) (p)->lpVtbl->GetFlipStatus(p,a) 2163 #define IDirectDrawSurface2_GetOverlayPosition(p,a,b) (p)->lpVtbl->GetOverlayPosition(p,a,b) 2164 #define IDirectDrawSurface2_GetPalette(p,a) (p)->lpVtbl->GetPalette(p,a) 2165 #define IDirectDrawSurface2_GetPixelFormat(p,a) (p)->lpVtbl->GetPixelFormat(p,a) 2166 #define IDirectDrawSurface2_GetSurfaceDesc(p,a) (p)->lpVtbl->GetSurfaceDesc(p,a) 2167 #define IDirectDrawSurface2_Initialize(p,a,b) (p)->lpVtbl->Initialize(p,a,b) 2168 #define IDirectDrawSurface2_IsLost(p) (p)->lpVtbl->IsLost(p) 2169 #define IDirectDrawSurface2_Lock(p,a,b,c,d) (p)->lpVtbl->Lock(p,a,b,c,d) 2170 #define IDirectDrawSurface2_ReleaseDC(p,a) (p)->lpVtbl->ReleaseDC(p,a) 2171 #define IDirectDrawSurface2_Restore(p) (p)->lpVtbl->Restore(p) 2172 #define IDirectDrawSurface2_SetClipper(p,a) (p)->lpVtbl->SetClipper(p,a) 2173 #define IDirectDrawSurface2_SetColorKey(p,a,b) (p)->lpVtbl->SetColorKey(p,a,b) 2174 #define IDirectDrawSurface2_SetOverlayPosition(p,a,b) (p)->lpVtbl->SetOverlayPosition(p,a,b) 2175 #define IDirectDrawSurface2_SetPalette(p,a) (p)->lpVtbl->SetPalette(p,a) 2176 #define IDirectDrawSurface2_Unlock(p,b) (p)->lpVtbl->Unlock(p,b) 2177 #define IDirectDrawSurface2_UpdateOverlay(p,a,b,c,d,e) (p)->lpVtbl->UpdateOverlay(p,a,b,c,d,e) 2178 #define IDirectDrawSurface2_UpdateOverlayDisplay(p,a) (p)->lpVtbl->UpdateOverlayDisplay(p,a) 2179 #define IDirectDrawSurface2_UpdateOverlayZOrder(p,a,b) (p)->lpVtbl->UpdateOverlayZOrder(p,a,b) 2180 #define IDirectDrawSurface2_GetDDInterface(p,a) (p)->lpVtbl->GetDDInterface(p,a) 2181 #define IDirectDrawSurface2_PageLock(p,a) (p)->lpVtbl->PageLock(p,a) 2182 #define IDirectDrawSurface2_PageUnlock(p,a) (p)->lpVtbl->PageUnlock(p,a) 2183 #else 2184 #define IDirectDrawSurface2_QueryInterface(p,a,b) (p)->QueryInterface(a,b) 2185 #define IDirectDrawSurface2_AddRef(p) (p)->AddRef() 2186 #define IDirectDrawSurface2_Release(p) (p)->Release() 2187 #define IDirectDrawSurface2_AddAttachedSurface(p,a) (p)->AddAttachedSurface(a) 2188 #define IDirectDrawSurface2_AddOverlayDirtyRect(p,a) (p)->AddOverlayDirtyRect(a) 2189 #define IDirectDrawSurface2_Blt(p,a,b,c,d,e) (p)->Blt(a,b,c,d,e) 2190 #define IDirectDrawSurface2_BltBatch(p,a,b,c) (p)->BltBatch(a,b,c) 2191 #define IDirectDrawSurface2_BltFast(p,a,b,c,d,e) (p)->BltFast(a,b,c,d,e) 2192 #define IDirectDrawSurface2_DeleteAttachedSurface(p,a,b) (p)->DeleteAttachedSurface(a,b) 2193 #define IDirectDrawSurface2_EnumAttachedSurfaces(p,a,b) (p)->EnumAttachedSurfaces(a,b) 2194 #define IDirectDrawSurface2_EnumOverlayZOrders(p,a,b,c) (p)->EnumOverlayZOrders(a,b,c) 2195 #define IDirectDrawSurface2_Flip(p,a,b) (p)->Flip(a,b) 2196 #define IDirectDrawSurface2_GetAttachedSurface(p,a,b) (p)->GetAttachedSurface(a,b) 2197 #define IDirectDrawSurface2_GetBltStatus(p,a) (p)->GetBltStatus(a) 2198 #define IDirectDrawSurface2_GetCaps(p,b) (p)->GetCaps(b) 2199 #define IDirectDrawSurface2_GetClipper(p,a) (p)->GetClipper(a) 2200 #define IDirectDrawSurface2_GetColorKey(p,a,b) (p)->GetColorKey(a,b) 2201 #define IDirectDrawSurface2_GetDC(p,a) (p)->GetDC(a) 2202 #define IDirectDrawSurface2_GetFlipStatus(p,a) (p)->GetFlipStatus(a) 2203 #define IDirectDrawSurface2_GetOverlayPosition(p,a,b) (p)->GetOverlayPosition(a,b) 2204 #define IDirectDrawSurface2_GetPalette(p,a) (p)->GetPalette(a) 2205 #define IDirectDrawSurface2_GetPixelFormat(p,a) (p)->GetPixelFormat(a) 2206 #define IDirectDrawSurface2_GetSurfaceDesc(p,a) (p)->GetSurfaceDesc(a) 2207 #define IDirectDrawSurface2_Initialize(p,a,b) (p)->Initialize(a,b) 2208 #define IDirectDrawSurface2_IsLost(p) (p)->IsLost() 2209 #define IDirectDrawSurface2_Lock(p,a,b,c,d) (p)->Lock(a,b,c,d) 2210 #define IDirectDrawSurface2_ReleaseDC(p,a) (p)->ReleaseDC(a) 2211 #define IDirectDrawSurface2_Restore(p) (p)->Restore() 2212 #define IDirectDrawSurface2_SetClipper(p,a) (p)->SetClipper(a) 2213 #define IDirectDrawSurface2_SetColorKey(p,a,b) (p)->SetColorKey(a,b) 2214 #define IDirectDrawSurface2_SetOverlayPosition(p,a,b) (p)->SetOverlayPosition(a,b) 2215 #define IDirectDrawSurface2_SetPalette(p,a) (p)->SetPalette(a) 2216 #define IDirectDrawSurface2_Unlock(p,b) (p)->Unlock(b) 2217 #define IDirectDrawSurface2_UpdateOverlay(p,a,b,c,d,e) (p)->UpdateOverlay(a,b,c,d,e) 2218 #define IDirectDrawSurface2_UpdateOverlayDisplay(p,a) (p)->UpdateOverlayDisplay(a) 2219 #define IDirectDrawSurface2_UpdateOverlayZOrder(p,a,b) (p)->UpdateOverlayZOrder(a,b) 2220 #define IDirectDrawSurface2_GetDDInterface(p,a) (p)->GetDDInterface(a) 2221 #define IDirectDrawSurface2_PageLock(p,a) (p)->PageLock(a) 2222 #define IDirectDrawSurface2_PageUnlock(p,a) (p)->PageUnlock(a) 2223 #endif 2224#endif 2225 2226#if defined( _WIN32 ) && !defined( _NO_COM ) 2227#undef INTERFACE 2228#define INTERFACE IDirectDrawSurface3 2229DECLARE_INTERFACE_( IDirectDrawSurface3, IUnknown ) 2230{ 2231 STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID * ppvObj) PURE; 2232 STDMETHOD_(ULONG,AddRef) (THIS) PURE; 2233 STDMETHOD_(ULONG,Release) (THIS) PURE; 2234 STDMETHOD(AddAttachedSurface)(THIS_ LPDIRECTDRAWSURFACE3) PURE; 2235 STDMETHOD(AddOverlayDirtyRect)(THIS_ LPRECT) PURE; 2236 STDMETHOD(Blt)(THIS_ LPRECT,LPDIRECTDRAWSURFACE3, LPRECT,DWORD, LPDDBLTFX) PURE; 2237 STDMETHOD(BltBatch)(THIS_ LPDDBLTBATCH, DWORD, DWORD ) PURE; 2238 STDMETHOD(BltFast)(THIS_ DWORD,DWORD,LPDIRECTDRAWSURFACE3, LPRECT,DWORD) PURE; 2239 STDMETHOD(DeleteAttachedSurface)(THIS_ DWORD,LPDIRECTDRAWSURFACE3) PURE; 2240 STDMETHOD(EnumAttachedSurfaces)(THIS_ LPVOID,LPDDENUMSURFACESCALLBACK) PURE; 2241 STDMETHOD(EnumOverlayZOrders)(THIS_ DWORD,LPVOID,LPDDENUMSURFACESCALLBACK) PURE; 2242 STDMETHOD(Flip)(THIS_ LPDIRECTDRAWSURFACE3, DWORD) PURE; 2243 STDMETHOD(GetAttachedSurface)(THIS_ LPDDSCAPS, LPDIRECTDRAWSURFACE3 *) PURE; 2244 STDMETHOD(GetBltStatus)(THIS_ DWORD) PURE; 2245 STDMETHOD(GetCaps)(THIS_ LPDDSCAPS) PURE; 2246 STDMETHOD(GetClipper)(THIS_ LPDIRECTDRAWCLIPPER *) PURE; 2247 STDMETHOD(GetColorKey)(THIS_ DWORD, LPDDCOLORKEY) PURE; 2248 STDMETHOD(GetDC)(THIS_ HDC *) PURE; 2249 STDMETHOD(GetFlipStatus)(THIS_ DWORD) PURE; 2250 STDMETHOD(GetOverlayPosition)(THIS_ LPLONG, LPLONG ) PURE; 2251 STDMETHOD(GetPalette)(THIS_ LPDIRECTDRAWPALETTE *) PURE; 2252 STDMETHOD(GetPixelFormat)(THIS_ LPDDPIXELFORMAT) PURE; 2253 STDMETHOD(GetSurfaceDesc)(THIS_ LPDDSURFACEDESC) PURE; 2254 STDMETHOD(Initialize)(THIS_ LPDIRECTDRAW, LPDDSURFACEDESC) PURE; 2255 STDMETHOD(IsLost)(THIS) PURE; 2256 STDMETHOD(Lock)(THIS_ LPRECT,LPDDSURFACEDESC,DWORD,HANDLE) PURE; 2257 STDMETHOD(ReleaseDC)(THIS_ HDC) PURE; 2258 STDMETHOD(Restore)(THIS) PURE; 2259 STDMETHOD(SetClipper)(THIS_ LPDIRECTDRAWCLIPPER) PURE; 2260 STDMETHOD(SetColorKey)(THIS_ DWORD, LPDDCOLORKEY) PURE; 2261 STDMETHOD(SetOverlayPosition)(THIS_ LONG, LONG ) PURE; 2262 STDMETHOD(SetPalette)(THIS_ LPDIRECTDRAWPALETTE) PURE; 2263 STDMETHOD(Unlock)(THIS_ LPVOID) PURE; 2264 STDMETHOD(UpdateOverlay)(THIS_ LPRECT, LPDIRECTDRAWSURFACE3,LPRECT,DWORD, LPDDOVERLAYFX) PURE; 2265 STDMETHOD(UpdateOverlayDisplay)(THIS_ DWORD) PURE; 2266 STDMETHOD(UpdateOverlayZOrder)(THIS_ DWORD, LPDIRECTDRAWSURFACE3) PURE; 2267 STDMETHOD(GetDDInterface)(THIS_ LPVOID *) PURE; 2268 STDMETHOD(PageLock)(THIS_ DWORD) PURE; 2269 STDMETHOD(PageUnlock)(THIS_ DWORD) PURE; 2270 STDMETHOD(SetSurfaceDesc)(THIS_ LPDDSURFACEDESC, DWORD) PURE; 2271 }; 2272 2273 #if !defined(__cplusplus) || defined(CINTERFACE) 2274 #define IDirectDrawSurface3_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) 2275 #define IDirectDrawSurface3_AddRef(p) (p)->lpVtbl->AddRef(p) 2276 #define IDirectDrawSurface3_Release(p) (p)->lpVtbl->Release(p) 2277 #define IDirectDrawSurface3_AddAttachedSurface(p,a) (p)->lpVtbl->AddAttachedSurface(p,a) 2278 #define IDirectDrawSurface3_AddOverlayDirtyRect(p,a) (p)->lpVtbl->AddOverlayDirtyRect(p,a) 2279 #define IDirectDrawSurface3_Blt(p,a,b,c,d,e) (p)->lpVtbl->Blt(p,a,b,c,d,e) 2280 #define IDirectDrawSurface3_BltBatch(p,a,b,c) (p)->lpVtbl->BltBatch(p,a,b,c) 2281 #define IDirectDrawSurface3_BltFast(p,a,b,c,d,e) (p)->lpVtbl->BltFast(p,a,b,c,d,e) 2282 #define IDirectDrawSurface3_DeleteAttachedSurface(p,a,b) (p)->lpVtbl->DeleteAttachedSurface(p,a,b) 2283 #define IDirectDrawSurface3_EnumAttachedSurfaces(p,a,b) (p)->lpVtbl->EnumAttachedSurfaces(p,a,b) 2284 #define IDirectDrawSurface3_EnumOverlayZOrders(p,a,b,c) (p)->lpVtbl->EnumOverlayZOrders(p,a,b,c) 2285 #define IDirectDrawSurface3_Flip(p,a,b) (p)->lpVtbl->Flip(p,a,b) 2286 #define IDirectDrawSurface3_GetAttachedSurface(p,a,b) (p)->lpVtbl->GetAttachedSurface(p,a,b) 2287 #define IDirectDrawSurface3_GetBltStatus(p,a) (p)->lpVtbl->GetBltStatus(p,a) 2288 #define IDirectDrawSurface3_GetCaps(p,b) (p)->lpVtbl->GetCaps(p,b) 2289 #define IDirectDrawSurface3_GetClipper(p,a) (p)->lpVtbl->GetClipper(p,a) 2290 #define IDirectDrawSurface3_GetColorKey(p,a,b) (p)->lpVtbl->GetColorKey(p,a,b) 2291 #define IDirectDrawSurface3_GetDC(p,a) (p)->lpVtbl->GetDC(p,a) 2292 #define IDirectDrawSurface3_GetFlipStatus(p,a) (p)->lpVtbl->GetFlipStatus(p,a) 2293 #define IDirectDrawSurface3_GetOverlayPosition(p,a,b) (p)->lpVtbl->GetOverlayPosition(p,a,b) 2294 #define IDirectDrawSurface3_GetPalette(p,a) (p)->lpVtbl->GetPalette(p,a) 2295 #define IDirectDrawSurface3_GetPixelFormat(p,a) (p)->lpVtbl->GetPixelFormat(p,a) 2296 #define IDirectDrawSurface3_GetSurfaceDesc(p,a) (p)->lpVtbl->GetSurfaceDesc(p,a) 2297 #define IDirectDrawSurface3_Initialize(p,a,b) (p)->lpVtbl->Initialize(p,a,b) 2298 #define IDirectDrawSurface3_IsLost(p) (p)->lpVtbl->IsLost(p) 2299 #define IDirectDrawSurface3_Lock(p,a,b,c,d) (p)->lpVtbl->Lock(p,a,b,c,d) 2300 #define IDirectDrawSurface3_ReleaseDC(p,a) (p)->lpVtbl->ReleaseDC(p,a) 2301 #define IDirectDrawSurface3_Restore(p) (p)->lpVtbl->Restore(p) 2302 #define IDirectDrawSurface3_SetClipper(p,a) (p)->lpVtbl->SetClipper(p,a) 2303 #define IDirectDrawSurface3_SetColorKey(p,a,b) (p)->lpVtbl->SetColorKey(p,a,b) 2304 #define IDirectDrawSurface3_SetOverlayPosition(p,a,b) (p)->lpVtbl->SetOverlayPosition(p,a,b) 2305 #define IDirectDrawSurface3_SetPalette(p,a) (p)->lpVtbl->SetPalette(p,a) 2306 #define IDirectDrawSurface3_Unlock(p,b) (p)->lpVtbl->Unlock(p,b) 2307 #define IDirectDrawSurface3_UpdateOverlay(p,a,b,c,d,e) (p)->lpVtbl->UpdateOverlay(p,a,b,c,d,e) 2308 #define IDirectDrawSurface3_UpdateOverlayDisplay(p,a) (p)->lpVtbl->UpdateOverlayDisplay(p,a) 2309 #define IDirectDrawSurface3_UpdateOverlayZOrder(p,a,b) (p)->lpVtbl->UpdateOverlayZOrder(p,a,b) 2310 #define IDirectDrawSurface3_GetDDInterface(p,a) (p)->lpVtbl->GetDDInterface(p,a) 2311 #define IDirectDrawSurface3_PageLock(p,a) (p)->lpVtbl->PageLock(p,a) 2312 #define IDirectDrawSurface3_PageUnlock(p,a) (p)->lpVtbl->PageUnlock(p,a) 2313 #define IDirectDrawSurface3_SetSurfaceDesc(p,a,b) (p)->lpVtbl->SetSurfaceDesc(p,a,b) 2314 #else 2315 #define IDirectDrawSurface3_QueryInterface(p,a,b) (p)->QueryInterface(a,b) 2316 #define IDirectDrawSurface3_AddRef(p) (p)->AddRef() 2317 #define IDirectDrawSurface3_Release(p) (p)->Release() 2318 #define IDirectDrawSurface3_AddAttachedSurface(p,a) (p)->AddAttachedSurface(a) 2319 #define IDirectDrawSurface3_AddOverlayDirtyRect(p,a) (p)->AddOverlayDirtyRect(a) 2320 #define IDirectDrawSurface3_Blt(p,a,b,c,d,e) (p)->Blt(a,b,c,d,e) 2321 #define IDirectDrawSurface3_BltBatch(p,a,b,c) (p)->BltBatch(a,b,c) 2322 #define IDirectDrawSurface3_BltFast(p,a,b,c,d,e) (p)->BltFast(a,b,c,d,e) 2323 #define IDirectDrawSurface3_DeleteAttachedSurface(p,a,b) (p)->DeleteAttachedSurface(a,b) 2324 #define IDirectDrawSurface3_EnumAttachedSurfaces(p,a,b) (p)->EnumAttachedSurfaces(a,b) 2325 #define IDirectDrawSurface3_EnumOverlayZOrders(p,a,b,c) (p)->EnumOverlayZOrders(a,b,c) 2326 #define IDirectDrawSurface3_Flip(p,a,b) (p)->Flip(a,b) 2327 #define IDirectDrawSurface3_GetAttachedSurface(p,a,b) (p)->GetAttachedSurface(a,b) 2328 #define IDirectDrawSurface3_GetBltStatus(p,a) (p)->GetBltStatus(a) 2329 #define IDirectDrawSurface3_GetCaps(p,b) (p)->GetCaps(b) 2330 #define IDirectDrawSurface3_GetClipper(p,a) (p)->GetClipper(a) 2331 #define IDirectDrawSurface3_GetColorKey(p,a,b) (p)->GetColorKey(a,b) 2332 #define IDirectDrawSurface3_GetDC(p,a) (p)->GetDC(a) 2333 #define IDirectDrawSurface3_GetFlipStatus(p,a) (p)->GetFlipStatus(a) 2334 #define IDirectDrawSurface3_GetOverlayPosition(p,a,b) (p)->GetOverlayPosition(a,b) 2335 #define IDirectDrawSurface3_GetPalette(p,a) (p)->GetPalette(a) 2336 #define IDirectDrawSurface3_GetPixelFormat(p,a) (p)->GetPixelFormat(a) 2337 #define IDirectDrawSurface3_GetSurfaceDesc(p,a) (p)->GetSurfaceDesc(a) 2338 #define IDirectDrawSurface3_Initialize(p,a,b) (p)->Initialize(a,b) 2339 #define IDirectDrawSurface3_IsLost(p) (p)->IsLost() 2340 #define IDirectDrawSurface3_Lock(p,a,b,c,d) (p)->Lock(a,b,c,d) 2341 #define IDirectDrawSurface3_ReleaseDC(p,a) (p)->ReleaseDC(a) 2342 #define IDirectDrawSurface3_Restore(p) (p)->Restore() 2343 #define IDirectDrawSurface3_SetClipper(p,a) (p)->SetClipper(a) 2344 #define IDirectDrawSurface3_SetColorKey(p,a,b) (p)->SetColorKey(a,b) 2345 #define IDirectDrawSurface3_SetOverlayPosition(p,a,b) (p)->SetOverlayPosition(a,b) 2346 #define IDirectDrawSurface3_SetPalette(p,a) (p)->SetPalette(a) 2347 #define IDirectDrawSurface3_Unlock(p,b) (p)->Unlock(b) 2348 #define IDirectDrawSurface3_UpdateOverlay(p,a,b,c,d,e) (p)->UpdateOverlay(a,b,c,d,e) 2349 #define IDirectDrawSurface3_UpdateOverlayDisplay(p,a) (p)->UpdateOverlayDisplay(a) 2350 #define IDirectDrawSurface3_UpdateOverlayZOrder(p,a,b) (p)->UpdateOverlayZOrder(a,b) 2351 #define IDirectDrawSurface3_GetDDInterface(p,a) (p)->GetDDInterface(a) 2352 #define IDirectDrawSurface3_PageLock(p,a) (p)->PageLock(a) 2353 #define IDirectDrawSurface3_PageUnlock(p,a) (p)->PageUnlock(a) 2354 #define IDirectDrawSurface3_SetSurfaceDesc(p,a,b) (p)->SetSurfaceDesc(a,b) 2355 #endif 2356#endif 2357 2358#if defined( _WIN32 ) && !defined( _NO_COM ) 2359 #undef INTERFACE 2360 #define INTERFACE IDirectDrawSurface4 2361 2362 DECLARE_INTERFACE_( IDirectDrawSurface4, IUnknown ) 2363 { 2364 STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID * ppvObj) PURE; 2365 STDMETHOD_(ULONG,AddRef) (THIS) PURE; 2366 STDMETHOD_(ULONG,Release) (THIS) PURE; 2367 STDMETHOD(AddAttachedSurface)(THIS_ LPDIRECTDRAWSURFACE4) PURE; 2368 STDMETHOD(AddOverlayDirtyRect)(THIS_ LPRECT) PURE; 2369 STDMETHOD(Blt)(THIS_ LPRECT,LPDIRECTDRAWSURFACE4, LPRECT,DWORD, LPDDBLTFX) PURE; 2370 STDMETHOD(BltBatch)(THIS_ LPDDBLTBATCH, DWORD, DWORD ) PURE; 2371 STDMETHOD(BltFast)(THIS_ DWORD,DWORD,LPDIRECTDRAWSURFACE4, LPRECT,DWORD) PURE; 2372 STDMETHOD(DeleteAttachedSurface)(THIS_ DWORD,LPDIRECTDRAWSURFACE4) PURE; 2373 STDMETHOD(EnumAttachedSurfaces)(THIS_ LPVOID,LPDDENUMSURFACESCALLBACK2) PURE; 2374 STDMETHOD(EnumOverlayZOrders)(THIS_ DWORD,LPVOID,LPDDENUMSURFACESCALLBACK2) PURE; 2375 STDMETHOD(Flip)(THIS_ LPDIRECTDRAWSURFACE4, DWORD) PURE; 2376 STDMETHOD(GetAttachedSurface)(THIS_ LPDDSCAPS2, LPDIRECTDRAWSURFACE4 *) PURE; 2377 STDMETHOD(GetBltStatus)(THIS_ DWORD) PURE; 2378 STDMETHOD(GetCaps)(THIS_ LPDDSCAPS2) PURE; 2379 STDMETHOD(GetClipper)(THIS_ LPDIRECTDRAWCLIPPER *) PURE; 2380 STDMETHOD(GetColorKey)(THIS_ DWORD, LPDDCOLORKEY) PURE; 2381 STDMETHOD(GetDC)(THIS_ HDC *) PURE; 2382 STDMETHOD(GetFlipStatus)(THIS_ DWORD) PURE; 2383 STDMETHOD(GetOverlayPosition)(THIS_ LPLONG, LPLONG ) PURE; 2384 STDMETHOD(GetPalette)(THIS_ LPDIRECTDRAWPALETTE *) PURE; 2385 STDMETHOD(GetPixelFormat)(THIS_ LPDDPIXELFORMAT) PURE; 2386 STDMETHOD(GetSurfaceDesc)(THIS_ LPDDSURFACEDESC2) PURE; 2387 STDMETHOD(Initialize)(THIS_ LPDIRECTDRAW, LPDDSURFACEDESC2) PURE; 2388 STDMETHOD(IsLost)(THIS) PURE; 2389 STDMETHOD(Lock)(THIS_ LPRECT,LPDDSURFACEDESC2,DWORD,HANDLE) PURE; 2390 STDMETHOD(ReleaseDC)(THIS_ HDC) PURE; 2391 STDMETHOD(Restore)(THIS) PURE; 2392 STDMETHOD(SetClipper)(THIS_ LPDIRECTDRAWCLIPPER) PURE; 2393 STDMETHOD(SetColorKey)(THIS_ DWORD, LPDDCOLORKEY) PURE; 2394 STDMETHOD(SetOverlayPosition)(THIS_ LONG, LONG ) PURE; 2395 STDMETHOD(SetPalette)(THIS_ LPDIRECTDRAWPALETTE) PURE; 2396 STDMETHOD(Unlock)(THIS_ LPRECT) PURE; 2397 STDMETHOD(UpdateOverlay)(THIS_ LPRECT, LPDIRECTDRAWSURFACE4,LPRECT,DWORD, LPDDOVERLAYFX) PURE; 2398 STDMETHOD(UpdateOverlayDisplay)(THIS_ DWORD) PURE; 2399 STDMETHOD(UpdateOverlayZOrder)(THIS_ DWORD, LPDIRECTDRAWSURFACE4) PURE; 2400 STDMETHOD(GetDDInterface)(THIS_ LPVOID *) PURE; 2401 STDMETHOD(PageLock)(THIS_ DWORD) PURE; 2402 STDMETHOD(PageUnlock)(THIS_ DWORD) PURE; 2403 STDMETHOD(SetSurfaceDesc)(THIS_ LPDDSURFACEDESC2, DWORD) PURE; 2404 STDMETHOD(SetPrivateData)(THIS_ REFGUID, LPVOID, DWORD, DWORD) PURE; 2405 STDMETHOD(GetPrivateData)(THIS_ REFGUID, LPVOID, LPDWORD) PURE; 2406 STDMETHOD(FreePrivateData)(THIS_ REFGUID) PURE; 2407 STDMETHOD(GetUniquenessValue)(THIS_ LPDWORD) PURE; 2408 STDMETHOD(ChangeUniquenessValue)(THIS) PURE; 2409 }; 2410 #if !defined(__cplusplus) || defined(CINTERFACE) 2411 #define IDirectDrawSurface4_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) 2412 #define IDirectDrawSurface4_AddRef(p) (p)->lpVtbl->AddRef(p) 2413 #define IDirectDrawSurface4_Release(p) (p)->lpVtbl->Release(p) 2414 #define IDirectDrawSurface4_AddAttachedSurface(p,a) (p)->lpVtbl->AddAttachedSurface(p,a) 2415 #define IDirectDrawSurface4_AddOverlayDirtyRect(p,a) (p)->lpVtbl->AddOverlayDirtyRect(p,a) 2416 #define IDirectDrawSurface4_Blt(p,a,b,c,d,e) (p)->lpVtbl->Blt(p,a,b,c,d,e) 2417 #define IDirectDrawSurface4_BltBatch(p,a,b,c) (p)->lpVtbl->BltBatch(p,a,b,c) 2418 #define IDirectDrawSurface4_BltFast(p,a,b,c,d,e) (p)->lpVtbl->BltFast(p,a,b,c,d,e) 2419 #define IDirectDrawSurface4_DeleteAttachedSurface(p,a,b) (p)->lpVtbl->DeleteAttachedSurface(p,a,b) 2420 #define IDirectDrawSurface4_EnumAttachedSurfaces(p,a,b) (p)->lpVtbl->EnumAttachedSurfaces(p,a,b) 2421 #define IDirectDrawSurface4_EnumOverlayZOrders(p,a,b,c) (p)->lpVtbl->EnumOverlayZOrders(p,a,b,c) 2422 #define IDirectDrawSurface4_Flip(p,a,b) (p)->lpVtbl->Flip(p,a,b) 2423 #define IDirectDrawSurface4_GetAttachedSurface(p,a,b) (p)->lpVtbl->GetAttachedSurface(p,a,b) 2424 #define IDirectDrawSurface4_GetBltStatus(p,a) (p)->lpVtbl->GetBltStatus(p,a) 2425 #define IDirectDrawSurface4_GetCaps(p,b) (p)->lpVtbl->GetCaps(p,b) 2426 #define IDirectDrawSurface4_GetClipper(p,a) (p)->lpVtbl->GetClipper(p,a) 2427 #define IDirectDrawSurface4_GetColorKey(p,a,b) (p)->lpVtbl->GetColorKey(p,a,b) 2428 #define IDirectDrawSurface4_GetDC(p,a) (p)->lpVtbl->GetDC(p,a) 2429 #define IDirectDrawSurface4_GetFlipStatus(p,a) (p)->lpVtbl->GetFlipStatus(p,a) 2430 #define IDirectDrawSurface4_GetOverlayPosition(p,a,b) (p)->lpVtbl->GetOverlayPosition(p,a,b) 2431 #define IDirectDrawSurface4_GetPalette(p,a) (p)->lpVtbl->GetPalette(p,a) 2432 #define IDirectDrawSurface4_GetPixelFormat(p,a) (p)->lpVtbl->GetPixelFormat(p,a) 2433 #define IDirectDrawSurface4_GetSurfaceDesc(p,a) (p)->lpVtbl->GetSurfaceDesc(p,a) 2434 #define IDirectDrawSurface4_Initialize(p,a,b) (p)->lpVtbl->Initialize(p,a,b) 2435 #define IDirectDrawSurface4_IsLost(p) (p)->lpVtbl->IsLost(p) 2436 #define IDirectDrawSurface4_Lock(p,a,b,c,d) (p)->lpVtbl->Lock(p,a,b,c,d) 2437 #define IDirectDrawSurface4_ReleaseDC(p,a) (p)->lpVtbl->ReleaseDC(p,a) 2438 #define IDirectDrawSurface4_Restore(p) (p)->lpVtbl->Restore(p) 2439 #define IDirectDrawSurface4_SetClipper(p,a) (p)->lpVtbl->SetClipper(p,a) 2440 #define IDirectDrawSurface4_SetColorKey(p,a,b) (p)->lpVtbl->SetColorKey(p,a,b) 2441 #define IDirectDrawSurface4_SetOverlayPosition(p,a,b) (p)->lpVtbl->SetOverlayPosition(p,a,b) 2442 #define IDirectDrawSurface4_SetPalette(p,a) (p)->lpVtbl->SetPalette(p,a) 2443 #define IDirectDrawSurface4_Unlock(p,b) (p)->lpVtbl->Unlock(p,b) 2444 #define IDirectDrawSurface4_UpdateOverlay(p,a,b,c,d,e) (p)->lpVtbl->UpdateOverlay(p,a,b,c,d,e) 2445 #define IDirectDrawSurface4_UpdateOverlayDisplay(p,a) (p)->lpVtbl->UpdateOverlayDisplay(p,a) 2446 #define IDirectDrawSurface4_UpdateOverlayZOrder(p,a,b) (p)->lpVtbl->UpdateOverlayZOrder(p,a,b) 2447 #define IDirectDrawSurface4_GetDDInterface(p,a) (p)->lpVtbl->GetDDInterface(p,a) 2448 #define IDirectDrawSurface4_PageLock(p,a) (p)->lpVtbl->PageLock(p,a) 2449 #define IDirectDrawSurface4_PageUnlock(p,a) (p)->lpVtbl->PageUnlock(p,a) 2450 #define IDirectDrawSurface4_SetSurfaceDesc(p,a,b) (p)->lpVtbl->SetSurfaceDesc(p,a,b) 2451 #define IDirectDrawSurface4_SetPrivateData(p,a,b,c,d) (p)->lpVtbl->SetPrivateData(p,a,b,c,d) 2452 #define IDirectDrawSurface4_GetPrivateData(p,a,b,c) (p)->lpVtbl->GetPrivateData(p,a,b,c) 2453 #define IDirectDrawSurface4_FreePrivateData(p,a) (p)->lpVtbl->FreePrivateData(p,a) 2454 #define IDirectDrawSurface4_GetUniquenessValue(p, a) (p)->lpVtbl->GetUniquenessValue(p, a) 2455 #define IDirectDrawSurface4_ChangeUniquenessValue(p) (p)->lpVtbl->ChangeUniquenessValue(p) 2456 #else 2457 #define IDirectDrawSurface4_QueryInterface(p,a,b) (p)->QueryInterface(a,b) 2458 #define IDirectDrawSurface4_AddRef(p) (p)->AddRef() 2459 #define IDirectDrawSurface4_Release(p) (p)->Release() 2460 #define IDirectDrawSurface4_AddAttachedSurface(p,a) (p)->AddAttachedSurface(a) 2461 #define IDirectDrawSurface4_AddOverlayDirtyRect(p,a) (p)->AddOverlayDirtyRect(a) 2462 #define IDirectDrawSurface4_Blt(p,a,b,c,d,e) (p)->Blt(a,b,c,d,e) 2463 #define IDirectDrawSurface4_BltBatch(p,a,b,c) (p)->BltBatch(a,b,c) 2464 #define IDirectDrawSurface4_BltFast(p,a,b,c,d,e) (p)->BltFast(a,b,c,d,e) 2465 #define IDirectDrawSurface4_DeleteAttachedSurface(p,a,b) (p)->DeleteAttachedSurface(a,b) 2466 #define IDirectDrawSurface4_EnumAttachedSurfaces(p,a,b) (p)->EnumAttachedSurfaces(a,b) 2467 #define IDirectDrawSurface4_EnumOverlayZOrders(p,a,b,c) (p)->EnumOverlayZOrders(a,b,c) 2468 #define IDirectDrawSurface4_Flip(p,a,b) (p)->Flip(a,b) 2469 #define IDirectDrawSurface4_GetAttachedSurface(p,a,b) (p)->GetAttachedSurface(a,b) 2470 #define IDirectDrawSurface4_GetBltStatus(p,a) (p)->GetBltStatus(a) 2471 #define IDirectDrawSurface4_GetCaps(p,b) (p)->GetCaps(b) 2472 #define IDirectDrawSurface4_GetClipper(p,a) (p)->GetClipper(a) 2473 #define IDirectDrawSurface4_GetColorKey(p,a,b) (p)->GetColorKey(a,b) 2474 #define IDirectDrawSurface4_GetDC(p,a) (p)->GetDC(a) 2475 #define IDirectDrawSurface4_GetFlipStatus(p,a) (p)->GetFlipStatus(a) 2476 #define IDirectDrawSurface4_GetOverlayPosition(p,a,b) (p)->GetOverlayPosition(a,b) 2477 #define IDirectDrawSurface4_GetPalette(p,a) (p)->GetPalette(a) 2478 #define IDirectDrawSurface4_GetPixelFormat(p,a) (p)->GetPixelFormat(a) 2479 #define IDirectDrawSurface4_GetSurfaceDesc(p,a) (p)->GetSurfaceDesc(a) 2480 #define IDirectDrawSurface4_Initialize(p,a,b) (p)->Initialize(a,b) 2481 #define IDirectDrawSurface4_IsLost(p) (p)->IsLost() 2482 #define IDirectDrawSurface4_Lock(p,a,b,c,d) (p)->Lock(a,b,c,d) 2483 #define IDirectDrawSurface4_ReleaseDC(p,a) (p)->ReleaseDC(a) 2484 #define IDirectDrawSurface4_Restore(p) (p)->Restore() 2485 #define IDirectDrawSurface4_SetClipper(p,a) (p)->SetClipper(a) 2486 #define IDirectDrawSurface4_SetColorKey(p,a,b) (p)->SetColorKey(a,b) 2487 #define IDirectDrawSurface4_SetOverlayPosition(p,a,b) (p)->SetOverlayPosition(a,b) 2488 #define IDirectDrawSurface4_SetPalette(p,a) (p)->SetPalette(a) 2489 #define IDirectDrawSurface4_Unlock(p,b) (p)->Unlock(b) 2490 #define IDirectDrawSurface4_UpdateOverlay(p,a,b,c,d,e) (p)->UpdateOverlay(a,b,c,d,e) 2491 #define IDirectDrawSurface4_UpdateOverlayDisplay(p,a) (p)->UpdateOverlayDisplay(a) 2492 #define IDirectDrawSurface4_UpdateOverlayZOrder(p,a,b) (p)->UpdateOverlayZOrder(a,b) 2493 #define IDirectDrawSurface4_GetDDInterface(p,a) (p)->GetDDInterface(a) 2494 #define IDirectDrawSurface4_PageLock(p,a) (p)->PageLock(a) 2495 #define IDirectDrawSurface4_PageUnlock(p,a) (p)->PageUnlock(a) 2496 #define IDirectDrawSurface4_SetSurfaceDesc(p,a,b) (p)->SetSurfaceDesc(a,b) 2497 #define IDirectDrawSurface4_SetPrivateData(p,a,b,c,d) (p)->SetPrivateData(a,b,c,d) 2498 #define IDirectDrawSurface4_GetPrivateData(p,a,b,c) (p)->GetPrivateData(a,b,c) 2499 #define IDirectDrawSurface4_FreePrivateData(p,a) (p)->FreePrivateData(a) 2500 #define IDirectDrawSurface4_GetUniquenessValue(p, a) (p)->GetUniquenessValue(a) 2501 #define IDirectDrawSurface4_ChangeUniquenessValue(p) (p)->ChangeUniquenessValue() 2502 #endif 2503#endif 2504 2505#if defined( _WIN32 ) && !defined( _NO_COM ) 2506 #undef INTERFACE 2507 #define INTERFACE IDirectDrawSurface7 2508 2509 DECLARE_INTERFACE_( IDirectDrawSurface7, IUnknown ) 2510 { 2511 STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID * ppvObj) PURE; 2512 STDMETHOD_(ULONG,AddRef) (THIS) PURE; 2513 STDMETHOD_(ULONG,Release) (THIS) PURE; 2514 STDMETHOD(AddAttachedSurface)(THIS_ LPDIRECTDRAWSURFACE7) PURE; 2515 STDMETHOD(AddOverlayDirtyRect)(THIS_ LPRECT) PURE; 2516 STDMETHOD(Blt)(THIS_ LPRECT,LPDIRECTDRAWSURFACE7, LPRECT,DWORD, LPDDBLTFX) PURE; 2517 STDMETHOD(BltBatch)(THIS_ LPDDBLTBATCH, DWORD, DWORD ) PURE; 2518 STDMETHOD(BltFast)(THIS_ DWORD,DWORD,LPDIRECTDRAWSURFACE7, LPRECT,DWORD) PURE; 2519 STDMETHOD(DeleteAttachedSurface)(THIS_ DWORD,LPDIRECTDRAWSURFACE7) PURE; 2520 STDMETHOD(EnumAttachedSurfaces)(THIS_ LPVOID,LPDDENUMSURFACESCALLBACK7) PURE; 2521 STDMETHOD(EnumOverlayZOrders)(THIS_ DWORD,LPVOID,LPDDENUMSURFACESCALLBACK7) PURE; 2522 STDMETHOD(Flip)(THIS_ LPDIRECTDRAWSURFACE7, DWORD) PURE; 2523 STDMETHOD(GetAttachedSurface)(THIS_ LPDDSCAPS2, LPDIRECTDRAWSURFACE7 *) PURE; 2524 STDMETHOD(GetBltStatus)(THIS_ DWORD) PURE; 2525 STDMETHOD(GetCaps)(THIS_ LPDDSCAPS2) PURE; 2526 STDMETHOD(GetClipper)(THIS_ LPDIRECTDRAWCLIPPER *) PURE; 2527 STDMETHOD(GetColorKey)(THIS_ DWORD, LPDDCOLORKEY) PURE; 2528 STDMETHOD(GetDC)(THIS_ HDC *) PURE; 2529 STDMETHOD(GetFlipStatus)(THIS_ DWORD) PURE; 2530 STDMETHOD(GetOverlayPosition)(THIS_ LPLONG, LPLONG ) PURE; 2531 STDMETHOD(GetPalette)(THIS_ LPDIRECTDRAWPALETTE *) PURE; 2532 STDMETHOD(GetPixelFormat)(THIS_ LPDDPIXELFORMAT) PURE; 2533 STDMETHOD(GetSurfaceDesc)(THIS_ LPDDSURFACEDESC2) PURE; 2534 STDMETHOD(Initialize)(THIS_ LPDIRECTDRAW, LPDDSURFACEDESC2) PURE; 2535 STDMETHOD(IsLost)(THIS) PURE; 2536 STDMETHOD(Lock)(THIS_ LPRECT,LPDDSURFACEDESC2,DWORD,HANDLE) PURE; 2537 STDMETHOD(ReleaseDC)(THIS_ HDC) PURE; 2538 STDMETHOD(Restore)(THIS) PURE; 2539 STDMETHOD(SetClipper)(THIS_ LPDIRECTDRAWCLIPPER) PURE; 2540 STDMETHOD(SetColorKey)(THIS_ DWORD, LPDDCOLORKEY) PURE; 2541 STDMETHOD(SetOverlayPosition)(THIS_ LONG, LONG ) PURE; 2542 STDMETHOD(SetPalette)(THIS_ LPDIRECTDRAWPALETTE) PURE; 2543 STDMETHOD(Unlock)(THIS_ LPRECT) PURE; 2544 STDMETHOD(UpdateOverlay)(THIS_ LPRECT, LPDIRECTDRAWSURFACE7,LPRECT,DWORD, LPDDOVERLAYFX) PURE; 2545 STDMETHOD(UpdateOverlayDisplay)(THIS_ DWORD) PURE; 2546 STDMETHOD(UpdateOverlayZOrder)(THIS_ DWORD, LPDIRECTDRAWSURFACE7) PURE; 2547 STDMETHOD(GetDDInterface)(THIS_ LPVOID *) PURE; 2548 STDMETHOD(PageLock)(THIS_ DWORD) PURE; 2549 STDMETHOD(PageUnlock)(THIS_ DWORD) PURE; 2550 STDMETHOD(SetSurfaceDesc)(THIS_ LPDDSURFACEDESC2, DWORD) PURE; 2551 STDMETHOD(SetPrivateData)(THIS_ REFGUID, LPVOID, DWORD, DWORD) PURE; 2552 STDMETHOD(GetPrivateData)(THIS_ REFGUID, LPVOID, LPDWORD) PURE; 2553 STDMETHOD(FreePrivateData)(THIS_ REFGUID) PURE; 2554 STDMETHOD(GetUniquenessValue)(THIS_ LPDWORD) PURE; 2555 STDMETHOD(ChangeUniquenessValue)(THIS) PURE; 2556 STDMETHOD(SetPriority)(THIS_ DWORD) PURE; 2557 STDMETHOD(GetPriority)(THIS_ LPDWORD) PURE; 2558 STDMETHOD(SetLOD)(THIS_ DWORD) PURE; 2559 STDMETHOD(GetLOD)(THIS_ LPDWORD) PURE; 2560 }; 2561 #if !defined(__cplusplus) || defined(CINTERFACE) 2562 #define IDirectDrawSurface7_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) 2563 #define IDirectDrawSurface7_AddRef(p) (p)->lpVtbl->AddRef(p) 2564 #define IDirectDrawSurface7_Release(p) (p)->lpVtbl->Release(p) 2565 #define IDirectDrawSurface7_AddAttachedSurface(p,a) (p)->lpVtbl->AddAttachedSurface(p,a) 2566 #define IDirectDrawSurface7_AddOverlayDirtyRect(p,a) (p)->lpVtbl->AddOverlayDirtyRect(p,a) 2567 #define IDirectDrawSurface7_Blt(p,a,b,c,d,e) (p)->lpVtbl->Blt(p,a,b,c,d,e) 2568 #define IDirectDrawSurface7_BltBatch(p,a,b,c) (p)->lpVtbl->BltBatch(p,a,b,c) 2569 #define IDirectDrawSurface7_BltFast(p,a,b,c,d,e) (p)->lpVtbl->BltFast(p,a,b,c,d,e) 2570 #define IDirectDrawSurface7_DeleteAttachedSurface(p,a,b) (p)->lpVtbl->DeleteAttachedSurface(p,a,b) 2571 #define IDirectDrawSurface7_EnumAttachedSurfaces(p,a,b) (p)->lpVtbl->EnumAttachedSurfaces(p,a,b) 2572 #define IDirectDrawSurface7_EnumOverlayZOrders(p,a,b,c) (p)->lpVtbl->EnumOverlayZOrders(p,a,b,c) 2573 #define IDirectDrawSurface7_Flip(p,a,b) (p)->lpVtbl->Flip(p,a,b) 2574 #define IDirectDrawSurface7_GetAttachedSurface(p,a,b) (p)->lpVtbl->GetAttachedSurface(p,a,b) 2575 #define IDirectDrawSurface7_GetBltStatus(p,a) (p)->lpVtbl->GetBltStatus(p,a) 2576 #define IDirectDrawSurface7_GetCaps(p,b) (p)->lpVtbl->GetCaps(p,b) 2577 #define IDirectDrawSurface7_GetClipper(p,a) (p)->lpVtbl->GetClipper(p,a) 2578 #define IDirectDrawSurface7_GetColorKey(p,a,b) (p)->lpVtbl->GetColorKey(p,a,b) 2579 #define IDirectDrawSurface7_GetDC(p,a) (p)->lpVtbl->GetDC(p,a) 2580 #define IDirectDrawSurface7_GetFlipStatus(p,a) (p)->lpVtbl->GetFlipStatus(p,a) 2581 #define IDirectDrawSurface7_GetOverlayPosition(p,a,b) (p)->lpVtbl->GetOverlayPosition(p,a,b) 2582 #define IDirectDrawSurface7_GetPalette(p,a) (p)->lpVtbl->GetPalette(p,a) 2583 #define IDirectDrawSurface7_GetPixelFormat(p,a) (p)->lpVtbl->GetPixelFormat(p,a) 2584 #define IDirectDrawSurface7_GetSurfaceDesc(p,a) (p)->lpVtbl->GetSurfaceDesc(p,a) 2585 #define IDirectDrawSurface7_Initialize(p,a,b) (p)->lpVtbl->Initialize(p,a,b) 2586 #define IDirectDrawSurface7_IsLost(p) (p)->lpVtbl->IsLost(p) 2587 #define IDirectDrawSurface7_Lock(p,a,b,c,d) (p)->lpVtbl->Lock(p,a,b,c,d) 2588 #define IDirectDrawSurface7_ReleaseDC(p,a) (p)->lpVtbl->ReleaseDC(p,a) 2589 #define IDirectDrawSurface7_Restore(p) (p)->lpVtbl->Restore(p) 2590 #define IDirectDrawSurface7_SetClipper(p,a) (p)->lpVtbl->SetClipper(p,a) 2591 #define IDirectDrawSurface7_SetColorKey(p,a,b) (p)->lpVtbl->SetColorKey(p,a,b) 2592 #define IDirectDrawSurface7_SetOverlayPosition(p,a,b) (p)->lpVtbl->SetOverlayPosition(p,a,b) 2593 #define IDirectDrawSurface7_SetPalette(p,a) (p)->lpVtbl->SetPalette(p,a) 2594 #define IDirectDrawSurface7_Unlock(p,b) (p)->lpVtbl->Unlock(p,b) 2595 #define IDirectDrawSurface7_UpdateOverlay(p,a,b,c,d,e) (p)->lpVtbl->UpdateOverlay(p,a,b,c,d,e) 2596 #define IDirectDrawSurface7_UpdateOverlayDisplay(p,a) (p)->lpVtbl->UpdateOverlayDisplay(p,a) 2597 #define IDirectDrawSurface7_UpdateOverlayZOrder(p,a,b) (p)->lpVtbl->UpdateOverlayZOrder(p,a,b) 2598 #define IDirectDrawSurface7_GetDDInterface(p,a) (p)->lpVtbl->GetDDInterface(p,a) 2599 #define IDirectDrawSurface7_PageLock(p,a) (p)->lpVtbl->PageLock(p,a) 2600 #define IDirectDrawSurface7_PageUnlock(p,a) (p)->lpVtbl->PageUnlock(p,a) 2601 #define IDirectDrawSurface7_SetSurfaceDesc(p,a,b) (p)->lpVtbl->SetSurfaceDesc(p,a,b) 2602 #define IDirectDrawSurface7_SetPrivateData(p,a,b,c,d) (p)->lpVtbl->SetPrivateData(p,a,b,c,d) 2603 #define IDirectDrawSurface7_GetPrivateData(p,a,b,c) (p)->lpVtbl->GetPrivateData(p,a,b,c) 2604 #define IDirectDrawSurface7_FreePrivateData(p,a) (p)->lpVtbl->FreePrivateData(p,a) 2605 #define IDirectDrawSurface7_GetUniquenessValue(p, a) (p)->lpVtbl->GetUniquenessValue(p, a) 2606 #define IDirectDrawSurface7_ChangeUniquenessValue(p) (p)->lpVtbl->ChangeUniquenessValue(p) 2607 #define IDirectDrawSurface7_SetPriority(p,a) (p)->lpVtbl->SetPriority(p,a) 2608 #define IDirectDrawSurface7_GetPriority(p,a) (p)->lpVtbl->GetPriority(p,a) 2609 #define IDirectDrawSurface7_SetLOD(p,a) (p)->lpVtbl->SetLOD(p,a) 2610 #define IDirectDrawSurface7_GetLOD(p,a) (p)->lpVtbl->GetLOD(p,a) 2611 #else 2612 #define IDirectDrawSurface7_QueryInterface(p,a,b) (p)->QueryInterface(a,b) 2613 #define IDirectDrawSurface7_AddRef(p) (p)->AddRef() 2614 #define IDirectDrawSurface7_Release(p) (p)->Release() 2615 #define IDirectDrawSurface7_AddAttachedSurface(p,a) (p)->AddAttachedSurface(a) 2616 #define IDirectDrawSurface7_AddOverlayDirtyRect(p,a) (p)->AddOverlayDirtyRect(a) 2617 #define IDirectDrawSurface7_Blt(p,a,b,c,d,e) (p)->Blt(a,b,c,d,e) 2618 #define IDirectDrawSurface7_BltBatch(p,a,b,c) (p)->BltBatch(a,b,c) 2619 #define IDirectDrawSurface7_BltFast(p,a,b,c,d,e) (p)->BltFast(a,b,c,d,e) 2620 #define IDirectDrawSurface7_DeleteAttachedSurface(p,a,b) (p)->DeleteAttachedSurface(a,b) 2621 #define IDirectDrawSurface7_EnumAttachedSurfaces(p,a,b) (p)->EnumAttachedSurfaces(a,b) 2622 #define IDirectDrawSurface7_EnumOverlayZOrders(p,a,b,c) (p)->EnumOverlayZOrders(a,b,c) 2623 #define IDirectDrawSurface7_Flip(p,a,b) (p)->Flip(a,b) 2624 #define IDirectDrawSurface7_GetAttachedSurface(p,a,b) (p)->GetAttachedSurface(a,b) 2625 #define IDirectDrawSurface7_GetBltStatus(p,a) (p)->GetBltStatus(a) 2626 #define IDirectDrawSurface7_GetCaps(p,b) (p)->GetCaps(b) 2627 #define IDirectDrawSurface7_GetClipper(p,a) (p)->GetClipper(a) 2628 #define IDirectDrawSurface7_GetColorKey(p,a,b) (p)->GetColorKey(a,b) 2629 #define IDirectDrawSurface7_GetDC(p,a) (p)->GetDC(a) 2630 #define IDirectDrawSurface7_GetFlipStatus(p,a) (p)->GetFlipStatus(a) 2631 #define IDirectDrawSurface7_GetOverlayPosition(p,a,b) (p)->GetOverlayPosition(a,b) 2632 #define IDirectDrawSurface7_GetPalette(p,a) (p)->GetPalette(a) 2633 #define IDirectDrawSurface7_GetPixelFormat(p,a) (p)->GetPixelFormat(a) 2634 #define IDirectDrawSurface7_GetSurfaceDesc(p,a) (p)->GetSurfaceDesc(a) 2635 #define IDirectDrawSurface7_Initialize(p,a,b) (p)->Initialize(a,b) 2636 #define IDirectDrawSurface7_IsLost(p) (p)->IsLost() 2637 #define IDirectDrawSurface7_Lock(p,a,b,c,d) (p)->Lock(a,b,c,d) 2638 #define IDirectDrawSurface7_ReleaseDC(p,a) (p)->ReleaseDC(a) 2639 #define IDirectDrawSurface7_Restore(p) (p)->Restore() 2640 #define IDirectDrawSurface7_SetClipper(p,a) (p)->SetClipper(a) 2641 #define IDirectDrawSurface7_SetColorKey(p,a,b) (p)->SetColorKey(a,b) 2642 #define IDirectDrawSurface7_SetOverlayPosition(p,a,b) (p)->SetOverlayPosition(a,b) 2643 #define IDirectDrawSurface7_SetPalette(p,a) (p)->SetPalette(a) 2644 #define IDirectDrawSurface7_Unlock(p,b) (p)->Unlock(b) 2645 #define IDirectDrawSurface7_UpdateOverlay(p,a,b,c,d,e) (p)->UpdateOverlay(a,b,c,d,e) 2646 #define IDirectDrawSurface7_UpdateOverlayDisplay(p,a) (p)->UpdateOverlayDisplay(a) 2647 #define IDirectDrawSurface7_UpdateOverlayZOrder(p,a,b) (p)->UpdateOverlayZOrder(a,b) 2648 #define IDirectDrawSurface7_GetDDInterface(p,a) (p)->GetDDInterface(a) 2649 #define IDirectDrawSurface7_PageLock(p,a) (p)->PageLock(a) 2650 #define IDirectDrawSurface7_PageUnlock(p,a) (p)->PageUnlock(a) 2651 #define IDirectDrawSurface7_SetSurfaceDesc(p,a,b) (p)->SetSurfaceDesc(a,b) 2652 #define IDirectDrawSurface7_SetPrivateData(p,a,b,c,d) (p)->SetPrivateData(a,b,c,d) 2653 #define IDirectDrawSurface7_GetPrivateData(p,a,b,c) (p)->GetPrivateData(a,b,c) 2654 #define IDirectDrawSurface7_FreePrivateData(p,a) (p)->FreePrivateData(a) 2655 #define IDirectDrawSurface7_GetUniquenessValue(p, a) (p)->GetUniquenessValue(a) 2656 #define IDirectDrawSurface7_ChangeUniquenessValue(p) (p)->ChangeUniquenessValue() 2657 #define IDirectDrawSurface7_SetPriority(p,a) (p)->SetPriority(a) 2658 #define IDirectDrawSurface7_GetPriority(p,a) (p)->GetPriority(a) 2659 #define IDirectDrawSurface7_SetLOD(p,a) (p)->SetLOD(a) 2660 #define IDirectDrawSurface7_GetLOD(p,a) (p)->GetLOD(a) 2661 #endif 2662#endif 2663#undef INTERFACE 2664 2665#ifdef __cplusplus 2666} 2667#endif 2668 2669#ifdef ENABLE_NAMELESS_UNION_PRAGMA 2670 #pragma warning(default:4201) 2671#endif 2672 2673#endif