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