1 ##########################################################################
3 # Copyright 2008-2009 VMware, Inc.
6 # Permission is hereby granted, free of charge, to any person obtaining a copy
7 # of this software and associated documentation files (the "Software"), to deal
8 # in the Software without restriction, including without limitation the rights
9 # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 # copies of the Software, and to permit persons to whom the Software is
11 # furnished to do so, subject to the following conditions:
13 # The above copyright notice and this permission notice shall be included in
14 # all copies or substantial portions of the Software.
16 # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
24 ##########################################################################/
30 DirectDrawOptSurfaceDescFlags = Flags(DWORD, [
32 "DDOSD_COMPRESSION_RATIO",
38 DirectDrawOptSurfaceDescCapsFlags = Flags(DWORD, [
39 "DDOSDCAPS_OPTCOMPRESSED",
40 "DDOSDCAPS_OPTREORDERED",
41 "DDOSDCAPS_MONOLITHICMIPMAP",
44 DirectDrawGetDeviceIdentifierFlags = Flags(DWORD, [
45 "DDGDI_GETHOSTIDENTIFIER",
48 IDirectDraw = Interface("IDirectDraw", IUnknown)
49 IDirectDraw2 = Interface("IDirectDraw2", IUnknown)
50 IDirectDraw4 = Interface("IDirectDraw4", IUnknown)
51 IDirectDraw7 = Interface("IDirectDraw7", IUnknown)
52 IDirectDrawPalette = Interface("IDirectDrawPalette", IUnknown)
53 IDirectDrawClipper = Interface("IDirectDrawClipper", IUnknown)
54 IDirectDrawSurface = Interface("IDirectDrawSurface", IUnknown)
55 IDirectDrawSurface2 = Interface("IDirectDrawSurface2", IUnknown)
56 IDirectDrawSurface3 = Interface("IDirectDrawSurface3", IUnknown)
57 IDirectDrawSurface4 = Interface("IDirectDrawSurface4", IUnknown)
58 IDirectDrawSurface7 = Interface("IDirectDrawSurface7", IUnknown)
59 IDirectDrawColorControl = Interface("IDirectDrawColorControl", IUnknown)
60 IDirectDrawGammaControl = Interface("IDirectDrawGammaControl", IUnknown)
62 LPUNKNOWN = ObjPointer(IUnknown)
63 LPDIRECTDRAW = ObjPointer(IDirectDraw)
64 LPDIRECTDRAW2 = ObjPointer(IDirectDraw2)
65 LPDIRECTDRAW4 = ObjPointer(IDirectDraw4)
66 LPDIRECTDRAW7 = ObjPointer(IDirectDraw7)
67 LPDIRECTDRAWSURFACE = ObjPointer(IDirectDrawSurface)
68 LPDIRECTDRAWSURFACE2 = ObjPointer(IDirectDrawSurface2)
69 LPDIRECTDRAWSURFACE3 = ObjPointer(IDirectDrawSurface3)
70 LPDIRECTDRAWSURFACE4 = ObjPointer(IDirectDrawSurface4)
71 LPDIRECTDRAWSURFACE7 = ObjPointer(IDirectDrawSurface7)
72 LPDIRECTDRAWPALETTE = ObjPointer(IDirectDrawPalette)
73 LPDIRECTDRAWCLIPPER = ObjPointer(IDirectDrawClipper)
74 LPDIRECTDRAWCOLORCONTROL = ObjPointer(IDirectDrawColorControl)
75 LPDIRECTDRAWGAMMACONTROL = ObjPointer(IDirectDrawGammaControl)
77 DDARGB = Struct("DDARGB", [
84 LPDDARGB = Pointer(DDARGB)
86 DDRGBA = Struct("DDRGBA", [
92 LPDDRGBA = Pointer(DDRGBA)
94 DDCOLORKEY = Struct("DDCOLORKEY", [
95 (DWORD, "dwColorSpaceLowValue"),
96 (DWORD, "dwColorSpaceHighValue"),
98 LPDDCOLORKEY = Pointer(DDCOLORKEY)
100 DDBLTFX = Struct("DDBLTFX", [
105 (DWORD, "dwRotationAngle"),
106 (DWORD, "dwZBufferOpCode"),
107 (DWORD, "dwZBufferLow"),
108 (DWORD, "dwZBufferHigh"),
109 (DWORD, "dwZBufferBaseDest"),
110 (DWORD, "dwZDestConstBitDepth"),
111 (DWORD, "dwZDestConst"),
112 (LPDIRECTDRAWSURFACE, "lpDDSZBufferDest"),
113 (DWORD, "dwZSrcConstBitDepth"),
114 (DWORD, "dwZSrcConst"),
115 (LPDIRECTDRAWSURFACE, "lpDDSZBufferSrc"),
116 (DWORD, "dwAlphaEdgeBlendBitDepth"),
117 (DWORD, "dwAlphaEdgeBlend"),
118 (DWORD, "dwReserved"),
119 (DWORD, "dwAlphaDestConstBitDepth"),
120 (DWORD, "dwAlphaDestConst"),
121 (LPDIRECTDRAWSURFACE, "lpDDSAlphaDest"),
122 (DWORD, "dwAlphaSrcConstBitDepth"),
123 (DWORD, "dwAlphaSrcConst"),
124 (LPDIRECTDRAWSURFACE, "lpDDSAlphaSrc"),
125 (DWORD, "dwFillColor"),
126 (DWORD, "dwFillDepth"),
127 (DWORD, "dwFillPixel"),
128 (LPDIRECTDRAWSURFACE, "lpDDSPattern"),
129 (DDCOLORKEY, "ddckDestColorkey"),
130 (DDCOLORKEY, "ddckSrcColorkey"),
132 LPDDBLTFX = Pointer(DDBLTFX)
134 DDSCAPS = Struct("DDSCAPS", [
137 LPDDSCAPS = Pointer(DDSCAPS)
139 DDOSCAPS = Struct("DDOSCAPS", [
142 LPDDOSCAPS = Pointer(DDOSCAPS)
144 DDSCAPSEX = Struct("DDSCAPSEX", [
150 DDSCAPS2 = Struct("DDSCAPS2", [
156 LPDDSCAPS2 = Pointer(DDSCAPS2)
158 DDCAPS_DX1 = Struct("DDCAPS_DX1", [
162 (DWORD, "dwCKeyCaps"),
164 (DWORD, "dwFXAlphaCaps"),
165 (DWORD, "dwPalCaps"),
167 (DWORD, "dwAlphaBltConstBitDepths"),
168 (DWORD, "dwAlphaBltPixelBitDepths"),
169 (DWORD, "dwAlphaBltSurfaceBitDepths"),
170 (DWORD, "dwAlphaOverlayConstBitDepths"),
171 (DWORD, "dwAlphaOverlayPixelBitDepths"),
172 (DWORD, "dwAlphaOverlaySurfaceBitDepths"),
173 (DWORD, "dwZBufferBitDepths"),
174 (DWORD, "dwVidMemTotal"),
175 (DWORD, "dwVidMemFree"),
176 (DWORD, "dwMaxVisibleOverlays"),
177 (DWORD, "dwCurrVisibleOverlays"),
178 (DWORD, "dwNumFourCCCodes"),
179 (DWORD, "dwAlignBoundarySrc"),
180 (DWORD, "dwAlignSizeSrc"),
181 (DWORD, "dwAlignBoundaryDest"),
182 (DWORD, "dwAlignSizeDest"),
183 (DWORD, "dwAlignStrideAlign"),
184 (Array(DWORD, "DD_ROP_SPACE"), "dwRops"),
185 (DDSCAPS, "ddsCaps"),
186 (DWORD, "dwMinOverlayStretch"),
187 (DWORD, "dwMaxOverlayStretch"),
188 (DWORD, "dwMinLiveVideoStretch"),
189 (DWORD, "dwMaxLiveVideoStretch"),
190 (DWORD, "dwMinHwCodecStretch"),
191 (DWORD, "dwMaxHwCodecStretch"),
192 (DWORD, "dwReserved1"),
193 (DWORD, "dwReserved2"),
194 (DWORD, "dwReserved3"),
196 LPDDCAPS_DX1 = Pointer(DDCAPS_DX1)
198 DDCAPS_DX3 = Struct("DDCAPS_DX3", [
202 (DWORD, "dwCKeyCaps"),
204 (DWORD, "dwFXAlphaCaps"),
205 (DWORD, "dwPalCaps"),
207 (DWORD, "dwAlphaBltConstBitDepths"),
208 (DWORD, "dwAlphaBltPixelBitDepths"),
209 (DWORD, "dwAlphaBltSurfaceBitDepths"),
210 (DWORD, "dwAlphaOverlayConstBitDepths"),
211 (DWORD, "dwAlphaOverlayPixelBitDepths"),
212 (DWORD, "dwAlphaOverlaySurfaceBitDepths"),
213 (DWORD, "dwZBufferBitDepths"),
214 (DWORD, "dwVidMemTotal"),
215 (DWORD, "dwVidMemFree"),
216 (DWORD, "dwMaxVisibleOverlays"),
217 (DWORD, "dwCurrVisibleOverlays"),
218 (DWORD, "dwNumFourCCCodes"),
219 (DWORD, "dwAlignBoundarySrc"),
220 (DWORD, "dwAlignSizeSrc"),
221 (DWORD, "dwAlignBoundaryDest"),
222 (DWORD, "dwAlignSizeDest"),
223 (DWORD, "dwAlignStrideAlign"),
224 (Array(DWORD, "DD_ROP_SPACE"), "dwRops"),
225 (DDSCAPS, "ddsCaps"),
226 (DWORD, "dwMinOverlayStretch"),
227 (DWORD, "dwMaxOverlayStretch"),
228 (DWORD, "dwMinLiveVideoStretch"),
229 (DWORD, "dwMaxLiveVideoStretch"),
230 (DWORD, "dwMinHwCodecStretch"),
231 (DWORD, "dwMaxHwCodecStretch"),
232 (DWORD, "dwReserved1"),
233 (DWORD, "dwReserved2"),
234 (DWORD, "dwReserved3"),
235 (DWORD, "dwSVBCaps"),
236 (DWORD, "dwSVBCKeyCaps"),
237 (DWORD, "dwSVBFXCaps"),
238 (Array(DWORD, "DD_ROP_SPACE"), "dwSVBRops"),
239 (DWORD, "dwVSBCaps"),
240 (DWORD, "dwVSBCKeyCaps"),
241 (DWORD, "dwVSBFXCaps"),
242 (Array(DWORD, "DD_ROP_SPACE"), "dwVSBRops"),
243 (DWORD, "dwSSBCaps"),
244 (DWORD, "dwSSBCKeyCaps"),
245 (DWORD, "dwSSBFXCaps"),
246 (Array(DWORD, "DD_ROP_SPACE"), "dwSSBRops"),
247 (DWORD, "dwReserved4"),
248 (DWORD, "dwReserved5"),
249 (DWORD, "dwReserved6"),
251 LPDDCAPS_DX3 = Pointer(DDCAPS_DX3)
253 DDCAPS_DX5 = Struct("DDCAPS_DX5", [
257 (DWORD, "dwCKeyCaps"),
259 (DWORD, "dwFXAlphaCaps"),
260 (DWORD, "dwPalCaps"),
262 (DWORD, "dwAlphaBltConstBitDepths"),
263 (DWORD, "dwAlphaBltPixelBitDepths"),
264 (DWORD, "dwAlphaBltSurfaceBitDepths"),
265 (DWORD, "dwAlphaOverlayConstBitDepths"),
266 (DWORD, "dwAlphaOverlayPixelBitDepths"),
267 (DWORD, "dwAlphaOverlaySurfaceBitDepths"),
268 (DWORD, "dwZBufferBitDepths"),
269 (DWORD, "dwVidMemTotal"),
270 (DWORD, "dwVidMemFree"),
271 (DWORD, "dwMaxVisibleOverlays"),
272 (DWORD, "dwCurrVisibleOverlays"),
273 (DWORD, "dwNumFourCCCodes"),
274 (DWORD, "dwAlignBoundarySrc"),
275 (DWORD, "dwAlignSizeSrc"),
276 (DWORD, "dwAlignBoundaryDest"),
277 (DWORD, "dwAlignSizeDest"),
278 (DWORD, "dwAlignStrideAlign"),
279 (Array(DWORD, "DD_ROP_SPACE"), "dwRops"),
280 (DDSCAPS, "ddsCaps"),
281 (DWORD, "dwMinOverlayStretch"),
282 (DWORD, "dwMaxOverlayStretch"),
283 (DWORD, "dwMinLiveVideoStretch"),
284 (DWORD, "dwMaxLiveVideoStretch"),
285 (DWORD, "dwMinHwCodecStretch"),
286 (DWORD, "dwMaxHwCodecStretch"),
287 (DWORD, "dwReserved1"),
288 (DWORD, "dwReserved2"),
289 (DWORD, "dwReserved3"),
290 (DWORD, "dwSVBCaps"),
291 (DWORD, "dwSVBCKeyCaps"),
292 (DWORD, "dwSVBFXCaps"),
293 (Array(DWORD, "DD_ROP_SPACE"), "dwSVBRops"),
294 (DWORD, "dwVSBCaps"),
295 (DWORD, "dwVSBCKeyCaps"),
296 (DWORD, "dwVSBFXCaps"),
297 (Array(DWORD, "DD_ROP_SPACE"), "dwVSBRops"),
298 (DWORD, "dwSSBCaps"),
299 (DWORD, "dwSSBCKeyCaps"),
300 (DWORD, "dwSSBFXCaps"),
301 (Array(DWORD, "DD_ROP_SPACE"), "dwSSBRops"),
302 (DWORD, "dwMaxVideoPorts"),
303 (DWORD, "dwCurrVideoPorts"),
304 (DWORD, "dwSVBCaps2"),
305 (DWORD, "dwNLVBCaps"),
306 (DWORD, "dwNLVBCaps2"),
307 (DWORD, "dwNLVBCKeyCaps"),
308 (DWORD, "dwNLVBFXCaps"),
309 (Array(DWORD, "DD_ROP_SPACE"), "dwNLVBRops"),
311 LPDDCAPS_DX5 = Pointer(DDCAPS_DX5)
313 DDCAPS_DX6 = Struct("DDCAPS_DX6", [
317 (DWORD, "dwCKeyCaps"),
319 (DWORD, "dwFXAlphaCaps"),
320 (DWORD, "dwPalCaps"),
322 (DWORD, "dwAlphaBltConstBitDepths"),
323 (DWORD, "dwAlphaBltPixelBitDepths"),
324 (DWORD, "dwAlphaBltSurfaceBitDepths"),
325 (DWORD, "dwAlphaOverlayConstBitDepths"),
326 (DWORD, "dwAlphaOverlayPixelBitDepths"),
327 (DWORD, "dwAlphaOverlaySurfaceBitDepths"),
328 (DWORD, "dwZBufferBitDepths"),
329 (DWORD, "dwVidMemTotal"),
330 (DWORD, "dwVidMemFree"),
331 (DWORD, "dwMaxVisibleOverlays"),
332 (DWORD, "dwCurrVisibleOverlays"),
333 (DWORD, "dwNumFourCCCodes"),
334 (DWORD, "dwAlignBoundarySrc"),
335 (DWORD, "dwAlignSizeSrc"),
336 (DWORD, "dwAlignBoundaryDest"),
337 (DWORD, "dwAlignSizeDest"),
338 (DWORD, "dwAlignStrideAlign"),
339 (Array(DWORD, "DD_ROP_SPACE"), "dwRops"),
340 (DDSCAPS, "ddsOldCaps"),
341 (DWORD, "dwMinOverlayStretch"),
342 (DWORD, "dwMaxOverlayStretch"),
343 (DWORD, "dwMinLiveVideoStretch"),
344 (DWORD, "dwMaxLiveVideoStretch"),
345 (DWORD, "dwMinHwCodecStretch"),
346 (DWORD, "dwMaxHwCodecStretch"),
347 (DWORD, "dwReserved1"),
348 (DWORD, "dwReserved2"),
349 (DWORD, "dwReserved3"),
350 (DWORD, "dwSVBCaps"),
351 (DWORD, "dwSVBCKeyCaps"),
352 (DWORD, "dwSVBFXCaps"),
353 (Array(DWORD, "DD_ROP_SPACE"), "dwSVBRops"),
354 (DWORD, "dwVSBCaps"),
355 (DWORD, "dwVSBCKeyCaps"),
356 (DWORD, "dwVSBFXCaps"),
357 (Array(DWORD, "DD_ROP_SPACE"), "dwVSBRops"),
358 (DWORD, "dwSSBCaps"),
359 (DWORD, "dwSSBCKeyCaps"),
360 (DWORD, "dwSSBFXCaps"),
361 (Array(DWORD, "DD_ROP_SPACE"), "dwSSBRops"),
362 (DWORD, "dwMaxVideoPorts"),
363 (DWORD, "dwCurrVideoPorts"),
364 (DWORD, "dwSVBCaps2"),
365 (DWORD, "dwNLVBCaps"),
366 (DWORD, "dwNLVBCaps2"),
367 (DWORD, "dwNLVBCKeyCaps"),
368 (DWORD, "dwNLVBFXCaps"),
369 (Array(DWORD, "DD_ROP_SPACE"), "dwNLVBRops"),
370 (DDSCAPS2, "ddsCaps"),
372 LPDDCAPS_DX6 = Pointer(DDCAPS_DX6)
374 DDCAPS_DX7 = Struct("DDCAPS_DX7", [
378 (DWORD, "dwCKeyCaps"),
380 (DWORD, "dwFXAlphaCaps"),
381 (DWORD, "dwPalCaps"),
383 (DWORD, "dwAlphaBltConstBitDepths"),
384 (DWORD, "dwAlphaBltPixelBitDepths"),
385 (DWORD, "dwAlphaBltSurfaceBitDepths"),
386 (DWORD, "dwAlphaOverlayConstBitDepths"),
387 (DWORD, "dwAlphaOverlayPixelBitDepths"),
388 (DWORD, "dwAlphaOverlaySurfaceBitDepths"),
389 (DWORD, "dwZBufferBitDepths"),
390 (DWORD, "dwVidMemTotal"),
391 (DWORD, "dwVidMemFree"),
392 (DWORD, "dwMaxVisibleOverlays"),
393 (DWORD, "dwCurrVisibleOverlays"),
394 (DWORD, "dwNumFourCCCodes"),
395 (DWORD, "dwAlignBoundarySrc"),
396 (DWORD, "dwAlignSizeSrc"),
397 (DWORD, "dwAlignBoundaryDest"),
398 (DWORD, "dwAlignSizeDest"),
399 (DWORD, "dwAlignStrideAlign"),
400 (Array(DWORD, "DD_ROP_SPACE"), "dwRops"),
401 (DDSCAPS, "ddsOldCaps"),
402 (DWORD, "dwMinOverlayStretch"),
403 (DWORD, "dwMaxOverlayStretch"),
404 (DWORD, "dwMinLiveVideoStretch"),
405 (DWORD, "dwMaxLiveVideoStretch"),
406 (DWORD, "dwMinHwCodecStretch"),
407 (DWORD, "dwMaxHwCodecStretch"),
408 (DWORD, "dwReserved1"),
409 (DWORD, "dwReserved2"),
410 (DWORD, "dwReserved3"),
411 (DWORD, "dwSVBCaps"),
412 (DWORD, "dwSVBCKeyCaps"),
413 (DWORD, "dwSVBFXCaps"),
414 (Array(DWORD, "DD_ROP_SPACE"), "dwSVBRops"),
415 (DWORD, "dwVSBCaps"),
416 (DWORD, "dwVSBCKeyCaps"),
417 (DWORD, "dwVSBFXCaps"),
418 (Array(DWORD, "DD_ROP_SPACE"), "dwVSBRops"),
419 (DWORD, "dwSSBCaps"),
420 (DWORD, "dwSSBCKeyCaps"),
421 (DWORD, "dwSSBFXCaps"),
422 (Array(DWORD, "DD_ROP_SPACE"), "dwSSBRops"),
423 (DWORD, "dwMaxVideoPorts"),
424 (DWORD, "dwCurrVideoPorts"),
425 (DWORD, "dwSVBCaps2"),
426 (DWORD, "dwNLVBCaps"),
427 (DWORD, "dwNLVBCaps2"),
428 (DWORD, "dwNLVBCKeyCaps"),
429 (DWORD, "dwNLVBFXCaps"),
430 (Array(DWORD, "DD_ROP_SPACE"), "dwNLVBRops"),
431 (DDSCAPS2, "ddsCaps"),
433 LPDDCAPS_DX7 = Pointer(DDCAPS_DX7)
435 LPDDCAPS = Pointer(DDCAPS)
437 DDPIXELFORMAT = Struct("DDPIXELFORMAT", [
441 (DWORD, "dwRGBBitCount"),
442 (DWORD, "dwYUVBitCount"),
443 (DWORD, "dwZBufferBitDepth"),
444 (DWORD, "dwAlphaBitDepth"),
445 (DWORD, "dwLuminanceBitCount"),
446 (DWORD, "dwBumpBitCount"),
447 (DWORD, "dwPrivateFormatBitCount"),
448 (DWORD, "dwRBitMask"),
449 (DWORD, "dwYBitMask"),
450 (DWORD, "dwStencilBitDepth"),
451 (DWORD, "dwLuminanceBitMask"),
452 (DWORD, "dwBumpDuBitMask"),
453 (DWORD, "dwOperations"),
454 (DWORD, "dwGBitMask"),
455 (DWORD, "dwUBitMask"),
456 (DWORD, "dwZBitMask"),
457 (DWORD, "dwBumpDvBitMask"),
459 (WORD, "wFlipMSTypes"),
460 (WORD, "wBltMSTypes"),
461 ]), "MultiSampleCaps"),
462 (DWORD, "dwBBitMask"),
463 (DWORD, "dwVBitMask"),
464 (DWORD, "dwStencilBitMask"),
465 (DWORD, "dwBumpLuminanceBitMask"),
466 (DWORD, "dwRGBAlphaBitMask"),
467 (DWORD, "dwYUVAlphaBitMask"),
468 (DWORD, "dwLuminanceAlphaBitMask"),
469 (DWORD, "dwRGBZBitMask"),
470 (DWORD, "dwYUVZBitMask"),
472 LPDDPIXELFORMAT = Pointer(DDPIXELFORMAT)
474 DDOVERLAYFX = Struct("DDOVERLAYFX", [
476 (DWORD, "dwAlphaEdgeBlendBitDepth"),
477 (DWORD, "dwAlphaEdgeBlend"),
478 (DWORD, "dwReserved"),
479 (DWORD, "dwAlphaDestConstBitDepth"),
480 (DWORD, "dwAlphaDestConst"),
481 (LPDIRECTDRAWSURFACE, "lpDDSAlphaDest"),
482 (DWORD, "dwAlphaSrcConstBitDepth"),
483 (DWORD, "dwAlphaSrcConst"),
484 (LPDIRECTDRAWSURFACE, "lpDDSAlphaSrc"),
485 (DDCOLORKEY, "dckDestColorkey"),
486 (DDCOLORKEY, "dckSrcColorkey"),
490 LPDDOVERLAYFX = Pointer(DDOVERLAYFX)
492 DDBLTBATCH = Struct("DDBLTBATCH", [
494 (LPDIRECTDRAWSURFACE, "lpDDSSrc"),
497 (LPDDBLTFX, "lpDDBltFx"),
499 LPDDBLTBATCH = Pointer(DDBLTBATCH)
501 DDGAMMARAMP = Struct("DDGAMMARAMP", [
502 (Array(WORD, 256), "red"),
503 (Array(WORD, 256), "green"),
504 (Array(WORD, 256), "blue"),
506 LPDDGAMMARAMP = Pointer(DDGAMMARAMP)
508 DDDEVICEIDENTIFIER = Struct("DDDEVICEIDENTIFIER", [
509 (CString, "szDriver"),
510 (CString, "szDescription"),
511 (LARGE_INTEGER, "liDriverVersion"),
512 (DWORD, "dwVendorId"),
513 (DWORD, "dwDeviceId"),
514 (DWORD, "dwSubSysId"),
515 (DWORD, "dwRevision"),
516 (GUID, "guidDeviceIdentifier"),
518 LPDDDEVICEIDENTIFIER = Pointer(DDDEVICEIDENTIFIER)
520 DDDEVICEIDENTIFIER2 = Struct("DDDEVICEIDENTIFIER2", [
521 (CString, "szDriver"),
522 (CString, "szDescription"),
523 (LARGE_INTEGER, "liDriverVersion"),
524 (DWORD, "dwVendorId"),
525 (DWORD, "dwDeviceId"),
526 (DWORD, "dwSubSysId"),
527 (DWORD, "dwRevision"),
528 (GUID, "guidDeviceIdentifier"),
529 (DWORD, "dwWHQLLevel"),
531 LPDDDEVICEIDENTIFIER2 = Pointer(DDDEVICEIDENTIFIER2)
533 LPCLIPPERCALLBACK = FunctionPointer(DWORD, "LPCLIPPERCALLBACK", [(LPDIRECTDRAWCLIPPER, "lpDDClipper"), (HWND, "hWnd"), (DWORD, "code"), (LPVOID, "lpContext")])
534 LPSURFACESTREAMINGCALLBACK = FunctionPointer(DWORD, "LPSURFACESTREAMINGCALLBACK", [DWORD])
536 DDSURFACEDESC = Struct("DDSURFACEDESC", [
542 (DWORD, "dwLinearSize"),
543 (DWORD, "dwBackBufferCount"),
544 (DWORD, "dwMipMapCount"),
545 (DWORD, "dwZBufferBitDepth"),
546 (DWORD, "dwRefreshRate"),
547 (DWORD, "dwAlphaBitDepth"),
548 (DWORD, "dwReserved"),
549 (LPVOID, "lpSurface"),
550 (DDCOLORKEY, "ddckCKDestOverlay"),
551 (DDCOLORKEY, "ddckCKDestBlt"),
552 (DDCOLORKEY, "ddckCKSrcOverlay"),
553 (DDCOLORKEY, "ddckCKSrcBlt"),
554 (DDPIXELFORMAT, "ddpfPixelFormat"),
555 (DDSCAPS, "ddsCaps"),
557 LPDDSURFACEDESC = Pointer(DDSURFACEDESC)
559 DDSURFACEDESC2 = Struct("DDSURFACEDESC2", [
565 (DWORD, "dwLinearSize"),
566 (DWORD, "dwBackBufferCount"),
568 (DWORD, "dwMipMapCount"),
569 (DWORD, "dwRefreshRate"),
570 (DWORD, "dwSrcVBHandle"),
571 (DWORD, "dwAlphaBitDepth"),
572 (DWORD, "dwReserved"),
573 (LPVOID, "lpSurface"),
574 (DDCOLORKEY, "ddckCKDestOverlay"),
575 (DWORD, "dwEmptyFaceColor"),
576 (DDCOLORKEY, "ddckCKDestBlt"),
577 (DDCOLORKEY, "ddckCKSrcOverlay"),
578 (DDCOLORKEY, "ddckCKSrcBlt"),
579 (DDPIXELFORMAT, "ddpfPixelFormat"),
581 (DDSCAPS2, "ddsCaps"),
582 (DWORD, "dwTextureStage"),
584 LPDDSURFACEDESC2 = Pointer(DDSURFACEDESC2)
586 DirectDrawSurfaceDescFlags = Flags(DWORD, [
591 "DDSD_BACKBUFFERCOUNT",
592 "DDSD_ZBUFFERBITDEPTH",
593 "DDSD_ALPHABITDEPTH",
596 "DDSD_CKDESTOVERLAY",
610 DDOPTSURFACEDESC = Struct("DDOPTSURFACEDESC", [
613 (DDSCAPS2, "ddSCaps"),
614 (DDOSCAPS, "ddOSCaps"),
616 (DWORD, "dwCompressionRatio"),
619 DDSD = Flags(DWORD, [
621 "DDOSD_COMPRESSION_RATIO",
627 DDOSDCAPS = Flags(DWORD, [
628 "DDOSDCAPS_OPTCOMPRESSED",
629 "DDOSDCAPS_OPTREORDERED",
630 "DDOSDCAPS_MONOLITHICMIPMAP",
631 "DDOSDCAPS_VALIDSCAPS",
632 "DDOSDCAPS_VALIDOSCAPS",
635 DDCOLORCONTROL = Struct("DDCOLORCONTROL", [
638 (LONG, "lBrightness"),
641 (LONG, "lSaturation"),
642 (LONG, "lSharpness"),
644 (LONG, "lColorEnable"),
645 (DWORD, "dwReserved1"),
647 LPDDCOLORCONTROL = Pointer(DDCOLORCONTROL)
649 DirectDrawEnumerateExFlags = Flags(DWORD, [
650 "DDENUM_ATTACHEDSECONDARYDEVICES",
651 "DDENUM_DETACHEDSECONDARYDEVICES",
652 "DDENUM_NONDISPLAYDEVICES",
655 DirectDrawCreateFlags = FakeEnum(DWORD, [
656 "DDCREATE_HARDWAREONLY",
657 "DDCREATE_EMULATIONONLY",
660 DirectDrawColorControlFlags = Flags(DWORD, [
661 "DDCOLOR_BRIGHTNESS",
664 "DDCOLOR_SATURATION",
667 "DDCOLOR_COLORENABLE",
670 DirectDrawCapsFlags = Flags(DWORD, [
673 "DDSCAPS_BACKBUFFER",
676 "DDSCAPS_FRONTBUFFER",
677 "DDSCAPS_OFFSCREENPLAIN",
680 "DDSCAPS_PRIMARYSURFACE",
682 "DDSCAPS_PRIMARYSURFACELEFT",
683 "DDSCAPS_SYSTEMMEMORY",
686 "DDSCAPS_VIDEOMEMORY",
696 "DDSCAPS_ALLOCONLOAD",
698 "DDSCAPS_LOCALVIDMEM",
699 "DDSCAPS_NONLOCALVIDMEM",
700 "DDSCAPS_STANDARDVGAMODE",
704 DirectDrawCapabilityFlags2 = Flags(DWORD, [
705 "DDSCAPS2_RESERVED4",
706 "DDSCAPS2_HARDWAREDEINTERLACE",
707 "DDSCAPS2_HINTDYNAMIC",
708 "DDSCAPS2_HINTSTATIC",
709 "DDSCAPS2_TEXTUREMANAGE",
710 "DDSCAPS2_RESERVED1",
711 "DDSCAPS2_RESERVED2",
713 "DDSCAPS2_HINTANTIALIASING",
715 "DDSCAPS2_CUBEMAP_ALLFACES",
716 "DDSCAPS2_CUBEMAP_POSITIVEX",
717 "DDSCAPS2_CUBEMAP_NEGATIVEX",
718 "DDSCAPS2_CUBEMAP_POSITIVEY",
719 "DDSCAPS2_CUBEMAP_NEGATIVEY",
720 "DDSCAPS2_CUBEMAP_POSITIVEZ",
721 "DDSCAPS2_CUBEMAP_NEGATIVEZ",
722 "DDSCAPS2_MIPMAPSUBLEVEL",
723 "DDSCAPS2_D3DTEXTUREMANAGE",
724 "DDSCAPS2_DONOTPERSIST",
725 "DDSCAPS2_STEREOSURFACELEFT",
727 "DDSCAPS2_NOTUSERLOCKABLE",
729 "DDSCAPS2_RTPATCHES",
731 "DDSCAPS2_RESERVED3",
732 "DDSCAPS2_DISCARDBACKBUFFER",
733 "DDSCAPS2_ENABLEALPHACHANNEL",
734 "DDSCAPS2_EXTENDEDFORMATPRIMARY",
735 "DDSCAPS2_ADDITIONALPRIMARY",
737 DDSCAPS3 = Flags(DWORD, [
738 "DDSCAPS3_MULTISAMPLE_MASK",
739 "DDSCAPS3_MULTISAMPLE_QUALITY_MASK",
740 "DDSCAPS3_MULTISAMPLE_QUALITY_SHIFT",
741 "DDSCAPS3_RESERVED1",
742 "DDSCAPS3_RESERVED2",
743 "DDSCAPS3_LIGHTWEIGHTMIPMAP",
744 "DDSCAPS3_AUTOGENMIPMAP",
746 "DDSCAPS3_CREATESHAREDRESOURCE",
747 "DDSCAPS3_READONLYRESOURCE",
748 "DDSCAPS3_OPENSHAREDRESOURCE",
751 DirectDrawDriverCapsFlags = Flags(DWORD, [
753 "DDCAPS_ALIGNBOUNDARYDEST",
754 "DDCAPS_ALIGNSIZEDEST",
755 "DDCAPS_ALIGNBOUNDARYSRC",
756 "DDCAPS_ALIGNSIZESRC",
757 "DDCAPS_ALIGNSTRIDE",
764 "DDCAPS_OVERLAYCANTCLIP",
765 "DDCAPS_OVERLAYFOURCC",
766 "DDCAPS_OVERLAYSTRETCH",
768 "DDCAPS_PALETTEVSYNC",
769 "DDCAPS_READSCANLINE",
776 "DDCAPS_COLORKEYHWASSIST",
778 "DDCAPS_BLTCOLORFILL",
779 "DDCAPS_BANKSWITCHED",
780 "DDCAPS_BLTDEPTHFILL",
782 "DDCAPS_CANCLIPSTRETCHED",
783 "DDCAPS_CANBLTSYSMEM",
786 DirectDrawDriverCapsFlags2 = Flags(DWORD, [
788 "DDCAPS2_NO2DDURING3DSCENE",
790 "DDCAPS2_AUTOFLIPOVERLAY",
791 "DDCAPS2_CANBOBINTERLEAVED",
792 "DDCAPS2_CANBOBNONINTERLEAVED",
793 "DDCAPS2_COLORCONTROLOVERLAY",
794 "DDCAPS2_COLORCONTROLPRIMARY",
795 "DDCAPS2_CANDROPZ16BIT",
796 "DDCAPS2_NONLOCALVIDMEM",
797 "DDCAPS2_NONLOCALVIDMEMCAPS",
798 "DDCAPS2_NOPAGELOCKREQUIRED",
799 "DDCAPS2_WIDESURFACES",
800 "DDCAPS2_CANFLIPODDEVEN",
801 "DDCAPS2_CANBOBHARDWARE",
802 "DDCAPS2_COPYFOURCC",
803 "DDCAPS2_PRIMARYGAMMA",
804 "DDCAPS2_CANRENDERWINDOWED",
805 "DDCAPS2_CANCALIBRATEGAMMA",
806 "DDCAPS2_FLIPINTERVAL",
807 "DDCAPS2_FLIPNOVSYNC",
808 "DDCAPS2_CANMANAGETEXTURE",
809 "DDCAPS2_TEXMANINNONLOCALVIDMEM",
811 "DDCAPS2_SYSTONONLOCAL_AS_SYSTOLOCAL",
813 "DDCAPS2_CANMANAGERESOURCE",
814 "DDCAPS2_DYNAMICTEXTURES",
815 "DDCAPS2_CANAUTOGENMIPMAP",
816 "DDCAPS2_CANSHARERESOURCE",
819 DirectDrawFxAlphaCapsFlags = Flags(DWORD, [
820 "DDFXALPHACAPS_BLTALPHAEDGEBLEND",
821 "DDFXALPHACAPS_BLTALPHAPIXELS",
822 "DDFXALPHACAPS_BLTALPHAPIXELSNEG",
823 "DDFXALPHACAPS_BLTALPHASURFACES",
824 "DDFXALPHACAPS_BLTALPHASURFACESNEG",
825 "DDFXALPHACAPS_OVERLAYALPHAEDGEBLEND",
826 "DDFXALPHACAPS_OVERLAYALPHAPIXELS",
827 "DDFXALPHACAPS_OVERLAYALPHAPIXELSNEG",
828 "DDFXALPHACAPS_OVERLAYALPHASURFACES",
829 "DDFXALPHACAPS_OVERLAYALPHASURFACESNEG",
832 DirectDrawFxCapsFlags = Flags(DWORD, [
833 "DDFXCAPS_BLTARITHSTRETCHY",
834 "DDFXCAPS_BLTARITHSTRETCHYN",
835 "DDFXCAPS_BLTMIRRORLEFTRIGHT",
836 "DDFXCAPS_BLTMIRRORUPDOWN",
837 "DDFXCAPS_BLTROTATION",
838 "DDFXCAPS_BLTROTATION90",
839 "DDFXCAPS_BLTSHRINKX",
840 "DDFXCAPS_BLTSHRINKXN",
841 "DDFXCAPS_BLTSHRINKY",
842 "DDFXCAPS_BLTSHRINKYN",
843 "DDFXCAPS_BLTSTRETCHX",
844 "DDFXCAPS_BLTSTRETCHXN",
845 "DDFXCAPS_BLTSTRETCHY",
846 "DDFXCAPS_BLTSTRETCHYN",
847 "DDFXCAPS_OVERLAYARITHSTRETCHY",
848 "DDFXCAPS_OVERLAYARITHSTRETCHYN",
849 "DDFXCAPS_OVERLAYSHRINKX",
850 "DDFXCAPS_OVERLAYSHRINKXN",
851 "DDFXCAPS_OVERLAYSHRINKY",
852 "DDFXCAPS_OVERLAYSHRINKYN",
853 "DDFXCAPS_OVERLAYSTRETCHX",
854 "DDFXCAPS_OVERLAYSTRETCHXN",
855 "DDFXCAPS_OVERLAYSTRETCHY",
856 "DDFXCAPS_OVERLAYSTRETCHYN",
857 "DDFXCAPS_OVERLAYMIRRORLEFTRIGHT",
858 "DDFXCAPS_OVERLAYMIRRORUPDOWN",
859 "DDFXCAPS_OVERLAYDEINTERLACE",
861 "DDFXCAPS_BLTFILTER",
862 "DDFXCAPS_OVERLAYALPHA",
863 "DDFXCAPS_OVERLAYFILTER",
866 DirectDrawStereoViewCapsFlags = Flags(DWORD, [
867 "DDSVCAPS_RESERVED1",
868 "DDSVCAPS_RESERVED2",
869 "DDSVCAPS_RESERVED3",
870 "DDSVCAPS_RESERVED4",
871 "DDSVCAPS_STEREOSEQUENTIAL",
874 DirectDrawPaletteCapsFlags = Flags(DWORD, [
876 "DDPCAPS_8BITENTRIES",
878 "DDPCAPS_INITIALIZE",
879 "DDPCAPS_PRIMARYSURFACE",
880 "DDPCAPS_PRIMARYSURFACELEFT",
888 DirectDrawSurfaceSetPrivateDataConstants = FakeEnum(DWORD, [
889 "DDSPD_IUNKNOWNPOINTER",
893 DirectDrawSurfaceSetPaletteConstants = FakeEnum(DWORD, [
903 DirectDrawSurfaceSetGetColorKeyFlags = Flags(DWORD, [
906 "DDCKEY_DESTOVERLAY",
911 DirectDrawColorKeyCapsFlags = Flags(DWORD, [
912 "DDCKEYCAPS_DESTBLT",
913 "DDCKEYCAPS_DESTBLTCLRSPACE",
914 "DDCKEYCAPS_DESTBLTCLRSPACEYUV",
915 "DDCKEYCAPS_DESTBLTYUV",
916 "DDCKEYCAPS_DESTOVERLAY",
917 "DDCKEYCAPS_DESTOVERLAYCLRSPACE",
918 "DDCKEYCAPS_DESTOVERLAYCLRSPACEYUV",
919 "DDCKEYCAPS_DESTOVERLAYONEACTIVE",
920 "DDCKEYCAPS_DESTOVERLAYYUV",
922 "DDCKEYCAPS_SRCBLTCLRSPACE",
923 "DDCKEYCAPS_SRCBLTCLRSPACEYUV",
924 "DDCKEYCAPS_SRCBLTYUV",
925 "DDCKEYCAPS_SRCOVERLAY",
926 "DDCKEYCAPS_SRCOVERLAYCLRSPACE",
927 "DDCKEYCAPS_SRCOVERLAYCLRSPACEYUV",
928 "DDCKEYCAPS_SRCOVERLAYONEACTIVE",
929 "DDCKEYCAPS_SRCOVERLAYYUV",
930 "DDCKEYCAPS_NOCOSTOVERLAY",
933 DirectDrawPixelFormatFlags = Flags(DWORD, [
937 "DDPF_PALETTEINDEXED4",
938 "DDPF_PALETTEINDEXEDTO8",
939 "DDPF_PALETTEINDEXED8",
945 "DDPF_PALETTEINDEXED1",
946 "DDPF_PALETTEINDEXED2",
948 "DDPF_STENCILBUFFER",
951 "DDPF_BUMPLUMINANCE",
955 DirectDrawEnumSurfacesFlags = Flags(DWORD, [
956 "DDENUMSURFACES_ALL",
957 "DDENUMSURFACES_MATCH",
958 "DDENUMSURFACES_NOMATCH",
959 "DDENUMSURFACES_CANBECREATED",
960 "DDENUMSURFACES_DOESEXIST",
963 DirectDrawSetDisplayModeFlags = Flags(DWORD, [
964 "DDSDM_STANDARDVGAMODE",
967 DirectDrawEnumDisplayModesFlags = Flags(DWORD, [
968 "DDEDM_REFRESHRATES",
969 "DDEDM_STANDARDVGAMODES",
972 DirectDrawSetCooperativeLevelFlags = Flags(DWORD, [
975 "DDSCL_NOWINDOWCHANGES",
979 "DDSCL_SETFOCUSWINDOW",
980 "DDSCL_SETDEVICEWINDOW",
981 "DDSCL_CREATEDEVICEWINDOW",
982 "DDSCL_MULTITHREADED",
987 DirectDrawBltFlags = Flags(DWORD, [
989 "DDBLT_ALPHADESTCONSTOVERRIDE",
990 "DDBLT_ALPHADESTNEG",
991 "DDBLT_ALPHADESTSURFACEOVERRIDE",
992 "DDBLT_ALPHAEDGEBLEND",
994 "DDBLT_ALPHASRCCONSTOVERRIDE",
996 "DDBLT_ALPHASRCSURFACEOVERRIDE",
1002 "DDBLT_KEYDESTOVERRIDE",
1004 "DDBLT_KEYSRCOVERRIDE",
1006 "DDBLT_ROTATIONANGLE",
1008 "DDBLT_ZBUFFERDESTCONSTOVERRIDE",
1009 "DDBLT_ZBUFFERDESTOVERRIDE",
1010 "DDBLT_ZBUFFERSRCCONSTOVERRIDE",
1011 "DDBLT_ZBUFFERSRCOVERRIDE",
1015 "DDBLT_PRESENTATION",
1016 "DDBLT_LAST_PRESENTATION",
1017 "DDBLT_EXTENDED_FLAGS",
1018 "DDBLT_EXTENDED_LINEAR_CONTENT",
1021 DirectDrawBltFastFlags = Flags(DWORD, [
1022 "DDBLTFAST_NOCOLORKEY",
1023 "DDBLTFAST_SRCCOLORKEY",
1024 "DDBLTFAST_DESTCOLORKEY",
1026 "DDBLTFAST_DONOTWAIT",
1029 DirectDrawFlipFlags = Flags(DWORD, [
1041 DirectDrawSurfaceOverlayFlags = Flags(DWORD, [
1043 "DDOVER_ALPHADESTCONSTOVERRIDE",
1044 "DDOVER_ALPHADESTNEG",
1045 "DDOVER_ALPHADESTSURFACEOVERRIDE",
1046 "DDOVER_ALPHAEDGEBLEND",
1048 "DDOVER_ALPHASRCCONSTOVERRIDE",
1049 "DDOVER_ALPHASRCNEG",
1050 "DDOVER_ALPHASRCSURFACEOVERRIDE",
1053 "DDOVER_KEYDESTOVERRIDE",
1055 "DDOVER_KEYSRCOVERRIDE",
1057 "DDOVER_ADDDIRTYRECT",
1058 "DDOVER_REFRESHDIRTYRECTS",
1059 "DDOVER_REFRESHALL",
1063 "DDOVER_OVERRIDEBOBWEAVE",
1064 "DDOVER_INTERLEAVED",
1065 "DDOVER_BOBHARDWARE",
1066 "DDOVER_ARGBSCALEFACTORS",
1067 "DDOVER_DEGRADEARGBSCALING",
1070 DDSETSURFACEDESC = Flags(DWORD, [
1071 #"DDSETSURFACEDESC_RECREATEDC",
1072 #"DDSETSURFACEDESC_PRESERVEDC",
1075 DirectDrawSurfaceLockFlags = Flags(DWORD, [
1076 "DDLOCK_SURFACEMEMORYPTR",
1082 "DDLOCK_NOOVERWRITE",
1083 "DDLOCK_DISCARDCONTENTS",
1086 "DDLOCK_HASVOLUMETEXTUREBOXRECT",
1087 "DDLOCK_NODIRTYUPDATE",
1090 DirectDrawSurfaceBltFxFlags = Flags(DWORD, [
1091 "DDBLTFX_ARITHSTRETCHY",
1092 "DDBLTFX_MIRRORLEFTRIGHT",
1093 "DDBLTFX_MIRRORUPDOWN",
1094 "DDBLTFX_NOTEARING",
1095 "DDBLTFX_ROTATE180",
1096 "DDBLTFX_ROTATE270",
1098 "DDBLTFX_ZBUFFERRANGE",
1099 "DDBLTFX_ZBUFFERBASEDEST",
1102 DirectDrawOverlayFxFlags = Flags(DWORD, [
1103 "DDOVERFX_ARITHSTRETCHY",
1104 "DDOVERFX_MIRRORLEFTRIGHT",
1105 "DDOVERFX_MIRRORUPDOWN",
1106 "DDOVERFX_DEINTERLACE",
1109 DirectDrawWaitForVerticalBlankFlags = Flags(DWORD, [
1110 "DDWAITVB_BLOCKBEGIN",
1111 "DDWAITVB_BLOCKBEGINEVENT",
1112 "DDWAITVB_BLOCKEND",
1115 DirectDrawGetFlipStatusFlags = Flags(DWORD, [
1120 DirectDrawGetBltStatusFlags = Flags(DWORD, [
1125 DirectDrawEnumOverlayZOrderFlags = Flags(DWORD, [
1126 "DDENUMOVERLAYZ_BACKTOFRONT",
1127 "DDENUMOVERLAYZ_FRONTTOBACK",
1130 DirectDrawUpdateOverlayZOrderFlags = Flags(DWORD, [
1131 "DDOVERZ_SENDTOFRONT",
1132 "DDOVERZ_SENDTOBACK",
1133 "DDOVERZ_MOVEFORWARD",
1134 "DDOVERZ_MOVEBACKWARD",
1135 "DDOVERZ_INSERTINFRONTOF",
1136 "DDOVERZ_INSERTINBACKOF",
1139 DirectDrawSetGammaRampFlags = Flags(DWORD, [
1143 DirectDrawStartModeTestFlags = Flags(DWORD, [
1144 "DDSMT_ISTESTREQUIRED",
1147 DirectDrawEvaluateModeFlags = Flags(DWORD, [
1152 DDRESULT = MAKE_HRESULT(ok = "DD_OK", false = "DD_FALSE", errors = [
1153 "DDERR_ALREADYINITIALIZED",
1154 "DDERR_CANNOTATTACHSURFACE",
1155 "DDERR_CANNOTDETACHSURFACE",
1156 "DDERR_CURRENTLYNOTAVAIL",
1159 "DDERR_HEIGHTALIGN",
1160 "DDERR_INCOMPATIBLEPRIMARY",
1161 "DDERR_INVALIDCAPS",
1162 "DDERR_INVALIDCLIPLIST",
1163 "DDERR_INVALIDMODE",
1164 "DDERR_INVALIDOBJECT",
1165 "DDERR_INVALIDPARAMS",
1166 "DDERR_INVALIDPIXELFORMAT",
1167 "DDERR_INVALIDRECT",
1168 "DDERR_LOCKEDSURFACES",
1171 "DDERR_NOSTEREOHARDWARE",
1172 "DDERR_NOSURFACELEFT",
1174 "DDERR_NOCOLORCONVHW",
1175 "DDERR_NOCOOPERATIVELEVELSET",
1177 "DDERR_NOCOLORKEYHW",
1178 "DDERR_NODIRECTDRAWSUPPORT",
1179 "DDERR_NOEXCLUSIVEMODE",
1184 "DDERR_NOOVERLAYHW",
1185 "DDERR_OVERLAPPINGRECTS",
1186 "DDERR_NORASTEROPHW",
1187 "DDERR_NOROTATIONHW",
1188 "DDERR_NOSTRETCHHW",
1189 "DDERR_NOT4BITCOLOR",
1190 "DDERR_NOT4BITCOLORINDEX",
1191 "DDERR_NOT8BITCOLOR",
1192 "DDERR_NOTEXTUREHW",
1194 "DDERR_NOZBUFFERHW",
1195 "DDERR_NOZOVERLAYHW",
1197 "DDERR_OUTOFMEMORY",
1198 "DDERR_OUTOFVIDEOMEMORY",
1199 "DDERR_OVERLAYCANTCLIP",
1200 "DDERR_OVERLAYCOLORKEYONLYONEACTIVE",
1201 "DDERR_PALETTEBUSY",
1202 "DDERR_COLORKEYNOTSET",
1203 "DDERR_SURFACEALREADYATTACHED",
1204 "DDERR_SURFACEALREADYDEPENDENT",
1205 "DDERR_SURFACEBUSY",
1206 "DDERR_CANTLOCKSURFACE",
1207 "DDERR_SURFACEISOBSCURED",
1208 "DDERR_SURFACELOST",
1209 "DDERR_SURFACENOTATTACHED",
1210 "DDERR_TOOBIGHEIGHT",
1212 "DDERR_TOOBIGWIDTH",
1213 "DDERR_UNSUPPORTED",
1214 "DDERR_UNSUPPORTEDFORMAT",
1215 "DDERR_UNSUPPORTEDMASK",
1216 "DDERR_INVALIDSTREAM",
1217 "DDERR_VERTICALBLANKINPROGRESS",
1218 "DDERR_WASSTILLDRAWING",
1219 "DDERR_DDSCAPSCOMPLEXREQUIRED",
1221 "DDERR_INVALIDDIRECTDRAWGUID",
1222 "DDERR_DIRECTDRAWALREADYCREATED",
1223 "DDERR_NODIRECTDRAWHW",
1224 "DDERR_PRIMARYSURFACEALREADYEXISTS",
1225 "DDERR_NOEMULATION",
1226 "DDERR_REGIONTOOSMALL",
1227 "DDERR_CLIPPERISUSINGHWND",
1228 "DDERR_NOCLIPPERATTACHED",
1230 "DDERR_HWNDSUBCLASSED",
1231 "DDERR_HWNDALREADYSET",
1232 "DDERR_NOPALETTEATTACHED",
1233 "DDERR_NOPALETTEHW",
1234 "DDERR_BLTFASTCANTCLIP",
1237 "DDERR_OVERLAYNOTVISIBLE",
1238 "DDERR_NOOVERLAYDEST",
1239 "DDERR_INVALIDPOSITION",
1240 "DDERR_NOTAOVERLAYSURFACE",
1241 "DDERR_EXCLUSIVEMODEALREADYSET",
1242 "DDERR_NOTFLIPPABLE",
1243 "DDERR_CANTDUPLICATE",
1245 "DDERR_CANTCREATEDC",
1248 "DDERR_IMPLICITLYCREATED",
1249 "DDERR_NOTPALETTIZED",
1250 "DDERR_UNSUPPORTEDMODE",
1252 "DDERR_INVALIDSURFACETYPE",
1253 "DDERR_NOOPTIMIZEHW",
1255 "DDERR_NOFOCUSWINDOW",
1256 "DDERR_NOTONMIPMAPSUBLEVEL",
1257 "DDERR_DCALREADYCREATED",
1258 "DDERR_NONONLOCALVIDMEM",
1259 "DDERR_CANTPAGELOCK",
1260 "DDERR_CANTPAGEUNLOCK",
1261 "DDERR_NOTPAGELOCKED",
1264 "DDERR_TESTFINISHED",
1266 "DDERR_D3DNOTINITIALIZED",
1267 "DDERR_VIDEONOTACTIVE",
1268 "DDERR_NOMONITORINFORMATION",
1269 "DDERR_NODRIVERSUPPORT",
1270 "DDERR_DEVICEDOESNTOWNSURFACE",
1271 "DDERR_NOTINITIALIZED",
1274 LPDDENUMMODESCALLBACK = FunctionPointer(HRESULT, "LPDDENUMMODESCALLBACK", [LPDDSURFACEDESC, LPVOID])
1275 LPDDENUMMODESCALLBACK2 = FunctionPointer(HRESULT, "LPDDENUMMODESCALLBACK2", [LPDDSURFACEDESC2, LPVOID])
1276 LPDDENUMSURFACESCALLBACK = FunctionPointer(HRESULT, "LPDDENUMSURFACESCALLBACK", [LPDIRECTDRAWSURFACE, LPDDSURFACEDESC, LPVOID])
1277 LPDDENUMSURFACESCALLBACK2 = FunctionPointer(HRESULT, "LPDDENUMSURFACESCALLBACK2", [LPDIRECTDRAWSURFACE4, LPDDSURFACEDESC2, LPVOID])
1278 LPDDENUMSURFACESCALLBACK7 = FunctionPointer(HRESULT, "LPDDENUMSURFACESCALLBACK7", [LPDIRECTDRAWSURFACE7, LPDDSURFACEDESC2, LPVOID])
1280 IDirectDraw.methods += [
1281 StdMethod(DDRESULT, "Compact", []),
1282 StdMethod(DDRESULT, "CreateClipper", [(DWORD, "dwFlags"), Out(Pointer(LPDIRECTDRAWCLIPPER), "lplpDDClipper"), (LPUNKNOWN, "pUnkOuter")]),
1283 StdMethod(DDRESULT, "CreatePalette", [(DirectDrawPaletteCapsFlags, "dwFlags"), (LPPALETTEENTRY, "lpDDColorArray"), Out(Pointer(LPDIRECTDRAWPALETTE), "lplpDDPalette"), (ObjPointer(IUnknown), "pUnkOuter")]),
1284 StdMethod(DDRESULT, "CreateSurface", [(LPDDSURFACEDESC, "lpDDSurfaceDesc"), Out(Pointer(LPDIRECTDRAWSURFACE), "lplpDDSurface"), (LPUNKNOWN, "pUnkOuter")]),
1285 StdMethod(DDRESULT, "DuplicateSurface", [(LPDIRECTDRAWSURFACE, "lpDDSurface"), Out(Pointer(LPDIRECTDRAWSURFACE), "lplpDupDDSurface")]),
1286 StdMethod(DDRESULT, "EnumDisplayModes", [(DirectDrawEnumDisplayModesFlags, "dwFlags"), (LPDDSURFACEDESC, "lpDDSurfaceDesc"), (LPVOID, "lpContext"), (LPDDENUMMODESCALLBACK, "lpEnumModesCallback")]),
1287 StdMethod(DDRESULT, "EnumSurfaces", [(DirectDrawEnumSurfacesFlags, "dwFlags"), (LPDDSURFACEDESC, "lpDDSurfaceDesc"), (LPVOID, "lpContext"), (LPDDENUMSURFACESCALLBACK, "lpEnumSurfacesCallback")]),
1288 StdMethod(DDRESULT, "FlipToGDISurface", []),
1289 StdMethod(DDRESULT, "GetCaps", [Out(LPDDCAPS, "lpDDDriverCaps"), Out(LPDDCAPS, "lpDDHELCaps")]),
1290 StdMethod(DDRESULT, "GetDisplayMode", [Out(LPDDSURFACEDESC, "lpDDSurfaceDesc")]),
1291 StdMethod(DDRESULT, "GetFourCCCodes", [Out(LPDWORD, "lpNumCodes"), Out(LPDWORD, "lpCodes")]),
1292 StdMethod(DDRESULT, "GetGDISurface", [Out(Pointer(LPDIRECTDRAWSURFACE), "lplpGDIDDSSurface")]),
1293 StdMethod(DDRESULT, "GetMonitorFrequency", [Out(LPDWORD, "lpdwFrequency")]),
1294 StdMethod(DDRESULT, "GetScanLine", [Out(LPDWORD, "lpdwScanLine")]),
1295 StdMethod(DDRESULT, "GetVerticalBlankStatus", [Out(LPBOOL, "lpbIsInVB")]),
1296 StdMethod(DDRESULT, "Initialize", [(Pointer(GUID), "lpGUID")]),
1297 StdMethod(DDRESULT, "RestoreDisplayMode", []),
1298 StdMethod(DDRESULT, "SetCooperativeLevel", [(HWND, "hWnd"), (DirectDrawSetCooperativeLevelFlags, "dwFlags")]),
1299 StdMethod(DDRESULT, "SetDisplayMode", [(DWORD, "dwWidth"), (DWORD, "dwHeight"), (DWORD, "dwBPP")]),
1300 StdMethod(DDRESULT, "WaitForVerticalBlank", [(DirectDrawWaitForVerticalBlankFlags, "dwFlags"), (HANDLE, "hEvent")]),
1303 IDirectDraw2.methods += [
1304 StdMethod(DDRESULT, "Compact", []),
1305 StdMethod(DDRESULT, "CreateClipper", [(DWORD, "dwFlags"), Out(Pointer(LPDIRECTDRAWCLIPPER), "lplpDDClipper"), (LPUNKNOWN, "pUnkOuter")]),
1306 StdMethod(DDRESULT, "CreatePalette", [(DirectDrawPaletteCapsFlags, "dwFlags"), (LPPALETTEENTRY, "lpDDColorArray"), Out(Pointer(LPDIRECTDRAWPALETTE), "lplpDDPalette"), (LPUNKNOWN, "pUnkOuter")]),
1307 StdMethod(DDRESULT, "CreateSurface", [(LPDDSURFACEDESC, "lpDDSurfaceDesc"), Out(Pointer(LPDIRECTDRAWSURFACE), "lplpDDSurface"), (LPUNKNOWN, "pUnkOuter")]),
1308 StdMethod(DDRESULT, "DuplicateSurface", [(LPDIRECTDRAWSURFACE, "lpDDSurface"), Out(Pointer(LPDIRECTDRAWSURFACE), "lplpDupDDSurface")]),
1309 StdMethod(DDRESULT, "EnumDisplayModes", [(DirectDrawEnumDisplayModesFlags, "dwFlags"), (LPDDSURFACEDESC, "lpDDSurfaceDesc"), (LPVOID, "lpContext"), (LPDDENUMMODESCALLBACK, "lpEnumModesCallback")]),
1310 StdMethod(DDRESULT, "EnumSurfaces", [(DirectDrawEnumSurfacesFlags, "dwFlags"), (LPDDSURFACEDESC, "lpDDSurfaceDesc"), (LPVOID, "lpContext"), (LPDDENUMSURFACESCALLBACK, "lpEnumSurfacesCallback")]),
1311 StdMethod(DDRESULT, "FlipToGDISurface", []),
1312 StdMethod(DDRESULT, "GetCaps", [Out(LPDDCAPS, "lpDDDriverCaps"), Out(LPDDCAPS, "lpDDHELCaps")]),
1313 StdMethod(DDRESULT, "GetDisplayMode", [Out(LPDDSURFACEDESC, "lpDDSurfaceDesc")]),
1314 StdMethod(DDRESULT, "GetFourCCCodes", [Out(LPDWORD, "lpNumCodes"), Out(LPDWORD, "lpCodes")]),
1315 StdMethod(DDRESULT, "GetGDISurface", [Out(Pointer(LPDIRECTDRAWSURFACE), "lplpGDIDDSSurface")]),
1316 StdMethod(DDRESULT, "GetMonitorFrequency", [Out(LPDWORD, "lpdwFrequency")]),
1317 StdMethod(DDRESULT, "GetScanLine", [Out(LPDWORD, "lpdwScanLine")]),
1318 StdMethod(DDRESULT, "GetVerticalBlankStatus", [Out(LPBOOL, "lpbIsInVB")]),
1319 StdMethod(DDRESULT, "Initialize", [(Pointer(GUID), "lpGUID")]),
1320 StdMethod(DDRESULT, "RestoreDisplayMode", []),
1321 StdMethod(DDRESULT, "SetCooperativeLevel", [(HWND, "hWnd"), (DirectDrawSetCooperativeLevelFlags, "dwFlags")]),
1322 StdMethod(DDRESULT, "SetDisplayMode", [(DWORD, "dwWidth"), (DWORD, "dwHeight"), (DWORD, "dwBPP"), (DWORD, "dwRefreshRate"), (DirectDrawSetDisplayModeFlags, "dwFlags")]),
1323 StdMethod(DDRESULT, "WaitForVerticalBlank", [(DirectDrawWaitForVerticalBlankFlags, "dwFlags"), (HANDLE, "hEvent")]),
1324 StdMethod(DDRESULT, "GetAvailableVidMem", [(LPDDSCAPS, "lpDDSCaps"), Out(LPDWORD, "lpdwTotal"), Out(LPDWORD, "lpdwFree")]),
1327 IDirectDraw4.methods += [
1328 StdMethod(DDRESULT, "Compact", []),
1329 StdMethod(DDRESULT, "CreateClipper", [(DWORD, "dwFlags"), Out(Pointer(LPDIRECTDRAWCLIPPER), "lplpDDClipper"), (LPUNKNOWN, "pUnkOuter")]),
1330 StdMethod(DDRESULT, "CreatePalette", [(DirectDrawPaletteCapsFlags, "dwFlags"), (LPPALETTEENTRY, "lpDDColorArray"), Out(Pointer(LPDIRECTDRAWPALETTE), "lplpDDPalette"), (ObjPointer(IUnknown), "pUnkOuter")]),
1331 StdMethod(DDRESULT, "CreateSurface", [(LPDDSURFACEDESC2, "lpDDSurfaceDesc"), Out(Pointer(LPDIRECTDRAWSURFACE4), "lplpDDSurface"), (LPUNKNOWN, "pUnkOuter")]),
1332 StdMethod(DDRESULT, "DuplicateSurface", [(LPDIRECTDRAWSURFACE4, "lpDDSurface"), Out(Pointer(LPDIRECTDRAWSURFACE4), "lplpDupDDSurface")]),
1333 StdMethod(DDRESULT, "EnumDisplayModes", [(DirectDrawEnumDisplayModesFlags, "dwFlags"), (LPDDSURFACEDESC2, "lpDDSurfaceDesc"), (LPVOID, "lpContext"), (LPDDENUMMODESCALLBACK2, "lpEnumModesCallback")]),
1334 StdMethod(DDRESULT, "EnumSurfaces", [(DirectDrawEnumSurfacesFlags, "dwFlags"), (LPDDSURFACEDESC2, "lpDDSurfaceDesc"), (LPVOID, "lpContext"), (LPDDENUMSURFACESCALLBACK2, "lpEnumSurfacesCallback")]),
1335 StdMethod(DDRESULT, "FlipToGDISurface", []),
1336 StdMethod(DDRESULT, "GetCaps", [Out(LPDDCAPS, "lpDDDriverCaps"), Out(LPDDCAPS, "lpDDHELCaps")]),
1337 StdMethod(DDRESULT, "GetDisplayMode", [Out(LPDDSURFACEDESC2, "lpDDSurfaceDesc")]),
1338 StdMethod(DDRESULT, "GetFourCCCodes", [Out(LPDWORD, "lpNumCodes"), Out(LPDWORD, "lpCodes")]),
1339 StdMethod(DDRESULT, "GetGDISurface", [Out(Pointer(LPDIRECTDRAWSURFACE4), "lplpGDIDDSSurface")]),
1340 StdMethod(DDRESULT, "GetMonitorFrequency", [Out(LPDWORD, "lpdwFrequency")]),
1341 StdMethod(DDRESULT, "GetScanLine", [Out(LPDWORD, "lpdwScanLine")]),
1342 StdMethod(DDRESULT, "GetVerticalBlankStatus", [Out(LPBOOL, "lpbIsInVB")]),
1343 StdMethod(DDRESULT, "Initialize", [(Pointer(GUID), "lpGUID")]),
1344 StdMethod(DDRESULT, "RestoreDisplayMode", []),
1345 StdMethod(DDRESULT, "SetCooperativeLevel", [(HWND, "hWnd"), (DirectDrawSetCooperativeLevelFlags, "dwFlags")]),
1346 StdMethod(DDRESULT, "SetDisplayMode", [(DWORD, "dwWidth"), (DWORD, "dwHeight"), (DWORD, "dwBPP"), (DWORD, "dwRefreshRate"), (DirectDrawSetDisplayModeFlags, "dwFlags")]),
1347 StdMethod(DDRESULT, "WaitForVerticalBlank", [(DirectDrawWaitForVerticalBlankFlags, "dwFlags"), (HANDLE, "hEvent")]),
1348 StdMethod(DDRESULT, "GetAvailableVidMem", [(LPDDSCAPS2, "lpDDSCaps"), Out(LPDWORD, "lpdwTotal"), Out(LPDWORD, "lpdwFree")]),
1349 StdMethod(DDRESULT, "GetSurfaceFromDC", [(HDC, "hdc"), Out(Pointer(LPDIRECTDRAWSURFACE4), "lpDDSurface")]),
1350 StdMethod(DDRESULT, "RestoreAllSurfaces", []),
1351 StdMethod(DDRESULT, "TestCooperativeLevel", []),
1352 StdMethod(DDRESULT, "GetDeviceIdentifier", [Out(LPDDDEVICEIDENTIFIER, "lpDDDI"), (DirectDrawGetDeviceIdentifierFlags, "dwFlags")]),
1355 IDirectDraw7.methods += [
1356 StdMethod(DDRESULT, "Compact", []),
1357 StdMethod(DDRESULT, "CreateClipper", [(DWORD, "dwFlags"), Out(Pointer(LPDIRECTDRAWCLIPPER), "lplpDDClipper"), (LPUNKNOWN, "pUnkOuter")]),
1358 StdMethod(DDRESULT, "CreatePalette", [(DirectDrawPaletteCapsFlags, "dwFlags"), (LPPALETTEENTRY, "lpDDColorArray"), Out(Pointer(LPDIRECTDRAWPALETTE), "lplpDDPalette"), (LPUNKNOWN, "pUnkOuter")]),
1359 StdMethod(DDRESULT, "CreateSurface", [(LPDDSURFACEDESC2, "lpDDSurfaceDesc"), Out(Pointer(LPDIRECTDRAWSURFACE7), "lplpDDSurface"), (LPUNKNOWN, "pUnkOuter")]),
1360 StdMethod(DDRESULT, "DuplicateSurface", [(LPDIRECTDRAWSURFACE7, "lpDDSurface"), Out(Pointer(LPDIRECTDRAWSURFACE7), "lplpDupDDSurface")]),
1361 StdMethod(DDRESULT, "EnumDisplayModes", [(DirectDrawEnumDisplayModesFlags, "dwFlags"), (LPDDSURFACEDESC2, "lpDDSurfaceDesc"), (LPVOID, "lpContext"), (LPDDENUMMODESCALLBACK2, "lpEnumModesCallback")]),
1362 StdMethod(DDRESULT, "EnumSurfaces", [(DirectDrawEnumSurfacesFlags, "dwFlags"), (LPDDSURFACEDESC2, "lpDDSurfaceDesc"), (LPVOID, "lpContext"), (LPDDENUMSURFACESCALLBACK7, "lpEnumSurfacesCallback")]),
1363 StdMethod(DDRESULT, "FlipToGDISurface", []),
1364 StdMethod(DDRESULT, "GetCaps", [Out(LPDDCAPS, "lpDDDriverCaps"), Out(LPDDCAPS, "lpDDHELCaps")]),
1365 StdMethod(DDRESULT, "GetDisplayMode", [Out(LPDDSURFACEDESC2, "lpDDSurfaceDesc")]),
1366 StdMethod(DDRESULT, "GetFourCCCodes", [Out(LPDWORD, "lpNumCodes"), Out(LPDWORD, "lpCodes")]),
1367 StdMethod(DDRESULT, "GetGDISurface", [Out(Pointer(LPDIRECTDRAWSURFACE7), "lplpGDIDDSSurface")]),
1368 StdMethod(DDRESULT, "GetMonitorFrequency", [Out(LPDWORD, "lpdwFrequency")]),
1369 StdMethod(DDRESULT, "GetScanLine", [Out(LPDWORD, "lpdwScanLine")]),
1370 StdMethod(DDRESULT, "GetVerticalBlankStatus", [Out(LPBOOL, "lpbIsInVB")]),
1371 StdMethod(DDRESULT, "Initialize", [(Pointer(GUID), "lpGUID")]),
1372 StdMethod(DDRESULT, "RestoreDisplayMode", []),
1373 StdMethod(DDRESULT, "SetCooperativeLevel", [(HWND, "hWnd"), (DirectDrawSetCooperativeLevelFlags, "dwFlags")]),
1374 StdMethod(DDRESULT, "SetDisplayMode", [(DWORD, "dwWidth"), (DWORD, "dwHeight"), (DWORD, "dwBPP"), (DWORD, "dwRefreshRate"), (DirectDrawSetDisplayModeFlags, "dwFlags")]),
1375 StdMethod(DDRESULT, "WaitForVerticalBlank", [(DirectDrawWaitForVerticalBlankFlags, "dwFlags"), (HANDLE, "hEvent")]),
1376 StdMethod(DDRESULT, "GetAvailableVidMem", [(LPDDSCAPS2, "lpDDSCaps"), Out(LPDWORD, "lpdwTotal"), Out(LPDWORD, "lpdwFree")]),
1377 StdMethod(DDRESULT, "GetSurfaceFromDC", [(HDC, "hdc"), Out(Pointer(LPDIRECTDRAWSURFACE7), "lpDDSurface")]),
1378 StdMethod(DDRESULT, "RestoreAllSurfaces", []),
1379 StdMethod(DDRESULT, "TestCooperativeLevel", []),
1380 StdMethod(DDRESULT, "GetDeviceIdentifier", [Out(LPDDDEVICEIDENTIFIER2, "lpDDDI"), (DirectDrawGetDeviceIdentifierFlags, "dwFlags")]),
1381 StdMethod(DDRESULT, "StartModeTest", [(LPSIZE, "lpModesToTest"), (DWORD, "dwNumEntries"), (DirectDrawStartModeTestFlags, "dwFlags")]),
1382 StdMethod(DDRESULT, "EvaluateMode", [(DirectDrawEvaluateModeFlags, "dwFlags"), Out(Pointer(DWORD), "pSecondsUntilTimeout")]),
1385 IDirectDrawPalette.methods += [
1386 StdMethod(DDRESULT, "GetCaps", [Out(Pointer(DirectDrawPaletteCapsFlags), "lpdwCaps")]),
1387 StdMethod(DDRESULT, "GetEntries", [(DWORD, "dwFlags"), (DWORD, "dwBase"), (DWORD, "dwNumEntries"), Out(LPPALETTEENTRY, "lpEntries")]),
1388 StdMethod(DDRESULT, "Initialize", [(LPDIRECTDRAW, "lpDD"), (DWORD, "dwFlags"), (LPPALETTEENTRY, "lpDDColorTable")]),
1389 StdMethod(DDRESULT, "SetEntries", [(DWORD, "dwFlags"), (DWORD, "dwStartingEntry"), (DWORD, "dwCount"), (LPPALETTEENTRY, "lpEntries")]),
1392 IDirectDrawClipper.methods += [
1393 StdMethod(DDRESULT, "GetClipList", [(LPRECT, "lpRect"), (LPRGNDATA, "lpClipList"), Out(LPDWORD, "lpdwSize")]),
1394 StdMethod(DDRESULT, "GetHWnd", [Out(Pointer(HWND), "hWnd")]),
1395 StdMethod(DDRESULT, "Initialize", [(LPDIRECTDRAW, "lpDD"), (DWORD, "dwFlags")]),
1396 StdMethod(DDRESULT, "IsClipListChanged", [Out(Pointer(BOOL), "lpbChanged")]),
1397 StdMethod(DDRESULT, "SetClipList", [(LPRGNDATA, "lpClipList"), (DWORD, "dwFlags")]),
1398 StdMethod(DDRESULT, "SetHWnd", [(DWORD, "dwFlags"), (HWND, "hWnd")]),
1402 IDirectDrawSurface.methods += [
1403 StdMethod(DDRESULT, "AddAttachedSurface", [(LPDIRECTDRAWSURFACE, "lpDDSAttachedSurface")]),
1404 StdMethod(DDRESULT, "AddOverlayDirtyRect", [(LPRECT, "lpRect")]),
1405 StdMethod(DDRESULT, "Blt", [(LPRECT, "lpDestRect"), (LPDIRECTDRAWSURFACE, "lpDDSrcSurface"), (LPRECT, "lpSrcRect"), (DirectDrawBltFlags, "dwFlags"), (LPDDBLTFX, "lpDDBltFx")]),
1406 StdMethod(DDRESULT, "BltBatch", [(LPDDBLTBATCH, "lpDDBltBatch"), (DWORD, "dwCount"), (DWORD, "dwFlags")]),
1407 StdMethod(DDRESULT, "BltFast", [(DWORD, "dwX"), (DWORD, "dwY"), (LPDIRECTDRAWSURFACE, "lpDDSrcSurface"), (LPRECT, "lpSrcRect"), (DWORD, "dwTrans")]),
1408 StdMethod(DDRESULT, "DeleteAttachedSurface", [(DWORD, "dwFlags"), (LPDIRECTDRAWSURFACE, "lpDDSurface")]),
1409 StdMethod(DDRESULT, "EnumAttachedSurfaces", [(LPVOID, "lpContext"), (LPDDENUMSURFACESCALLBACK, "lpEnumSurfacesCallback")]),
1410 StdMethod(DDRESULT, "EnumOverlayZOrders", [(DirectDrawEnumOverlayZOrderFlags, "dwFlags"), (LPVOID, "lpContext"), (LPDDENUMSURFACESCALLBACK, "lpfnCallback")]),
1411 StdMethod(DDRESULT, "Flip", [(LPDIRECTDRAWSURFACE, "lpDDSurfaceTargetOverride"), (DirectDrawFlipFlags, "dwFlags")]),
1412 StdMethod(DDRESULT, "GetAttachedSurface", [(LPDDSCAPS, "lpDDSCaps"), Out(Pointer(LPDIRECTDRAWSURFACE), "lplpDDAttachedSurface")]),
1413 StdMethod(DDRESULT, "GetBltStatus", [(DirectDrawGetBltStatusFlags, "dwFlags")]),
1414 StdMethod(DDRESULT, "GetCaps", [Out(LPDDSCAPS, "lpDDSCaps")]),
1415 StdMethod(DDRESULT, "GetClipper", [Out(Pointer(LPDIRECTDRAWCLIPPER), "lplpDDClipper")]),
1416 StdMethod(DDRESULT, "GetColorKey", [(DirectDrawSurfaceSetGetColorKeyFlags, "dwFlags"), Out(LPDDCOLORKEY, "lpDDColorKey")]),
1417 StdMethod(DDRESULT, "GetDC", [Out(Pointer(HDC), "phDC")]),
1418 StdMethod(DDRESULT, "GetFlipStatus", [(DWORD, "dwFlags")]),
1419 StdMethod(DDRESULT, "GetOverlayPosition", [Out(LPLONG, "lplX"), Out(LPLONG, "lplY")]),
1420 StdMethod(DDRESULT, "GetPalette", [Out(Pointer(LPDIRECTDRAWPALETTE), "lplpDDPalette")]),
1421 StdMethod(DDRESULT, "GetPixelFormat", [Out(LPDDPIXELFORMAT, "lpDDPixelFormat")]),
1422 StdMethod(DDRESULT, "GetSurfaceDesc", [Out(LPDDSURFACEDESC, "lpDDSurfaceDesc")]),
1423 StdMethod(DDRESULT, "Initialize", [(LPDIRECTDRAW, "lpDD"), (LPDDSURFACEDESC, "lpDDSurfaceDesc")]),
1424 StdMethod(DDRESULT, "IsLost", []),
1425 StdMethod(DDRESULT, "Lock", [(LPRECT, "lpDestRect"), (LPDDSURFACEDESC, "lpDDSurfaceDesc"), (DirectDrawSurfaceLockFlags, "dwFlags"), (HANDLE, "hEvent")]),
1426 StdMethod(DDRESULT, "ReleaseDC", [(HDC, "hDC")]),
1427 StdMethod(DDRESULT, "Restore", []),
1428 StdMethod(DDRESULT, "SetClipper", [(LPDIRECTDRAWCLIPPER, "lpDDClipper")]),
1429 StdMethod(DDRESULT, "SetColorKey", [(DirectDrawSurfaceSetGetColorKeyFlags, "dwFlags"), Out(LPDDCOLORKEY, "lpDDColorKey")]),
1430 StdMethod(DDRESULT, "SetOverlayPosition", [(LONG, "lX"), (LONG, "lY")]),
1431 StdMethod(DDRESULT, "SetPalette", [(LPDIRECTDRAWPALETTE, "lpDDPalette")]),
1432 StdMethod(DDRESULT, "Unlock", [(LPVOID, "lp")]),
1433 StdMethod(DDRESULT, "UpdateOverlay", [(LPRECT, "lpSrcRect"), (LPDIRECTDRAWSURFACE, "lpDDDestSurface"), (LPRECT, "lpDestRect"), (DirectDrawSurfaceOverlayFlags, "dwFlags"), (LPDDOVERLAYFX, "lpDDOverlayFx")]),
1434 StdMethod(DDRESULT, "UpdateOverlayDisplay", [(DWORD, "dwFlags")]),
1435 StdMethod(DDRESULT, "UpdateOverlayZOrder", [(DirectDrawUpdateOverlayZOrderFlags, "dwFlags"), (LPDIRECTDRAWSURFACE, "lpDDSReference")]),
1438 IDirectDrawSurface2.methods += [
1439 StdMethod(DDRESULT, "AddAttachedSurface", [(LPDIRECTDRAWSURFACE2, "lpDDSAttachedSurface")]),
1440 StdMethod(DDRESULT, "AddOverlayDirtyRect", [(LPRECT, "lpRect")]),
1441 StdMethod(DDRESULT, "Blt", [(LPRECT, "lpDestRect"), (LPDIRECTDRAWSURFACE2, "lpDDSrcSurface"), (LPRECT, "lpSrcRect"), (DirectDrawBltFlags, "dwFlags"), (LPDDBLTFX, "lpDDBltFx")]),
1442 StdMethod(DDRESULT, "BltBatch", [(LPDDBLTBATCH, "lpDDBltBatch"), (DWORD, "dwCount"), (DWORD, "dwFlags")]),
1443 StdMethod(DDRESULT, "BltFast", [(DWORD, "dwX"), (DWORD, "dwY"), (LPDIRECTDRAWSURFACE2, "lpDDSrcSurface"), (LPRECT, "lpSrcRect"), (DWORD, "dwTrans")]),
1444 StdMethod(DDRESULT, "DeleteAttachedSurface", [(DWORD, "dwFlags"), (LPDIRECTDRAWSURFACE2, "lpDDSurface")]),
1445 StdMethod(DDRESULT, "EnumAttachedSurfaces", [(LPVOID, "lpContext"), (LPDDENUMSURFACESCALLBACK, "lpEnumSurfacesCallback")]),
1446 StdMethod(DDRESULT, "EnumOverlayZOrders", [(DirectDrawEnumOverlayZOrderFlags, "dwFlags"), (LPVOID, "lpContext"), (LPDDENUMSURFACESCALLBACK, "lpfnCallback")]),
1447 StdMethod(DDRESULT, "Flip", [(LPDIRECTDRAWSURFACE2, "lpDDSurfaceTargetOverride"), (DirectDrawFlipFlags, "dwFlags")]),
1448 StdMethod(DDRESULT, "GetAttachedSurface", [(LPDDSCAPS, "lpDDSCaps"), Out(Pointer(LPDIRECTDRAWSURFACE2), "lplpDDAttachedSurface")]),
1449 StdMethod(DDRESULT, "GetBltStatus", [(DirectDrawGetBltStatusFlags, "dwFlags")]),
1450 StdMethod(DDRESULT, "GetCaps", [Out(LPDDSCAPS, "lpDDSCaps")]),
1451 StdMethod(DDRESULT, "GetClipper", [Out(Pointer(LPDIRECTDRAWCLIPPER), "lplpDDClipper")]),
1452 StdMethod(DDRESULT, "GetColorKey", [(DirectDrawSurfaceSetGetColorKeyFlags, "dwFlags"), Out(LPDDCOLORKEY, "lpDDColorKey")]),
1453 StdMethod(DDRESULT, "GetDC", [Out(Pointer(HDC), "phDC")]),
1454 StdMethod(DDRESULT, "GetFlipStatus", [(DWORD, "dwFlags")]),
1455 StdMethod(DDRESULT, "GetOverlayPosition", [Out(LPLONG, "lplX"), Out(LPLONG, "lplY")]),
1456 StdMethod(DDRESULT, "GetPalette", [Out(Pointer(LPDIRECTDRAWPALETTE), "lplpDDPalette")]),
1457 StdMethod(DDRESULT, "GetPixelFormat", [Out(LPDDPIXELFORMAT, "lpDDPixelFormat")]),
1458 StdMethod(DDRESULT, "GetSurfaceDesc", [Out(LPDDSURFACEDESC, "lpDDSurfaceDesc")]),
1459 StdMethod(DDRESULT, "Initialize", [(LPDIRECTDRAW, "lpDD"), (LPDDSURFACEDESC, "lpDDSurfaceDesc")]),
1460 StdMethod(DDRESULT, "IsLost", []),
1461 StdMethod(DDRESULT, "Lock", [(LPRECT, "lpDestRect"), (LPDDSURFACEDESC, "lpDDSurfaceDesc"), (DirectDrawSurfaceLockFlags, "dwFlags"), (HANDLE, "hEvent")]),
1462 StdMethod(DDRESULT, "ReleaseDC", [(HDC, "hDC")]),
1463 StdMethod(DDRESULT, "Restore", []),
1464 StdMethod(DDRESULT, "SetClipper", [(LPDIRECTDRAWCLIPPER, "lpDDClipper")]),
1465 StdMethod(DDRESULT, "SetColorKey", [(DirectDrawSurfaceSetGetColorKeyFlags, "dwFlags"), Out(LPDDCOLORKEY, "lpDDColorKey")]),
1466 StdMethod(DDRESULT, "SetOverlayPosition", [(LONG, "lX"), (LONG, "lY")]),
1467 StdMethod(DDRESULT, "SetPalette", [(LPDIRECTDRAWPALETTE, "lpDDPalette")]),
1468 StdMethod(DDRESULT, "Unlock", [(LPVOID, "lp")]),
1469 StdMethod(DDRESULT, "UpdateOverlay", [(LPRECT, "lpSrcRect"), (LPDIRECTDRAWSURFACE2, "lpDDDestSurface"), (LPRECT, "lpDestRect"), (DirectDrawSurfaceOverlayFlags, "dwFlags"), (LPDDOVERLAYFX, "lpDDOverlayFx")]),
1470 StdMethod(DDRESULT, "UpdateOverlayDisplay", [(DWORD, "dwFlags")]),
1471 StdMethod(DDRESULT, "UpdateOverlayZOrder", [(DirectDrawUpdateOverlayZOrderFlags, "dwFlags"), (LPDIRECTDRAWSURFACE2, "lpDDSReference")]),
1472 StdMethod(DDRESULT, "GetDDInterface", [Out(LPUNKNOWN, "lplpDD")]),
1473 StdMethod(DDRESULT, "PageLock", [(DWORD, "dwFlags")]),
1474 StdMethod(DDRESULT, "PageUnlock", [(DWORD, "dwFlags")]),
1477 IDirectDrawSurface3.methods += [
1478 StdMethod(DDRESULT, "AddAttachedSurface", [(LPDIRECTDRAWSURFACE3, "lpDDSAttachedSurface")]),
1479 StdMethod(DDRESULT, "AddOverlayDirtyRect", [(LPRECT, "lpRect")]),
1480 StdMethod(DDRESULT, "Blt", [(LPRECT, "lpDestRect"), (LPDIRECTDRAWSURFACE3, "lpDDSrcSurface"), (LPRECT, "lpSrcRect"), (DirectDrawBltFlags, "dwFlags"), (LPDDBLTFX, "lpDDBltFx")]),
1481 StdMethod(DDRESULT, "BltBatch", [(LPDDBLTBATCH, "lpDDBltBatch"), (DWORD, "dwCount"), (DWORD, "dwFlags")]),
1482 StdMethod(DDRESULT, "BltFast", [(DWORD, "dwX"), (DWORD, "dwY"), (LPDIRECTDRAWSURFACE3, "lpDDSrcSurface"), (LPRECT, "lpSrcRect"), (DWORD, "dwTrans")]),
1483 StdMethod(DDRESULT, "DeleteAttachedSurface", [(DWORD, "dwFlags"), (LPDIRECTDRAWSURFACE3, "lpDDSurface")]),
1484 StdMethod(DDRESULT, "EnumAttachedSurfaces", [(LPVOID, "lpContext"), (LPDDENUMSURFACESCALLBACK, "lpEnumSurfacesCallback")]),
1485 StdMethod(DDRESULT, "EnumOverlayZOrders", [(DirectDrawEnumOverlayZOrderFlags, "dwFlags"), (LPVOID, "lpContext"), (LPDDENUMSURFACESCALLBACK, "lpfnCallback")]),
1486 StdMethod(DDRESULT, "Flip", [(LPDIRECTDRAWSURFACE3, "lpDDSurfaceTargetOverride"), (DirectDrawFlipFlags, "dwFlags")]),
1487 StdMethod(DDRESULT, "GetAttachedSurface", [(LPDDSCAPS, "lpDDSCaps"), Out(Pointer(LPDIRECTDRAWSURFACE3), "lplpDDAttachedSurface")]),
1488 StdMethod(DDRESULT, "GetBltStatus", [(DirectDrawGetBltStatusFlags, "dwFlags")]),
1489 StdMethod(DDRESULT, "GetCaps", [Out(LPDDSCAPS, "lpDDSCaps")]),
1490 StdMethod(DDRESULT, "GetClipper", [Out(Pointer(LPDIRECTDRAWCLIPPER), "lplpDDClipper")]),
1491 StdMethod(DDRESULT, "GetColorKey", [(DirectDrawSurfaceSetGetColorKeyFlags, "dwFlags"), Out(LPDDCOLORKEY, "lpDDColorKey")]),
1492 StdMethod(DDRESULT, "GetDC", [Out(Pointer(HDC), "phDC")]),
1493 StdMethod(DDRESULT, "GetFlipStatus", [(DWORD, "dwFlags")]),
1494 StdMethod(DDRESULT, "GetOverlayPosition", [Out(LPLONG, "lplX"), Out(LPLONG, "lplY")]),
1495 StdMethod(DDRESULT, "GetPalette", [Out(Pointer(LPDIRECTDRAWPALETTE), "lplpDDPalette")]),
1496 StdMethod(DDRESULT, "GetPixelFormat", [Out(LPDDPIXELFORMAT, "lpDDPixelFormat")]),
1497 StdMethod(DDRESULT, "GetSurfaceDesc", [Out(LPDDSURFACEDESC, "lpDDSurfaceDesc")]),
1498 StdMethod(DDRESULT, "Initialize", [(LPDIRECTDRAW, "lpDD"), (LPDDSURFACEDESC, "lpDDSurfaceDesc")]),
1499 StdMethod(DDRESULT, "IsLost", []),
1500 StdMethod(DDRESULT, "Lock", [(LPRECT, "lpDestRect"), (LPDDSURFACEDESC, "lpDDSurfaceDesc"), (DirectDrawSurfaceLockFlags, "dwFlags"), (HANDLE, "hEvent")]),
1501 StdMethod(DDRESULT, "ReleaseDC", [(HDC, "hDC")]),
1502 StdMethod(DDRESULT, "Restore", []),
1503 StdMethod(DDRESULT, "SetClipper", [(LPDIRECTDRAWCLIPPER, "lpDDClipper")]),
1504 StdMethod(DDRESULT, "SetColorKey", [(DirectDrawSurfaceSetGetColorKeyFlags, "dwFlags"), Out(LPDDCOLORKEY, "lpDDColorKey")]),
1505 StdMethod(DDRESULT, "SetOverlayPosition", [(LONG, "lX"), (LONG, "lY")]),
1506 StdMethod(DDRESULT, "SetPalette", [(LPDIRECTDRAWPALETTE, "lpDDPalette")]),
1507 StdMethod(DDRESULT, "Unlock", [(LPVOID, "lp")]),
1508 StdMethod(DDRESULT, "UpdateOverlay", [(LPRECT, "lpSrcRect"), (LPDIRECTDRAWSURFACE3, "lpDDDestSurface"), (LPRECT, "lpDestRect"), (DirectDrawSurfaceOverlayFlags, "dwFlags"), (LPDDOVERLAYFX, "lpDDOverlayFx")]),
1509 StdMethod(DDRESULT, "UpdateOverlayDisplay", [(DWORD, "dwFlags")]),
1510 StdMethod(DDRESULT, "UpdateOverlayZOrder", [(DirectDrawUpdateOverlayZOrderFlags, "dwFlags"), (LPDIRECTDRAWSURFACE3, "lpDDSReference")]),
1511 StdMethod(DDRESULT, "GetDDInterface", [Out(LPUNKNOWN, "lplpDD")]),
1512 StdMethod(DDRESULT, "PageLock", [(DWORD, "dwFlags")]),
1513 StdMethod(DDRESULT, "PageUnlock", [(DWORD, "dwFlags")]),
1514 StdMethod(DDRESULT, "SetSurfaceDesc", [(LPDDSURFACEDESC, "lpDDSD"), (DWORD, "dwFlags")]),
1517 IDirectDrawSurface4.methods += [
1518 StdMethod(DDRESULT, "AddAttachedSurface", [(LPDIRECTDRAWSURFACE4, "lpDDSAttachedSurface")]),
1519 StdMethod(DDRESULT, "AddOverlayDirtyRect", [(LPRECT, "lpRect")]),
1520 StdMethod(DDRESULT, "Blt", [(LPRECT, "lpDestRect"), (LPDIRECTDRAWSURFACE4, "lpDDSrcSurface"), (LPRECT, "lpSrcRect"), (DirectDrawBltFlags, "dwFlags"), (LPDDBLTFX, "lpDDBltFx")]),
1521 StdMethod(DDRESULT, "BltBatch", [(LPDDBLTBATCH, "lpDDBltBatch"), (DWORD, "dwCount"), (DWORD, "dwFlags")]),
1522 StdMethod(DDRESULT, "BltFast", [(DWORD, "dwX"), (DWORD, "dwY"), (LPDIRECTDRAWSURFACE4, "lpDDSrcSurface"), (LPRECT, "lpSrcRect"), (DWORD, "dwTrans")]),
1523 StdMethod(DDRESULT, "DeleteAttachedSurface", [(DWORD, "dwFlags"), (LPDIRECTDRAWSURFACE4, "lpDDSurface")]),
1524 StdMethod(DDRESULT, "EnumAttachedSurfaces", [(LPVOID, "lpContext"), (LPDDENUMSURFACESCALLBACK2, "lpEnumSurfacesCallback")]),
1525 StdMethod(DDRESULT, "EnumOverlayZOrders", [(DirectDrawEnumOverlayZOrderFlags, "dwFlags"), (LPVOID, "lpContext"), (LPDDENUMSURFACESCALLBACK2, "lpfnCallback")]),
1526 StdMethod(DDRESULT, "Flip", [(LPDIRECTDRAWSURFACE4, "lpDDSurfaceTargetOverride"), (DirectDrawFlipFlags, "dwFlags")]),
1527 StdMethod(DDRESULT, "GetAttachedSurface", [(LPDDSCAPS2, "lpDDSCaps"), Out(Pointer(LPDIRECTDRAWSURFACE4), "lplpDDAttachedSurface")]),
1528 StdMethod(DDRESULT, "GetBltStatus", [(DirectDrawGetBltStatusFlags, "dwFlags")]),
1529 StdMethod(DDRESULT, "GetCaps", [Out(LPDDSCAPS2, "lpDDSCaps")]),
1530 StdMethod(DDRESULT, "GetClipper", [Out(Pointer(LPDIRECTDRAWCLIPPER), "lplpDDClipper")]),
1531 StdMethod(DDRESULT, "GetColorKey", [(DirectDrawSurfaceSetGetColorKeyFlags, "dwFlags"), Out(LPDDCOLORKEY, "lpDDColorKey")]),
1532 StdMethod(DDRESULT, "GetDC", [Out(Pointer(HDC), "phDC")]),
1533 StdMethod(DDRESULT, "GetFlipStatus", [(DWORD, "dwFlags")]),
1534 StdMethod(DDRESULT, "GetOverlayPosition", [Out(LPLONG, "lplX"), Out(LPLONG, "lplY")]),
1535 StdMethod(DDRESULT, "GetPalette", [Out(Pointer(LPDIRECTDRAWPALETTE), "lplpDDPalette")]),
1536 StdMethod(DDRESULT, "GetPixelFormat", [Out(LPDDPIXELFORMAT, "lpDDPixelFormat")]),
1537 StdMethod(DDRESULT, "GetSurfaceDesc", [Out(LPDDSURFACEDESC2, "lpDDSurfaceDesc")]),
1538 StdMethod(DDRESULT, "Initialize", [(LPDIRECTDRAW, "lpDD"), (LPDDSURFACEDESC2, "lpDDSurfaceDesc")]),
1539 StdMethod(DDRESULT, "IsLost", []),
1540 StdMethod(DDRESULT, "Lock", [(LPRECT, "lpDestRect"), (LPDDSURFACEDESC2, "lpDDSurfaceDesc"), (DirectDrawSurfaceLockFlags, "dwFlags"), (HANDLE, "hEvent")]),
1541 StdMethod(DDRESULT, "ReleaseDC", [(HDC, "hDC")]),
1542 StdMethod(DDRESULT, "Restore", []),
1543 StdMethod(DDRESULT, "SetClipper", [(LPDIRECTDRAWCLIPPER, "lpDDClipper")]),
1544 StdMethod(DDRESULT, "SetColorKey", [(DirectDrawSurfaceSetGetColorKeyFlags, "dwFlags"), Out(LPDDCOLORKEY, "lpDDColorKey")]),
1545 StdMethod(DDRESULT, "SetOverlayPosition", [(LONG, "lX"), (LONG, "lY")]),
1546 StdMethod(DDRESULT, "SetPalette", [(LPDIRECTDRAWPALETTE, "lpDDPalette")]),
1547 StdMethod(DDRESULT, "Unlock", [(LPRECT, "lpRect")]),
1548 StdMethod(DDRESULT, "UpdateOverlay", [(LPRECT, "lpSrcRect"), (LPDIRECTDRAWSURFACE4, "lpDDDestSurface"), (LPRECT, "lpDestRect"), (DirectDrawSurfaceOverlayFlags, "dwFlags"), (LPDDOVERLAYFX, "lpDDOverlayFx")]),
1549 StdMethod(DDRESULT, "UpdateOverlayDisplay", [(DWORD, "dwFlags")]),
1550 StdMethod(DDRESULT, "UpdateOverlayZOrder", [(DirectDrawUpdateOverlayZOrderFlags, "dwFlags"), (LPDIRECTDRAWSURFACE4, "lpDDSReference")]),
1551 StdMethod(DDRESULT, "GetDDInterface", [Out(Pointer(LPVOID), "lplpDD")]),
1552 StdMethod(DDRESULT, "PageLock", [(DWORD, "dwFlags")]),
1553 StdMethod(DDRESULT, "PageUnlock", [(DWORD, "dwFlags")]),
1554 StdMethod(DDRESULT, "SetSurfaceDesc", [(LPDDSURFACEDESC2, "lpDDSD"), (DWORD, "dwFlags")]),
1555 StdMethod(DDRESULT, "SetPrivateData", [(REFGUID, "guidTag"), (LPVOID, "lpData"), (DWORD, "cbSize"), (DWORD, "dwFlags")]),
1556 StdMethod(DDRESULT, "GetPrivateData", [(REFGUID, "guidTag"), (LPVOID, "lpData"), Out(LPDWORD, "lpcbBufferSize")]),
1557 StdMethod(DDRESULT, "FreePrivateData", [(REFGUID, "guidTag")]),
1558 StdMethod(DDRESULT, "GetUniquenessValue", [Out(LPDWORD, "lpValue")]),
1559 StdMethod(DDRESULT, "ChangeUniquenessValue", []),
1562 IDirectDrawSurface7.methods += [
1563 StdMethod(DDRESULT, "AddAttachedSurface", [(LPDIRECTDRAWSURFACE7, "lpDDSAttachedSurface")]),
1564 StdMethod(DDRESULT, "AddOverlayDirtyRect", [(LPRECT, "lpRect")]),
1565 StdMethod(DDRESULT, "Blt", [(LPRECT, "lpDestRect"), (LPDIRECTDRAWSURFACE7, "lpDDSrcSurface"), (LPRECT, "lpSrcRect"), (DirectDrawBltFlags, "dwFlags"), (LPDDBLTFX, "lpDDBltFx")]),
1566 StdMethod(DDRESULT, "BltBatch", [(LPDDBLTBATCH, "lpDDBltBatch"), (DWORD, "dwCount"), (DWORD, "dwFlags")]),
1567 StdMethod(DDRESULT, "BltFast", [(DWORD, "dwX"), (DWORD, "dwY"), (LPDIRECTDRAWSURFACE7, "lpDDSrcSurface"), (LPRECT, "lpSrcRect"), (DWORD, "dwTrans")]),
1568 StdMethod(DDRESULT, "DeleteAttachedSurface", [(DWORD, "dwFlags"), (LPDIRECTDRAWSURFACE7, "lpDDSurface")]),
1569 StdMethod(DDRESULT, "EnumAttachedSurfaces", [(LPVOID, "lpContext"), (LPDDENUMSURFACESCALLBACK7, "lpEnumSurfacesCallback")]),
1570 StdMethod(DDRESULT, "EnumOverlayZOrders", [(DirectDrawEnumOverlayZOrderFlags, "dwFlags"), (LPVOID, "lpContext"), (LPDDENUMSURFACESCALLBACK7, "lpfnCallback")]),
1571 StdMethod(DDRESULT, "Flip", [(LPDIRECTDRAWSURFACE7, "lpDDSurfaceTargetOverride"), (DirectDrawFlipFlags, "dwFlags")]),
1572 StdMethod(DDRESULT, "GetAttachedSurface", [(LPDDSCAPS2, "lpDDSCaps"), Out(Pointer(LPDIRECTDRAWSURFACE7), "lplpDDAttachedSurface")]),
1573 StdMethod(DDRESULT, "GetBltStatus", [(DirectDrawGetBltStatusFlags, "dwFlags")]),
1574 StdMethod(DDRESULT, "GetCaps", [Out(LPDDSCAPS2, "lpDDSCaps")]),
1575 StdMethod(DDRESULT, "GetClipper", [Out(Pointer(LPDIRECTDRAWCLIPPER), "lplpDDClipper")]),
1576 StdMethod(DDRESULT, "GetColorKey", [(DirectDrawSurfaceSetGetColorKeyFlags, "dwFlags"), Out(LPDDCOLORKEY, "lpDDColorKey")]),
1577 StdMethod(DDRESULT, "GetDC", [Out(Pointer(HDC), "phDC")]),
1578 StdMethod(DDRESULT, "GetFlipStatus", [(DWORD, "dwFlags")]),
1579 StdMethod(DDRESULT, "GetOverlayPosition", [Out(LPLONG, "lplX"), Out(LPLONG, "lplY")]),
1580 StdMethod(DDRESULT, "GetPalette", [Out(Pointer(LPDIRECTDRAWPALETTE), "lplpDDPalette")]),
1581 StdMethod(DDRESULT, "GetPixelFormat", [Out(LPDDPIXELFORMAT, "lpDDPixelFormat")]),
1582 StdMethod(DDRESULT, "GetSurfaceDesc", [Out(LPDDSURFACEDESC2, "lpDDSurfaceDesc")]),
1583 StdMethod(DDRESULT, "Initialize", [(LPDIRECTDRAW, "lpDD"), (LPDDSURFACEDESC2, "lpDDSurfaceDesc")]),
1584 StdMethod(DDRESULT, "IsLost", []),
1585 StdMethod(DDRESULT, "Lock", [(LPRECT, "lpDestRect"), (LPDDSURFACEDESC2, "lpDDSurfaceDesc"), (DirectDrawSurfaceLockFlags, "dwFlags"), (HANDLE, "hEvent")]),
1586 StdMethod(DDRESULT, "ReleaseDC", [(HDC, "hDC")]),
1587 StdMethod(DDRESULT, "Restore", []),
1588 StdMethod(DDRESULT, "SetClipper", [(LPDIRECTDRAWCLIPPER, "lpDDClipper")]),
1589 StdMethod(DDRESULT, "SetColorKey", [(DirectDrawSurfaceSetGetColorKeyFlags, "dwFlags"), Out(LPDDCOLORKEY, "lpDDColorKey")]),
1590 StdMethod(DDRESULT, "SetOverlayPosition", [(LONG, "lX"), (LONG, "lY")]),
1591 StdMethod(DDRESULT, "SetPalette", [(LPDIRECTDRAWPALETTE, "lpDDPalette")]),
1592 StdMethod(DDRESULT, "Unlock", [(LPRECT, "lpRect")]),
1593 StdMethod(DDRESULT, "UpdateOverlay", [(LPRECT, "lpSrcRect"), (LPDIRECTDRAWSURFACE7, "lpDDDestSurface"), (LPRECT, "lpDestRect"), (DirectDrawSurfaceOverlayFlags, "dwFlags"), (LPDDOVERLAYFX, "lpDDOverlayFx")]),
1594 StdMethod(DDRESULT, "UpdateOverlayDisplay", [(DWORD, "dwFlags")]),
1595 StdMethod(DDRESULT, "UpdateOverlayZOrder", [(DirectDrawUpdateOverlayZOrderFlags, "dwFlags"), (LPDIRECTDRAWSURFACE7, "lpDDSReference")]),
1596 StdMethod(DDRESULT, "GetDDInterface", [Out(Pointer(LPVOID), "lplpDD")]),
1597 StdMethod(DDRESULT, "PageLock", [(DWORD, "dwFlags")]),
1598 StdMethod(DDRESULT, "PageUnlock", [(DWORD, "dwFlags")]),
1599 StdMethod(DDRESULT, "SetSurfaceDesc", [(LPDDSURFACEDESC2, "lpDDSD"), (DWORD, "dwFlags")]),
1600 StdMethod(DDRESULT, "SetPrivateData", [(REFGUID, "guidTag"), (LPVOID, "lpData"), (DWORD, "cbSize"), (DWORD, "dwFlags")]),
1601 StdMethod(DDRESULT, "GetPrivateData", [(REFGUID, "guidTag"), (LPVOID, "lpData"), Out(LPDWORD, "lpcbBufferSize")]),
1602 StdMethod(DDRESULT, "FreePrivateData", [(REFGUID, "guidTag")]),
1603 StdMethod(DDRESULT, "GetUniquenessValue", [Out(LPDWORD, "lpValue")]),
1604 StdMethod(DDRESULT, "ChangeUniquenessValue", []),
1605 StdMethod(DDRESULT, "SetPriority", [(DWORD, "dwPriority")]),
1606 StdMethod(DDRESULT, "GetPriority", [Out(LPDWORD, "lpdwPriority")]),
1607 StdMethod(DDRESULT, "SetLOD", [(DWORD, "dwMaxLOD")]),
1608 StdMethod(DDRESULT, "GetLOD", [Out(LPDWORD, "lpdwMaxLOD")]),
1611 IDirectDrawColorControl.methods += [
1612 StdMethod(DDRESULT, "GetColorControls", [(LPDDCOLORCONTROL, "lpColorControl")]),
1613 StdMethod(DDRESULT, "SetColorControls", [(LPDDCOLORCONTROL, "lpColorControl")]),
1616 IDirectDrawGammaControl.methods += [
1617 StdMethod(DDRESULT, "GetGammaRamp", [(DWORD, "dwFlags"), Out(LPDDGAMMARAMP, "lpRampData")]),
1618 StdMethod(DDRESULT, "SetGammaRamp", [(DirectDrawSetGammaRampFlags, "dwFlags"), (LPDDGAMMARAMP, "lpRampData")]),
1621 LPDDENUMCALLBACKA = FunctionPointer(BOOL, "LPDDENUMCALLBACKA", [Pointer(GUID), LPSTR, LPSTR, LPVOID])
1622 LPDDENUMCALLBACKW = FunctionPointer(BOOL, "LPDDENUMCALLBACKW", [Pointer(GUID), LPWSTR, LPWSTR, LPVOID])
1623 LPDDENUMCALLBACKEXA = FunctionPointer(BOOL, "LPDDENUMCALLBACKEXA", [Pointer(GUID), LPSTR, LPSTR, LPVOID, HMONITOR])
1624 LPDDENUMCALLBACKEXW = FunctionPointer(BOOL, "LPDDENUMCALLBACKEXW", [Pointer(GUID), LPWSTR, LPWSTR, LPVOID, HMONITOR])
1626 DDENUM = Flags(DWORD, [
1627 "DDENUM_ATTACHEDSECONDARYDEVICES",
1628 "DDENUM_DETACHEDSECONDARYDEVICES",
1629 "DDENUM_NONDISPLAYDEVICES",
1632 DDCREATE = Flags(DWORD, [
1633 "DDCREATE_HARDWAREONLY",
1634 "DDCREATE_EMULATIONONLY",
1637 ddraw = Module("ddraw")
1638 ddraw.addFunctions([
1639 StdFunction(HRESULT, "DirectDrawEnumerateW", [(LPDDENUMCALLBACKW, "lpCallback"), (LPVOID, "lpContext")]),
1640 StdFunction(HRESULT, "DirectDrawEnumerateA", [(LPDDENUMCALLBACKA, "lpCallback"), (LPVOID, "lpContext")]),
1641 StdFunction(HRESULT, "DirectDrawEnumerateExW", [(LPDDENUMCALLBACKEXW, "lpCallback"), (LPVOID, "lpContext"), (DDENUM, "dwFlags")]),
1642 StdFunction(HRESULT, "DirectDrawEnumerateExA", [(LPDDENUMCALLBACKEXA, "lpCallback"), (LPVOID, "lpContext"), (DDENUM, "dwFlags")]),
1643 StdFunction(HRESULT, "DirectDrawCreate", [(Pointer(GUID), "lpGUID"), Out(Pointer(LPDIRECTDRAW), "lplpDD"), (LPUNKNOWN, "pUnkOuter")]),
1644 StdFunction(HRESULT, "DirectDrawCreateEx", [(Pointer(GUID), "lpGuid"), Out(Pointer(ObjPointer(Void)), "lplpDD"), (REFIID, "iid"), (LPUNKNOWN, "pUnkOuter")]),
1645 StdFunction(HRESULT, "DirectDrawCreateClipper", [(DWORD, "dwFlags"), Out(Pointer(LPDIRECTDRAWCLIPPER), "lplpDDClipper"), (LPUNKNOWN, "pUnkOuter")]),
1646 StdFunction(Void, "AcquireDDThreadLock", [], internal=True),
1647 StdFunction(Void, "ReleaseDDThreadLock", [], internal=True),
1648 StdFunction(DWORD, "D3DParseUnknownCommand", [(LPVOID, "lpCmd"), Out(Pointer(LPVOID), "lpRetCmd")]),
1649 StdFunction(HRESULT, "DllCanUnloadNow", []),
1650 StdFunction(HRESULT, "DllGetClassObject", [(REFCLSID, "rclsid"), (REFIID, "riid"), Out(Pointer(ObjPointer(Void)), "ppv")]),
1653 StdFunction(HRESULT, "CompleteCreateSysmemSurface", [Int, Int]),
1654 StdFunction(HRESULT, "GetSurfaceFromDC", [Int, Int, Int]),
1655 StdFunction(HRESULT, "DDInternalLock", [Int, Int]),
1656 StdFunction(HRESULT, "DDInternalUnlock", [Int]),
1657 StdFunction(HRESULT, "DSoundHelp", [HWND, Int, Int]),
1658 StdFunction(HRESULT, "GetDDSurfaceLocal", [Int, Int, Int]),
1659 StdFunction(HANDLE, "GetOLEThunkData", [Int]),
1660 StdFunction(HRESULT, "RegisterSpecialCase", [Int, Int, Int, Int]),
1661 StdFunction(HRESULT, "DDGetAttachedSurfaceLcl", [Int, Int, Int]),
1663 # TODO: SetAppCompatData