ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

ddraw.h
Go to the documentation of this file.
00001 
00002 #ifndef __DDRAW_INCLUDED__
00003 #define __DDRAW_INCLUDED__
00004 
00005 #if defined(_WIN32) && !defined(_NO_COM )
00006 #define COM_NO_WINDOWS_H
00007 #include <objbase.h>
00008 #else
00009 #define IUnknown void
00010 #if !defined(NT_BUILD_ENVIRONMENT) && !defined(_WINNT_H)
00011         #define CO_E_NOTINITIALIZED 0x800401F0L
00012 #endif
00013 #endif
00014 
00015 #define _FACDD        0x876
00016 #define MAKE_DDHRESULT(c) MAKE_HRESULT(1,_FACDD,c)
00017 
00018 #ifndef DIRECTDRAW_VERSION
00019   #define DIRECTDRAW_VERSION 0x0700
00020 #endif
00021 
00022 #undef ENABLE_NAMELESS_UNION_PRAGMA
00023 #ifdef DIRECTX_REDIST
00024   #define ENABLE_NAMELESS_UNION_PRAGMA
00025 #endif
00026 
00027 #ifdef ENABLE_NAMELESS_UNION_PRAGMA
00028   #pragma warning(disable:4201)
00029 #endif
00030 
00031 #ifndef DUMMYUNIONNAMEN
00032   #if defined(__cplusplus) || !defined(NONAMELESSUNION)
00033     #define DUMMYUNIONNAMEN(n)
00034   #else
00035     #define DUMMYUNIONNAMEN(n)      u##n
00036   #endif
00037 #endif
00038 
00039 #if defined(WINNT) || !defined(WIN32)
00040 #ifndef _HRESULT_DEFINED
00041 #define _HRESULT_DEFINED
00042   typedef long HRESULT;
00043 #endif
00044 #endif
00045 
00046 /* Helper macro to enable gcc's extension. */
00047 #ifndef __GNU_EXTENSION
00048 #ifdef __GNUC__
00049 #define __GNU_EXTENSION __extension__
00050 #else
00051 #define __GNU_EXTENSION
00052 #endif
00053 #endif
00054 
00055 #ifdef __cplusplus
00056 extern "C" {
00057 #endif
00058 
00059 /* This define are obsolete in ms ddk, but are use internal in Windows NT4/2000/XP/2003/ReactOS */
00060 #define DDCAPS_STEREOVIEW                      0x00040000
00061 
00062 
00063 /* Orgnal */
00064 #define DDERR_ALREADYINITIALIZED               MAKE_DDHRESULT( 5)
00065 #define DDERR_CANNOTATTACHSURFACE              MAKE_DDHRESULT(10)
00066 #define DDERR_CANNOTDETACHSURFACE              MAKE_DDHRESULT(20)
00067 #define DDERR_CURRENTLYNOTAVAIL                MAKE_DDHRESULT(40)
00068 #define DDERR_EXCEPTION                        MAKE_DDHRESULT(55)
00069 #define DDERR_GENERIC                          E_FAIL
00070 #define DDERR_HEIGHTALIGN                      MAKE_DDHRESULT( 90)
00071 #define DDERR_INCOMPATIBLEPRIMARY              MAKE_DDHRESULT( 95)
00072 #define DDERR_INVALIDCAPS                      MAKE_DDHRESULT(100)
00073 #define DDERR_INVALIDCLIPLIST                  MAKE_DDHRESULT(110)
00074 #define DDERR_INVALIDMODE                      MAKE_DDHRESULT(120)
00075 #define DDERR_INVALIDOBJECT                    MAKE_DDHRESULT(130)
00076 #define DDERR_INVALIDPARAMS                    E_INVALIDARG
00077 #define DDERR_INVALIDPIXELFORMAT               MAKE_DDHRESULT(145)
00078 #define DDERR_INVALIDRECT                      MAKE_DDHRESULT(150)
00079 #define DDERR_LOCKEDSURFACES                   MAKE_DDHRESULT(160)
00080 #define DDERR_NO3D                             MAKE_DDHRESULT(170)
00081 #define DDERR_NOALPHAHW                        MAKE_DDHRESULT(180)
00082 #define DDERR_NOSTEREOHARDWARE                 MAKE_DDHRESULT(181)
00083 #define DDERR_NOSURFACELEFT                    MAKE_DDHRESULT(182)
00084 #define DDERR_NOCLIPLIST                       MAKE_DDHRESULT(205)
00085 #define DDERR_NOCOLORCONVHW                    MAKE_DDHRESULT(210)
00086 #define DDERR_NOCOOPERATIVELEVELSET            MAKE_DDHRESULT(212)
00087 #define DDERR_NOCOLORKEY                       MAKE_DDHRESULT(215)
00088 #define DDERR_NOCOLORKEYHW                     MAKE_DDHRESULT(220)
00089 #define DDERR_NODIRECTDRAWSUPPORT              MAKE_DDHRESULT(222)
00090 #define DDERR_NOEXCLUSIVEMODE                  MAKE_DDHRESULT(225)
00091 #define DDERR_NOFLIPHW                         MAKE_DDHRESULT(230)
00092 #define DDERR_NOGDI                            MAKE_DDHRESULT(240)
00093 #define DDERR_NOMIRRORHW                       MAKE_DDHRESULT(250)
00094 #define DDERR_NOTFOUND                         MAKE_DDHRESULT(255)
00095 #define DDERR_NOOVERLAYHW                      MAKE_DDHRESULT(260)
00096 #define DDERR_OVERLAPPINGRECTS                 MAKE_DDHRESULT(270)
00097 #define DDERR_NORASTEROPHW                     MAKE_DDHRESULT(280)
00098 #define DDERR_NOROTATIONHW                     MAKE_DDHRESULT(290)
00099 #define DDERR_NOSTRETCHHW                      MAKE_DDHRESULT(310)
00100 #define DDERR_NOT4BITCOLOR                     MAKE_DDHRESULT(316)
00101 #define DDERR_NOT4BITCOLORINDEX                MAKE_DDHRESULT(317)
00102 #define DDERR_NOT8BITCOLOR                     MAKE_DDHRESULT(320)
00103 #define DDERR_NOTEXTUREHW                      MAKE_DDHRESULT(330)
00104 #define DDERR_NOVSYNCHW                        MAKE_DDHRESULT(335)
00105 #define DDERR_NOZBUFFERHW                      MAKE_DDHRESULT(340)
00106 #define DDERR_NOZOVERLAYHW                     MAKE_DDHRESULT(350)
00107 #define DDERR_OUTOFCAPS                        MAKE_DDHRESULT(360)
00108 #define DDERR_OUTOFMEMORY                      E_OUTOFMEMORY
00109 #define DDERR_OUTOFVIDEOMEMORY                 MAKE_DDHRESULT(380)
00110 #define DDERR_OVERLAYCANTCLIP                  MAKE_DDHRESULT(382)
00111 #define DDERR_OVERLAYCOLORKEYONLYONEACTIVE     MAKE_DDHRESULT(384)
00112 #define DDERR_PALETTEBUSY                      MAKE_DDHRESULT(387)
00113 #define DDERR_COLORKEYNOTSET                   MAKE_DDHRESULT(400)
00114 #define DDERR_SURFACEALREADYATTACHED           MAKE_DDHRESULT(410)
00115 #define DDERR_SURFACEALREADYDEPENDENT          MAKE_DDHRESULT(420)
00116 #define DDERR_SURFACEBUSY                      MAKE_DDHRESULT(430)
00117 #define DDERR_CANTLOCKSURFACE                  MAKE_DDHRESULT(435)
00118 #define DDERR_SURFACEISOBSCURED                MAKE_DDHRESULT(440)
00119 #define DDERR_SURFACELOST                      MAKE_DDHRESULT(450)
00120 #define DDERR_SURFACENOTATTACHED               MAKE_DDHRESULT(460)
00121 #define DDERR_TOOBIGHEIGHT                     MAKE_DDHRESULT(470)
00122 #define DDERR_TOOBIGSIZE                       MAKE_DDHRESULT(480)
00123 #define DDERR_TOOBIGWIDTH                      MAKE_DDHRESULT(490)
00124 #define DDERR_UNSUPPORTED                      E_NOTIMPL
00125 #define DDERR_UNSUPPORTEDFORMAT                MAKE_DDHRESULT(510)
00126 #define DDERR_UNSUPPORTEDMASK                  MAKE_DDHRESULT(520)
00127 #define DDERR_INVALIDSTREAM                    MAKE_DDHRESULT(521)
00128 #define DDERR_VERTICALBLANKINPROGRESS          MAKE_DDHRESULT(537)
00129 #define DDERR_WASSTILLDRAWING                  MAKE_DDHRESULT(540)
00130 #define DDERR_DDSCAPSCOMPLEXREQUIRED           MAKE_DDHRESULT(542)
00131 #define DDERR_XALIGN                           MAKE_DDHRESULT(560)
00132 #define DDERR_INVALIDDIRECTDRAWGUID            MAKE_DDHRESULT(561)
00133 #define DDERR_DIRECTDRAWALREADYCREATED         MAKE_DDHRESULT(562)
00134 #define DDERR_NODIRECTDRAWHW                   MAKE_DDHRESULT(563)
00135 #define DDERR_PRIMARYSURFACEALREADYEXISTS      MAKE_DDHRESULT(564)
00136 #define DDERR_NOEMULATION                      MAKE_DDHRESULT(565)
00137 #define DDERR_REGIONTOOSMALL                   MAKE_DDHRESULT(566)
00138 #define DDERR_CLIPPERISUSINGHWND               MAKE_DDHRESULT(567)
00139 #define DDERR_NOCLIPPERATTACHED                MAKE_DDHRESULT(568)
00140 #define DDERR_NOHWND                           MAKE_DDHRESULT(569)
00141 #define DDERR_HWNDSUBCLASSED                   MAKE_DDHRESULT(570)
00142 #define DDERR_HWNDALREADYSET                   MAKE_DDHRESULT(571)
00143 #define DDERR_NOPALETTEATTACHED                MAKE_DDHRESULT(572)
00144 #define DDERR_NOPALETTEHW                      MAKE_DDHRESULT(573)
00145 #define DDERR_BLTFASTCANTCLIP                  MAKE_DDHRESULT(574)
00146 #define DDERR_NOBLTHW                          MAKE_DDHRESULT(575)
00147 #define DDERR_NODDROPSHW                       MAKE_DDHRESULT(576)
00148 #define DDERR_OVERLAYNOTVISIBLE                MAKE_DDHRESULT(577)
00149 #define DDERR_NOOVERLAYDEST                    MAKE_DDHRESULT(578)
00150 #define DDERR_INVALIDPOSITION                  MAKE_DDHRESULT(579)
00151 #define DDERR_NOTAOVERLAYSURFACE               MAKE_DDHRESULT(580)
00152 #define DDERR_EXCLUSIVEMODEALREADYSET          MAKE_DDHRESULT(581)
00153 #define DDERR_NOTFLIPPABLE                     MAKE_DDHRESULT(582)
00154 #define DDERR_CANTDUPLICATE                    MAKE_DDHRESULT(583)
00155 #define DDERR_NOTLOCKED                        MAKE_DDHRESULT(584)
00156 #define DDERR_CANTCREATEDC                     MAKE_DDHRESULT(585)
00157 #define DDERR_NODC                             MAKE_DDHRESULT(586)
00158 #define DDERR_WRONGMODE                        MAKE_DDHRESULT(587)
00159 #define DDERR_IMPLICITLYCREATED                MAKE_DDHRESULT(588)
00160 #define DDERR_NOTPALETTIZED                    MAKE_DDHRESULT(589)
00161 #define DDERR_UNSUPPORTEDMODE                  MAKE_DDHRESULT(590)
00162 #define DDERR_NOMIPMAPHW                       MAKE_DDHRESULT(591)
00163 #define DDERR_INVALIDSURFACETYPE               MAKE_DDHRESULT(592)
00164 #define DDERR_NOOPTIMIZEHW                     MAKE_DDHRESULT(600)
00165 #define DDERR_NOTLOADED                        MAKE_DDHRESULT(601)
00166 #define DDERR_NOFOCUSWINDOW                    MAKE_DDHRESULT(602)
00167 #define DDERR_NOTONMIPMAPSUBLEVEL              MAKE_DDHRESULT(603)
00168 #define DDERR_DCALREADYCREATED                 MAKE_DDHRESULT(620)
00169 #define DDERR_NONONLOCALVIDMEM                 MAKE_DDHRESULT(630)
00170 #define DDERR_CANTPAGELOCK                     MAKE_DDHRESULT(640)
00171 #define DDERR_CANTPAGEUNLOCK                   MAKE_DDHRESULT(660)
00172 #define DDERR_NOTPAGELOCKED                    MAKE_DDHRESULT(680)
00173 #define DDERR_MOREDATA                         MAKE_DDHRESULT(690)
00174 #define DDERR_EXPIRED                          MAKE_DDHRESULT(691)
00175 #define DDERR_TESTFINISHED                     MAKE_DDHRESULT(692)
00176 #define DDERR_NEWMODE                          MAKE_DDHRESULT(693)
00177 #define DDERR_D3DNOTINITIALIZED                MAKE_DDHRESULT(694)
00178 #define DDERR_VIDEONOTACTIVE                   MAKE_DDHRESULT(695)
00179 #define DDERR_NOMONITORINFORMATION             MAKE_DDHRESULT(696)
00180 #define DDERR_NODRIVERSUPPORT                  MAKE_DDHRESULT(697)
00181 #define DDERR_DEVICEDOESNTOWNSURFACE           MAKE_DDHRESULT(699)
00182 #define DDERR_NOTINITIALIZED                   CO_E_NOTINITIALIZED
00183 #define DD_OK                                  S_OK
00184 #define DD_FALSE                               S_FALSE
00185 #define DDENUMRET_CANCEL                       0
00186 #define DDENUMRET_OK                           1
00187 
00188 #define DDENUM_ATTACHEDSECONDARYDEVICES        0x00000001
00189 #define DDENUM_DETACHEDSECONDARYDEVICES        0x00000002
00190 #define DDENUM_NONDISPLAYDEVICES               0x00000004
00191 
00192 #define REGSTR_KEY_DDHW_DESCRIPTION            "Description"
00193 #define REGSTR_KEY_DDHW_DRIVERNAME             "DriverName"
00194 #define REGSTR_PATH_DDHW                       "Hardware\\DirectDrawDrivers"
00195 #define DDCREATE_HARDWAREONLY                  0x00000001
00196 #define DDCREATE_EMULATIONONLY                 0x00000002
00197 #define DD_ROP_SPACE                           (256/32)
00198 #define MAX_DDDEVICEID_STRING                  512
00199 #define DDGDI_GETHOSTIDENTIFIER                0x00000001
00200 #define DDSGR_CALIBRATE                        0x00000001
00201 #define DDSMT_ISTESTREQUIRED                   0x00000001
00202 #define DDEM_MODEPASSED                        0x00000001
00203 #define DDEM_MODEFAILED                        0x00000002
00204 
00205 #define DDSD_CAPS                              0x00000001
00206 #define DDSD_HEIGHT                            0x00000002
00207 #define DDSD_WIDTH                             0x00000004
00208 #define DDSD_PITCH                             0x00000008
00209 #define DDSD_BACKBUFFERCOUNT                   0x00000020
00210 #define DDSD_ZBUFFERBITDEPTH                   0x00000040
00211 #define DDSD_ALPHABITDEPTH                     0x00000080
00212 #define DDSD_LPSURFACE                         0x00000800
00213 #define DDSD_PIXELFORMAT                       0x00001000
00214 #define DDSD_CKDESTOVERLAY                     0x00002000
00215 #define DDSD_CKDESTBLT                         0x00004000
00216 #define DDSD_CKSRCOVERLAY                      0x00008000
00217 #define DDSD_CKSRCBLT                          0x00010000
00218 #define DDSD_MIPMAPCOUNT                       0x00020000
00219 #define DDSD_REFRESHRATE                       0x00040000
00220 #define DDSD_LINEARSIZE                        0x00080000
00221 #define DDSD_TEXTURESTAGE                      0x00100000
00222 #define DDSD_FVF                               0x00200000
00223 #define DDSD_SRCVBHANDLE                       0x00400000
00224 #define DDSD_DEPTH                             0x00800000
00225 #define DDSD_ALL                               0x00FFF9EE
00226 
00227 #define DDOSD_GUID                             0x00000001
00228 #define DDOSD_COMPRESSION_RATIO                0x00000002
00229 #define DDOSD_SCAPS                            0x00000004
00230 #define DDOSD_OSCAPS                           0x00000008
00231 #define DDOSD_ALL                              0x0000000f
00232 #define DDOSDCAPS_OPTCOMPRESSED                0x00000001
00233 #define DDOSDCAPS_OPTREORDERED                 0x00000002
00234 #define DDOSDCAPS_MONOLITHICMIPMAP             0x00000004
00235 #define DDOSDCAPS_VALIDSCAPS                   0x30004800
00236 #define DDOSDCAPS_VALIDOSCAPS                  0x00000007
00237 
00238 #define DDCOLOR_BRIGHTNESS                     0x00000001
00239 #define DDCOLOR_CONTRAST                       0x00000002
00240 #define DDCOLOR_HUE                            0x00000004
00241 #define DDCOLOR_SATURATION                     0x00000008
00242 #define DDCOLOR_SHARPNESS                      0x00000010
00243 #define DDCOLOR_GAMMA                          0x00000020
00244 #define DDCOLOR_COLORENABLE                    0x00000040
00245 
00246 #define DDSCAPS_RESERVED1                      0x00000001
00247 #define DDSCAPS_ALPHA                          0x00000002
00248 #define DDSCAPS_BACKBUFFER                     0x00000004
00249 #define DDSCAPS_COMPLEX                        0x00000008
00250 #define DDSCAPS_FLIP                           0x00000010
00251 #define DDSCAPS_FRONTBUFFER                    0x00000020
00252 #define DDSCAPS_OFFSCREENPLAIN                 0x00000040
00253 #define DDSCAPS_OVERLAY                        0x00000080
00254 #define DDSCAPS_PALETTE                        0x00000100
00255 #define DDSCAPS_PRIMARYSURFACE                 0x00000200
00256 #define DDSCAPS_RESERVED3                      0x00000400
00257 #define DDSCAPS_PRIMARYSURFACELEFT             0x00000000
00258 #define DDSCAPS_SYSTEMMEMORY                   0x00000800
00259 #define DDSCAPS_TEXTURE                        0x00001000
00260 #define DDSCAPS_3DDEVICE                       0x00002000
00261 #define DDSCAPS_VIDEOMEMORY                    0x00004000
00262 #define DDSCAPS_VISIBLE                        0x00008000
00263 #define DDSCAPS_WRITEONLY                      0x00010000
00264 #define DDSCAPS_ZBUFFER                        0x00020000
00265 #define DDSCAPS_OWNDC                          0x00040000
00266 #define DDSCAPS_LIVEVIDEO                      0x00080000
00267 #define DDSCAPS_HWCODEC                        0x00100000
00268 #define DDSCAPS_MODEX                          0x00200000
00269 #define DDSCAPS_MIPMAP                         0x00400000
00270 #define DDSCAPS_RESERVED2                      0x00800000
00271 #define DDSCAPS_ALLOCONLOAD                    0x04000000
00272 #define DDSCAPS_VIDEOPORT                      0x08000000
00273 #define DDSCAPS_LOCALVIDMEM                    0x10000000
00274 #define DDSCAPS_NONLOCALVIDMEM                 0x20000000
00275 #define DDSCAPS_STANDARDVGAMODE                0x40000000
00276 #define DDSCAPS_OPTIMIZED                      0x80000000
00277 
00278 #define DDSCAPS2_HARDWAREDEINTERLACE           0x00000000
00279 #define DDSCAPS2_RESERVED4                     0x00000002
00280 #define DDSCAPS2_HINTDYNAMIC                   0x00000004
00281 #define DDSCAPS2_HINTSTATIC                    0x00000008
00282 #define DDSCAPS2_TEXTUREMANAGE                 0x00000010
00283 #define DDSCAPS2_RESERVED1                     0x00000020
00284 #define DDSCAPS2_RESERVED2                     0x00000040
00285 #define DDSCAPS2_OPAQUE                        0x00000080
00286 #define DDSCAPS2_HINTANTIALIASING              0x00000100
00287 #define DDSCAPS2_CUBEMAP                       0x00000200
00288 #define DDSCAPS2_CUBEMAP_POSITIVEX             0x00000400
00289 #define DDSCAPS2_CUBEMAP_NEGATIVEX             0x00000800
00290 #define DDSCAPS2_CUBEMAP_POSITIVEY             0x00001000
00291 #define DDSCAPS2_CUBEMAP_NEGATIVEY             0x00002000
00292 #define DDSCAPS2_CUBEMAP_POSITIVEZ             0x00004000
00293 #define DDSCAPS2_CUBEMAP_NEGATIVEZ             0x00008000
00294 #define DDSCAPS2_CUBEMAP_ALLFACES              ( DDSCAPS2_CUBEMAP_POSITIVEX |\
00295                                                  DDSCAPS2_CUBEMAP_NEGATIVEX |\
00296                                                  DDSCAPS2_CUBEMAP_POSITIVEY |\
00297                                                  DDSCAPS2_CUBEMAP_NEGATIVEY |\
00298                                                  DDSCAPS2_CUBEMAP_POSITIVEZ |\
00299                                                  DDSCAPS2_CUBEMAP_NEGATIVEZ )
00300 
00301 #define DDSCAPS2_MIPMAPSUBLEVEL                0x00010000
00302 #define DDSCAPS2_D3DTEXTUREMANAGE              0x00020000
00303 #define DDSCAPS2_DONOTPERSIST                  0x00040000
00304 #define DDSCAPS2_STEREOSURFACELEFT             0x00080000
00305 #define DDSCAPS2_VOLUME                        0x00200000
00306 #define DDSCAPS2_NOTUSERLOCKABLE               0x00400000
00307 #define DDSCAPS2_POINTS                        0x00800000
00308 
00309 #define DDSCAPS2_RTPATCHES                     0x01000000
00310 #define DDSCAPS2_NPATCHES                      0x02000000
00311 #define DDSCAPS2_RESERVED3                     0x04000000
00312 #define DDSCAPS2_DISCARDBACKBUFFER             0x10000000
00313 #define DDSCAPS2_ENABLEALPHACHANNEL            0x20000000
00314 #define DDSCAPS2_EXTENDEDFORMATPRIMARY         0x40000000
00315 #define DDSCAPS2_ADDITIONALPRIMARY             0x80000000
00316 
00317 #define DDSCAPS3_MULTISAMPLE_MASK              0x0000001F
00318 #define DDSCAPS3_MULTISAMPLE_QUALITY_MASK      0x000000E0
00319 #define DDSCAPS3_MULTISAMPLE_QUALITY_SHIFT     5
00320 #define DDSCAPS3_RESERVED1                     0x00000100
00321 #define DDSCAPS3_RESERVED2                     0x00000200
00322 #define DDSCAPS3_LIGHTWEIGHTMIPMAP             0x00000400
00323 #define DDSCAPS3_AUTOGENMIPMAP                 0x00000800
00324 #define DDSCAPS3_DMAP                          0x00001000
00325 
00326 #define DDCAPS_3D                              0x00000001
00327 #define DDCAPS_ALIGNBOUNDARYDEST               0x00000002
00328 #define DDCAPS_ALIGNSIZEDEST                   0x00000004
00329 #define DDCAPS_ALIGNBOUNDARYSRC                0x00000008
00330 #define DDCAPS_ALIGNSIZESRC                    0x00000010
00331 #define DDCAPS_ALIGNSTRIDE                     0x00000020
00332 #define DDCAPS_BLT                             0x00000040
00333 #define DDCAPS_BLTQUEUE                        0x00000080
00334 #define DDCAPS_BLTFOURCC                       0x00000100
00335 #define DDCAPS_BLTSTRETCH                      0x00000200
00336 #define DDCAPS_GDI                             0x00000400
00337 #define DDCAPS_OVERLAY                         0x00000800
00338 #define DDCAPS_OVERLAYCANTCLIP                 0x00001000
00339 #define DDCAPS_OVERLAYFOURCC                   0x00002000
00340 #define DDCAPS_OVERLAYSTRETCH                  0x00004000
00341 #define DDCAPS_PALETTE                         0x00008000
00342 #define DDCAPS_PALETTEVSYNC                    0x00010000
00343 #define DDCAPS_READSCANLINE                    0x00020000
00344 #define DDCAPS_RESERVED1                       0x00040000
00345 #define DDCAPS_VBI                             0x00080000
00346 #define DDCAPS_ZBLTS                           0x00100000
00347 #define DDCAPS_ZOVERLAYS                       0x00200000
00348 #define DDCAPS_COLORKEY                        0x00400000
00349 #define DDCAPS_ALPHA                           0x00800000
00350 #define DDCAPS_COLORKEYHWASSIST                0x01000000
00351 #define DDCAPS_NOHARDWARE                      0x02000000
00352 #define DDCAPS_BLTCOLORFILL                    0x04000000
00353 #define DDCAPS_BANKSWITCHED                    0x08000000
00354 #define DDCAPS_BLTDEPTHFILL                    0x10000000
00355 #define DDCAPS_CANCLIP                         0x20000000
00356 #define DDCAPS_CANCLIPSTRETCHED                0x40000000
00357 #define DDCAPS_CANBLTSYSMEM                    0x80000000
00358 
00359 #define DDCAPS2_CERTIFIED                      0x00000001
00360 #define DDCAPS2_NO2DDURING3DSCENE              0x00000002
00361 #define DDCAPS2_VIDEOPORT                      0x00000004
00362 #define DDCAPS2_AUTOFLIPOVERLAY                0x00000008
00363 #define DDCAPS2_CANBOBINTERLEAVED              0x00000010
00364 #define DDCAPS2_CANBOBNONINTERLEAVED           0x00000020
00365 #define DDCAPS2_COLORCONTROLOVERLAY            0x00000040
00366 #define DDCAPS2_COLORCONTROLPRIMARY            0x00000080
00367 #define DDCAPS2_CANDROPZ16BIT                  0x00000100
00368 #define DDCAPS2_NONLOCALVIDMEM                 0x00000200
00369 #define DDCAPS2_NONLOCALVIDMEMCAPS             0x00000400
00370 #define DDCAPS2_NOPAGELOCKREQUIRED             0x00000800
00371 #define DDCAPS2_WIDESURFACES                   0x00001000
00372 #define DDCAPS2_CANFLIPODDEVEN                 0x00002000
00373 #define DDCAPS2_CANBOBHARDWARE                 0x00004000
00374 #define DDCAPS2_COPYFOURCC                     0x00008000
00375 #define DDCAPS2_PRIMARYGAMMA                   0x00020000
00376 #define DDCAPS2_CANRENDERWINDOWED              0x00080000
00377 #define DDCAPS2_CANCALIBRATEGAMMA              0x00100000
00378 #define DDCAPS2_FLIPINTERVAL                   0x00200000
00379 #define DDCAPS2_FLIPNOVSYNC                    0x00400000
00380 #define DDCAPS2_CANMANAGETEXTURE               0x00800000
00381 #define DDCAPS2_TEXMANINNONLOCALVIDMEM         0x01000000
00382 #define DDCAPS2_STEREO                         0x02000000
00383 #define DDCAPS2_SYSTONONLOCAL_AS_SYSTOLOCAL    0x04000000
00384 #define DDCAPS2_RESERVED1                      0x08000000
00385 #define DDCAPS2_CANMANAGERESOURCE              0x10000000
00386 #define DDCAPS2_DYNAMICTEXTURES                0x20000000
00387 #define DDCAPS2_CANAUTOGENMIPMAP               0x40000000
00388 
00389 #define DDFXALPHACAPS_BLTALPHAEDGEBLEND        0x00000001
00390 #define DDFXALPHACAPS_BLTALPHAPIXELS           0x00000002
00391 #define DDFXALPHACAPS_BLTALPHAPIXELSNEG        0x00000004
00392 #define DDFXALPHACAPS_BLTALPHASURFACES         0x00000008
00393 #define DDFXALPHACAPS_BLTALPHASURFACESNEG      0x00000010
00394 #define DDFXALPHACAPS_OVERLAYALPHAEDGEBLEND    0x00000020
00395 #define DDFXALPHACAPS_OVERLAYALPHAPIXELS       0x00000040
00396 #define DDFXALPHACAPS_OVERLAYALPHAPIXELSNEG    0x00000080
00397 #define DDFXALPHACAPS_OVERLAYALPHASURFACES     0x00000100
00398 #define DDFXALPHACAPS_OVERLAYALPHASURFACESNEG  0x00000200
00399 
00400 
00401 #define DDFXCAPS_BLTALPHA                      0x00000001
00402 #define DDFXCAPS_OVERLAYALPHA                  0x00000004
00403 #define DDFXCAPS_OVERLAYARITHSTRETCHYN         0x00000008
00404 #define DDFXCAPS_BLTARITHSTRETCHY              0x00000020
00405 #define DDFXCAPS_BLTARITHSTRETCHYN             0x00000010
00406 #define DDFXCAPS_BLTMIRRORLEFTRIGHT            0x00000040
00407 #define DDFXCAPS_BLTMIRRORUPDOWN               0x00000080
00408 #define DDFXCAPS_BLTROTATION                   0x00000100
00409 #define DDFXCAPS_BLTROTATION90                 0x00000200
00410 #define DDFXCAPS_BLTSHRINKX                    0x00000400
00411 #define DDFXCAPS_BLTSHRINKXN                   0x00000800
00412 #define DDFXCAPS_BLTSHRINKY                    0x00001000
00413 #define DDFXCAPS_BLTSHRINKYN                   0x00002000
00414 #define DDFXCAPS_BLTSTRETCHX                   0x00004000
00415 #define DDFXCAPS_BLTSTRETCHXN                  0x00008000
00416 #define DDFXCAPS_BLTSTRETCHY                   0x00010000
00417 #define DDFXCAPS_BLTSTRETCHYN                  0x00020000
00418 #define DDFXCAPS_OVERLAYARITHSTRETCHY          0x00040000
00419 #define DDFXCAPS_OVERLAYSHRINKX                0x00080000
00420 #define DDFXCAPS_OVERLAYSHRINKXN               0x00100000
00421 #define DDFXCAPS_OVERLAYSHRINKY                0x00200000
00422 #define DDFXCAPS_OVERLAYSHRINKYN               0x00400000
00423 #define DDFXCAPS_OVERLAYSTRETCHX               0x00800000
00424 #define DDFXCAPS_OVERLAYSTRETCHXN              0x01000000
00425 #define DDFXCAPS_OVERLAYSTRETCHY               0x02000000
00426 #define DDFXCAPS_OVERLAYSTRETCHYN              0x04000000
00427 #define DDFXCAPS_OVERLAYMIRRORLEFTRIGHT        0x08000000
00428 #define DDFXCAPS_OVERLAYMIRRORUPDOWN           0x10000000
00429 #define DDFXCAPS_OVERLAYDEINTERLACE            0x20000000
00430 #define DDFXCAPS_BLTFILTER                     DDFXCAPS_BLTARITHSTRETCHY
00431 #define DDFXCAPS_OVERLAYFILTER                 DDFXCAPS_OVERLAYARITHSTRETCHY
00432 
00433 
00434   #define DDSVCAPS_RESERVED1                     0x00000001
00435   #define DDSVCAPS_RESERVED2                     0x00000002
00436   #define DDSVCAPS_RESERVED3                     0x00000004
00437   #define DDSVCAPS_RESERVED4                     0x00000008
00438 /* rember that DDSVCAPS_ENIGMA is same as DDSVCAPS_RESERVED1 */
00439   #define DDSVCAPS_ENIGMA                        0x00000001
00440 /* rember that DDSVCAPS_FLICKER is same as DDSVCAPS_RESERVED2 */
00441   #define DDSVCAPS_FLICKER                       0x00000002
00442 /* rember that DDSVCAPS_REDBLUE is same as DDSVCAPS_RESERVED3 */
00443   #define DDSVCAPS_REDBLUE                       0x00000004
00444 /* rember that DDSVCAPS_SPLIT is same as DDSVCAPS_RESERVED4 */
00445   #define DDSVCAPS_SPLIT                         0x00000008
00446 
00447 #define DDSVCAPS_STEREOSEQUENTIAL              0x00000010
00448 
00449 #define DDPCAPS_INITIALIZE                     0x00000000
00450 #define DDPCAPS_4BIT                           0x00000001
00451 #define DDPCAPS_8BITENTRIES                    0x00000002
00452 #define DDPCAPS_8BIT                           0x00000004
00453 #define DDPCAPS_PRIMARYSURFACE                 0x00000010
00454 #define DDPCAPS_PRIMARYSURFACELEFT             0x00000020
00455 #define DDPCAPS_ALLOW256                       0x00000040
00456 #define DDPCAPS_VSYNC                          0x00000080
00457 #define DDPCAPS_1BIT                           0x00000100
00458 #define DDPCAPS_2BIT                           0x00000200
00459 #define DDPCAPS_ALPHA                          0x00000400
00460 
00461 #define DDSPD_IUNKNOWNPOINTER                  0x00000001
00462 #define DDSPD_VOLATILE                         0x00000002
00463 
00464 #define DDBD_1                                 0x00004000
00465 #define DDBD_2                                 0x00002000
00466 #define DDBD_4                                 0x00001000
00467 #define DDBD_8                                 0x00000800
00468 #define DDBD_16                                0x00000400
00469 #define DDBD_24                                0x00000200
00470 #define DDBD_32                                0x00000100
00471 
00472 #define DDCKEY_COLORSPACE                      0x00000001
00473 #define DDCKEY_DESTBLT                         0x00000002
00474 #define DDCKEY_DESTOVERLAY                     0x00000004
00475 #define DDCKEY_SRCBLT                          0x00000008
00476 #define DDCKEY_SRCOVERLAY                      0x00000010
00477 
00478 #define DDCKEYCAPS_DESTBLT                     0x00000001
00479 #define DDCKEYCAPS_DESTBLTCLRSPACE             0x00000002
00480 #define DDCKEYCAPS_DESTBLTCLRSPACEYUV          0x00000004
00481 #define DDCKEYCAPS_DESTBLTYUV                  0x00000008
00482 #define DDCKEYCAPS_DESTOVERLAY                 0x00000010
00483 #define DDCKEYCAPS_DESTOVERLAYCLRSPACE         0x00000020
00484 #define DDCKEYCAPS_DESTOVERLAYCLRSPACEYUV      0x00000040
00485 #define DDCKEYCAPS_DESTOVERLAYONEACTIVE        0x00000080
00486 #define DDCKEYCAPS_DESTOVERLAYYUV              0x00000100
00487 #define DDCKEYCAPS_SRCBLT                      0x00000200
00488 #define DDCKEYCAPS_SRCBLTCLRSPACE              0x00000400
00489 #define DDCKEYCAPS_SRCBLTCLRSPACEYUV           0x00000800
00490 #define DDCKEYCAPS_SRCBLTYUV                   0x00001000
00491 #define DDCKEYCAPS_SRCOVERLAY                  0x00002000
00492 #define DDCKEYCAPS_SRCOVERLAYCLRSPACE          0x00004000
00493 #define DDCKEYCAPS_SRCOVERLAYCLRSPACEYUV       0x00008000
00494 #define DDCKEYCAPS_SRCOVERLAYONEACTIVE         0x00010000
00495 #define DDCKEYCAPS_SRCOVERLAYYUV               0x00020000
00496 #define DDCKEYCAPS_NOCOSTOVERLAY               0x00040000
00497 
00498 #define DDPF_ALPHAPIXELS                       0x00000001
00499 #define DDPF_ALPHA                             0x00000002
00500 #define DDPF_FOURCC                            0x00000004
00501 #define DDPF_PALETTEINDEXED4                   0x00000008
00502 #define DDPF_PALETTEINDEXEDTO8                 0x00000010
00503 #define DDPF_PALETTEINDEXED8                   0x00000020
00504 #define DDPF_RGB                               0x00000040
00505 #define DDPF_COMPRESSED                        0x00000080
00506 #define DDPF_RGBTOYUV                          0x00000100
00507 #define DDPF_YUV                               0x00000200
00508 #define DDPF_ZBUFFER                           0x00000400
00509 #define DDPF_PALETTEINDEXED1                   0x00000800
00510 #define DDPF_PALETTEINDEXED2                   0x00001000
00511 #define DDPF_ZPIXELS                           0x00002000
00512 #define DDPF_STENCILBUFFER                     0x00004000
00513 #define DDPF_ALPHAPREMULT                      0x00008000
00514 #define DDPF_LUMINANCE                         0x00020000
00515 #define DDPF_BUMPLUMINANCE                     0x00040000
00516 #define DDPF_BUMPDUDV                          0x00080000
00517 
00518 #define DDENUMSURFACES_ALL                     0x00000001
00519 #define DDENUMSURFACES_MATCH                   0x00000002
00520 #define DDENUMSURFACES_NOMATCH                 0x00000004
00521 #define DDENUMSURFACES_CANBECREATED            0x00000008
00522 #define DDENUMSURFACES_DOESEXIST               0x00000010
00523 
00524 #define DDSDM_STANDARDVGAMODE                  0x00000001
00525 
00526 #define DDEDM_REFRESHRATES                     0x00000001
00527 #define DDEDM_STANDARDVGAMODES                 0x00000002
00528 
00529 #define DDSCL_FULLSCREEN                       0x00000001
00530 #define DDSCL_ALLOWREBOOT                      0x00000002
00531 #define DDSCL_NOWINDOWCHANGES                  0x00000004
00532 #define DDSCL_NORMAL                           0x00000008
00533 #define DDSCL_EXCLUSIVE                        0x00000010
00534 #define DDSCL_ALLOWMODEX                       0x00000040
00535 #define DDSCL_SETFOCUSWINDOW                   0x00000080
00536 #define DDSCL_SETDEVICEWINDOW                  0x00000100
00537 #define DDSCL_CREATEDEVICEWINDOW               0x00000200
00538 #define DDSCL_MULTITHREADED                    0x00000400
00539 #define DDSCL_FPUSETUP                         0x00000800
00540 #define DDSCL_FPUPRESERVE                      0x00001000
00541 
00542 #define DDBLT_ALPHADEST                        0x00000001
00543 #define DDBLT_ALPHADESTCONSTOVERRIDE           0x00000002
00544 #define DDBLT_ALPHADESTNEG                     0x00000004
00545 #define DDBLT_ALPHADESTSURFACEOVERRIDE         0x00000008
00546 #define DDBLT_ALPHAEDGEBLEND                   0x00000010
00547 #define DDBLT_ALPHASRC                         0x00000020
00548 #define DDBLT_ALPHASRCCONSTOVERRIDE            0x00000040
00549 #define DDBLT_ALPHASRCNEG                      0x00000080
00550 #define DDBLT_ALPHASRCSURFACEOVERRIDE          0x00000100
00551 #define DDBLT_ASYNC                            0x00000200
00552 #define DDBLT_COLORFILL                        0x00000400
00553 #define DDBLT_DDFX                             0x00000800
00554 #define DDBLT_DDROPS                           0x00001000
00555 #define DDBLT_KEYDEST                          0x00002000
00556 #define DDBLT_KEYDESTOVERRIDE                  0x00004000
00557 #define DDBLT_KEYSRC                           0x00008000
00558 #define DDBLT_KEYSRCOVERRIDE                   0x00010000
00559 #define DDBLT_ROP                              0x00020000
00560 #define DDBLT_ROTATIONANGLE                    0x00040000
00561 #define DDBLT_ZBUFFER                          0x00080000
00562 #define DDBLT_ZBUFFERDESTCONSTOVERRIDE         0x00100000
00563 #define DDBLT_ZBUFFERDESTOVERRIDE              0x00200000
00564 #define DDBLT_ZBUFFERSRCCONSTOVERRIDE          0x00400000
00565 #define DDBLT_ZBUFFERSRCOVERRIDE               0x00800000
00566 #define DDBLT_WAIT                             0x01000000
00567 #define DDBLT_DEPTHFILL                        0x02000000
00568 #define DDBLT_DONOTWAIT                        0x08000000
00569 #define DDBLT_PRESENTATION                     0x10000000
00570 #define DDBLT_LAST_PRESENTATION                0x20000000
00571 #define DDBLT_EXTENDED_FLAGS                   0x40000000
00572 #define DDBLT_EXTENDED_LINEAR_CONTENT          0x00000004
00573 
00574 #define DDBLTFAST_NOCOLORKEY                   0x00000000
00575 #define DDBLTFAST_SRCCOLORKEY                  0x00000001
00576 #define DDBLTFAST_DESTCOLORKEY                 0x00000002
00577 #define DDBLTFAST_WAIT                         0x00000010
00578 #define DDBLTFAST_DONOTWAIT                    0x00000020
00579 
00580 #define DDFLIP_WAIT                            0x00000001
00581 #define DDFLIP_EVEN                            0x00000002
00582 #define DDFLIP_ODD                             0x00000004
00583 #define DDFLIP_NOVSYNC                         0x00000008
00584 #define DDFLIP_STEREO                          0x00000010
00585 #define DDFLIP_DONOTWAIT                       0x00000020
00586 #define DDFLIP_INTERVAL2                       0x02000000
00587 #define DDFLIP_INTERVAL3                       0x03000000
00588 #define DDFLIP_INTERVAL4                       0x04000000
00589 
00590 
00591 #define DDOVER_ALPHADEST                       0x00000001
00592 #define DDOVER_ALPHADESTCONSTOVERRIDE          0x00000002
00593 #define DDOVER_ALPHADESTNEG                    0x00000004
00594 #define DDOVER_ALPHADESTSURFACEOVERRIDE        0x00000008
00595 #define DDOVER_ALPHAEDGEBLEND                  0x00000010
00596 #define DDOVER_ALPHASRC                        0x00000020
00597 #define DDOVER_ALPHASRCCONSTOVERRIDE           0x00000040
00598 #define DDOVER_ALPHASRCNEG                     0x00000080
00599 #define DDOVER_ALPHASRCSURFACEOVERRIDE         0x00000100
00600 #define DDOVER_HIDE                            0x00000200
00601 #define DDOVER_KEYDEST                         0x00000400
00602 #define DDOVER_KEYDESTOVERRIDE                 0x00000800
00603 #define DDOVER_KEYSRC                          0x00001000
00604 #define DDOVER_KEYSRCOVERRIDE                  0x00002000
00605 #define DDOVER_SHOW                            0x00004000
00606 #define DDOVER_ADDDIRTYRECT                    0x00008000
00607 #define DDOVER_REFRESHDIRTYRECTS               0x00010000
00608 #define DDOVER_REFRESHALL                      0x00020000
00609 #define DDOVER_DDFX                            0x00080000
00610 #define DDOVER_AUTOFLIP                        0x00100000
00611 #define DDOVER_BOB                             0x00200000
00612 #define DDOVER_OVERRIDEBOBWEAVE                0x00400000
00613 #define DDOVER_INTERLEAVED                     0x00800000
00614 #define DDOVER_BOBHARDWARE                     0x01000000
00615 #define DDOVER_ARGBSCALEFACTORS                0x02000000
00616 #define DDOVER_DEGRADEARGBSCALING              0x04000000
00617 
00618 #define DDLOCK_SURFACEMEMORYPTR                0x00000000
00619 #define DDLOCK_WAIT                            0x00000001
00620 #define DDLOCK_EVENT                           0x00000002
00621 #define DDLOCK_READONLY                        0x00000010
00622 #define DDLOCK_WRITEONLY                       0x00000020
00623 #define DDLOCK_NOSYSLOCK                       0x00000800
00624 #define DDLOCK_NOOVERWRITE                     0x00001000
00625 #define DDLOCK_DISCARDCONTENTS                 0x00002000
00626 #define DDLOCK_OKTOSWAP                        0x00002000
00627 #define DDLOCK_DONOTWAIT                       0x00004000
00628 #define DDLOCK_HASVOLUMETEXTUREBOXRECT         0x00008000
00629 #define DDLOCK_NODIRTYUPDATE                   0x00010000
00630 
00631 #define DDBLTFX_ARITHSTRETCHY                  0x00000001
00632 #define DDBLTFX_MIRRORLEFTRIGHT                0x00000002
00633 #define DDBLTFX_MIRRORUPDOWN                   0x00000004
00634 #define DDBLTFX_NOTEARING                      0x00000008
00635 #define DDBLTFX_ROTATE180                      0x00000010
00636 #define DDBLTFX_ROTATE270                      0x00000020
00637 #define DDBLTFX_ROTATE90                       0x00000040
00638 #define DDBLTFX_ZBUFFERRANGE                   0x00000080
00639 #define DDBLTFX_ZBUFFERBASEDEST                0x00000100
00640 
00641 #define DDOVERFX_ARITHSTRETCHY                 0x00000001
00642 #define DDOVERFX_MIRRORLEFTRIGHT               0x00000002
00643 #define DDOVERFX_MIRRORUPDOWN                  0x00000004
00644 #define DDOVERFX_DEINTERLACE                   0x00000008
00645 
00646 #define DDWAITVB_BLOCKBEGIN                    0x00000001
00647 #define DDWAITVB_BLOCKBEGINEVENT               0x00000002
00648 #define DDWAITVB_BLOCKEND                      0x00000004
00649 
00650 #define DDGFS_CANFLIP                          0x00000001
00651 #define DDGFS_ISFLIPDONE                       0x00000002
00652 
00653 #define DDGBS_CANBLT                           0x00000001
00654 #define DDGBS_ISBLTDONE                        0x00000002
00655 
00656 #define DDENUMOVERLAYZ_BACKTOFRONT             0x00000000
00657 #define DDENUMOVERLAYZ_FRONTTOBACK             0x00000001
00658 
00659 #define DDOVERZ_SENDTOFRONT                    0x00000000
00660 #define DDOVERZ_SENDTOBACK                     0x00000001
00661 #define DDOVERZ_MOVEFORWARD                    0x00000002
00662 #define DDOVERZ_MOVEBACKWARD                   0x00000003
00663 #define DDOVERZ_INSERTINFRONTOF                0x00000004
00664 #define DDOVERZ_INSERTINBACKOF                 0x00000005
00665 
00666 #define GET_WHQL_YEAR  (dwWHQLLevel)  ((dwWHQLLevel)/0x10000)
00667 #define GET_WHQL_MONTH (dwWHQLLevel)  (((dwWHQLLevel)/0x100)&0x00ff)
00668 #define GET_WHQL_DAY   (dwWHQLLevel)  ((dwWHQLLevel)&0xff)
00669 
00670 #ifndef MAKEFOURCC
00671 #define MAKEFOURCC(c0,c1,c2,c3)  \
00672     ((DWORD)(BYTE)(c0)|((DWORD)(BYTE)(c1)<<8)|((DWORD)(BYTE)(c2)<< 16)|((DWORD)(BYTE)(c3)<<24))
00673 #endif
00674 
00675 #define FOURCC_DXT1 (MAKEFOURCC('D','X','T','1'))
00676 #define FOURCC_DXT2 (MAKEFOURCC('D','X','T','2'))
00677 #define FOURCC_DXT3 (MAKEFOURCC('D','X','T','3'))
00678 #define FOURCC_DXT4 (MAKEFOURCC('D','X','T','4'))
00679 #define FOURCC_DXT5 (MAKEFOURCC('D','X','T','5'))
00680 
00681 #if defined(_WIN32)  &&  !defined(_NO_COM)
00682 DEFINE_GUID( CLSID_DirectDraw,            0xD7B70EE0,0x4340,0x11CF,0xB0,0x63,0x00,0x20,0xAF,0xC2,0xCD,0x35 );
00683 DEFINE_GUID( CLSID_DirectDraw7,           0x3C305196,0x50DB,0x11D3,0x9C,0xFE,0x00,0xC0,0x4F,0xD9,0x30,0xC5 );
00684 DEFINE_GUID( CLSID_DirectDrawClipper,     0x593817A0,0x7DB3,0x11CF,0xA2,0xDE,0x00,0xAA,0x00,0xB9,0x33,0x56 );
00685 DEFINE_GUID( IID_IDirectDraw,             0x6C14DB80,0xA733,0x11CE,0xA5,0x21,0x00,0x20,0xAF,0x0B,0xE5,0x60 );
00686 DEFINE_GUID( IID_IDirectDraw2,            0xB3A6F3E0,0x2B43,0x11CF,0xA2,0xDE,0x00,0xAA,0x00,0xB9,0x33,0x56 );
00687 DEFINE_GUID( IID_IDirectDraw3,            0x618F8AD4,0x8B7A,0x11D0,0x8F,0xCC,0x00,0xC0,0x4F,0xD9,0x18,0x9D );
00688 DEFINE_GUID( IID_IDirectDraw4,            0x9C59509A,0x39BD,0x11D1,0x8C,0x4A,0x00,0xC0,0x4F,0xD9,0x30,0xC5 );
00689 DEFINE_GUID( IID_IDirectDraw7,            0x15E65EC0,0x3B9C,0x11D2,0xB9,0x2F,0x00,0x60,0x97,0x97,0xEA,0x5B );
00690 DEFINE_GUID( IID_IDirectDrawSurface,      0x6C14DB81,0xA733,0x11CE,0xA5,0x21,0x00,0x20,0xAF,0x0B,0xE5,0x60 );
00691 DEFINE_GUID( IID_IDirectDrawSurface2,     0x57805885,0x6EEC,0x11CF,0x94,0x41,0xA8,0x23,0x03,0xC1,0x0E,0x27 );
00692 DEFINE_GUID( IID_IDirectDrawSurface3,     0xDA044E00,0x69B2,0x11D0,0xA1,0xD5,0x00,0xAA,0x00,0xB8,0xDF,0xBB );
00693 DEFINE_GUID( IID_IDirectDrawSurface4,     0x0B2B8630,0xAD35,0x11D0,0x8E,0xA6,0x00,0x60,0x97,0x97,0xEA,0x5B );
00694 DEFINE_GUID( IID_IDirectDrawSurface7,     0x06675A80,0x3B9B,0x11D2,0xB9,0x2F,0x00,0x60,0x97,0x97,0xEA,0x5B );
00695 DEFINE_GUID( IID_IDirectDrawPalette,      0x6C14DB84,0xA733,0x11CE,0xA5,0x21,0x00,0x20,0xAF,0x0B,0xE5,0x60 );
00696 DEFINE_GUID( IID_IDirectDrawClipper,      0x6C14DB85,0xA733,0x11CE,0xA5,0x21,0x00,0x20,0xAF,0x0B,0xE5,0x60 );
00697 DEFINE_GUID( IID_IDirectDrawColorControl, 0x4B9F0EE0,0x0D7E,0x11D0,0x9B,0x06,0x00,0xA0,0xC9,0x03,0xA3,0xB8 );
00698 DEFINE_GUID( IID_IDirectDrawGammaControl, 0x69C11C3E,0xB46B,0x11D1,0xAD,0x7A,0x00,0xC0,0x4F,0xC2,0x9B,0x4E );
00699 #endif
00700 
00701 
00702 struct IDirectDraw;
00703 struct IDirectDrawSurface;
00704 struct IDirectDrawPalette;
00705 struct IDirectDrawClipper;
00706 
00707 typedef struct IDirectDraw              *LPDIRECTDRAW;
00708 typedef struct IDirectDraw2             *LPDIRECTDRAW2;
00709 typedef struct IDirectDraw4             *LPDIRECTDRAW4;
00710 typedef struct IDirectDraw7             *LPDIRECTDRAW7;
00711 typedef struct IDirectDrawSurface       *LPDIRECTDRAWSURFACE;
00712 typedef struct IDirectDrawSurface2      *LPDIRECTDRAWSURFACE2;
00713 typedef struct IDirectDrawSurface3      *LPDIRECTDRAWSURFACE3;
00714 typedef struct IDirectDrawSurface4      *LPDIRECTDRAWSURFACE4;
00715 typedef struct IDirectDrawSurface7      *LPDIRECTDRAWSURFACE7;
00716 typedef struct IDirectDrawPalette       *LPDIRECTDRAWPALETTE;
00717 typedef struct IDirectDrawClipper       *LPDIRECTDRAWCLIPPER;
00718 typedef struct IDirectDrawColorControl  *LPDIRECTDRAWCOLORCONTROL;
00719 typedef struct IDirectDrawGammaControl  *LPDIRECTDRAWGAMMACONTROL;
00720 
00721 typedef struct _DDSCAPS
00722 {
00723    DWORD dwCaps;
00724 } DDSCAPS, *LPDDSCAPS;
00725 
00726 typedef struct _DDSCAPS2
00727 {
00728    DWORD dwCaps;
00729    DWORD dwCaps2;
00730    DWORD dwCaps3;
00731    union
00732    {
00733       DWORD dwCaps4;
00734       DWORD dwVolumeDepth;
00735    } DUMMYUNIONNAMEN(1);
00736 } DDSCAPS2, *LPDDSCAPS2;
00737 
00738 typedef struct _DDCAPS_DX1
00739 {
00740    DWORD dwSize;
00741    DWORD dwCaps;
00742    DWORD dwCaps2;
00743    DWORD dwCKeyCaps;
00744    DWORD dwFXCaps;
00745    DWORD dwFXAlphaCaps;
00746    DWORD dwPalCaps;
00747    DWORD dwSVCaps;
00748    DWORD dwAlphaBltConstBitDepths;
00749    DWORD dwAlphaBltPixelBitDepths;
00750    DWORD dwAlphaBltSurfaceBitDepths;
00751    DWORD dwAlphaOverlayConstBitDepths;
00752    DWORD dwAlphaOverlayPixelBitDepths;
00753    DWORD dwAlphaOverlaySurfaceBitDepths;
00754    DWORD dwZBufferBitDepths;
00755    DWORD dwVidMemTotal;
00756    DWORD dwVidMemFree;
00757    DWORD dwMaxVisibleOverlays;
00758    DWORD dwCurrVisibleOverlays;
00759    DWORD dwNumFourCCCodes;
00760    DWORD dwAlignBoundarySrc;
00761    DWORD dwAlignSizeSrc;
00762    DWORD dwAlignBoundaryDest;
00763    DWORD dwAlignSizeDest;
00764    DWORD dwAlignStrideAlign;
00765    DWORD dwRops[DD_ROP_SPACE];
00766    DDSCAPS ddsCaps;
00767    DWORD dwMinOverlayStretch;
00768    DWORD dwMaxOverlayStretch;
00769    DWORD dwMinLiveVideoStretch;
00770    DWORD dwMaxLiveVideoStretch;
00771    DWORD dwMinHwCodecStretch;
00772    DWORD dwMaxHwCodecStretch;
00773    DWORD dwReserved1;
00774    DWORD dwReserved2;
00775    DWORD dwReserved3;
00776 } DDCAPS_DX1, *LPDDCAPS_DX1;
00777 
00778 typedef struct _DDCAPS_DX3
00779 {
00780    DWORD dwSize;
00781    DWORD dwCaps;
00782    DWORD dwCaps2;
00783    DWORD dwCKeyCaps;
00784    DWORD dwFXCaps;
00785    DWORD dwFXAlphaCaps;
00786    DWORD dwPalCaps;
00787    DWORD dwSVCaps;
00788    DWORD dwAlphaBltConstBitDepths;
00789    DWORD dwAlphaBltPixelBitDepths;
00790    DWORD dwAlphaBltSurfaceBitDepths;
00791    DWORD dwAlphaOverlayConstBitDepths;
00792    DWORD dwAlphaOverlayPixelBitDepths;
00793    DWORD dwAlphaOverlaySurfaceBitDepths;
00794    DWORD dwZBufferBitDepths;
00795    DWORD dwVidMemTotal;
00796    DWORD dwVidMemFree;
00797    DWORD dwMaxVisibleOverlays;
00798    DWORD dwCurrVisibleOverlays;
00799    DWORD dwNumFourCCCodes;
00800    DWORD dwAlignBoundarySrc;
00801    DWORD dwAlignSizeSrc;
00802    DWORD dwAlignBoundaryDest;
00803    DWORD dwAlignSizeDest;
00804    DWORD dwAlignStrideAlign;
00805    DWORD dwRops[DD_ROP_SPACE];
00806    DDSCAPS ddsCaps;
00807    DWORD dwMinOverlayStretch;
00808    DWORD dwMaxOverlayStretch;
00809    DWORD dwMinLiveVideoStretch;
00810    DWORD dwMaxLiveVideoStretch;
00811    DWORD dwMinHwCodecStretch;
00812    DWORD dwMaxHwCodecStretch;
00813    DWORD dwReserved1;
00814    DWORD dwReserved2;
00815    DWORD dwReserved3;
00816    DWORD   dwSVBCaps;
00817    DWORD   dwSVBCKeyCaps;
00818    DWORD   dwSVBFXCaps;
00819    DWORD   dwSVBRops[DD_ROP_SPACE];
00820    DWORD   dwVSBCaps;
00821    DWORD   dwVSBCKeyCaps;
00822    DWORD   dwVSBFXCaps;
00823    DWORD   dwVSBRops[DD_ROP_SPACE];
00824    DWORD   dwSSBCaps;
00825    DWORD   dwSSBCKeyCaps;
00826    DWORD   dwSSBFXCaps;
00827    DWORD   dwSSBRops[DD_ROP_SPACE];
00828    DWORD   dwReserved4;
00829    DWORD   dwReserved5;
00830    DWORD   dwReserved6;
00831 } DDCAPS_DX3, *LPDDCAPS_DX3;
00832 
00833 typedef struct _DDCAPS_DX5
00834 {
00835    DWORD dwSize;
00836    DWORD dwCaps;
00837    DWORD dwCaps2;
00838    DWORD dwCKeyCaps;
00839    DWORD dwFXCaps;
00840    DWORD dwFXAlphaCaps;
00841    DWORD dwPalCaps;
00842    DWORD dwSVCaps;
00843    DWORD dwAlphaBltConstBitDepths;
00844    DWORD dwAlphaBltPixelBitDepths;
00845    DWORD dwAlphaBltSurfaceBitDepths;
00846    DWORD dwAlphaOverlayConstBitDepths;
00847    DWORD dwAlphaOverlayPixelBitDepths;
00848    DWORD dwAlphaOverlaySurfaceBitDepths;
00849    DWORD dwZBufferBitDepths;
00850    DWORD dwVidMemTotal;
00851    DWORD dwVidMemFree;
00852    DWORD dwMaxVisibleOverlays;
00853    DWORD dwCurrVisibleOverlays;
00854    DWORD dwNumFourCCCodes;
00855    DWORD dwAlignBoundarySrc;
00856    DWORD dwAlignSizeSrc;
00857    DWORD dwAlignBoundaryDest;
00858    DWORD dwAlignSizeDest;
00859    DWORD dwAlignStrideAlign;
00860    DWORD dwRops[DD_ROP_SPACE];
00861    DDSCAPS ddsCaps;
00862    DWORD dwMinOverlayStretch;
00863    DWORD dwMaxOverlayStretch;
00864    DWORD dwMinLiveVideoStretch;
00865    DWORD dwMaxLiveVideoStretch;
00866    DWORD dwMinHwCodecStretch;
00867    DWORD dwMaxHwCodecStretch;
00868    DWORD dwReserved1;
00869    DWORD dwReserved2;
00870    DWORD dwReserved3;
00871    DWORD dwSVBCaps;
00872    DWORD dwSVBCKeyCaps;
00873    DWORD dwSVBFXCaps;
00874    DWORD dwSVBRops[DD_ROP_SPACE];
00875    DWORD dwVSBCaps;
00876    DWORD dwVSBCKeyCaps;
00877    DWORD dwVSBFXCaps;
00878    DWORD dwVSBRops[DD_ROP_SPACE];
00879    DWORD dwSSBCaps;
00880    DWORD dwSSBCKeyCaps;
00881    DWORD dwSSBFXCaps;
00882    DWORD dwSSBRops[DD_ROP_SPACE];
00883    DWORD dwMaxVideoPorts;
00884    DWORD dwCurrVideoPorts;
00885    DWORD dwSVBCaps2;
00886    DWORD dwNLVBCaps;
00887    DWORD dwNLVBCaps2;
00888    DWORD dwNLVBCKeyCaps;
00889    DWORD dwNLVBFXCaps;
00890    DWORD dwNLVBRops[DD_ROP_SPACE];
00891 } DDCAPS_DX5, *LPDDCAPS_DX5;
00892 
00893 typedef struct _DDCAPS_DX6
00894 {
00895    DWORD dwSize;
00896    DWORD dwCaps;
00897    DWORD dwCaps2;
00898    DWORD dwCKeyCaps;
00899    DWORD dwFXCaps;
00900    DWORD dwFXAlphaCaps;
00901    DWORD dwPalCaps;
00902    DWORD dwSVCaps;
00903    DWORD dwAlphaBltConstBitDepths;
00904    DWORD dwAlphaBltPixelBitDepths;
00905    DWORD dwAlphaBltSurfaceBitDepths;
00906    DWORD dwAlphaOverlayConstBitDepths;
00907    DWORD dwAlphaOverlayPixelBitDepths;
00908    DWORD dwAlphaOverlaySurfaceBitDepths;
00909    DWORD dwZBufferBitDepths;
00910    DWORD dwVidMemTotal;
00911    DWORD dwVidMemFree;
00912    DWORD dwMaxVisibleOverlays;
00913    DWORD dwCurrVisibleOverlays;
00914    DWORD dwNumFourCCCodes;
00915    DWORD dwAlignBoundarySrc;
00916    DWORD dwAlignSizeSrc;
00917    DWORD dwAlignBoundaryDest;
00918    DWORD dwAlignSizeDest;
00919    DWORD dwAlignStrideAlign;
00920    DWORD dwRops[DD_ROP_SPACE];
00921    DDSCAPS ddsOldCaps;
00922    DWORD dwMinOverlayStretch;
00923    DWORD dwMaxOverlayStretch;
00924    DWORD dwMinLiveVideoStretch;
00925    DWORD dwMaxLiveVideoStretch;
00926    DWORD dwMinHwCodecStretch;
00927    DWORD dwMaxHwCodecStretch;
00928    DWORD dwReserved1;
00929    DWORD dwReserved2;
00930    DWORD dwReserved3;
00931    DWORD dwSVBCaps;
00932    DWORD dwSVBCKeyCaps;
00933    DWORD dwSVBFXCaps;
00934    DWORD dwSVBRops[DD_ROP_SPACE];
00935    DWORD dwVSBCaps;
00936    DWORD dwVSBCKeyCaps;
00937    DWORD dwVSBFXCaps;
00938    DWORD dwVSBRops[DD_ROP_SPACE];
00939    DWORD dwSSBCaps;
00940    DWORD dwSSBCKeyCaps;
00941    DWORD dwSSBFXCaps;
00942    DWORD dwSSBRops[DD_ROP_SPACE];
00943    DWORD dwMaxVideoPorts;
00944    DWORD dwCurrVideoPorts;
00945    DWORD dwSVBCaps2;
00946    DWORD dwNLVBCaps;
00947    DWORD dwNLVBCaps2;
00948    DWORD dwNLVBCKeyCaps;
00949    DWORD dwNLVBFXCaps;
00950    DWORD dwNLVBRops[DD_ROP_SPACE];
00951    DDSCAPS2 ddsCaps;
00952 } DDCAPS_DX6, *LPDDCAPS_DX6;
00953 
00954 typedef struct _DDCAPS_DX7
00955 {
00956    DWORD dwSize;
00957    DWORD dwCaps;
00958    DWORD dwCaps2;
00959    DWORD dwCKeyCaps;
00960    DWORD dwFXCaps;
00961    DWORD dwFXAlphaCaps;
00962    DWORD dwPalCaps;
00963    DWORD dwSVCaps;
00964    DWORD dwAlphaBltConstBitDepths;
00965    DWORD dwAlphaBltPixelBitDepths;
00966    DWORD dwAlphaBltSurfaceBitDepths;
00967    DWORD dwAlphaOverlayConstBitDepths;
00968    DWORD dwAlphaOverlayPixelBitDepths;
00969    DWORD dwAlphaOverlaySurfaceBitDepths;
00970    DWORD dwZBufferBitDepths;
00971    DWORD dwVidMemTotal;
00972    DWORD dwVidMemFree;
00973    DWORD dwMaxVisibleOverlays;
00974    DWORD dwCurrVisibleOverlays;
00975    DWORD dwNumFourCCCodes;
00976    DWORD dwAlignBoundarySrc;
00977    DWORD dwAlignSizeSrc;
00978    DWORD dwAlignBoundaryDest;
00979    DWORD dwAlignSizeDest;
00980    DWORD dwAlignStrideAlign;
00981    DWORD dwRops[DD_ROP_SPACE];
00982    DDSCAPS ddsOldCaps;
00983    DWORD dwMinOverlayStretch;
00984    DWORD dwMaxOverlayStretch;
00985    DWORD dwMinLiveVideoStretch;
00986    DWORD dwMaxLiveVideoStretch;
00987    DWORD dwMinHwCodecStretch;
00988    DWORD dwMaxHwCodecStretch;
00989    DWORD dwReserved1;
00990    DWORD dwReserved2;
00991    DWORD dwReserved3;
00992    DWORD dwSVBCaps;
00993    DWORD dwSVBCKeyCaps;
00994    DWORD dwSVBFXCaps;
00995    DWORD dwSVBRops[DD_ROP_SPACE];
00996    DWORD dwVSBCaps;
00997    DWORD dwVSBCKeyCaps;
00998    DWORD dwVSBFXCaps;
00999    DWORD dwVSBRops[DD_ROP_SPACE];
01000    DWORD dwSSBCaps;
01001    DWORD dwSSBCKeyCaps;
01002    DWORD dwSSBFXCaps;
01003    DWORD dwSSBRops[DD_ROP_SPACE];
01004    DWORD dwMaxVideoPorts;
01005    DWORD dwCurrVideoPorts;
01006    DWORD dwSVBCaps2;
01007    DWORD dwNLVBCaps;
01008    DWORD dwNLVBCaps2;
01009    DWORD dwNLVBCKeyCaps;
01010    DWORD dwNLVBFXCaps;
01011    DWORD dwNLVBRops[DD_ROP_SPACE];
01012    DDSCAPS2 ddsCaps;
01013 } DDCAPS_DX7, *LPDDCAPS_DX7;
01014 
01015 #if DIRECTDRAW_VERSION<=0x300
01016    typedef DDCAPS_DX3 DDCAPS;
01017 #elif DIRECTDRAW_VERSION<=0x500
01018    typedef DDCAPS_DX5 DDCAPS;
01019 #elif DIRECTDRAW_VERSION<=0x600
01020    typedef DDCAPS_DX6 DDCAPS;
01021 #else
01022    typedef DDCAPS_DX7 DDCAPS;
01023 #endif
01024 typedef DDCAPS *LPDDCAPS;
01025 
01026 
01027 typedef struct _DDCOLORCONTROL
01028 {
01029   DWORD dwSize;
01030   DWORD dwFlags;
01031   LONG lBrightness;
01032   LONG lContrast;
01033   LONG lHue;
01034   LONG lSaturation;
01035   LONG lSharpness;
01036   LONG lGamma;
01037   LONG lColorEnable;
01038   DWORD dwReserved1;
01039 } DDCOLORCONTROL, *LPDDCOLORCONTROL;
01040 
01041 typedef struct _DDCOLORKEY
01042 {
01043    DWORD dwColorSpaceLowValue;
01044    DWORD dwColorSpaceHighValue;
01045 
01046 } DDCOLORKEY, *LPDDCOLORKEY;
01047 
01048 typedef struct _DDOSCAPS
01049 {
01050    DWORD dwCaps;
01051 } DDOSCAPS, *LPDDOSCAPS;
01052 
01053 typedef struct _DDSCAPSEX
01054 {
01055    DWORD dwCaps2;
01056    DWORD dwCaps3;
01057    union
01058    {
01059       DWORD dwCaps4;
01060       DWORD dwVolumeDepth;
01061    } DUMMYUNIONNAMEN(1);
01062 } DDSCAPSEX, *LPDDSCAPSEX;
01063 
01064 typedef struct _DDPIXELFORMAT
01065 {
01066    DWORD dwSize;
01067    DWORD dwFlags;
01068    DWORD dwFourCC;
01069    union
01070    {
01071       DWORD dwRGBBitCount;
01072       DWORD dwYUVBitCount;
01073       DWORD dwZBufferBitDepth;
01074       DWORD dwAlphaBitDepth;
01075       DWORD dwLuminanceBitCount;
01076       DWORD dwBumpBitCount;
01077       DWORD dwPrivateFormatBitCount;
01078    } DUMMYUNIONNAMEN(1);
01079    union
01080    {
01081       DWORD dwRBitMask;
01082       DWORD dwYBitMask;
01083       DWORD dwStencilBitDepth;
01084       DWORD dwLuminanceBitMask;
01085       DWORD dwBumpDuBitMask;
01086       DWORD dwOperations;
01087    } DUMMYUNIONNAMEN(2);
01088    union
01089    {
01090       DWORD dwGBitMask;
01091       DWORD dwUBitMask;
01092       DWORD dwZBitMask;
01093       DWORD dwBumpDvBitMask;
01094       struct
01095       {
01096          WORD wFlipMSTypes;
01097          WORD wBltMSTypes;
01098       } MultiSampleCaps;
01099    } DUMMYUNIONNAMEN(3);
01100    union
01101    {
01102       DWORD dwBBitMask;
01103       DWORD dwVBitMask;
01104       DWORD dwStencilBitMask;
01105       DWORD dwBumpLuminanceBitMask;
01106    } DUMMYUNIONNAMEN(4);
01107    union
01108    {
01109       DWORD dwRGBAlphaBitMask;
01110       DWORD dwYUVAlphaBitMask;
01111       DWORD dwLuminanceAlphaBitMask;
01112       DWORD dwRGBZBitMask;
01113       DWORD dwYUVZBitMask;
01114    } DUMMYUNIONNAMEN(5);
01115 } DDPIXELFORMAT, *LPDDPIXELFORMAT;
01116 
01117 typedef struct _DDSURFACEDESC
01118 {
01119    DWORD dwSize;
01120    DWORD dwFlags;
01121    DWORD dwHeight;
01122    DWORD dwWidth;
01123    union
01124    {
01125       LONG lPitch;
01126       DWORD dwLinearSize;
01127    } DUMMYUNIONNAMEN(1);
01128    DWORD dwBackBufferCount;
01129    union
01130    {
01131       DWORD dwMipMapCount;
01132       DWORD dwZBufferBitDepth;
01133       DWORD dwRefreshRate;
01134    } DUMMYUNIONNAMEN(2);
01135    DWORD dwAlphaBitDepth;
01136    DWORD dwReserved;
01137    LPVOID lpSurface;
01138    DDCOLORKEY ddckCKDestOverlay;
01139    DDCOLORKEY ddckCKDestBlt;
01140    DDCOLORKEY ddckCKSrcOverlay;
01141    DDCOLORKEY ddckCKSrcBlt;
01142    DDPIXELFORMAT ddpfPixelFormat;
01143    DDSCAPS ddsCaps;
01144 } DDSURFACEDESC, *LPDDSURFACEDESC;
01145 
01146 typedef struct _DDSURFACEDESC2
01147 {
01148    DWORD dwSize;
01149    DWORD dwFlags;
01150    DWORD dwHeight;
01151    DWORD dwWidth;
01152    union
01153    {
01154       LONG lPitch;
01155       DWORD dwLinearSize;
01156    } DUMMYUNIONNAMEN(1);
01157    union
01158    {
01159       DWORD dwBackBufferCount;
01160       DWORD dwDepth;
01161    } DUMMYUNIONNAMEN(5);
01162    union
01163    {
01164       DWORD dwMipMapCount;
01165       DWORD dwRefreshRate;
01166       DWORD dwSrcVBHandle;
01167    } DUMMYUNIONNAMEN(2);
01168    DWORD dwAlphaBitDepth;
01169    DWORD dwReserved;
01170    LPVOID lpSurface;
01171    union
01172    {
01173       DDCOLORKEY ddckCKDestOverlay;
01174       DWORD dwEmptyFaceColor;
01175    } DUMMYUNIONNAMEN(3);
01176    DDCOLORKEY ddckCKDestBlt;
01177    DDCOLORKEY ddckCKSrcOverlay;
01178    DDCOLORKEY ddckCKSrcBlt;
01179    union
01180    {
01181       DDPIXELFORMAT ddpfPixelFormat;
01182       DWORD dwFVF;
01183    } DUMMYUNIONNAMEN(4);
01184    DDSCAPS2 ddsCaps;
01185    DWORD dwTextureStage;
01186 } DDSURFACEDESC2, *LPDDSURFACEDESC2;
01187 
01188 typedef struct _DDOPTSURFACEDESC
01189 {
01190    DWORD dwSize;
01191    DWORD dwFlags;
01192    DDSCAPS2 ddSCaps;
01193    DDOSCAPS ddOSCaps;
01194    GUID guid;
01195    DWORD dwCompressionRatio;
01196 } DDOPTSURFACEDESC;
01197 
01198 typedef struct _DDARGB
01199 {
01200     BYTE blue;
01201     BYTE green;
01202     BYTE red;
01203     BYTE alpha;
01204 } DDARGB, *LPDDARGB;
01205 
01206 typedef struct _DDRGBA
01207 {
01208     BYTE red;
01209     BYTE green;
01210     BYTE blue;
01211     BYTE alpha;
01212 } DDRGBA, *LPDDRGBA;
01213 
01214 
01215 #if (defined (WIN32) || defined( _WIN32 ) ) && !defined( _NO_COM )
01216   typedef BOOL (* LPDDENUMCALLBACKA)(GUID *, LPSTR, LPSTR, LPVOID);
01217   typedef BOOL (* LPDDENUMCALLBACKW)(GUID *, LPWSTR, LPWSTR, LPVOID);
01218   extern HRESULT WINAPI DirectDrawEnumerateW( LPDDENUMCALLBACKW lpCallback, LPVOID lpContext );
01219   extern HRESULT WINAPI DirectDrawEnumerateA( LPDDENUMCALLBACKA lpCallback, LPVOID lpContext );
01220 
01221   #if !defined(HMONITOR_DECLARED) && (WINVER < 0x0500)
01222         #define HMONITOR_DECLARED
01223         DECLARE_HANDLE(HMONITOR);
01224   #endif
01225 
01226   typedef BOOL (*LPDDENUMCALLBACKEXA)(GUID *, LPSTR, LPSTR, LPVOID, HMONITOR);
01227   typedef BOOL (*LPDDENUMCALLBACKEXW)(GUID *, LPWSTR, LPWSTR, LPVOID, HMONITOR);
01228 
01229   extern HRESULT WINAPI DirectDrawEnumerateExW( LPDDENUMCALLBACKEXW lpCallback, LPVOID lpContext, DWORD dwFlags);
01230   extern HRESULT WINAPI DirectDrawEnumerateExA( LPDDENUMCALLBACKEXA lpCallback, LPVOID lpContext, DWORD dwFlags);
01231 
01232   typedef HRESULT (WINAPI * LPDIRECTDRAWENUMERATEEXA)( LPDDENUMCALLBACKEXA lpCallback, LPVOID lpContext, DWORD dwFlags);
01233   typedef HRESULT (WINAPI * LPDIRECTDRAWENUMERATEEXW)( LPDDENUMCALLBACKEXW lpCallback, LPVOID lpContext, DWORD dwFlags);
01234 
01235   #ifdef UNICODE
01236     typedef LPDDENUMCALLBACKW        LPDDENUMCALLBACK;
01237     #define DirectDrawEnumerate      DirectDrawEnumerateW
01238     typedef LPDDENUMCALLBACKEXW      LPDDENUMCALLBACKEX;
01239     typedef LPDIRECTDRAWENUMERATEEXW LPDIRECTDRAWENUMERATEEX;
01240     #define DirectDrawEnumerateEx    DirectDrawEnumerateExW
01241   #else
01242     typedef LPDDENUMCALLBACKA        LPDDENUMCALLBACK;
01243     #define DirectDrawEnumerate      DirectDrawEnumerateA
01244     typedef LPDDENUMCALLBACKEXA      LPDDENUMCALLBACKEX;
01245     typedef LPDIRECTDRAWENUMERATEEXA LPDIRECTDRAWENUMERATEEX;
01246     #define DirectDrawEnumerateEx    DirectDrawEnumerateExA
01247   #endif
01248     extern HRESULT WINAPI DirectDrawCreate(GUID *lpGUID,LPDIRECTDRAW *lplpDD, IUnknown *pUnkOuter );
01249     extern HRESULT WINAPI DirectDrawCreateEx(GUID * lpGuid,LPVOID  *lplpDD,REFIID iid,IUnknown *pUnkOuter );
01250     extern HRESULT WINAPI DirectDrawCreateClipper(DWORD dwFlags,LPDIRECTDRAWCLIPPER *lplpDDClipper,IUnknown *pUnkOuter );
01251 #endif
01252 
01253 
01254 typedef HRESULT (WINAPI *LPDDENUMMODESCALLBACK)(LPDDSURFACEDESC, LPVOID);
01255 typedef HRESULT (WINAPI *LPDDENUMMODESCALLBACK2)(LPDDSURFACEDESC2, LPVOID);
01256 typedef HRESULT (WINAPI *LPDDENUMSURFACESCALLBACK)(LPDIRECTDRAWSURFACE, LPDDSURFACEDESC, LPVOID);
01257 typedef HRESULT (WINAPI *LPDDENUMSURFACESCALLBACK2)(LPDIRECTDRAWSURFACE4, LPDDSURFACEDESC2, LPVOID);
01258 typedef HRESULT (WINAPI *LPDDENUMSURFACESCALLBACK7)(LPDIRECTDRAWSURFACE7, LPDDSURFACEDESC2, LPVOID);
01259 
01260 typedef DWORD (*LPCLIPPERCALLBACK)(LPDIRECTDRAWCLIPPER lpDDClipper, HWND hWnd, DWORD code, LPVOID lpContext );
01261 #ifdef STREAMING
01262 typedef DWORD   (*LPSURFACESTREAMINGCALLBACK)(DWORD);
01263 #endif
01264 
01265 
01266 typedef struct _DDBLTFX
01267 {
01268    DWORD dwSize;
01269    DWORD dwDDFX;
01270    DWORD dwROP;
01271    DWORD dwDDROP;
01272    DWORD dwRotationAngle;
01273    DWORD dwZBufferOpCode;
01274    DWORD dwZBufferLow;
01275    DWORD dwZBufferHigh;
01276    DWORD dwZBufferBaseDest;
01277    DWORD dwZDestConstBitDepth;
01278    union
01279    {
01280       DWORD dwZDestConst;
01281       LPDIRECTDRAWSURFACE lpDDSZBufferDest;
01282    } DUMMYUNIONNAMEN(1);
01283    DWORD dwZSrcConstBitDepth;
01284    union
01285    {
01286       DWORD dwZSrcConst;
01287       LPDIRECTDRAWSURFACE lpDDSZBufferSrc;
01288    } DUMMYUNIONNAMEN(2);
01289    DWORD dwAlphaEdgeBlendBitDepth;
01290    DWORD dwAlphaEdgeBlend;
01291    DWORD dwReserved;
01292    DWORD dwAlphaDestConstBitDepth;
01293    union
01294    {
01295       DWORD dwAlphaDestConst;
01296       LPDIRECTDRAWSURFACE lpDDSAlphaDest;
01297    } DUMMYUNIONNAMEN(3);
01298    DWORD dwAlphaSrcConstBitDepth;
01299    union
01300    {
01301       DWORD dwAlphaSrcConst;
01302       LPDIRECTDRAWSURFACE lpDDSAlphaSrc;
01303    } DUMMYUNIONNAMEN(4);
01304    union
01305    {
01306       DWORD dwFillColor;
01307       DWORD dwFillDepth;
01308       DWORD dwFillPixel;
01309       LPDIRECTDRAWSURFACE lpDDSPattern;
01310    } DUMMYUNIONNAMEN(5);
01311    DDCOLORKEY ddckDestColorkey;
01312    DDCOLORKEY ddckSrcColorkey;
01313 } DDBLTFX, *LPDDBLTFX;
01314 
01315 typedef struct _DDGAMMARAMP
01316 {
01317    WORD red[256];
01318    WORD green[256];
01319    WORD blue[256];
01320 } DDGAMMARAMP, *LPDDGAMMARAMP;
01321 
01322 typedef struct tagDDDEVICEIDENTIFIER
01323 {
01324    char szDriver[MAX_DDDEVICEID_STRING];
01325    char szDescription[MAX_DDDEVICEID_STRING];
01326 #ifdef _WIN32
01327    LARGE_INTEGER liDriverVersion;
01328 #else
01329    DWORD dwDriverVersionLowPart;
01330    DWORD dwDriverVersionHighPart;
01331 #endif
01332    DWORD dwVendorId;
01333    DWORD dwDeviceId;
01334    DWORD dwSubSysId;
01335    DWORD dwRevision;
01336    GUID guidDeviceIdentifier;
01337 } DDDEVICEIDENTIFIER, * LPDDDEVICEIDENTIFIER;
01338 
01339 typedef struct tagDDDEVICEIDENTIFIER2
01340 {
01341    char szDriver[MAX_DDDEVICEID_STRING];
01342    char szDescription[MAX_DDDEVICEID_STRING];
01343 #ifdef _WIN32
01344    LARGE_INTEGER liDriverVersion;
01345 #else
01346    DWORD dwDriverVersionLowPart;
01347    DWORD dwDriverVersionHighPart;
01348 #endif
01349    DWORD dwVendorId;
01350    DWORD dwDeviceId;
01351    DWORD dwSubSysId;
01352    DWORD dwRevision;
01353    GUID guidDeviceIdentifier;
01354    DWORD dwWHQLLevel;
01355 } DDDEVICEIDENTIFIER2, *LPDDDEVICEIDENTIFIER2;
01356 
01357 typedef struct _DDBLTBATCH
01358 {
01359    LPRECT lprDest;
01360    LPDIRECTDRAWSURFACE lpDDSSrc;
01361    LPRECT lprSrc;
01362    DWORD dwFlags;
01363    LPDDBLTFX lpDDBltFx;
01364 } DDBLTBATCH, *LPDDBLTBATCH;
01365 
01366 typedef struct _DDOVERLAYFX
01367 {
01368    DWORD dwSize;
01369    DWORD dwAlphaEdgeBlendBitDepth;
01370    DWORD dwAlphaEdgeBlend;
01371    DWORD dwReserved;
01372    DWORD dwAlphaDestConstBitDepth;
01373    union
01374    {
01375       DWORD dwAlphaDestConst;
01376       LPDIRECTDRAWSURFACE lpDDSAlphaDest;
01377    } DUMMYUNIONNAMEN(1);
01378    DWORD dwAlphaSrcConstBitDepth;
01379    union
01380    {
01381       DWORD dwAlphaSrcConst;
01382       LPDIRECTDRAWSURFACE lpDDSAlphaSrc;
01383    } DUMMYUNIONNAMEN(2);
01384    DDCOLORKEY dckDestColorkey;
01385    DDCOLORKEY dckSrcColorkey;
01386    DWORD dwDDFX;
01387    DWORD dwFlags;
01388 } DDOVERLAYFX, *LPDDOVERLAYFX;
01389 
01390 
01391 
01392 #if defined( _WIN32 ) && !defined( _NO_COM )
01393     #undef INTERFACE
01394     #define INTERFACE IDirectDraw
01395 
01396     DECLARE_INTERFACE_( IDirectDraw, IUnknown )
01397     {
01398       STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID *ppvObj) PURE;
01399       STDMETHOD_(ULONG,AddRef) (THIS)  PURE;
01400       STDMETHOD_(ULONG,Release) (THIS) PURE;
01401 
01402       STDMETHOD(Compact)(THIS) PURE;
01403       STDMETHOD(CreateClipper)(THIS_ DWORD, LPDIRECTDRAWCLIPPER *, IUnknown * ) PURE;
01404       STDMETHOD(CreatePalette)(THIS_ DWORD, LPPALETTEENTRY, LPDIRECTDRAWPALETTE *, IUnknown * ) PURE;
01405       STDMETHOD(CreateSurface)(THIS_  LPDDSURFACEDESC, LPDIRECTDRAWSURFACE *, IUnknown *) PURE;
01406       STDMETHOD(DuplicateSurface)( THIS_ LPDIRECTDRAWSURFACE, LPDIRECTDRAWSURFACE * ) PURE;
01407       STDMETHOD(EnumDisplayModes)( THIS_ DWORD, LPDDSURFACEDESC, LPVOID, LPDDENUMMODESCALLBACK ) PURE;
01408       STDMETHOD(EnumSurfaces)(THIS_ DWORD, LPDDSURFACEDESC, LPVOID,LPDDENUMSURFACESCALLBACK ) PURE;
01409       STDMETHOD(FlipToGDISurface)(THIS) PURE;
01410       STDMETHOD(GetCaps)( THIS_ LPDDCAPS, LPDDCAPS) PURE;
01411       STDMETHOD(GetDisplayMode)( THIS_ LPDDSURFACEDESC) PURE;
01412       STDMETHOD(GetFourCCCodes)(THIS_  LPDWORD, LPDWORD ) PURE;
01413       STDMETHOD(GetGDISurface)(THIS_ LPDIRECTDRAWSURFACE *) PURE;
01414       STDMETHOD(GetMonitorFrequency)(THIS_ LPDWORD) PURE;
01415       STDMETHOD(GetScanLine)(THIS_ LPDWORD) PURE;
01416       STDMETHOD(GetVerticalBlankStatus)(THIS_ LPBOOL ) PURE;
01417       STDMETHOD(Initialize)(THIS_ GUID *) PURE;
01418       STDMETHOD(RestoreDisplayMode)(THIS) PURE;
01419       STDMETHOD(SetCooperativeLevel)(THIS_ HWND, DWORD) PURE;
01420       STDMETHOD(SetDisplayMode)(THIS_ DWORD, DWORD,DWORD) PURE;
01421       STDMETHOD(WaitForVerticalBlank)(THIS_ DWORD, HANDLE ) PURE;
01422      };
01423 
01424      #if !defined(__cplusplus) || defined(CINTERFACE)
01425          #define IDirectDraw_QueryInterface(p, a, b)         (p)->lpVtbl->QueryInterface(p, a, b)
01426          #define IDirectDraw_AddRef(p)                       (p)->lpVtbl->AddRef(p)
01427          #define IDirectDraw_Release(p)                      (p)->lpVtbl->Release(p)
01428          #define IDirectDraw_Compact(p)                      (p)->lpVtbl->Compact(p)
01429          #define IDirectDraw_CreateClipper(p, a, b, c)       (p)->lpVtbl->CreateClipper(p, a, b, c)
01430          #define IDirectDraw_CreatePalette(p, a, b, c, d)    (p)->lpVtbl->CreatePalette(p, a, b, c, d)
01431          #define IDirectDraw_CreateSurface(p, a, b, c)       (p)->lpVtbl->CreateSurface(p, a, b, c)
01432          #define IDirectDraw_DuplicateSurface(p, a, b)       (p)->lpVtbl->DuplicateSurface(p, a, b)
01433          #define IDirectDraw_EnumDisplayModes(p, a, b, c, d) (p)->lpVtbl->EnumDisplayModes(p, a, b, c, d)
01434          #define IDirectDraw_EnumSurfaces(p, a, b, c, d)     (p)->lpVtbl->EnumSurfaces(p, a, b, c, d)
01435          #define IDirectDraw_FlipToGDISurface(p)             (p)->lpVtbl->FlipToGDISurface(p)
01436          #define IDirectDraw_GetCaps(p, a, b)                (p)->lpVtbl->GetCaps(p, a, b)
01437          #define IDirectDraw_GetDisplayMode(p, a)            (p)->lpVtbl->GetDisplayMode(p, a)
01438          #define IDirectDraw_GetFourCCCodes(p, a, b)         (p)->lpVtbl->GetFourCCCodes(p, a, b)
01439          #define IDirectDraw_GetGDISurface(p, a)             (p)->lpVtbl->GetGDISurface(p, a)
01440          #define IDirectDraw_GetMonitorFrequency(p, a)       (p)->lpVtbl->GetMonitorFrequency(p, a)
01441          #define IDirectDraw_GetScanLine(p, a)               (p)->lpVtbl->GetScanLine(p, a)
01442          #define IDirectDraw_GetVerticalBlankStatus(p, a)    (p)->lpVtbl->GetVerticalBlankStatus(p, a)
01443          #define IDirectDraw_Initialize(p, a)                (p)->lpVtbl->Initialize(p, a)
01444          #define IDirectDraw_RestoreDisplayMode(p)           (p)->lpVtbl->RestoreDisplayMode(p)
01445          #define IDirectDraw_SetCooperativeLevel(p, a, b)    (p)->lpVtbl->SetCooperativeLevel(p, a, b)
01446          #define IDirectDraw_SetDisplayMode(p, a, b, c)      (p)->lpVtbl->SetDisplayMode(p, a, b, c)
01447          #define IDirectDraw_WaitForVerticalBlank(p, a, b)   (p)->lpVtbl->WaitForVerticalBlank(p, a, b)
01448      #else
01449          #define IDirectDraw_QueryInterface(p, a, b)         (p)->QueryInterface(a, b)
01450          #define IDirectDraw_AddRef(p)                       (p)->AddRef()
01451          #define IDirectDraw_Release(p)                      (p)->Release()
01452          #define IDirectDraw_Compact(p)                      (p)->Compact()
01453          #define IDirectDraw_CreateClipper(p, a, b, c)       (p)->CreateClipper(a, b, c)
01454          #define IDirectDraw_CreatePalette(p, a, b, c, d)    (p)->CreatePalette(a, b, c, d)
01455          #define IDirectDraw_CreateSurface(p, a, b, c)       (p)->CreateSurface(a, b, c)
01456          #define IDirectDraw_DuplicateSurface(p, a, b)       (p)->DuplicateSurface(a, b)
01457          #define IDirectDraw_EnumDisplayModes(p, a, b, c, d) (p)->EnumDisplayModes(a, b, c, d)
01458          #define IDirectDraw_EnumSurfaces(p, a, b, c, d)     (p)->EnumSurfaces(a, b, c, d)
01459          #define IDirectDraw_FlipToGDISurface(p)             (p)->FlipToGDISurface()
01460          #define IDirectDraw_GetCaps(p, a, b)                (p)->GetCaps(a, b)
01461          #define IDirectDraw_GetDisplayMode(p, a)            (p)->GetDisplayMode(a)
01462          #define IDirectDraw_GetFourCCCodes(p, a, b)         (p)->GetFourCCCodes(a, b)
01463          #define IDirectDraw_GetGDISurface(p, a)             (p)->GetGDISurface(a)
01464          #define IDirectDraw_GetMonitorFrequency(p, a)       (p)->GetMonitorFrequency(a)
01465          #define IDirectDraw_GetScanLine(p, a)               (p)->GetScanLine(a)
01466          #define IDirectDraw_GetVerticalBlankStatus(p, a)    (p)->GetVerticalBlankStatus(a)
01467          #define IDirectDraw_Initialize(p, a)                (p)->Initialize(a)
01468          #define IDirectDraw_RestoreDisplayMode(p)           (p)->RestoreDisplayMode()
01469          #define IDirectDraw_SetCooperativeLevel(p, a, b)    (p)->SetCooperativeLevel(a, b)
01470          #define IDirectDraw_SetDisplayMode(p, a, b, c)      (p)->SetDisplayMode(a, b, c)
01471          #define IDirectDraw_WaitForVerticalBlank(p, a, b)   (p)->WaitForVerticalBlank(a, b)
01472      #endif
01473 #endif
01474 
01475 #if defined( _WIN32 ) && !defined( _NO_COM )
01476     #undef INTERFACE
01477     #define INTERFACE IDirectDraw2
01478     DECLARE_INTERFACE_( IDirectDraw2, IUnknown )
01479     {
01480       STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID * ppvObj) PURE;
01481       STDMETHOD_(ULONG,AddRef) (THIS)  PURE;
01482       STDMETHOD_(ULONG,Release) (THIS) PURE;
01483       STDMETHOD(Compact)(THIS) PURE;
01484       STDMETHOD(CreateClipper)(THIS_ DWORD, LPDIRECTDRAWCLIPPER *, IUnknown  * ) PURE;
01485       STDMETHOD(CreatePalette)(THIS_ DWORD, LPPALETTEENTRY, LPDIRECTDRAWPALETTE *, IUnknown * ) PURE;
01486       STDMETHOD(CreateSurface)(THIS_  LPDDSURFACEDESC, LPDIRECTDRAWSURFACE *, IUnknown *) PURE;
01487       STDMETHOD(DuplicateSurface)( THIS_ LPDIRECTDRAWSURFACE, LPDIRECTDRAWSURFACE * ) PURE;
01488       STDMETHOD(EnumDisplayModes)( THIS_ DWORD, LPDDSURFACEDESC, LPVOID, LPDDENUMMODESCALLBACK ) PURE;
01489       STDMETHOD(EnumSurfaces)(THIS_ DWORD, LPDDSURFACEDESC, LPVOID,LPDDENUMSURFACESCALLBACK ) PURE;
01490       STDMETHOD(FlipToGDISurface)(THIS) PURE;
01491       STDMETHOD(GetCaps)( THIS_ LPDDCAPS, LPDDCAPS) PURE;
01492       STDMETHOD(GetDisplayMode)( THIS_ LPDDSURFACEDESC) PURE;
01493       STDMETHOD(GetFourCCCodes)(THIS_  LPDWORD, LPDWORD ) PURE;
01494       STDMETHOD(GetGDISurface)(THIS_ LPDIRECTDRAWSURFACE *) PURE;
01495       STDMETHOD(GetMonitorFrequency)(THIS_ LPDWORD) PURE;
01496       STDMETHOD(GetScanLine)(THIS_ LPDWORD) PURE;
01497       STDMETHOD(GetVerticalBlankStatus)(THIS_ LPBOOL ) PURE;
01498       STDMETHOD(Initialize)(THIS_ GUID *) PURE;
01499       STDMETHOD(RestoreDisplayMode)(THIS) PURE;
01500       STDMETHOD(SetCooperativeLevel)(THIS_ HWND, DWORD) PURE;
01501       STDMETHOD(SetDisplayMode)(THIS_ DWORD, DWORD,DWORD, DWORD, DWORD) PURE;
01502       STDMETHOD(WaitForVerticalBlank)(THIS_ DWORD, HANDLE ) PURE;
01503       STDMETHOD(GetAvailableVidMem)(THIS_ LPDDSCAPS, LPDWORD, LPDWORD) PURE;
01504      };
01505 
01506      #if !defined(__cplusplus) || defined(CINTERFACE)
01507          #define IDirectDraw2_QueryInterface(p, a, b)         (p)->lpVtbl->QueryInterface(p, a, b)
01508          #define IDirectDraw2_AddRef(p)                       (p)->lpVtbl->AddRef(p)
01509          #define IDirectDraw2_Release(p)                      (p)->lpVtbl->Release(p)
01510          #define IDirectDraw2_Compact(p)                      (p)->lpVtbl->Compact(p)
01511          #define IDirectDraw2_CreateClipper(p, a, b, c)       (p)->lpVtbl->CreateClipper(p, a, b, c)
01512          #define IDirectDraw2_CreatePalette(p, a, b, c, d)    (p)->lpVtbl->CreatePalette(p, a, b, c, d)
01513          #define IDirectDraw2_CreateSurface(p, a, b, c)       (p)->lpVtbl->CreateSurface(p, a, b, c)
01514          #define IDirectDraw2_DuplicateSurface(p, a, b)       (p)->lpVtbl->DuplicateSurface(p, a, b)
01515          #define IDirectDraw2_EnumDisplayModes(p, a, b, c, d) (p)->lpVtbl->EnumDisplayModes(p, a, b, c, d)
01516          #define IDirectDraw2_EnumSurfaces(p, a, b, c, d)     (p)->lpVtbl->EnumSurfaces(p, a, b, c, d)
01517          #define IDirectDraw2_FlipToGDISurface(p)             (p)->lpVtbl->FlipToGDISurface(p)
01518          #define IDirectDraw2_GetCaps(p, a, b)                (p)->lpVtbl->GetCaps(p, a, b)
01519          #define IDirectDraw2_GetDisplayMode(p, a)            (p)->lpVtbl->GetDisplayMode(p, a)
01520          #define IDirectDraw2_GetFourCCCodes(p, a, b)         (p)->lpVtbl->GetFourCCCodes(p, a, b)
01521          #define IDirectDraw2_GetGDISurface(p, a)             (p)->lpVtbl->GetGDISurface(p, a)
01522          #define IDirectDraw2_GetMonitorFrequency(p, a)       (p)->lpVtbl->GetMonitorFrequency(p, a)
01523          #define IDirectDraw2_GetScanLine(p, a)               (p)->lpVtbl->GetScanLine(p, a)
01524          #define IDirectDraw2_GetVerticalBlankStatus(p, a)    (p)->lpVtbl->GetVerticalBlankStatus(p, a)
01525          #define IDirectDraw2_Initialize(p, a)                (p)->lpVtbl->Initialize(p, a)
01526          #define IDirectDraw2_RestoreDisplayMode(p)           (p)->lpVtbl->RestoreDisplayMode(p)
01527          #define IDirectDraw2_SetCooperativeLevel(p, a, b)    (p)->lpVtbl->SetCooperativeLevel(p, a, b)
01528          #define IDirectDraw2_SetDisplayMode(p, a, b, c, d, e) (p)->lpVtbl->SetDisplayMode(p, a, b, c, d, e)
01529          #define IDirectDraw2_WaitForVerticalBlank(p, a, b)   (p)->lpVtbl->WaitForVerticalBlank(p, a, b)
01530          #define IDirectDraw2_GetAvailableVidMem(p, a, b, c)  (p)->lpVtbl->GetAvailableVidMem(p, a, b, c)
01531      #else
01532          #define IDirectDraw2_QueryInterface(p, a, b)         (p)->QueryInterface(a, b)
01533          #define IDirectDraw2_AddRef(p)                       (p)->AddRef()
01534          #define IDirectDraw2_Release(p)                      (p)->Release()
01535          #define IDirectDraw2_Compact(p)                      (p)->Compact()
01536          #define IDirectDraw2_CreateClipper(p, a, b, c)       (p)->CreateClipper(a, b, c)
01537          #define IDirectDraw2_CreatePalette(p, a, b, c, d)    (p)->CreatePalette(a, b, c, d)
01538          #define IDirectDraw2_CreateSurface(p, a, b, c)       (p)->CreateSurface(a, b, c)
01539          #define IDirectDraw2_DuplicateSurface(p, a, b)       (p)->DuplicateSurface(a, b)
01540          #define IDirectDraw2_EnumDisplayModes(p, a, b, c, d) (p)->EnumDisplayModes(a, b, c, d)
01541          #define IDirectDraw2_EnumSurfaces(p, a, b, c, d)     (p)->EnumSurfaces(a, b, c, d)
01542          #define IDirectDraw2_FlipToGDISurface(p)             (p)->FlipToGDISurface()
01543          #define IDirectDraw2_GetCaps(p, a, b)                (p)->GetCaps(a, b)
01544          #define IDirectDraw2_GetDisplayMode(p, a)            (p)->GetDisplayMode(a)
01545          #define IDirectDraw2_GetFourCCCodes(p, a, b)         (p)->GetFourCCCodes(a, b)
01546          #define IDirectDraw2_GetGDISurface(p, a)             (p)->GetGDISurface(a)
01547          #define IDirectDraw2_GetMonitorFrequency(p, a)       (p)->GetMonitorFrequency(a)
01548          #define IDirectDraw2_GetScanLine(p, a)               (p)->GetScanLine(a)
01549          #define IDirectDraw2_GetVerticalBlankStatus(p, a)    (p)->GetVerticalBlankStatus(a)
01550          #define IDirectDraw2_Initialize(p, a)                (p)->Initialize(a)
01551          #define IDirectDraw2_RestoreDisplayMode(p)           (p)->RestoreDisplayMode()
01552          #define IDirectDraw2_SetCooperativeLevel(p, a, b)    (p)->SetCooperativeLevel(a, b)
01553          #define IDirectDraw2_SetDisplayMode(p, a, b, c, d, e) (p)->SetDisplayMode(a, b, c, d, e)
01554          #define IDirectDraw2_WaitForVerticalBlank(p, a, b)   (p)->WaitForVerticalBlank(a, b)
01555          #define IDirectDraw2_GetAvailableVidMem(p, a, b, c)  (p)->GetAvailableVidMem(a, b, c)
01556      #endif
01557 #endif
01558 
01559 #if defined( _WIN32 ) && !defined( _NO_COM )
01560     #undef INTERFACE
01561     #define INTERFACE IDirectDraw4
01562 
01563     DECLARE_INTERFACE_( IDirectDraw4, IUnknown )
01564     {
01565       STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID * ppvObj) PURE;
01566       STDMETHOD_(ULONG,AddRef) (THIS)  PURE;
01567       STDMETHOD_(ULONG,Release) (THIS) PURE;
01568       STDMETHOD(Compact)(THIS) PURE;
01569       STDMETHOD(CreateClipper)(THIS_ DWORD, LPDIRECTDRAWCLIPPER *, IUnknown * ) PURE;
01570       STDMETHOD(CreatePalette)(THIS_ DWORD, LPPALETTEENTRY, LPDIRECTDRAWPALETTE *, IUnknown * ) PURE;
01571       STDMETHOD(CreateSurface)(THIS_  LPDDSURFACEDESC2, LPDIRECTDRAWSURFACE4 *, IUnknown *) PURE;
01572       STDMETHOD(DuplicateSurface)( THIS_ LPDIRECTDRAWSURFACE4, LPDIRECTDRAWSURFACE4 * ) PURE;
01573       STDMETHOD(EnumDisplayModes)( THIS_ DWORD, LPDDSURFACEDESC2, LPVOID, LPDDENUMMODESCALLBACK2 ) PURE;
01574       STDMETHOD(EnumSurfaces)(THIS_ DWORD, LPDDSURFACEDESC2, LPVOID,LPDDENUMSURFACESCALLBACK2 ) PURE;
01575       STDMETHOD(FlipToGDISurface)(THIS) PURE;
01576       STDMETHOD(GetCaps)( THIS_ LPDDCAPS, LPDDCAPS) PURE;
01577       STDMETHOD(GetDisplayMode)( THIS_ LPDDSURFACEDESC2) PURE;
01578       STDMETHOD(GetFourCCCodes)(THIS_  LPDWORD, LPDWORD ) PURE;
01579       STDMETHOD(GetGDISurface)(THIS_ LPDIRECTDRAWSURFACE4 *) PURE;
01580       STDMETHOD(GetMonitorFrequency)(THIS_ LPDWORD) PURE;
01581       STDMETHOD(GetScanLine)(THIS_ LPDWORD) PURE;
01582       STDMETHOD(GetVerticalBlankStatus)(THIS_ LPBOOL ) PURE;
01583       STDMETHOD(Initialize)(THIS_ GUID *) PURE;
01584       STDMETHOD(RestoreDisplayMode)(THIS) PURE;
01585       STDMETHOD(SetCooperativeLevel)(THIS_ HWND, DWORD) PURE;
01586       STDMETHOD(SetDisplayMode)(THIS_ DWORD, DWORD,DWORD, DWORD, DWORD) PURE;
01587       STDMETHOD(WaitForVerticalBlank)(THIS_ DWORD, HANDLE ) PURE;
01588       STDMETHOD(GetAvailableVidMem)(THIS_ LPDDSCAPS2, LPDWORD, LPDWORD) PURE;
01589       STDMETHOD(GetSurfaceFromDC) (THIS_ HDC, LPDIRECTDRAWSURFACE4 *) PURE;
01590       STDMETHOD(RestoreAllSurfaces)(THIS) PURE;
01591       STDMETHOD(TestCooperativeLevel)(THIS) PURE;
01592       STDMETHOD(GetDeviceIdentifier)(THIS_ LPDDDEVICEIDENTIFIER, DWORD ) PURE;
01593      };
01594 #if !defined(__cplusplus) || defined(CINTERFACE)
01595          #define IDirectDraw4_QueryInterface(p, a, b)         (p)->lpVtbl->QueryInterface(p, a, b)
01596          #define IDirectDraw4_AddRef(p)                       (p)->lpVtbl->AddRef(p)
01597          #define IDirectDraw4_Release(p)                      (p)->lpVtbl->Release(p)
01598          #define IDirectDraw4_Compact(p)                      (p)->lpVtbl->Compact(p)
01599          #define IDirectDraw4_CreateClipper(p, a, b, c)       (p)->lpVtbl->CreateClipper(p, a, b, c)
01600          #define IDirectDraw4_CreatePalette(p, a, b, c, d)    (p)->lpVtbl->CreatePalette(p, a, b, c, d)
01601          #define IDirectDraw4_CreateSurface(p, a, b, c)       (p)->lpVtbl->CreateSurface(p, a, b, c)
01602          #define IDirectDraw4_DuplicateSurface(p, a, b)       (p)->lpVtbl->DuplicateSurface(p, a, b)
01603          #define IDirectDraw4_EnumDisplayModes(p, a, b, c, d) (p)->lpVtbl->EnumDisplayModes(p, a, b, c, d)
01604          #define IDirectDraw4_EnumSurfaces(p, a, b, c, d)     (p)->lpVtbl->EnumSurfaces(p, a, b, c, d)
01605          #define IDirectDraw4_FlipToGDISurface(p)             (p)->lpVtbl->FlipToGDISurface(p)
01606          #define IDirectDraw4_GetCaps(p, a, b)                (p)->lpVtbl->GetCaps(p, a, b)
01607          #define IDirectDraw4_GetDisplayMode(p, a)            (p)->lpVtbl->GetDisplayMode(p, a)
01608          #define IDirectDraw4_GetFourCCCodes(p, a, b)         (p)->lpVtbl->GetFourCCCodes(p, a, b)
01609          #define IDirectDraw4_GetGDISurface(p, a)             (p)->lpVtbl->GetGDISurface(p, a)
01610          #define IDirectDraw4_GetMonitorFrequency(p, a)       (p)->lpVtbl->GetMonitorFrequency(p, a)
01611          #define IDirectDraw4_GetScanLine(p, a)               (p)->lpVtbl->GetScanLine(p, a)
01612          #define IDirectDraw4_GetVerticalBlankStatus(p, a)    (p)->lpVtbl->GetVerticalBlankStatus(p, a)
01613          #define IDirectDraw4_Initialize(p, a)                (p)->lpVtbl->Initialize(p, a)
01614          #define IDirectDraw4_RestoreDisplayMode(p)           (p)->lpVtbl->RestoreDisplayMode(p)
01615          #define IDirectDraw4_SetCooperativeLevel(p, a, b)    (p)->lpVtbl->SetCooperativeLevel(p, a, b)
01616          #define IDirectDraw4_SetDisplayMode(p, a, b, c, d, e) (p)->lpVtbl->SetDisplayMode(p, a, b, c, d, e)
01617          #define IDirectDraw4_WaitForVerticalBlank(p, a, b)   (p)->lpVtbl->WaitForVerticalBlank(p, a, b)
01618          #define IDirectDraw4_GetAvailableVidMem(p, a, b, c)  (p)->lpVtbl->GetAvailableVidMem(p, a, b, c)
01619          #define IDirectDraw4_GetSurfaceFromDC(p, a, b)       (p)->lpVtbl->GetSurfaceFromDC(p, a, b)
01620          #define IDirectDraw4_RestoreAllSurfaces(p)           (p)->lpVtbl->RestoreAllSurfaces(p)
01621          #define IDirectDraw4_TestCooperativeLevel(p)         (p)->lpVtbl->TestCooperativeLevel(p)
01622          #define IDirectDraw4_GetDeviceIdentifier(p,a,b)      (p)->lpVtbl->GetDeviceIdentifier(p,a,b)
01623      #else
01624          #define IDirectDraw4_QueryInterface(p, a, b)         (p)->QueryInterface(a, b)
01625          #define IDirectDraw4_AddRef(p)                       (p)->AddRef()
01626          #define IDirectDraw4_Release(p)                      (p)->Release()
01627          #define IDirectDraw4_Compact(p)                      (p)->Compact()
01628          #define IDirectDraw4_CreateClipper(p, a, b, c)       (p)->CreateClipper(a, b, c)
01629          #define IDirectDraw4_CreatePalette(p, a, b, c, d)    (p)->CreatePalette(a, b, c, d)
01630          #define IDirectDraw4_CreateSurface(p, a, b, c)       (p)->CreateSurface(a, b, c)
01631          #define IDirectDraw4_DuplicateSurface(p, a, b)       (p)->DuplicateSurface(a, b)
01632          #define IDirectDraw4_EnumDisplayModes(p, a, b, c, d) (p)->EnumDisplayModes(a, b, c, d)
01633          #define IDirectDraw4_EnumSurfaces(p, a, b, c, d)     (p)->EnumSurfaces(a, b, c, d)
01634          #define IDirectDraw4_FlipToGDISurface(p)             (p)->FlipToGDISurface()
01635          #define IDirectDraw4_GetCaps(p, a, b)                (p)->GetCaps(a, b)
01636          #define IDirectDraw4_GetDisplayMode(p, a)            (p)->GetDisplayMode(a)
01637          #define IDirectDraw4_GetFourCCCodes(p, a, b)         (p)->GetFourCCCodes(a, b)
01638          #define IDirectDraw4_GetGDISurface(p, a)             (p)->GetGDISurface(a)
01639          #define IDirectDraw4_GetMonitorFrequency(p, a)       (p)->GetMonitorFrequency(a)
01640          #define IDirectDraw4_GetScanLine(p, a)               (p)->GetScanLine(a)
01641          #define IDirectDraw4_GetVerticalBlankStatus(p, a)    (p)->GetVerticalBlankStatus(a)
01642          #define IDirectDraw4_Initialize(p, a)                (p)->Initialize(a)
01643          #define IDirectDraw4_RestoreDisplayMode(p)           (p)->RestoreDisplayMode()
01644          #define IDirectDraw4_SetCooperativeLevel(p, a, b)    (p)->SetCooperativeLevel(a, b)
01645          #define IDirectDraw4_SetDisplayMode(p, a, b, c, d, e) (p)->SetDisplayMode(a, b, c, d, e)
01646          #define IDirectDraw4_WaitForVerticalBlank(p, a, b)   (p)->WaitForVerticalBlank(a, b)
01647          #define IDirectDraw4_GetAvailableVidMem(p, a, b, c)  (p)->GetAvailableVidMem(a, b, c)
01648          #define IDirectDraw4_GetSurfaceFromDC(p, a, b)       (p)->GetSurfaceFromDC(a, b)
01649          #define IDirectDraw4_RestoreAllSurfaces(p)           (p)->RestoreAllSurfaces()
01650          #define IDirectDraw4_TestCooperativeLevel(p)         (p)->TestCooperativeLevel()
01651          #define IDirectDraw4_GetDeviceIdentifier(p,a,b)      (p)->GetDeviceIdentifier(a,b)
01652      #endif
01653 #endif
01654 
01655 #if defined( _WIN32 ) && !defined( _NO_COM )
01656     #undef INTERFACE
01657     #define INTERFACE IDirectDraw7
01658 
01659     DECLARE_INTERFACE_( IDirectDraw7, IUnknown )
01660     {
01661       STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID * ppvObj) PURE;
01662       STDMETHOD_(ULONG,AddRef) (THIS)  PURE;
01663       STDMETHOD_(ULONG,Release) (THIS) PURE;
01664       STDMETHOD(Compact)(THIS) PURE;
01665       STDMETHOD(CreateClipper)(THIS_ DWORD, LPDIRECTDRAWCLIPPER *, IUnknown * ) PURE;
01666       STDMETHOD(CreatePalette)(THIS_ DWORD, LPPALETTEENTRY, LPDIRECTDRAWPALETTE *, IUnknown * ) PURE;
01667       STDMETHOD(CreateSurface)(THIS_  LPDDSURFACEDESC2, LPDIRECTDRAWSURFACE7 *, IUnknown *) PURE;
01668       STDMETHOD(DuplicateSurface)( THIS_ LPDIRECTDRAWSURFACE7, LPDIRECTDRAWSURFACE7 * ) PURE;
01669       STDMETHOD(EnumDisplayModes)( THIS_ DWORD, LPDDSURFACEDESC2, LPVOID, LPDDENUMMODESCALLBACK2 ) PURE;
01670       STDMETHOD(EnumSurfaces)(THIS_ DWORD, LPDDSURFACEDESC2, LPVOID,LPDDENUMSURFACESCALLBACK7 ) PURE;
01671       STDMETHOD(FlipToGDISurface)(THIS) PURE;
01672       STDMETHOD(GetCaps)( THIS_ LPDDCAPS, LPDDCAPS) PURE;
01673       STDMETHOD(GetDisplayMode)( THIS_ LPDDSURFACEDESC2) PURE;
01674       STDMETHOD(GetFourCCCodes)(THIS_  LPDWORD, LPDWORD ) PURE;
01675       STDMETHOD(GetGDISurface)(THIS_ LPDIRECTDRAWSURFACE7 *) PURE;
01676       STDMETHOD(GetMonitorFrequency)(THIS_ LPDWORD) PURE;
01677       STDMETHOD(GetScanLine)(THIS_ LPDWORD) PURE;
01678       STDMETHOD(GetVerticalBlankStatus)(THIS_ LPBOOL ) PURE;
01679       STDMETHOD(Initialize)(THIS_ GUID *) PURE;
01680       STDMETHOD(RestoreDisplayMode)(THIS) PURE;
01681       STDMETHOD(SetCooperativeLevel)(THIS_ HWND, DWORD) PURE;
01682       STDMETHOD(SetDisplayMode)(THIS_ DWORD, DWORD,DWORD, DWORD, DWORD) PURE;
01683       STDMETHOD(WaitForVerticalBlank)(THIS_ DWORD, HANDLE ) PURE;
01684       STDMETHOD(GetAvailableVidMem)(THIS_ LPDDSCAPS2, LPDWORD, LPDWORD) PURE;
01685       STDMETHOD(GetSurfaceFromDC) (THIS_ HDC, LPDIRECTDRAWSURFACE7 *) PURE;
01686       STDMETHOD(RestoreAllSurfaces)(THIS) PURE;
01687       STDMETHOD(TestCooperativeLevel)(THIS) PURE;
01688       STDMETHOD(GetDeviceIdentifier)(THIS_ LPDDDEVICEIDENTIFIER2, DWORD ) PURE;
01689       STDMETHOD(StartModeTest)(THIS_ LPSIZE, DWORD, DWORD ) PURE;
01690       STDMETHOD(EvaluateMode)(THIS_ DWORD, DWORD * ) PURE;
01691     };
01692      #if !defined(__cplusplus) || defined(CINTERFACE)
01693          #define IDirectDraw7_QueryInterface(p, a, b)         (p)->lpVtbl->QueryInterface(p, a, b)
01694          #define IDirectDraw7_AddRef(p)                       (p)->lpVtbl->AddRef(p)
01695          #define IDirectDraw7_Release(p)                      (p)->lpVtbl->Release(p)
01696          #define IDirectDraw7_Compact(p)                      (p)->lpVtbl->Compact(p)
01697          #define IDirectDraw7_CreateClipper(p, a, b, c)       (p)->lpVtbl->CreateClipper(p, a, b, c)
01698          #define IDirectDraw7_CreatePalette(p, a, b, c, d)    (p)->lpVtbl->CreatePalette(p, a, b, c, d)
01699          #define IDirectDraw7_CreateSurface(p, a, b, c)       (p)->lpVtbl->CreateSurface(p, a, b, c)
01700          #define IDirectDraw7_DuplicateSurface(p, a, b)       (p)->lpVtbl->DuplicateSurface(p, a, b)
01701          #define IDirectDraw7_EnumDisplayModes(p, a, b, c, d) (p)->lpVtbl->EnumDisplayModes(p, a, b, c, d)
01702          #define IDirectDraw7_EnumSurfaces(p, a, b, c, d)     (p)->lpVtbl->EnumSurfaces(p, a, b, c, d)
01703          #define IDirectDraw7_FlipToGDISurface(p)             (p)->lpVtbl->FlipToGDISurface(p)
01704          #define IDirectDraw7_GetCaps(p, a, b)                (p)->lpVtbl->GetCaps(p, a, b)
01705          #define IDirectDraw7_GetDisplayMode(p, a)            (p)->lpVtbl->GetDisplayMode(p, a)
01706          #define IDirectDraw7_GetFourCCCodes(p, a, b)         (p)->lpVtbl->GetFourCCCodes(p, a, b)
01707          #define IDirectDraw7_GetGDISurface(p, a)             (p)->lpVtbl->GetGDISurface(p, a)
01708          #define IDirectDraw7_GetMonitorFrequency(p, a)       (p)->lpVtbl->GetMonitorFrequency(p, a)
01709          #define IDirectDraw7_GetScanLine(p, a)               (p)->lpVtbl->GetScanLine(p, a)
01710          #define IDirectDraw7_GetVerticalBlankStatus(p, a)    (p)->lpVtbl->GetVerticalBlankStatus(p, a)
01711          #define IDirectDraw7_Initialize(p, a)                (p)->lpVtbl->Initialize(p, a)
01712          #define IDirectDraw7_RestoreDisplayMode(p)           (p)->lpVtbl->RestoreDisplayMode(p)
01713          #define IDirectDraw7_SetCooperativeLevel(p, a, b)    (p)->lpVtbl->SetCooperativeLevel(p, a, b)
01714          #define IDirectDraw7_SetDisplayMode(p, a, b, c, d, e) (p)->lpVtbl->SetDisplayMode(p, a, b, c, d, e)
01715          #define IDirectDraw7_WaitForVerticalBlank(p, a, b)   (p)->lpVtbl->WaitForVerticalBlank(p, a, b)
01716          #define IDirectDraw7_GetAvailableVidMem(p, a, b, c)  (p)->lpVtbl->GetAvailableVidMem(p, a, b, c)
01717          #define IDirectDraw7_GetSurfaceFromDC(p, a, b)       (p)->lpVtbl->GetSurfaceFromDC(p, a, b)
01718          #define IDirectDraw7_RestoreAllSurfaces(p)           (p)->lpVtbl->RestoreAllSurfaces(p)
01719          #define IDirectDraw7_TestCooperativeLevel(p)         (p)->lpVtbl->TestCooperativeLevel(p)
01720          #define IDirectDraw7_GetDeviceIdentifier(p,a,b)      (p)->lpVtbl->GetDeviceIdentifier(p,a,b)
01721          #define IDirectDraw7_StartModeTest(p,a,b,c)        (p)->lpVtbl->StartModeTest(p,a,b,c)
01722          #define IDirectDraw7_EvaluateMode(p,a,b)           (p)->lpVtbl->EvaluateMode(p,a,b)
01723      #else
01724          #define IDirectDraw7_QueryInterface(p, a, b)         (p)->QueryInterface(a, b)
01725          #define IDirectDraw7_AddRef(p)                       (p)->AddRef()
01726          #define IDirectDraw7_Release(p)                      (p)->Release()
01727          #define IDirectDraw7_Compact(p)                      (p)->Compact()
01728          #define IDirectDraw7_CreateClipper(p, a, b, c)       (p)->CreateClipper(a, b, c)
01729          #define IDirectDraw7_CreatePalette(p, a, b, c, d)    (p)->CreatePalette(a, b, c, d)
01730          #define IDirectDraw7_CreateSurface(p, a, b, c)       (p)->CreateSurface(a, b, c)
01731          #define IDirectDraw7_DuplicateSurface(p, a, b)       (p)->DuplicateSurface(a, b)
01732          #define IDirectDraw7_EnumDisplayModes(p, a, b, c, d) (p)->EnumDisplayModes(a, b, c, d)
01733          #define IDirectDraw7_EnumSurfaces(p, a, b, c, d)     (p)->EnumSurfaces(a, b, c, d)
01734          #define IDirectDraw7_FlipToGDISurface(p)             (p)->FlipToGDISurface()
01735          #define IDirectDraw7_GetCaps(p, a, b)                (p)->GetCaps(a, b)
01736          #define IDirectDraw7_GetDisplayMode(p, a)            (p)->GetDisplayMode(a)
01737          #define IDirectDraw7_GetFourCCCodes(p, a, b)         (p)->GetFourCCCodes(a, b)
01738          #define IDirectDraw7_GetGDISurface(p, a)             (p)->GetGDISurface(a)
01739          #define IDirectDraw7_GetMonitorFrequency(p, a)       (p)->GetMonitorFrequency(a)
01740          #define IDirectDraw7_GetScanLine(p, a)               (p)->GetScanLine(a)
01741          #define IDirectDraw7_GetVerticalBlankStatus(p, a)    (p)->GetVerticalBlankStatus(a)
01742          #define IDirectDraw7_Initialize(p, a)                (p)->Initialize(a)
01743          #define IDirectDraw7_RestoreDisplayMode(p)           (p)->RestoreDisplayMode()
01744          #define IDirectDraw7_SetCooperativeLevel(p, a, b)    (p)->SetCooperativeLevel(a, b)
01745          #define IDirectDraw7_SetDisplayMode(p, a, b, c, d, e) (p)->SetDisplayMode(a, b, c, d, e)
01746          #define IDirectDraw7_WaitForVerticalBlank(p, a, b)   (p)->WaitForVerticalBlank(a, b)
01747          #define IDirectDraw7_GetAvailableVidMem(p, a, b, c)  (p)->GetAvailableVidMem(a, b, c)
01748          #define IDirectDraw7_GetSurfaceFromDC(p, a, b)       (p)->GetSurfaceFromDC(a, b)
01749          #define IDirectDraw7_RestoreAllSurfaces(p)           (p)->RestoreAllSurfaces()
01750          #define IDirectDraw7_TestCooperativeLevel(p)         (p)->TestCooperativeLevel()
01751          #define IDirectDraw7_GetDeviceIdentifier(p,a,b)      (p)->GetDeviceIdentifier(a,b)
01752          #define IDirectDraw7_StartModeTest(p,a,b,c)        (p)->lpVtbl->StartModeTest(a,b,c)
01753          #define IDirectDraw7_EvaluateMode(p,a,b)           (p)->lpVtbl->EvaluateMode(a,b)
01754      #endif
01755 #endif
01756 
01757 #if defined( _WIN32 ) && !defined( _NO_COM )
01758     #undef INTERFACE
01759     #define INTERFACE IDirectDrawPalette
01760 
01761     DECLARE_INTERFACE_( IDirectDrawPalette, IUnknown )
01762     {
01763       STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID * ppvObj) PURE;
01764       STDMETHOD_(ULONG,AddRef) (THIS)  PURE;
01765       STDMETHOD_(ULONG,Release) (THIS) PURE;
01766       STDMETHOD(GetCaps)(THIS_ LPDWORD) PURE;
01767       STDMETHOD(GetEntries)(THIS_ DWORD,DWORD,DWORD,LPPALETTEENTRY) PURE;
01768       STDMETHOD(Initialize)(THIS_ LPDIRECTDRAW, DWORD, LPPALETTEENTRY) PURE;
01769       STDMETHOD(SetEntries)(THIS_ DWORD,DWORD,DWORD,LPPALETTEENTRY) PURE;
01770     };
01771      #if !defined(__cplusplus) || defined(CINTERFACE)
01772          #define IDirectDrawPalette_QueryInterface(p, a, b)      (p)->lpVtbl->QueryInterface(p, a, b)
01773          #define IDirectDrawPalette_AddRef(p)                    (p)->lpVtbl->AddRef(p)
01774          #define IDirectDrawPalette_Release(p)                   (p)->lpVtbl->Release(p)
01775          #define IDirectDrawPalette_GetCaps(p, a)                (p)->lpVtbl->GetCaps(p, a)
01776          #define IDirectDrawPalette_GetEntries(p, a, b, c, d)    (p)->lpVtbl->GetEntries(p, a, b, c, d)
01777          #define IDirectDrawPalette_Initialize(p, a, b, c)       (p)->lpVtbl->Initialize(p, a, b, c)
01778          #define IDirectDrawPalette_SetEntries(p, a, b, c, d)    (p)->lpVtbl->SetEntries(p, a, b, c, d)
01779      #else
01780          #define IDirectDrawPalette_QueryInterface(p, a, b)      (p)->QueryInterface(a, b)
01781          #define IDirectDrawPalette_AddRef(p)                    (p)->AddRef()
01782          #define IDirectDrawPalette_Release(p)                   (p)->Release()
01783          #define IDirectDrawPalette_GetCaps(p, a)                (p)->GetCaps(a)
01784          #define IDirectDrawPalette_GetEntries(p, a, b, c, d)    (p)->GetEntries(a, b, c, d)
01785          #define IDirectDrawPalette_Initialize(p, a, b, c)       (p)->Initialize(a, b, c)
01786          #define IDirectDrawPalette_SetEntries(p, a, b, c, d)    (p)->SetEntries(a, b, c, d)
01787      #endif
01788 #endif
01789 
01790 #if defined( _WIN32 ) && !defined( _NO_COM )
01791     #undef INTERFACE
01792     #define INTERFACE IDirectDrawGammaControl
01793 
01794     DECLARE_INTERFACE_( IDirectDrawGammaControl, IUnknown )
01795     {
01796       STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID * ppvObj) PURE;
01797       STDMETHOD_(ULONG,AddRef) (THIS)  PURE;
01798       STDMETHOD_(ULONG,Release) (THIS) PURE;
01799       STDMETHOD(GetGammaRamp)(THIS_ DWORD, LPDDGAMMARAMP) PURE;
01800       STDMETHOD(SetGammaRamp)(THIS_ DWORD, LPDDGAMMARAMP) PURE;
01801      };
01802      #if !defined(__cplusplus) || defined(CINTERFACE)
01803          #define IDirectDrawGammaControl_QueryInterface(p, a, b)  (p)->lpVtbl->QueryInterface(p, a, b)
01804          #define IDirectDrawGammaControl_AddRef(p)                (p)->lpVtbl->AddRef(p)
01805          #define IDirectDrawGammaControl_Release(p)               (p)->lpVtbl->Release(p)
01806          #define IDirectDrawGammaControl_GetGammaRamp(p, a, b)    (p)->lpVtbl->GetGammaRamp(p, a, b)
01807          #define IDirectDrawGammaControl_SetGammaRamp(p, a, b)    (p)->lpVtbl->SetGammaRamp(p, a, b)
01808      #else
01809          #define IDirectDrawGammaControl_QueryInterface(p, a, b)  (p)->QueryInterface(a, b)
01810          #define IDirectDrawGammaControl_AddRef(p)                (p)->AddRef()
01811          #define IDirectDrawGammaControl_Release(p)               (p)->Release()
01812          #define IDirectDrawGammaControl_GetGammaRamp(p, a, b)    (p)->GetGammaRamp(a, b)
01813          #define IDirectDrawGammaControl_SetGammaRamp(p, a, b)    (p)->SetGammaRamp(a, b)
01814      #endif
01815 #endif
01816 
01817 #if defined( _WIN32 ) && !defined( _NO_COM )
01818      #undef INTERFACE
01819      #define INTERFACE IDirectDrawColorControl
01820 
01821      DECLARE_INTERFACE_( IDirectDrawColorControl, IUnknown )
01822      {
01823        STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID * ppvObj) PURE;
01824        STDMETHOD_(ULONG,AddRef) (THIS)  PURE;
01825        STDMETHOD_(ULONG,Release) (THIS) PURE;
01826        STDMETHOD(GetColorControls)(THIS_ LPDDCOLORCONTROL) PURE;
01827        STDMETHOD(SetColorControls)(THIS_ LPDDCOLORCONTROL) PURE;
01828      };
01829      #if !defined(__cplusplus) || defined(CINTERFACE)
01830          #define IDirectDrawColorControl_QueryInterface(p, a, b)  (p)->lpVtbl->QueryInterface(p, a, b)
01831          #define IDirectDrawColorControl_AddRef(p)                (p)->lpVtbl->AddRef(p)
01832          #define IDirectDrawColorControl_Release(p)               (p)->lpVtbl->Release(p)
01833          #define IDirectDrawColorControl_GetColorControls(p, a)   (p)->lpVtbl->GetColorControls(p, a)
01834          #define IDirectDrawColorControl_SetColorControls(p, a)   (p)->lpVtbl->SetColorControls(p, a)
01835      #else
01836          #define IDirectDrawColorControl_QueryInterface(p, a, b)  (p)->QueryInterface(a, b)
01837          #define IDirectDrawColorControl_AddRef(p)                (p)->AddRef()
01838          #define IDirectDrawColorControl_Release(p)               (p)->Release()
01839          #define IDirectDrawColorControl_GetColorControls(p, a)   (p)->GetColorControls(a)
01840          #define IDirectDrawColorControl_SetColorControls(p, a)   (p)->SetColorControls(a)
01841      #endif
01842 #endif
01843 
01844 
01845 #if defined( _WIN32 ) && !defined( _NO_COM )
01846      #undef INTERFACE
01847      #define INTERFACE IDirectDrawClipper
01848      DECLARE_INTERFACE_( IDirectDrawClipper, IUnknown )
01849      {
01850        STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID * ppvObj) PURE;
01851        STDMETHOD_(ULONG,AddRef) (THIS)  PURE;
01852        STDMETHOD_(ULONG,Release) (THIS) PURE;
01853        STDMETHOD(GetClipList)(THIS_ LPRECT, LPRGNDATA, LPDWORD) PURE;
01854        STDMETHOD(GetHWnd)(THIS_ HWND *) PURE;
01855        STDMETHOD(Initialize)(THIS_ LPDIRECTDRAW, DWORD) PURE;
01856        STDMETHOD(IsClipListChanged)(THIS_ BOOL *) PURE;
01857        STDMETHOD(SetClipList)(THIS_ LPRGNDATA,DWORD) PURE;
01858        STDMETHOD(SetHWnd)(THIS_ DWORD, HWND ) PURE;
01859      };
01860      #if !defined(__cplusplus) || defined(CINTERFACE)
01861          #define IDirectDrawClipper_QueryInterface(p, a, b)  (p)->lpVtbl->QueryInterface(p, a, b)
01862          #define IDirectDrawClipper_AddRef(p)                (p)->lpVtbl->AddRef(p)
01863          #define IDirectDrawClipper_Release(p)               (p)->lpVtbl->Release(p)
01864          #define IDirectDrawClipper_GetClipList(p, a, b, c)  (p)->lpVtbl->GetClipList(p, a, b, c)
01865          #define IDirectDrawClipper_GetHWnd(p, a)            (p)->lpVtbl->GetHWnd(p, a)
01866          #define IDirectDrawClipper_Initialize(p, a, b)      (p)->lpVtbl->Initialize(p, a, b)
01867          #define IDirectDrawClipper_IsClipListChanged(p, a)  (p)->lpVtbl->IsClipListChanged(p, a)
01868          #define IDirectDrawClipper_SetClipList(p, a, b)     (p)->lpVtbl->SetClipList(p, a, b)
01869          #define IDirectDrawClipper_SetHWnd(p, a, b)         (p)->lpVtbl->SetHWnd(p, a, b)
01870      #else
01871          #define IDirectDrawClipper_QueryInterface(p, a, b)  (p)->QueryInterface(a, b)
01872          #define IDirectDrawClipper_AddRef(p)                (p)->AddRef()
01873          #define IDirectDrawClipper_Release(p)               (p)->Release()
01874          #define IDirectDrawClipper_GetClipList(p, a, b, c)  (p)->GetClipList(a, b, c)
01875          #define IDirectDrawClipper_GetHWnd(p, a)            (p)->GetHWnd(a)
01876          #define IDirectDrawClipper_Initialize(p, a, b)      (p)->Initialize(a, b)
01877          #define IDirectDrawClipper_IsClipListChanged(p, a)  (p)->IsClipListChanged(a)
01878          #define IDirectDrawClipper_SetClipList(p, a, b)     (p)->SetClipList(a, b)
01879          #define IDirectDrawClipper_SetHWnd(p, a, b)         (p)->SetHWnd(a, b)
01880      #endif
01881 #endif
01882 
01883 #if defined( _WIN32 ) && !defined( _NO_COM )
01884      #undef INTERFACE
01885      #define INTERFACE IDirectDrawSurface
01886 
01887      DECLARE_INTERFACE_( IDirectDrawSurface, IUnknown )
01888      {
01889        STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID * ppvObj) PURE;
01890        STDMETHOD_(ULONG,AddRef) (THIS)  PURE;
01891        STDMETHOD_(ULONG,Release) (THIS) PURE;
01892        STDMETHOD(AddAttachedSurface)(THIS_ LPDIRECTDRAWSURFACE) PURE;
01893        STDMETHOD(AddOverlayDirtyRect)(THIS_ LPRECT) PURE;
01894        STDMETHOD(Blt)(THIS_ LPRECT,LPDIRECTDRAWSURFACE, LPRECT,DWORD, LPDDBLTFX) PURE;
01895        STDMETHOD(BltBatch)(THIS_ LPDDBLTBATCH, DWORD, DWORD ) PURE;
01896        STDMETHOD(BltFast)(THIS_ DWORD,DWORD,LPDIRECTDRAWSURFACE, LPRECT,DWORD) PURE;
01897        STDMETHOD(DeleteAttachedSurface)(THIS_ DWORD,LPDIRECTDRAWSURFACE) PURE;
01898        STDMETHOD(EnumAttachedSurfaces)(THIS_ LPVOID,LPDDENUMSURFACESCALLBACK) PURE;
01899        STDMETHOD(EnumOverlayZOrders)(THIS_ DWORD,LPVOID,LPDDENUMSURFACESCALLBACK) PURE;
01900        STDMETHOD(Flip)(THIS_ LPDIRECTDRAWSURFACE, DWORD) PURE;
01901        STDMETHOD(GetAttachedSurface)(THIS_ LPDDSCAPS, LPDIRECTDRAWSURFACE *) PURE;
01902        STDMETHOD(GetBltStatus)(THIS_ DWORD) PURE;
01903        STDMETHOD(GetCaps)(THIS_ LPDDSCAPS) PURE;
01904        STDMETHOD(GetClipper)(THIS_ LPDIRECTDRAWCLIPPER *) PURE;
01905        STDMETHOD(GetColorKey)(THIS_ DWORD, LPDDCOLORKEY) PURE;
01906        STDMETHOD(GetDC)(THIS_ HDC *) PURE;
01907        STDMETHOD(GetFlipStatus)(THIS_ DWORD) PURE;
01908        STDMETHOD(GetOverlayPosition)(THIS_ LPLONG, LPLONG ) PURE;
01909        STDMETHOD(GetPalette)(THIS_ LPDIRECTDRAWPALETTE *) PURE;
01910        STDMETHOD(GetPixelFormat)(THIS_ LPDDPIXELFORMAT) PURE;
01911        STDMETHOD(GetSurfaceDesc)(THIS_ LPDDSURFACEDESC) PURE;
01912        STDMETHOD(Initialize)(THIS_ LPDIRECTDRAW, LPDDSURFACEDESC) PURE;
01913        STDMETHOD(IsLost)(THIS) PURE;
01914        STDMETHOD(Lock)(THIS_ LPRECT,LPDDSURFACEDESC,DWORD,HANDLE) PURE;
01915        STDMETHOD(ReleaseDC)(THIS_ HDC) PURE;
01916        STDMETHOD(Restore)(THIS) PURE;
01917        STDMETHOD(SetClipper)(THIS_ LPDIRECTDRAWCLIPPER) PURE;
01918        STDMETHOD(SetColorKey)(THIS_ DWORD, LPDDCOLORKEY) PURE;
01919        STDMETHOD(SetOverlayPosition)(THIS_ LONG, LONG ) PURE;
01920        STDMETHOD(SetPalette)(THIS_ LPDIRECTDRAWPALETTE) PURE;
01921        STDMETHOD(Unlock)(THIS_ LPVOID) PURE;
01922        STDMETHOD(UpdateOverlay)(THIS_ LPRECT, LPDIRECTDRAWSURFACE,LPRECT,DWORD, LPDDOVERLAYFX) PURE;
01923        STDMETHOD(UpdateOverlayDisplay)(THIS_ DWORD) PURE;
01924        STDMETHOD(UpdateOverlayZOrder)(THIS_ DWORD, LPDIRECTDRAWSURFACE) PURE;
01925      };
01926      #if !defined(__cplusplus) || defined(CINTERFACE)
01927          #define IDirectDrawSurface_QueryInterface(p,a,b)        (p)->lpVtbl->QueryInterface(p,a,b)
01928          #define IDirectDrawSurface_AddRef(p)                    (p)->lpVtbl->AddRef(p)
01929          #define IDirectDrawSurface_Release(p)                   (p)->lpVtbl->Release(p)
01930          #define IDirectDrawSurface_AddAttachedSurface(p,a)      (p)->lpVtbl->AddAttachedSurface(p,a)
01931          #define IDirectDrawSurface_AddOverlayDirtyRect(p,a)     (p)->lpVtbl->AddOverlayDirtyRect(p,a)
01932          #define IDirectDrawSurface_Blt(p,a,b,c,d,e)             (p)->lpVtbl->Blt(p,a,b,c,d,e)
01933          #define IDirectDrawSurface_BltBatch(p,a,b,c)            (p)->lpVtbl->BltBatch(p,a,b,c)
01934          #define IDirectDrawSurface_BltFast(p,a,b,c,d,e)         (p)->lpVtbl->BltFast(p,a,b,c,d,e)
01935          #define IDirectDrawSurface_DeleteAttachedSurface(p,a,b) (p)->lpVtbl->DeleteAttachedSurface(p,a,b)
01936          #define IDirectDrawSurface_EnumAttachedSurfaces(p,a,b)  (p)->lpVtbl->EnumAttachedSurfaces(p,a,b)
01937          #define IDirectDrawSurface_EnumOverlayZOrders(p,a,b,c)  (p)->lpVtbl->EnumOverlayZOrders(p,a,b,c)
01938          #define IDirectDrawSurface_Flip(p,a,b)                  (p)->lpVtbl->Flip(p,a,b)
01939          #define IDirectDrawSurface_GetAttachedSurface(p,a,b)    (p)->lpVtbl->GetAttachedSurface(p,a,b)
01940          #define IDirectDrawSurface_GetBltStatus(p,a)            (p)->lpVtbl->GetBltStatus(p,a)
01941          #define IDirectDrawSurface_GetCaps(p,b)                 (p)->lpVtbl->GetCaps(p,b)
01942          #define IDirectDrawSurface_GetClipper(p,a)              (p)->lpVtbl->GetClipper(p,a)
01943          #define IDirectDrawSurface_GetColorKey(p,a,b)           (p)->lpVtbl->GetColorKey(p,a,b)
01944          #define IDirectDrawSurface_GetDC(p,a)                   (p)->lpVtbl->GetDC(p,a)
01945          #define IDirectDrawSurface_GetFlipStatus(p,a)           (p)->lpVtbl->GetFlipStatus(p,a)
01946          #define IDirectDrawSurface_GetOverlayPosition(p,a,b)    (p)->lpVtbl->GetOverlayPosition(p,a,b)
01947          #define IDirectDrawSurface_GetPalette(p,a)              (p)->lpVtbl->GetPalette(p,a)
01948          #define IDirectDrawSurface_GetPixelFormat(p,a)          (p)->lpVtbl->GetPixelFormat(p,a)
01949          #define IDirectDrawSurface_GetSurfaceDesc(p,a)          (p)->lpVtbl->GetSurfaceDesc(p,a)
01950          #define IDirectDrawSurface_Initialize(p,a,b)            (p)->lpVtbl->Initialize(p,a,b)
01951          #define IDirectDrawSurface_IsLost(p)                    (p)->lpVtbl->IsLost(p)
01952          #define IDirectDrawSurface_Lock(p,a,b,c,d)              (p)->lpVtbl->Lock(p,a,b,c,d)
01953          #define IDirectDrawSurface_ReleaseDC(p,a)               (p)->lpVtbl->ReleaseDC(p,a)
01954          #define IDirectDrawSurface_Restore(p)                   (p)->lpVtbl->Restore(p)
01955          #define IDirectDrawSurface_SetClipper(p,a)              (p)->lpVtbl->SetClipper(p,a)
01956          #define IDirectDrawSurface_SetColorKey(p,a,b)           (p)->lpVtbl->SetColorKey(p,a,b)
01957          #define IDirectDrawSurface_SetOverlayPosition(p,a,b)    (p)->lpVtbl->SetOverlayPosition(p,a,b)
01958          #define IDirectDrawSurface_SetPalette(p,a)              (p)->lpVtbl->SetPalette(p,a)
01959          #define IDirectDrawSurface_Unlock(p,b)                  (p)->lpVtbl->Unlock(p,b)
01960          #define IDirectDrawSurface_UpdateOverlay(p,a,b,c,d,e)   (p)->lpVtbl->UpdateOverlay(p,a,b,c,d,e)
01961          #define IDirectDrawSurface_UpdateOverlayDisplay(p,a)    (p)->lpVtbl->UpdateOverlayDisplay(p,a)
01962          #define IDirectDrawSurface_UpdateOverlayZOrder(p,a,b)   (p)->lpVtbl->UpdateOverlayZOrder(p,a,b)
01963      #else
01964          #define IDirectDrawSurface_QueryInterface(p,a,b)        (p)->QueryInterface(a,b)
01965          #define IDirectDrawSurface_AddRef(p)                    (p)->AddRef()
01966          #define IDirectDrawSurface_Release(p)                   (p)->Release()
01967          #define IDirectDrawSurface_AddAttachedSurface(p,a)      (p)->AddAttachedSurface(a)
01968          #define IDirectDrawSurface_AddOverlayDirtyRect(p,a)     (p)->AddOverlayDirtyRect(a)
01969          #define IDirectDrawSurface_Blt(p,a,b,c,d,e)             (p)->Blt(a,b,c,d,e)
01970          #define IDirectDrawSurface_BltBatch(p,a,b,c)            (p)->BltBatch(a,b,c)
01971          #define IDirectDrawSurface_BltFast(p,a,b,c,d,e)         (p)->BltFast(a,b,c,d,e)
01972          #define IDirectDrawSurface_DeleteAttachedSurface(p,a,b) (p)->DeleteAttachedSurface(a,b)
01973          #define IDirectDrawSurface_EnumAttachedSurfaces(p,a,b)  (p)->EnumAttachedSurfaces(a,b)
01974          #define IDirectDrawSurface_EnumOverlayZOrders(p,a,b,c)  (p)->EnumOverlayZOrders(a,b,c)
01975          #define IDirectDrawSurface_Flip(p,a,b)                  (p)->Flip(a,b)
01976          #define IDirectDrawSurface_GetAttachedSurface(p,a,b)    (p)->GetAttachedSurface(a,b)
01977          #define IDirectDrawSurface_GetBltStatus(p,a)            (p)->GetBltStatus(a)
01978          #define IDirectDrawSurface_GetCaps(p,b)                 (p)->GetCaps(b)
01979          #define IDirectDrawSurface_GetClipper(p,a)              (p)->GetClipper(a)
01980          #define IDirectDrawSurface_GetColorKey(p,a,b)           (p)->GetColorKey(a,b)
01981          #define IDirectDrawSurface_GetDC(p,a)                   (p)->GetDC(a)
01982          #define IDirectDrawSurface_GetFlipStatus(p,a)           (p)->GetFlipStatus(a)
01983          #define IDirectDrawSurface_GetOverlayPosition(p,a,b)    (p)->GetOverlayPosition(a,b)
01984          #define IDirectDrawSurface_GetPalette(p,a)              (p)->GetPalette(a)
01985          #define IDirectDrawSurface_GetPixelFormat(p,a)          (p)->GetPixelFormat(a)
01986          #define IDirectDrawSurface_GetSurfaceDesc(p,a)          (p)->GetSurfaceDesc(a)
01987          #define IDirectDrawSurface_Initialize(p,a,b)            (p)->Initialize(a,b)
01988          #define IDirectDrawSurface_IsLost(p)                    (p)->IsLost()
01989          #define IDirectDrawSurface_Lock(p,a,b,c,d)              (p)->Lock(a,b,c,d)
01990          #define IDirectDrawSurface_ReleaseDC(p,a)               (p)->ReleaseDC(a)
01991          #define IDirectDrawSurface_Restore(p)                   (p)->Restore()
01992          #define IDirectDrawSurface_SetClipper(p,a)              (p)->SetClipper(a)
01993          #define IDirectDrawSurface_SetColorKey(p,a,b)           (p)->SetColorKey(a,b)
01994          #define IDirectDrawSurface_SetOverlayPosition(p,a,b)    (p)->SetOverlayPosition(a,b)
01995          #define IDirectDrawSurface_SetPalette(p,a)              (p)->SetPalette(a)
01996          #define IDirectDrawSurface_Unlock(p,b)                  (p)->Unlock(b)
01997          #define IDirectDrawSurface_UpdateOverlay(p,a,b,c,d,e)   (p)->UpdateOverlay(a,b,c,d,e)
01998          #define IDirectDrawSurface_UpdateOverlayDisplay(p,a)    (p)->UpdateOverlayDisplay(a)
01999          #define IDirectDrawSurface_UpdateOverlayZOrder(p,a,b)   (p)->UpdateOverlayZOrder(a,b)
02000      #endif
02001 #endif
02002 
02003 #if defined( _WIN32 ) && !defined( _NO_COM )
02004      #undef INTERFACE
02005      #define INTERFACE IDirectDrawSurface2
02006      DECLARE_INTERFACE_( IDirectDrawSurface2, IUnknown )
02007      {
02008        STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID * ppvObj) PURE;
02009        STDMETHOD_(ULONG,AddRef) (THIS)  PURE;
02010        STDMETHOD_(ULONG,Release) (THIS) PURE;
02011        STDMETHOD(AddAttachedSurface)(THIS_ LPDIRECTDRAWSURFACE2) PURE;
02012        STDMETHOD(AddOverlayDirtyRect)(THIS_ LPRECT) PURE;
02013        STDMETHOD(Blt)(THIS_ LPRECT,LPDIRECTDRAWSURFACE2, LPRECT,DWORD, LPDDBLTFX) PURE;
02014        STDMETHOD(BltBatch)(THIS_ LPDDBLTBATCH, DWORD, DWORD ) PURE;
02015        STDMETHOD(BltFast)(THIS_ DWORD,DWORD,LPDIRECTDRAWSURFACE2, LPRECT,DWORD) PURE;
02016        STDMETHOD(DeleteAttachedSurface)(THIS_ DWORD,LPDIRECTDRAWSURFACE2) PURE;
02017        STDMETHOD(EnumAttachedSurfaces)(THIS_ LPVOID,LPDDENUMSURFACESCALLBACK) PURE;
02018        STDMETHOD(EnumOverlayZOrders)(THIS_ DWORD,LPVOID,LPDDENUMSURFACESCALLBACK) PURE;
02019        STDMETHOD(Flip)(THIS_ LPDIRECTDRAWSURFACE2, DWORD) PURE;
02020        STDMETHOD(GetAttachedSurface)(THIS_ LPDDSCAPS, LPDIRECTDRAWSURFACE2 *) PURE;
02021        STDMETHOD(GetBltStatus)(THIS_ DWORD) PURE;
02022        STDMETHOD(GetCaps)(THIS_ LPDDSCAPS) PURE;
02023        STDMETHOD(GetClipper)(THIS_ LPDIRECTDRAWCLIPPER *) PURE;
02024        STDMETHOD(GetColorKey)(THIS_ DWORD, LPDDCOLORKEY) PURE;
02025        STDMETHOD(GetDC)(THIS_ HDC *) PURE;
02026        STDMETHOD(GetFlipStatus)(THIS_ DWORD) PURE;
02027        STDMETHOD(GetOverlayPosition)(THIS_ LPLONG, LPLONG ) PURE;
02028        STDMETHOD(GetPalette)(THIS_ LPDIRECTDRAWPALETTE *) PURE;
02029        STDMETHOD(GetPixelFormat)(THIS_ LPDDPIXELFORMAT) PURE;
02030        STDMETHOD(GetSurfaceDesc)(THIS_ LPDDSURFACEDESC) PURE;
02031        STDMETHOD(Initialize)(THIS_ LPDIRECTDRAW, LPDDSURFACEDESC) PURE;
02032        STDMETHOD(IsLost)(THIS) PURE;
02033        STDMETHOD(Lock)(THIS_ LPRECT,LPDDSURFACEDESC,DWORD,HANDLE) PURE;
02034        STDMETHOD(ReleaseDC)(THIS_ HDC) PURE;
02035        STDMETHOD(Restore)(THIS) PURE;
02036        STDMETHOD(SetClipper)(THIS_ LPDIRECTDRAWCLIPPER) PURE;
02037        STDMETHOD(SetColorKey)(THIS_ DWORD, LPDDCOLORKEY) PURE;
02038        STDMETHOD(SetOverlayPosition)(THIS_ LONG, LONG ) PURE;
02039        STDMETHOD(SetPalette)(THIS_ LPDIRECTDRAWPALETTE) PURE;
02040        STDMETHOD(Unlock)(THIS_ LPVOID) PURE;
02041        STDMETHOD(UpdateOverlay)(THIS_ LPRECT, LPDIRECTDRAWSURFACE2,LPRECT,DWORD, LPDDOVERLAYFX) PURE;
02042        STDMETHOD(UpdateOverlayDisplay)(THIS_ DWORD) PURE;
02043        STDMETHOD(UpdateOverlayZOrder)(THIS_ DWORD, LPDIRECTDRAWSURFACE2) PURE;
02044        STDMETHOD(GetDDInterface)(THIS_ LPVOID *) PURE;
02045        STDMETHOD(PageLock)(THIS_ DWORD) PURE;
02046        STDMETHOD(PageUnlock)(THIS_ DWORD) PURE;
02047      };
02048 
02049      #if !defined(__cplusplus) || defined(CINTERFACE)
02050          #define IDirectDrawSurface2_QueryInterface(p,a,b)        (p)->lpVtbl->QueryInterface(p,a,b)
02051          #define IDirectDrawSurface2_AddRef(p)                    (p)->lpVtbl->AddRef(p)
02052          #define IDirectDrawSurface2_Release(p)                   (p)->lpVtbl->Release(p)
02053          #define IDirectDrawSurface2_AddAttachedSurface(p,a)      (p)->lpVtbl->AddAttachedSurface(p,a)
02054          #define IDirectDrawSurface2_AddOverlayDirtyRect(p,a)     (p)->lpVtbl->AddOverlayDirtyRect(p,a)
02055          #define IDirectDrawSurface2_Blt(p,a,b,c,d,e)             (p)->lpVtbl->Blt(p,a,b,c,d,e)
02056          #define IDirectDrawSurface2_BltBatch(p,a,b,c)            (p)->lpVtbl->BltBatch(p,a,b,c)
02057          #define IDirectDrawSurface2_BltFast(p,a,b,c,d,e)         (p)->lpVtbl->BltFast(p,a,b,c,d,e)
02058          #define IDirectDrawSurface2_DeleteAttachedSurface(p,a,b) (p)->lpVtbl->DeleteAttachedSurface(p,a,b)
02059          #define IDirectDrawSurface2_EnumAttachedSurfaces(p,a,b)  (p)->lpVtbl->EnumAttachedSurfaces(p,a,b)
02060          #define IDirectDrawSurface2_EnumOverlayZOrders(p,a,b,c)  (p)->lpVtbl->EnumOverlayZOrders(p,a,b,c)
02061          #define IDirectDrawSurface2_Flip(p,a,b)                  (p)->lpVtbl->Flip(p,a,b)
02062          #define IDirectDrawSurface2_GetAttachedSurface(p,a,b)    (p)->lpVtbl->GetAttachedSurface(p,a,b)
02063          #define IDirectDrawSurface2_GetBltStatus(p,a)            (p)->lpVtbl->GetBltStatus(p,a)
02064          #define IDirectDrawSurface2_GetCaps(p,b)                 (p)->lpVtbl->GetCaps(p,b)
02065          #define IDirectDrawSurface2_GetClipper(p,a)              (p)->lpVtbl->GetClipper(p,a)
02066          #define IDirectDrawSurface2_GetColorKey(p,a,b)           (p)->lpVtbl->GetColorKey(p,a,b)
02067          #define IDirectDrawSurface2_GetDC(p,a)                   (p)->lpVtbl->GetDC(p,a)
02068          #define IDirectDrawSurface2_GetFlipStatus(p,a)           (p)->lpVtbl->GetFlipStatus(p,a)
02069          #define IDirectDrawSurface2_GetOverlayPosition(p,a,b)    (p)->lpVtbl->GetOverlayPosition(p,a,b)
02070          #define IDirectDrawSurface2_GetPalette(p,a)              (p)->lpVtbl->GetPalette(p,a)
02071          #define IDirectDrawSurface2_GetPixelFormat(p,a)          (p)->lpVtbl->GetPixelFormat(p,a)
02072          #define IDirectDrawSurface2_GetSurfaceDesc(p,a)          (p)->lpVtbl->GetSurfaceDesc(p,a)
02073          #define IDirectDrawSurface2_Initialize(p,a,b)            (p)->lpVtbl->Initialize(p,a,b)
02074          #define IDirectDrawSurface2_IsLost(p)                    (p)->lpVtbl->IsLost(p)
02075          #define IDirectDrawSurface2_Lock(p,a,b,c,d)              (p)->lpVtbl->Lock(p,a,b,c,d)
02076          #define IDirectDrawSurface2_ReleaseDC(p,a)               (p)->lpVtbl->ReleaseDC(p,a)
02077          #define IDirectDrawSurface2_Restore(p)                   (p)->lpVtbl->Restore(p)
02078          #define IDirectDrawSurface2_SetClipper(p,a)              (p)->lpVtbl->SetClipper(p,a)
02079          #define IDirectDrawSurface2_SetColorKey(p,a,b)           (p)->lpVtbl->SetColorKey(p,a,b)
02080          #define IDirectDrawSurface2_SetOverlayPosition(p,a,b)    (p)->lpVtbl->SetOverlayPosition(p,a,b)
02081          #define IDirectDrawSurface2_SetPalette(p,a)              (p)->lpVtbl->SetPalette(p,a)
02082          #define IDirectDrawSurface2_Unlock(p,b)                  (p)->lpVtbl->Unlock(p,b)
02083          #define IDirectDrawSurface2_UpdateOverlay(p,a,b,c,d,e)   (p)->lpVtbl->UpdateOverlay(p,a,b,c,d,e)
02084          #define IDirectDrawSurface2_UpdateOverlayDisplay(p,a)    (p)->lpVtbl->UpdateOverlayDisplay(p,a)
02085          #define IDirectDrawSurface2_UpdateOverlayZOrder(p,a,b)   (p)->lpVtbl->UpdateOverlayZOrder(p,a,b)
02086          #define IDirectDrawSurface2_GetDDInterface(p,a)          (p)->lpVtbl->GetDDInterface(p,a)
02087          #define IDirectDrawSurface2_PageLock(p,a)                (p)->lpVtbl->PageLock(p,a)
02088          #define IDirectDrawSurface2_PageUnlock(p,a)              (p)->lpVtbl->PageUnlock(p,a)
02089      #else
02090          #define IDirectDrawSurface2_QueryInterface(p,a,b)        (p)->QueryInterface(a,b)
02091          #define IDirectDrawSurface2_AddRef(p)                    (p)->AddRef()
02092          #define IDirectDrawSurface2_Release(p)                   (p)->Release()
02093          #define IDirectDrawSurface2_AddAttachedSurface(p,a)      (p)->AddAttachedSurface(a)
02094          #define IDirectDrawSurface2_AddOverlayDirtyRect(p,a)     (p)->AddOverlayDirtyRect(a)
02095          #define IDirectDrawSurface2_Blt(p,a,b,c,d,e)             (p)->Blt(a,b,c,d,e)
02096          #define IDirectDrawSurface2_BltBatch(p,a,b,c)            (p)->BltBatch(a,b,c)
02097          #define IDirectDrawSurface2_BltFast(p,a,b,c,d,e)         (p)->BltFast(a,b,c,d,e)
02098          #define IDirectDrawSurface2_DeleteAttachedSurface(p,a,b) (p)->DeleteAttachedSurface(a,b)
02099          #define IDirectDrawSurface2_EnumAttachedSurfaces(p,a,b)  (p)->EnumAttachedSurfaces(a,b)
02100          #define IDirectDrawSurface2_EnumOverlayZOrders(p,a,b,c)  (p)->EnumOverlayZOrders(a,b,c)
02101          #define IDirectDrawSurface2_Flip(p,a,b)                  (p)->Flip(a,b)
02102          #define IDirectDrawSurface2_GetAttachedSurface(p,a,b)    (p)->GetAttachedSurface(a,b)
02103          #define IDirectDrawSurface2_GetBltStatus(p,a)            (p)->GetBltStatus(a)
02104          #define IDirectDrawSurface2_GetCaps(p,b)                 (p)->GetCaps(b)
02105          #define IDirectDrawSurface2_GetClipper(p,a)              (p)->GetClipper(a)
02106          #define IDirectDrawSurface2_GetColorKey(p,a,b)           (p)->GetColorKey(a,b)
02107          #define IDirectDrawSurface2_GetDC(p,a)                   (p)->GetDC(a)
02108          #define IDirectDrawSurface2_GetFlipStatus(p,a)           (p)->GetFlipStatus(a)
02109          #define IDirectDrawSurface2_GetOverlayPosition(p,a,b)    (p)->GetOverlayPosition(a,b)
02110          #define IDirectDrawSurface2_GetPalette(p,a)              (p)->GetPalette(a)
02111          #define IDirectDrawSurface2_GetPixelFormat(p,a)          (p)->GetPixelFormat(a)
02112          #define IDirectDrawSurface2_GetSurfaceDesc(p,a)          (p)->GetSurfaceDesc(a)
02113          #define IDirectDrawSurface2_Initialize(p,a,b)            (p)->Initialize(a,b)
02114          #define IDirectDrawSurface2_IsLost(p)                    (p)->IsLost()
02115          #define IDirectDrawSurface2_Lock(p,a,b,c,d)              (p)->Lock(a,b,c,d)
02116          #define IDirectDrawSurface2_ReleaseDC(p,a)               (p)->ReleaseDC(a)
02117          #define IDirectDrawSurface2_Restore(p)                   (p)->Restore()
02118          #define IDirectDrawSurface2_SetClipper(p,a)              (p)->SetClipper(a)
02119          #define IDirectDrawSurface2_SetColorKey(p,a,b)           (p)->SetColorKey(a,b)
02120          #define IDirectDrawSurface2_SetOverlayPosition(p,a,b)    (p)->SetOverlayPosition(a,b)
02121          #define IDirectDrawSurface2_SetPalette(p,a)              (p)->SetPalette(a)
02122          #define IDirectDrawSurface2_Unlock(p,b)                  (p)->Unlock(b)
02123          #define IDirectDrawSurface2_UpdateOverlay(p,a,b,c,d,e)   (p)->UpdateOverlay(a,b,c,d,e)
02124          #define IDirectDrawSurface2_UpdateOverlayDisplay(p,a)    (p)->UpdateOverlayDisplay(a)
02125          #define IDirectDrawSurface2_UpdateOverlayZOrder(p,a,b)   (p)->UpdateOverlayZOrder(a,b)
02126          #define IDirectDrawSurface2_GetDDInterface(p,a)          (p)->GetDDInterface(a)
02127          #define IDirectDrawSurface2_PageLock(p,a)                (p)->PageLock(a)
02128          #define IDirectDrawSurface2_PageUnlock(p,a)              (p)->PageUnlock(a)
02129      #endif
02130 #endif
02131 
02132 #if defined( _WIN32 ) && !defined( _NO_COM )
02133 #undef INTERFACE
02134 #define INTERFACE IDirectDrawSurface3
02135 DECLARE_INTERFACE_( IDirectDrawSurface3, IUnknown )
02136 {
02137        STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID * ppvObj) PURE;
02138        STDMETHOD_(ULONG,AddRef) (THIS)  PURE;
02139        STDMETHOD_(ULONG,Release) (THIS) PURE;
02140        STDMETHOD(AddAttachedSurface)(THIS_ LPDIRECTDRAWSURFACE3) PURE;
02141        STDMETHOD(AddOverlayDirtyRect)(THIS_ LPRECT) PURE;
02142        STDMETHOD(Blt)(THIS_ LPRECT,LPDIRECTDRAWSURFACE3, LPRECT,DWORD, LPDDBLTFX) PURE;
02143        STDMETHOD(BltBatch)(THIS_ LPDDBLTBATCH, DWORD, DWORD ) PURE;
02144        STDMETHOD(BltFast)(THIS_ DWORD,DWORD,LPDIRECTDRAWSURFACE3, LPRECT,DWORD) PURE;
02145        STDMETHOD(DeleteAttachedSurface)(THIS_ DWORD,LPDIRECTDRAWSURFACE3) PURE;
02146        STDMETHOD(EnumAttachedSurfaces)(THIS_ LPVOID,LPDDENUMSURFACESCALLBACK) PURE;
02147        STDMETHOD(EnumOverlayZOrders)(THIS_ DWORD,LPVOID,LPDDENUMSURFACESCALLBACK) PURE;
02148        STDMETHOD(Flip)(THIS_ LPDIRECTDRAWSURFACE3, DWORD) PURE;
02149        STDMETHOD(GetAttachedSurface)(THIS_ LPDDSCAPS, LPDIRECTDRAWSURFACE3 *) PURE;
02150        STDMETHOD(GetBltStatus)(THIS_ DWORD) PURE;
02151        STDMETHOD(GetCaps)(THIS_ LPDDSCAPS) PURE;
02152        STDMETHOD(GetClipper)(THIS_ LPDIRECTDRAWCLIPPER *) PURE;
02153        STDMETHOD(GetColorKey)(THIS_ DWORD, LPDDCOLORKEY) PURE;
02154        STDMETHOD(GetDC)(THIS_ HDC *) PURE;
02155        STDMETHOD(GetFlipStatus)(THIS_ DWORD) PURE;
02156        STDMETHOD(GetOverlayPosition)(THIS_ LPLONG, LPLONG ) PURE;
02157        STDMETHOD(GetPalette)(THIS_ LPDIRECTDRAWPALETTE *) PURE;
02158        STDMETHOD(GetPixelFormat)(THIS_ LPDDPIXELFORMAT) PURE;
02159        STDMETHOD(GetSurfaceDesc)(THIS_ LPDDSURFACEDESC) PURE;
02160        STDMETHOD(Initialize)(THIS_ LPDIRECTDRAW, LPDDSURFACEDESC) PURE;
02161        STDMETHOD(IsLost)(THIS) PURE;
02162        STDMETHOD(Lock)(THIS_ LPRECT,LPDDSURFACEDESC,DWORD,HANDLE) PURE;
02163        STDMETHOD(ReleaseDC)(THIS_ HDC) PURE;
02164        STDMETHOD(Restore)(THIS) PURE;
02165        STDMETHOD(SetClipper)(THIS_ LPDIRECTDRAWCLIPPER) PURE;
02166        STDMETHOD(SetColorKey)(THIS_ DWORD, LPDDCOLORKEY) PURE;
02167        STDMETHOD(SetOverlayPosition)(THIS_ LONG, LONG ) PURE;
02168        STDMETHOD(SetPalette)(THIS_ LPDIRECTDRAWPALETTE) PURE;
02169        STDMETHOD(Unlock)(THIS_ LPVOID) PURE;
02170        STDMETHOD(UpdateOverlay)(THIS_ LPRECT, LPDIRECTDRAWSURFACE3,LPRECT,DWORD, LPDDOVERLAYFX) PURE;
02171        STDMETHOD(UpdateOverlayDisplay)(THIS_ DWORD) PURE;
02172        STDMETHOD(UpdateOverlayZOrder)(THIS_ DWORD, LPDIRECTDRAWSURFACE3) PURE;
02173        STDMETHOD(GetDDInterface)(THIS_ LPVOID *) PURE;
02174        STDMETHOD(PageLock)(THIS_ DWORD) PURE;
02175        STDMETHOD(PageUnlock)(THIS_ DWORD) PURE;
02176        STDMETHOD(SetSurfaceDesc)(THIS_ LPDDSURFACEDESC, DWORD) PURE;
02177      };
02178 
02179      #if !defined(__cplusplus) || defined(CINTERFACE)
02180          #define IDirectDrawSurface3_QueryInterface(p,a,b)        (p)->lpVtbl->QueryInterface(p,a,b)
02181          #define IDirectDrawSurface3_AddRef(p)                    (p)->lpVtbl->AddRef(p)
02182          #define IDirectDrawSurface3_Release(p)                   (p)->lpVtbl->Release(p)
02183          #define IDirectDrawSurface3_AddAttachedSurface(p,a)      (p)->lpVtbl->AddAttachedSurface(p,a)
02184          #define IDirectDrawSurface3_AddOverlayDirtyRect(p,a)     (p)->lpVtbl->AddOverlayDirtyRect(p,a)
02185          #define IDirectDrawSurface3_Blt(p,a,b,c,d,e)             (p)->lpVtbl->Blt(p,a,b,c,d,e)
02186          #define IDirectDrawSurface3_BltBatch(p,a,b,c)            (p)->lpVtbl->BltBatch(p,a,b,c)
02187          #define IDirectDrawSurface3_BltFast(p,a,b,c,d,e)         (p)->lpVtbl->BltFast(p,a,b,c,d,e)
02188          #define IDirectDrawSurface3_DeleteAttachedSurface(p,a,b) (p)->lpVtbl->DeleteAttachedSurface(p,a,b)
02189          #define IDirectDrawSurface3_EnumAttachedSurfaces(p,a,b)  (p)->lpVtbl->EnumAttachedSurfaces(p,a,b)
02190          #define IDirectDrawSurface3_EnumOverlayZOrders(p,a,b,c)  (p)->lpVtbl->EnumOverlayZOrders(p,a,b,c)
02191          #define IDirectDrawSurface3_Flip(p,a,b)                  (p)->lpVtbl->Flip(p,a,b)
02192          #define IDirectDrawSurface3_GetAttachedSurface(p,a,b)    (p)->lpVtbl->GetAttachedSurface(p,a,b)
02193          #define IDirectDrawSurface3_GetBltStatus(p,a)            (p)->lpVtbl->GetBltStatus(p,a)
02194          #define IDirectDrawSurface3_GetCaps(p,b)                 (p)->lpVtbl->GetCaps(p,b)
02195          #define IDirectDrawSurface3_GetClipper(p,a)              (p)->lpVtbl->GetClipper(p,a)
02196          #define IDirectDrawSurface3_GetColorKey(p,a,b)           (p)->lpVtbl->GetColorKey(p,a,b)
02197          #define IDirectDrawSurface3_GetDC(p,a)                   (p)->lpVtbl->GetDC(p,a)
02198          #define IDirectDrawSurface3_GetFlipStatus(p,a)           (p)->lpVtbl->GetFlipStatus(p,a)
02199          #define IDirectDrawSurface3_GetOverlayPosition(p,a,b)    (p)->lpVtbl->GetOverlayPosition(p,a,b)
02200          #define IDirectDrawSurface3_GetPalette(p,a)              (p)->lpVtbl->GetPalette(p,a)
02201          #define IDirectDrawSurface3_GetPixelFormat(p,a)          (p)->lpVtbl->GetPixelFormat(p,a)
02202          #define IDirectDrawSurface3_GetSurfaceDesc(p,a)          (p)->lpVtbl->GetSurfaceDesc(p,a)
02203          #define IDirectDrawSurface3_Initialize(p,a,b)            (p)->lpVtbl->Initialize(p,a,b)
02204          #define IDirectDrawSurface3_IsLost(p)                    (p)->lpVtbl->IsLost(p)
02205          #define IDirectDrawSurface3_Lock(p,a,b,c,d)              (p)->lpVtbl->Lock(p,a,b,c,d)
02206          #define IDirectDrawSurface3_ReleaseDC(p,a)               (p)->lpVtbl->ReleaseDC(p,a)
02207          #define IDirectDrawSurface3_Restore(p)                   (p)->lpVtbl->Restore(p)
02208          #define IDirectDrawSurface3_SetClipper(p,a)              (p)->lpVtbl->SetClipper(p,a)
02209          #define IDirectDrawSurface3_SetColorKey(p,a,b)           (p)->lpVtbl->SetColorKey(p,a,b)
02210          #define IDirectDrawSurface3_SetOverlayPosition(p,a,b)    (p)->lpVtbl->SetOverlayPosition(p,a,b)
02211          #define IDirectDrawSurface3_SetPalette(p,a)              (p)->lpVtbl->SetPalette(p,a)
02212          #define IDirectDrawSurface3_Unlock(p,b)                  (p)->lpVtbl->Unlock(p,b)
02213          #define IDirectDrawSurface3_UpdateOverlay(p,a,b,c,d,e)   (p)->lpVtbl->UpdateOverlay(p,a,b,c,d,e)
02214          #define IDirectDrawSurface3_UpdateOverlayDisplay(p,a)    (p)->lpVtbl->UpdateOverlayDisplay(p,a)
02215          #define IDirectDrawSurface3_UpdateOverlayZOrder(p,a,b)   (p)->lpVtbl->UpdateOverlayZOrder(p,a,b)
02216          #define IDirectDrawSurface3_GetDDInterface(p,a)          (p)->lpVtbl->GetDDInterface(p,a)
02217          #define IDirectDrawSurface3_PageLock(p,a)                (p)->lpVtbl->PageLock(p,a)
02218          #define IDirectDrawSurface3_PageUnlock(p,a)              (p)->lpVtbl->PageUnlock(p,a)
02219          #define IDirectDrawSurface3_SetSurfaceDesc(p,a,b)        (p)->lpVtbl->SetSurfaceDesc(p,a,b)
02220      #else
02221          #define IDirectDrawSurface3_QueryInterface(p,a,b)        (p)->QueryInterface(a,b)
02222          #define IDirectDrawSurface3_AddRef(p)                    (p)->AddRef()
02223          #define IDirectDrawSurface3_Release(p)                   (p)->Release()
02224          #define IDirectDrawSurface3_AddAttachedSurface(p,a)      (p)->AddAttachedSurface(a)
02225          #define IDirectDrawSurface3_AddOverlayDirtyRect(p,a)     (p)->AddOverlayDirtyRect(a)
02226          #define IDirectDrawSurface3_Blt(p,a,b,c,d,e)             (p)->Blt(a,b,c,d,e)
02227          #define IDirectDrawSurface3_BltBatch(p,a,b,c)            (p)->BltBatch(a,b,c)
02228          #define IDirectDrawSurface3_BltFast(p,a,b,c,d,e)         (p)->BltFast(a,b,c,d,e)
02229          #define IDirectDrawSurface3_DeleteAttachedSurface(p,a,b) (p)->DeleteAttachedSurface(a,b)
02230          #define IDirectDrawSurface3_EnumAttachedSurfaces(p,a,b)  (p)->EnumAttachedSurfaces(a,b)
02231          #define IDirectDrawSurface3_EnumOverlayZOrders(p,a,b,c)  (p)->EnumOverlayZOrders(a,b,c)
02232          #define IDirectDrawSurface3_Flip(p,a,b)                  (p)->Flip(a,b)
02233          #define IDirectDrawSurface3_GetAttachedSurface(p,a,b)    (p)->GetAttachedSurface(a,b)
02234          #define IDirectDrawSurface3_GetBltStatus(p,a)            (p)->GetBltStatus(a)
02235          #define IDirectDrawSurface3_GetCaps(p,b)                 (p)->GetCaps(b)
02236          #define IDirectDrawSurface3_GetClipper(p,a)              (p)->GetClipper(a)
02237          #define IDirectDrawSurface3_GetColorKey(p,a,b)           (p)->GetColorKey(a,b)
02238          #define IDirectDrawSurface3_GetDC(p,a)                   (p)->GetDC(a)
02239          #define IDirectDrawSurface3_GetFlipStatus(p,a)           (p)->GetFlipStatus(a)
02240          #define IDirectDrawSurface3_GetOverlayPosition(p,a,b)    (p)->GetOverlayPosition(a,b)
02241          #define IDirectDrawSurface3_GetPalette(p,a)              (p)->GetPalette(a)
02242          #define IDirectDrawSurface3_GetPixelFormat(p,a)          (p)->GetPixelFormat(a)
02243          #define IDirectDrawSurface3_GetSurfaceDesc(p,a)          (p)->GetSurfaceDesc(a)
02244          #define IDirectDrawSurface3_Initialize(p,a,b)            (p)->Initialize(a,b)
02245          #define IDirectDrawSurface3_IsLost(p)                    (p)->IsLost()
02246          #define IDirectDrawSurface3_Lock(p,a,b,c,d)              (p)->Lock(a,b,c,d)
02247          #define IDirectDrawSurface3_ReleaseDC(p,a)               (p)->ReleaseDC(a)
02248          #define IDirectDrawSurface3_Restore(p)                   (p)->Restore()
02249          #define IDirectDrawSurface3_SetClipper(p,a)              (p)->SetClipper(a)
02250          #define IDirectDrawSurface3_SetColorKey(p,a,b)           (p)->SetColorKey(a,b)
02251          #define IDirectDrawSurface3_SetOverlayPosition(p,a,b)    (p)->SetOverlayPosition(a,b)
02252          #define IDirectDrawSurface3_SetPalette(p,a)              (p)->SetPalette(a)
02253          #define IDirectDrawSurface3_Unlock(p,b)                  (p)->Unlock(b)
02254          #define IDirectDrawSurface3_UpdateOverlay(p,a,b,c,d,e)   (p)->UpdateOverlay(a,b,c,d,e)
02255          #define IDirectDrawSurface3_UpdateOverlayDisplay(p,a)    (p)->UpdateOverlayDisplay(a)
02256          #define IDirectDrawSurface3_UpdateOverlayZOrder(p,a,b)   (p)->UpdateOverlayZOrder(a,b)
02257          #define IDirectDrawSurface3_GetDDInterface(p,a)          (p)->GetDDInterface(a)
02258          #define IDirectDrawSurface3_PageLock(p,a)                (p)->PageLock(a)
02259          #define IDirectDrawSurface3_PageUnlock(p,a)              (p)->PageUnlock(a)
02260          #define IDirectDrawSurface3_SetSurfaceDesc(p,a,b)        (p)->SetSurfaceDesc(a,b)
02261      #endif
02262 #endif
02263 
02264 #if defined( _WIN32 ) && !defined( _NO_COM )
02265      #undef INTERFACE
02266      #define INTERFACE IDirectDrawSurface4
02267 
02268      DECLARE_INTERFACE_( IDirectDrawSurface4, IUnknown )
02269      {
02270        STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID * ppvObj) PURE;
02271        STDMETHOD_(ULONG,AddRef) (THIS)  PURE;
02272        STDMETHOD_(ULONG,Release) (THIS) PURE;
02273        STDMETHOD(AddAttachedSurface)(THIS_ LPDIRECTDRAWSURFACE4) PURE;
02274        STDMETHOD(AddOverlayDirtyRect)(THIS_ LPRECT) PURE;
02275        STDMETHOD(Blt)(THIS_ LPRECT,LPDIRECTDRAWSURFACE4, LPRECT,DWORD, LPDDBLTFX) PURE;
02276        STDMETHOD(BltBatch)(THIS_ LPDDBLTBATCH, DWORD, DWORD ) PURE;
02277        STDMETHOD(BltFast)(THIS_ DWORD,DWORD,LPDIRECTDRAWSURFACE4, LPRECT,DWORD) PURE;
02278        STDMETHOD(DeleteAttachedSurface)(THIS_ DWORD,LPDIRECTDRAWSURFACE4) PURE;
02279        STDMETHOD(EnumAttachedSurfaces)(THIS_ LPVOID,LPDDENUMSURFACESCALLBACK2) PURE;
02280        STDMETHOD(EnumOverlayZOrders)(THIS_ DWORD,LPVOID,LPDDENUMSURFACESCALLBACK2) PURE;
02281        STDMETHOD(Flip)(THIS_ LPDIRECTDRAWSURFACE4, DWORD) PURE;
02282        STDMETHOD(GetAttachedSurface)(THIS_ LPDDSCAPS2, LPDIRECTDRAWSURFACE4 *) PURE;
02283        STDMETHOD(GetBltStatus)(THIS_ DWORD) PURE;
02284        STDMETHOD(GetCaps)(THIS_ LPDDSCAPS2) PURE;
02285        STDMETHOD(GetClipper)(THIS_ LPDIRECTDRAWCLIPPER *) PURE;
02286        STDMETHOD(GetColorKey)(THIS_ DWORD, LPDDCOLORKEY) PURE;
02287        STDMETHOD(GetDC)(THIS_ HDC *) PURE;
02288        STDMETHOD(GetFlipStatus)(THIS_ DWORD) PURE;
02289        STDMETHOD(GetOverlayPosition)(THIS_ LPLONG, LPLONG ) PURE;
02290        STDMETHOD(GetPalette)(THIS_ LPDIRECTDRAWPALETTE *) PURE;
02291        STDMETHOD(GetPixelFormat)(THIS_ LPDDPIXELFORMAT) PURE;
02292        STDMETHOD(GetSurfaceDesc)(THIS_ LPDDSURFACEDESC2) PURE;
02293        STDMETHOD(Initialize)(THIS_ LPDIRECTDRAW, LPDDSURFACEDESC2) PURE;
02294        STDMETHOD(IsLost)(THIS) PURE;
02295        STDMETHOD(Lock)(THIS_ LPRECT,LPDDSURFACEDESC2,DWORD,HANDLE) PURE;
02296        STDMETHOD(ReleaseDC)(THIS_ HDC) PURE;
02297        STDMETHOD(Restore)(THIS) PURE;
02298        STDMETHOD(SetClipper)(THIS_ LPDIRECTDRAWCLIPPER) PURE;
02299        STDMETHOD(SetColorKey)(THIS_ DWORD, LPDDCOLORKEY) PURE;
02300        STDMETHOD(SetOverlayPosition)(THIS_ LONG, LONG ) PURE;
02301        STDMETHOD(SetPalette)(THIS_ LPDIRECTDRAWPALETTE) PURE;
02302        STDMETHOD(Unlock)(THIS_ LPRECT) PURE;
02303        STDMETHOD(UpdateOverlay)(THIS_ LPRECT, LPDIRECTDRAWSURFACE4,LPRECT,DWORD, LPDDOVERLAYFX) PURE;
02304        STDMETHOD(UpdateOverlayDisplay)(THIS_ DWORD) PURE;
02305        STDMETHOD(UpdateOverlayZOrder)(THIS_ DWORD, LPDIRECTDRAWSURFACE4) PURE;
02306        STDMETHOD(GetDDInterface)(THIS_ LPVOID *) PURE;
02307        STDMETHOD(PageLock)(THIS_ DWORD) PURE;
02308        STDMETHOD(PageUnlock)(THIS_ DWORD) PURE;
02309        STDMETHOD(SetSurfaceDesc)(THIS_ LPDDSURFACEDESC2, DWORD) PURE;
02310        STDMETHOD(SetPrivateData)(THIS_ REFGUID, LPVOID, DWORD, DWORD) PURE;
02311        STDMETHOD(GetPrivateData)(THIS_ REFGUID, LPVOID, LPDWORD) PURE;
02312        STDMETHOD(FreePrivateData)(THIS_ REFGUID) PURE;
02313        STDMETHOD(GetUniquenessValue)(THIS_ LPDWORD) PURE;
02314        STDMETHOD(ChangeUniquenessValue)(THIS) PURE;
02315      };
02316      #if !defined(__cplusplus) || defined(CINTERFACE)
02317          #define IDirectDrawSurface4_QueryInterface(p,a,b)        (p)->lpVtbl->QueryInterface(p,a,b)
02318          #define IDirectDrawSurface4_AddRef(p)                    (p)->lpVtbl->AddRef(p)
02319          #define IDirectDrawSurface4_Release(p)                   (p)->lpVtbl->Release(p)
02320          #define IDirectDrawSurface4_AddAttachedSurface(p,a)      (p)->lpVtbl->AddAttachedSurface(p,a)
02321          #define IDirectDrawSurface4_AddOverlayDirtyRect(p,a)     (p)->lpVtbl->AddOverlayDirtyRect(p,a)
02322          #define IDirectDrawSurface4_Blt(p,a,b,c,d,e)             (p)->lpVtbl->Blt(p,a,b,c,d,e)
02323          #define IDirectDrawSurface4_BltBatch(p,a,b,c)            (p)->lpVtbl->BltBatch(p,a,b,c)
02324          #define IDirectDrawSurface4_BltFast(p,a,b,c,d,e)         (p)->lpVtbl->BltFast(p,a,b,c,d,e)
02325          #define IDirectDrawSurface4_DeleteAttachedSurface(p,a,b) (p)->lpVtbl->DeleteAttachedSurface(p,a,b)
02326          #define IDirectDrawSurface4_EnumAttachedSurfaces(p,a,b)  (p)->lpVtbl->EnumAttachedSurfaces(p,a,b)
02327          #define IDirectDrawSurface4_EnumOverlayZOrders(p,a,b,c)  (p)->lpVtbl->EnumOverlayZOrders(p,a,b,c)
02328          #define IDirectDrawSurface4_Flip(p,a,b)                  (p)->lpVtbl->Flip(p,a,b)
02329          #define IDirectDrawSurface4_GetAttachedSurface(p,a,b)    (p)->lpVtbl->GetAttachedSurface(p,a,b)
02330          #define IDirectDrawSurface4_GetBltStatus(p,a)            (p)->lpVtbl->GetBltStatus(p,a)
02331          #define IDirectDrawSurface4_GetCaps(p,b)                 (p)->lpVtbl->GetCaps(p,b)
02332          #define IDirectDrawSurface4_GetClipper(p,a)              (p)->lpVtbl->GetClipper(p,a)
02333          #define IDirectDrawSurface4_GetColorKey(p,a,b)           (p)->lpVtbl->GetColorKey(p,a,b)
02334          #define IDirectDrawSurface4_GetDC(p,a)                   (p)->lpVtbl->GetDC(p,a)
02335          #define IDirectDrawSurface4_GetFlipStatus(p,a)           (p)->lpVtbl->GetFlipStatus(p,a)
02336          #define IDirectDrawSurface4_GetOverlayPosition(p,a,b)    (p)->lpVtbl->GetOverlayPosition(p,a,b)
02337          #define IDirectDrawSurface4_GetPalette(p,a)              (p)->lpVtbl->GetPalette(p,a)
02338          #define IDirectDrawSurface4_GetPixelFormat(p,a)          (p)->lpVtbl->GetPixelFormat(p,a)
02339          #define IDirectDrawSurface4_GetSurfaceDesc(p,a)          (p)->lpVtbl->GetSurfaceDesc(p,a)
02340          #define IDirectDrawSurface4_Initialize(p,a,b)            (p)->lpVtbl->Initialize(p,a,b)
02341          #define IDirectDrawSurface4_IsLost(p)                    (p)->lpVtbl->IsLost(p)
02342          #define IDirectDrawSurface4_Lock(p,a,b,c,d)              (p)->lpVtbl->Lock(p,a,b,c,d)
02343          #define IDirectDrawSurface4_ReleaseDC(p,a)               (p)->lpVtbl->ReleaseDC(p,a)
02344          #define IDirectDrawSurface4_Restore(p)                   (p)->lpVtbl->Restore(p)
02345          #define IDirectDrawSurface4_SetClipper(p,a)              (p)->lpVtbl->SetClipper(p,a)
02346          #define IDirectDrawSurface4_SetColorKey(p,a,b)           (p)->lpVtbl->SetColorKey(p,a,b)
02347          #define IDirectDrawSurface4_SetOverlayPosition(p,a,b)    (p)->lpVtbl->SetOverlayPosition(p,a,b)
02348          #define IDirectDrawSurface4_SetPalette(p,a)              (p)->lpVtbl->SetPalette(p,a)
02349          #define IDirectDrawSurface4_Unlock(p,b)                  (p)->lpVtbl->Unlock(p,b)
02350          #define IDirectDrawSurface4_UpdateOverlay(p,a,b,c,d,e)   (p)->lpVtbl->UpdateOverlay(p,a,b,c,d,e)
02351          #define IDirectDrawSurface4_UpdateOverlayDisplay(p,a)    (p)->lpVtbl->UpdateOverlayDisplay(p,a)
02352          #define IDirectDrawSurface4_UpdateOverlayZOrder(p,a,b)   (p)->lpVtbl->UpdateOverlayZOrder(p,a,b)
02353          #define IDirectDrawSurface4_GetDDInterface(p,a)          (p)->lpVtbl->GetDDInterface(p,a)
02354          #define IDirectDrawSurface4_PageLock(p,a)                (p)->lpVtbl->PageLock(p,a)
02355          #define IDirectDrawSurface4_PageUnlock(p,a)              (p)->lpVtbl->PageUnlock(p,a)
02356          #define IDirectDrawSurface4_SetSurfaceDesc(p,a,b)        (p)->lpVtbl->SetSurfaceDesc(p,a,b)
02357          #define IDirectDrawSurface4_SetPrivateData(p,a,b,c,d)    (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
02358          #define IDirectDrawSurface4_GetPrivateData(p,a,b,c)      (p)->lpVtbl->GetPrivateData(p,a,b,c)
02359          #define IDirectDrawSurface4_FreePrivateData(p,a)         (p)->lpVtbl->FreePrivateData(p,a)
02360          #define IDirectDrawSurface4_GetUniquenessValue(p, a)     (p)->lpVtbl->GetUniquenessValue(p, a)
02361          #define IDirectDrawSurface4_ChangeUniquenessValue(p)     (p)->lpVtbl->ChangeUniquenessValue(p)
02362      #else
02363          #define IDirectDrawSurface4_QueryInterface(p,a,b)        (p)->QueryInterface(a,b)
02364          #define IDirectDrawSurface4_AddRef(p)                    (p)->AddRef()
02365          #define IDirectDrawSurface4_Release(p)                   (p)->Release()
02366          #define IDirectDrawSurface4_AddAttachedSurface(p,a)      (p)->AddAttachedSurface(a)
02367          #define IDirectDrawSurface4_AddOverlayDirtyRect(p,a)     (p)->AddOverlayDirtyRect(a)
02368          #define IDirectDrawSurface4_Blt(p,a,b,c,d,e)             (p)->Blt(a,b,c,d,e)
02369          #define IDirectDrawSurface4_BltBatch(p,a,b,c)            (p)->BltBatch(a,b,c)
02370          #define IDirectDrawSurface4_BltFast(p,a,b,c,d,e)         (p)->BltFast(a,b,c,d,e)
02371          #define IDirectDrawSurface4_DeleteAttachedSurface(p,a,b) (p)->DeleteAttachedSurface(a,b)
02372          #define IDirectDrawSurface4_EnumAttachedSurfaces(p,a,b)  (p)->EnumAttachedSurfaces(a,b)
02373          #define IDirectDrawSurface4_EnumOverlayZOrders(p,a,b,c)  (p)->EnumOverlayZOrders(a,b,c)
02374          #define IDirectDrawSurface4_Flip(p,a,b)                  (p)->Flip(a,b)
02375          #define IDirectDrawSurface4_GetAttachedSurface(p,a,b)    (p)->GetAttachedSurface(a,b)
02376          #define IDirectDrawSurface4_GetBltStatus(p,a)            (p)->GetBltStatus(a)
02377          #define IDirectDrawSurface4_GetCaps(p,b)                 (p)->GetCaps(b)
02378          #define IDirectDrawSurface4_GetClipper(p,a)              (p)->GetClipper(a)
02379          #define IDirectDrawSurface4_GetColorKey(p,a,b)           (p)->GetColorKey(a,b)
02380          #define IDirectDrawSurface4_GetDC(p,a)                   (p)->GetDC(a)
02381          #define IDirectDrawSurface4_GetFlipStatus(p,a)           (p)->GetFlipStatus(a)
02382          #define IDirectDrawSurface4_GetOverlayPosition(p,a,b)    (p)->GetOverlayPosition(a,b)
02383          #define IDirectDrawSurface4_GetPalette(p,a)              (p)->GetPalette(a)
02384          #define IDirectDrawSurface4_GetPixelFormat(p,a)          (p)->GetPixelFormat(a)
02385          #define IDirectDrawSurface4_GetSurfaceDesc(p,a)          (p)->GetSurfaceDesc(a)
02386          #define IDirectDrawSurface4_Initialize(p,a,b)            (p)->Initialize(a,b)
02387          #define IDirectDrawSurface4_IsLost(p)                    (p)->IsLost()
02388          #define IDirectDrawSurface4_Lock(p,a,b,c,d)              (p)->Lock(a,b,c,d)
02389          #define IDirectDrawSurface4_ReleaseDC(p,a)               (p)->ReleaseDC(a)
02390          #define IDirectDrawSurface4_Restore(p)                   (p)->Restore()
02391          #define IDirectDrawSurface4_SetClipper(p,a)              (p)->SetClipper(a)
02392          #define IDirectDrawSurface4_SetColorKey(p,a,b)           (p)->SetColorKey(a,b)
02393          #define IDirectDrawSurface4_SetOverlayPosition(p,a,b)    (p)->SetOverlayPosition(a,b)
02394          #define IDirectDrawSurface4_SetPalette(p,a)              (p)->SetPalette(a)
02395          #define IDirectDrawSurface4_Unlock(p,b)                  (p)->Unlock(b)
02396          #define IDirectDrawSurface4_UpdateOverlay(p,a,b,c,d,e)   (p)->UpdateOverlay(a,b,c,d,e)
02397          #define IDirectDrawSurface4_UpdateOverlayDisplay(p,a)    (p)->UpdateOverlayDisplay(a)
02398          #define IDirectDrawSurface4_UpdateOverlayZOrder(p,a,b)   (p)->UpdateOverlayZOrder(a,b)
02399          #define IDirectDrawSurface4_GetDDInterface(p,a)          (p)->GetDDInterface(a)
02400          #define IDirectDrawSurface4_PageLock(p,a)                (p)->PageLock(a)
02401          #define IDirectDrawSurface4_PageUnlock(p,a)              (p)->PageUnlock(a)
02402          #define IDirectDrawSurface4_SetSurfaceDesc(p,a,b)        (p)->SetSurfaceDesc(a,b)
02403          #define IDirectDrawSurface4_SetPrivateData(p,a,b,c,d)    (p)->SetPrivateData(a,b,c,d)
02404          #define IDirectDrawSurface4_GetPrivateData(p,a,b,c)      (p)->GetPrivateData(a,b,c)
02405          #define IDirectDrawSurface4_FreePrivateData(p,a)         (p)->FreePrivateData(a)
02406          #define IDirectDrawSurface4_GetUniquenessValue(p, a)     (p)->GetUniquenessValue(a)
02407          #define IDirectDrawSurface4_ChangeUniquenessValue(p)     (p)->ChangeUniquenessValue()
02408      #endif
02409 #endif
02410 
02411 #if defined( _WIN32 ) && !defined( _NO_COM )
02412      #undef INTERFACE
02413      #define INTERFACE IDirectDrawSurface7
02414 
02415      DECLARE_INTERFACE_( IDirectDrawSurface7, IUnknown )
02416      {
02417        STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID * ppvObj) PURE;
02418        STDMETHOD_(ULONG,AddRef) (THIS)  PURE;
02419        STDMETHOD_(ULONG,Release) (THIS) PURE;
02420        STDMETHOD(AddAttachedSurface)(THIS_ LPDIRECTDRAWSURFACE7) PURE;
02421        STDMETHOD(AddOverlayDirtyRect)(THIS_ LPRECT) PURE;
02422        STDMETHOD(Blt)(THIS_ LPRECT,LPDIRECTDRAWSURFACE7, LPRECT,DWORD, LPDDBLTFX) PURE;
02423        STDMETHOD(BltBatch)(THIS_ LPDDBLTBATCH, DWORD, DWORD ) PURE;
02424        STDMETHOD(BltFast)(THIS_ DWORD,DWORD,LPDIRECTDRAWSURFACE7, LPRECT,DWORD) PURE;
02425        STDMETHOD(DeleteAttachedSurface)(THIS_ DWORD,LPDIRECTDRAWSURFACE7) PURE;
02426        STDMETHOD(EnumAttachedSurfaces)(THIS_ LPVOID,LPDDENUMSURFACESCALLBACK7) PURE;
02427        STDMETHOD(EnumOverlayZOrders)(THIS_ DWORD,LPVOID,LPDDENUMSURFACESCALLBACK7) PURE;
02428        STDMETHOD(Flip)(THIS_ LPDIRECTDRAWSURFACE7, DWORD) PURE;
02429        STDMETHOD(GetAttachedSurface)(THIS_ LPDDSCAPS2, LPDIRECTDRAWSURFACE7 *) PURE;
02430        STDMETHOD(GetBltStatus)(THIS_ DWORD) PURE;
02431        STDMETHOD(GetCaps)(THIS_ LPDDSCAPS2) PURE;
02432        STDMETHOD(GetClipper)(THIS_ LPDIRECTDRAWCLIPPER *) PURE;
02433        STDMETHOD(GetColorKey)(THIS_ DWORD, LPDDCOLORKEY) PURE;
02434        STDMETHOD(GetDC)(THIS_ HDC *) PURE;
02435        STDMETHOD(GetFlipStatus)(THIS_ DWORD) PURE;
02436        STDMETHOD(GetOverlayPosition)(THIS_ LPLONG, LPLONG ) PURE;
02437        STDMETHOD(GetPalette)(THIS_ LPDIRECTDRAWPALETTE *) PURE;
02438        STDMETHOD(GetPixelFormat)(THIS_ LPDDPIXELFORMAT) PURE;
02439        STDMETHOD(GetSurfaceDesc)(THIS_ LPDDSURFACEDESC2) PURE;
02440        STDMETHOD(Initialize)(THIS_ LPDIRECTDRAW, LPDDSURFACEDESC2) PURE;
02441        STDMETHOD(IsLost)(THIS) PURE;
02442        STDMETHOD(Lock)(THIS_ LPRECT,LPDDSURFACEDESC2,DWORD,HANDLE) PURE;
02443        STDMETHOD(ReleaseDC)(THIS_ HDC) PURE;
02444        STDMETHOD(Restore)(THIS) PURE;
02445        STDMETHOD(SetClipper)(THIS_ LPDIRECTDRAWCLIPPER) PURE;
02446        STDMETHOD(SetColorKey)(THIS_ DWORD, LPDDCOLORKEY) PURE;
02447        STDMETHOD(SetOverlayPosition)(THIS_ LONG, LONG ) PURE;
02448        STDMETHOD(SetPalette)(THIS_ LPDIRECTDRAWPALETTE) PURE;
02449        STDMETHOD(Unlock)(THIS_ LPRECT) PURE;
02450        STDMETHOD(UpdateOverlay)(THIS_ LPRECT, LPDIRECTDRAWSURFACE7,LPRECT,DWORD, LPDDOVERLAYFX) PURE;
02451        STDMETHOD(UpdateOverlayDisplay)(THIS_ DWORD) PURE;
02452        STDMETHOD(UpdateOverlayZOrder)(THIS_ DWORD, LPDIRECTDRAWSURFACE7) PURE;
02453        STDMETHOD(GetDDInterface)(THIS_ LPVOID *) PURE;
02454        STDMETHOD(PageLock)(THIS_ DWORD) PURE;
02455        STDMETHOD(PageUnlock)(THIS_ DWORD) PURE;
02456        STDMETHOD(SetSurfaceDesc)(THIS_ LPDDSURFACEDESC2, DWORD) PURE;
02457        STDMETHOD(SetPrivateData)(THIS_ REFGUID, LPVOID, DWORD, DWORD) PURE;
02458        STDMETHOD(GetPrivateData)(THIS_ REFGUID, LPVOID, LPDWORD) PURE;
02459        STDMETHOD(FreePrivateData)(THIS_ REFGUID) PURE;
02460        STDMETHOD(GetUniquenessValue)(THIS_ LPDWORD) PURE;
02461        STDMETHOD(ChangeUniquenessValue)(THIS) PURE;
02462        STDMETHOD(SetPriority)(THIS_ DWORD) PURE;
02463        STDMETHOD(GetPriority)(THIS_ LPDWORD) PURE;
02464        STDMETHOD(SetLOD)(THIS_ DWORD) PURE;
02465        STDMETHOD(GetLOD)(THIS_ LPDWORD) PURE;
02466      };
02467      #if !defined(__cplusplus) || defined(CINTERFACE)
02468          #define IDirectDrawSurface7_QueryInterface(p,a,b)        (p)->lpVtbl->QueryInterface(p,a,b)
02469          #define IDirectDrawSurface7_AddRef(p)                    (p)->lpVtbl->AddRef(p)
02470          #define IDirectDrawSurface7_Release(p)                   (p)->lpVtbl->Release(p)
02471          #define IDirectDrawSurface7_AddAttachedSurface(p,a)      (p)->lpVtbl->AddAttachedSurface(p,a)
02472          #define IDirectDrawSurface7_AddOverlayDirtyRect(p,a)     (p)->lpVtbl->AddOverlayDirtyRect(p,a)
02473          #define IDirectDrawSurface7_Blt(p,a,b,c,d,e)             (p)->lpVtbl->Blt(p,a,b,c,d,e)
02474          #define IDirectDrawSurface7_BltBatch(p,a,b,c)            (p)->lpVtbl->BltBatch(p,a,b,c)
02475          #define IDirectDrawSurface7_BltFast(p,a,b,c,d,e)         (p)->lpVtbl->BltFast(p,a,b,c,d,e)
02476          #define IDirectDrawSurface7_DeleteAttachedSurface(p,a,b) (p)->lpVtbl->DeleteAttachedSurface(p,a,b)
02477          #define IDirectDrawSurface7_EnumAttachedSurfaces(p,a,b)  (p)->lpVtbl->EnumAttachedSurfaces(p,a,b)
02478          #define IDirectDrawSurface7_EnumOverlayZOrders(p,a,b,c)  (p)->lpVtbl->EnumOverlayZOrders(p,a,b,c)
02479          #define IDirectDrawSurface7_Flip(p,a,b)                  (p)->lpVtbl->Flip(p,a,b)
02480          #define IDirectDrawSurface7_GetAttachedSurface(p,a,b)    (p)->lpVtbl->GetAttachedSurface(p,a,b)
02481          #define IDirectDrawSurface7_GetBltStatus(p,a)            (p)->lpVtbl->GetBltStatus(p,a)
02482          #define IDirectDrawSurface7_GetCaps(p,b)                 (p)->lpVtbl->GetCaps(p,b)
02483          #define IDirectDrawSurface7_GetClipper(p,a)              (p)->lpVtbl->GetClipper(p,a)
02484          #define IDirectDrawSurface7_GetColorKey(p,a,b)           (p)->lpVtbl->GetColorKey(p,a,b)
02485          #define IDirectDrawSurface7_GetDC(p,a)                   (p)->lpVtbl->GetDC(p,a)
02486          #define IDirectDrawSurface7_GetFlipStatus(p,a)           (p)->lpVtbl->GetFlipStatus(p,a)
02487          #define IDirectDrawSurface7_GetOverlayPosition(p,a,b)    (p)->lpVtbl->GetOverlayPosition(p,a,b)
02488          #define IDirectDrawSurface7_GetPalette(p,a)              (p)->lpVtbl->GetPalette(p,a)
02489          #define IDirectDrawSurface7_GetPixelFormat(p,a)          (p)->lpVtbl->GetPixelFormat(p,a)
02490          #define IDirectDrawSurface7_GetSurfaceDesc(p,a)          (p)->lpVtbl->GetSurfaceDesc(p,a)
02491          #define IDirectDrawSurface7_Initialize(p,a,b)            (p)->lpVtbl->Initialize(p,a,b)
02492          #define IDirectDrawSurface7_IsLost(p)                    (p)->lpVtbl->IsLost(p)
02493          #define IDirectDrawSurface7_Lock(p,a,b,c,d)              (p)->lpVtbl->Lock(p,a,b,c,d)
02494          #define IDirectDrawSurface7_ReleaseDC(p,a)               (p)->lpVtbl->ReleaseDC(p,a)
02495          #define IDirectDrawSurface7_Restore(p)                   (p)->lpVtbl->Restore(p)
02496          #define IDirectDrawSurface7_SetClipper(p,a)              (p)->lpVtbl->SetClipper(p,a)
02497          #define IDirectDrawSurface7_SetColorKey(p,a,b)           (p)->lpVtbl->SetColorKey(p,a,b)
02498          #define IDirectDrawSurface7_SetOverlayPosition(p,a,b)    (p)->lpVtbl->SetOverlayPosition(p,a,b)
02499          #define IDirectDrawSurface7_SetPalette(p,a)              (p)->lpVtbl->SetPalette(p,a)
02500          #define IDirectDrawSurface7_Unlock(p,b)                  (p)->lpVtbl->Unlock(p,b)
02501          #define IDirectDrawSurface7_UpdateOverlay(p,a,b,c,d,e)   (p)->lpVtbl->UpdateOverlay(p,a,b,c,d,e)
02502          #define IDirectDrawSurface7_UpdateOverlayDisplay(p,a)    (p)->lpVtbl->UpdateOverlayDisplay(p,a)
02503          #define IDirectDrawSurface7_UpdateOverlayZOrder(p,a,b)   (p)->lpVtbl->UpdateOverlayZOrder(p,a,b)
02504          #define IDirectDrawSurface7_GetDDInterface(p,a)          (p)->lpVtbl->GetDDInterface(p,a)
02505          #define IDirectDrawSurface7_PageLock(p,a)                (p)->lpVtbl->PageLock(p,a)
02506          #define IDirectDrawSurface7_PageUnlock(p,a)              (p)->lpVtbl->PageUnlock(p,a)
02507          #define IDirectDrawSurface7_SetSurfaceDesc(p,a,b)        (p)->lpVtbl->SetSurfaceDesc(p,a,b)
02508          #define IDirectDrawSurface7_SetPrivateData(p,a,b,c,d)    (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
02509          #define IDirectDrawSurface7_GetPrivateData(p,a,b,c)      (p)->lpVtbl->GetPrivateData(p,a,b,c)
02510          #define IDirectDrawSurface7_FreePrivateData(p,a)         (p)->lpVtbl->FreePrivateData(p,a)
02511          #define IDirectDrawSurface7_GetUniquenessValue(p, a)     (p)->lpVtbl->GetUniquenessValue(p, a)
02512          #define IDirectDrawSurface7_ChangeUniquenessValue(p)     (p)->lpVtbl->ChangeUniquenessValue(p)
02513          #define IDirectDrawSurface7_SetPriority(p,a)             (p)->lpVtbl->SetPriority(p,a)
02514          #define IDirectDrawSurface7_GetPriority(p,a)             (p)->lpVtbl->GetPriority(p,a)
02515          #define IDirectDrawSurface7_SetLOD(p,a)                  (p)->lpVtbl->SetLOD(p,a)
02516          #define IDirectDrawSurface7_GetLOD(p,a)                  (p)->lpVtbl->GetLOD(p,a)
02517      #else
02518          #define IDirectDrawSurface7_QueryInterface(p,a,b)        (p)->QueryInterface(a,b)
02519          #define IDirectDrawSurface7_AddRef(p)                    (p)->AddRef()
02520          #define IDirectDrawSurface7_Release(p)                   (p)->Release()
02521          #define IDirectDrawSurface7_AddAttachedSurface(p,a)      (p)->AddAttachedSurface(a)
02522          #define IDirectDrawSurface7_AddOverlayDirtyRect(p,a)     (p)->AddOverlayDirtyRect(a)
02523          #define IDirectDrawSurface7_Blt(p,a,b,c,d,e)             (p)->Blt(a,b,c,d,e)
02524          #define IDirectDrawSurface7_BltBatch(p,a,b,c)            (p)->BltBatch(a,b,c)
02525          #define IDirectDrawSurface7_BltFast(p,a,b,c,d,e)         (p)->BltFast(a,b,c,d,e)
02526          #define IDirectDrawSurface7_DeleteAttachedSurface(p,a,b) (p)->DeleteAttachedSurface(a,b)
02527          #define IDirectDrawSurface7_EnumAttachedSurfaces(p,a,b)  (p)->EnumAttachedSurfaces(a,b)
02528          #define IDirectDrawSurface7_EnumOverlayZOrders(p,a,b,c)  (p)->EnumOverlayZOrders(a,b,c)
02529          #define IDirectDrawSurface7_Flip(p,a,b)                  (p)->Flip(a,b)
02530          #define IDirectDrawSurface7_GetAttachedSurface(p,a,b)    (p)->GetAttachedSurface(a,b)
02531          #define IDirectDrawSurface7_GetBltStatus(p,a)            (p)->GetBltStatus(a)
02532          #define IDirectDrawSurface7_GetCaps(p,b)                 (p)->GetCaps(b)
02533          #define IDirectDrawSurface7_GetClipper(p,a)              (p)->GetClipper(a)
02534          #define IDirectDrawSurface7_GetColorKey(p,a,b)           (p)->GetColorKey(a,b)
02535          #define IDirectDrawSurface7_GetDC(p,a)                   (p)->GetDC(a)
02536          #define IDirectDrawSurface7_GetFlipStatus(p,a)           (p)->GetFlipStatus(a)
02537          #define IDirectDrawSurface7_GetOverlayPosition(p,a,b)    (p)->GetOverlayPosition(a,b)
02538          #define IDirectDrawSurface7_GetPalette(p,a)              (p)->GetPalette(a)
02539          #define IDirectDrawSurface7_GetPixelFormat(p,a)          (p)->GetPixelFormat(a)
02540          #define IDirectDrawSurface7_GetSurfaceDesc(p,a)          (p)->GetSurfaceDesc(a)
02541          #define IDirectDrawSurface7_Initialize(p,a,b)            (p)->Initialize(a,b)
02542          #define IDirectDrawSurface7_IsLost(p)                    (p)->IsLost()
02543          #define IDirectDrawSurface7_Lock(p,a,b,c,d)              (p)->Lock(a,b,c,d)
02544          #define IDirectDrawSurface7_ReleaseDC(p,a)               (p)->ReleaseDC(a)
02545          #define IDirectDrawSurface7_Restore(p)                   (p)->Restore()
02546          #define IDirectDrawSurface7_SetClipper(p,a)              (p)->SetClipper(a)
02547          #define IDirectDrawSurface7_SetColorKey(p,a,b)           (p)->SetColorKey(a,b)
02548          #define IDirectDrawSurface7_SetOverlayPosition(p,a,b)    (p)->SetOverlayPosition(a,b)
02549          #define IDirectDrawSurface7_SetPalette(p,a)              (p)->SetPalette(a)
02550          #define IDirectDrawSurface7_Unlock(p,b)                  (p)->Unlock(b)
02551          #define IDirectDrawSurface7_UpdateOverlay(p,a,b,c,d,e)   (p)->UpdateOverlay(a,b,c,d,e)
02552          #define IDirectDrawSurface7_UpdateOverlayDisplay(p,a)    (p)->UpdateOverlayDisplay(a)
02553          #define IDirectDrawSurface7_UpdateOverlayZOrder(p,a,b)   (p)->UpdateOverlayZOrder(a,b)
02554          #define IDirectDrawSurface7_GetDDInterface(p,a)          (p)->GetDDInterface(a)
02555          #define IDirectDrawSurface7_PageLock(p,a)                (p)->PageLock(a)
02556          #define IDirectDrawSurface7_PageUnlock(p,a)              (p)->PageUnlock(a)
02557          #define IDirectDrawSurface7_SetSurfaceDesc(p,a,b)        (p)->SetSurfaceDesc(a,b)
02558          #define IDirectDrawSurface7_SetPrivateData(p,a,b,c,d)    (p)->SetPrivateData(a,b,c,d)
02559          #define IDirectDrawSurface7_GetPrivateData(p,a,b,c)      (p)->GetPrivateData(a,b,c)
02560          #define IDirectDrawSurface7_FreePrivateData(p,a)         (p)->FreePrivateData(a)
02561          #define IDirectDrawSurface7_GetUniquenessValue(p, a)     (p)->GetUniquenessValue(a)
02562          #define IDirectDrawSurface7_ChangeUniquenessValue(p)     (p)->ChangeUniquenessValue()
02563          #define IDirectDrawSurface7_SetPriority(p,a)             (p)->SetPriority(a)
02564          #define IDirectDrawSurface7_GetPriority(p,a)             (p)->GetPriority(a)
02565          #define IDirectDrawSurface7_SetLOD(p,a)                  (p)->SetLOD(a)
02566          #define IDirectDrawSurface7_GetLOD(p,a)                  (p)->GetLOD(a)
02567      #endif
02568 #endif
02569 #undef INTERFACE
02570 
02571 #ifdef __cplusplus
02572 }
02573 #endif
02574 
02575 #ifdef ENABLE_NAMELESS_UNION_PRAGMA
02576   #pragma warning(default:4201)
02577 #endif
02578 
02579 #endif

Generated on Sun May 27 2012 04:21:24 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.