10#ifndef __DDRAW_INCLUDED__
11#define __DDRAW_INCLUDED__
20#ifndef DIRECTDRAW_VERSION
21#define DIRECTDRAW_VERSION 0x0500
24#if defined( _WIN32 ) && !defined( _NO_COM )
25#define COM_NO_WINDOWS_H
29#if !defined( NT_BUILD_ENVIRONMENT ) && !defined(WINNT)
30 #define CO_E_NOTINITIALIZED 0x800401F0L
35#define MAKE_DDHRESULT( code ) MAKE_HRESULT( 1, _FACDD, code )
44#if defined( _WIN32 ) && !defined( _NO_COM )
45DEFINE_GUID( CLSID_DirectDraw, 0xD7B70EE0,0x4340,0x11CF,0xB0,0x63,0x00,0x20,0xAF,0xC2,0xCD,0x35 );
46DEFINE_GUID( CLSID_DirectDrawClipper, 0x593817A0,0x7DB3,0x11CF,0xA2,0xDE,0x00,0xAA,0x00,0xb9,0x33,0x56 );
47DEFINE_GUID( IID_IDirectDraw, 0x6C14DB80,0xA733,0x11CE,0xA5,0x21,0x00,0x20,0xAF,0x0B,0xE5,0x60 );
48DEFINE_GUID( IID_IDirectDraw2, 0xB3A6F3E0,0x2B43,0x11CF,0xA2,0xDE,0x00,0xAA,0x00,0xB9,0x33,0x56 );
49DEFINE_GUID( IID_IDirectDrawSurface, 0x6C14DB81,0xA733,0x11CE,0xA5,0x21,0x00,0x20,0xAF,0x0B,0xE5,0x60 );
50DEFINE_GUID( IID_IDirectDrawSurface2, 0x57805885,0x6eec,0x11cf,0x94,0x41,0xa8,0x23,0x03,0xc1,0x0e,0x27 );
51DEFINE_GUID( IID_IDirectDrawSurface3, 0xDA044E00,0x69B2,0x11D0,0xA1,0xD5,0x00,0xAA,0x00,0xB8,0xDF,0xBB );
53DEFINE_GUID( IID_IDirectDrawPalette, 0x6C14DB84,0xA733,0x11CE,0xA5,0x21,0x00,0x20,0xAF,0x0B,0xE5,0x60 );
54DEFINE_GUID( IID_IDirectDrawClipper, 0x6C14DB85,0xA733,0x11CE,0xA5,0x21,0x00,0x20,0xAF,0x0B,0xE5,0x60 );
55DEFINE_GUID( IID_IDirectDrawColorControl, 0x4B9F0EE0,0x0D7E,0x11D0,0x9B,0x06,0x00,0xA0,0xC9,0x03,0xA3,0xB8 );
68struct IDirectDrawSurface;
69struct IDirectDrawPalette;
70struct IDirectDrawClipper;
89#if (defined (WIN32) || defined( _WIN32 ) ) && !defined( _NO_COM )
91 typedef BOOL (FAR PASCAL * LPDDENUMCALLBACKA)(GUID FAR *, LPSTR, LPSTR,
LPVOID);
92 typedef BOOL (FAR PASCAL * LPDDENUMCALLBACKW)(GUID FAR *, LPWSTR, LPWSTR,
LPVOID);
96 typedef LPDDENUMCALLBACKW LPDDENUMCALLBACK;
97 #define DirectDrawEnumerate DirectDrawEnumerateW
99 typedef LPDDENUMCALLBACKA LPDDENUMCALLBACK;
100 #define DirectDrawEnumerate DirectDrawEnumerateA
107#define REGSTR_KEY_DDHW_DESCRIPTION "Description"
108#define REGSTR_KEY_DDHW_DRIVERNAME "DriverName"
109#define REGSTR_PATH_DDHW "Hardware\\DirectDrawDrivers"
111#define DDCREATE_HARDWAREONLY 0x00000001l
112#define DDCREATE_EMULATIONONLY 0x00000002l
114#if defined(WINNT) || !defined(WIN32)
204#define DD_ROP_SPACE (256/32)
206#if DIRECTDRAW_VERSION >= 0x0500
318#if DIRECTDRAW_VERSION >= 0x0500
427typedef DWORD (FAR PASCAL *LPSURFACESTREAMINGCALLBACK)(
DWORD);
442#if defined( _WIN32 ) && !defined( _NO_COM )
444#define INTERFACE IDirectDraw
448 STDMETHOD(QueryInterface) (THIS_ REFIID riid,
LPVOID FAR * ppvObj) PURE;
449 STDMETHOD_(ULONG,AddRef) (THIS) PURE;
450 STDMETHOD_(ULONG,Release) (THIS) PURE;
452 STDMETHOD(Compact)(THIS) PURE;
459 STDMETHOD(FlipToGDISurface)(THIS) PURE;
462 STDMETHOD(GetFourCCCodes)(THIS_ LPDWORD, LPDWORD ) PURE;
464 STDMETHOD(GetMonitorFrequency)(THIS_ LPDWORD) PURE;
465 STDMETHOD(GetScanLine)(THIS_ LPDWORD) PURE;
466 STDMETHOD(GetVerticalBlankStatus)(THIS_ LPBOOL ) PURE;
467 STDMETHOD(Initialize)(THIS_ GUID FAR *) PURE;
468 STDMETHOD(RestoreDisplayMode)(THIS) PURE;
469 STDMETHOD(SetCooperativeLevel)(THIS_ HWND,
DWORD) PURE;
471 STDMETHOD(WaitForVerticalBlank)(THIS_
DWORD, HANDLE ) PURE;
474#if !defined(__cplusplus) || defined(CINTERFACE)
475#define IDirectDraw_QueryInterface(p, a, b) (p)->lpVtbl->QueryInterface(p, a, b)
476#define IDirectDraw_AddRef(p) (p)->lpVtbl->AddRef(p)
477#define IDirectDraw_Release(p) (p)->lpVtbl->Release(p)
478#define IDirectDraw_Compact(p) (p)->lpVtbl->Compact(p)
479#define IDirectDraw_CreateClipper(p, a, b, c) (p)->lpVtbl->CreateClipper(p, a, b, c)
480#define IDirectDraw_CreatePalette(p, a, b, c, d) (p)->lpVtbl->CreatePalette(p, a, b, c, d)
481#define IDirectDraw_CreateSurface(p, a, b, c) (p)->lpVtbl->CreateSurface(p, a, b, c)
482#define IDirectDraw_DuplicateSurface(p, a, b) (p)->lpVtbl->DuplicateSurface(p, a, b)
483#define IDirectDraw_EnumDisplayModes(p, a, b, c, d) (p)->lpVtbl->EnumDisplayModes(p, a, b, c, d)
484#define IDirectDraw_EnumSurfaces(p, a, b, c, d) (p)->lpVtbl->EnumSurfaces(p, a, b, c, d)
485#define IDirectDraw_FlipToGDISurface(p) (p)->lpVtbl->FlipToGDISurface(p)
486#define IDirectDraw_GetCaps(p, a, b) (p)->lpVtbl->GetCaps(p, a, b)
487#define IDirectDraw_GetDisplayMode(p, a) (p)->lpVtbl->GetDisplayMode(p, a)
488#define IDirectDraw_GetFourCCCodes(p, a, b) (p)->lpVtbl->GetFourCCCodes(p, a, b)
489#define IDirectDraw_GetGDISurface(p, a) (p)->lpVtbl->GetGDISurface(p, a)
490#define IDirectDraw_GetMonitorFrequency(p, a) (p)->lpVtbl->GetMonitorFrequency(p, a)
491#define IDirectDraw_GetScanLine(p, a) (p)->lpVtbl->GetScanLine(p, a)
492#define IDirectDraw_GetVerticalBlankStatus(p, a) (p)->lpVtbl->GetVerticalBlankStatus(p, a)
493#define IDirectDraw_Initialize(p, a) (p)->lpVtbl->Initialize(p, a)
494#define IDirectDraw_RestoreDisplayMode(p) (p)->lpVtbl->RestoreDisplayMode(p)
495#define IDirectDraw_SetCooperativeLevel(p, a, b) (p)->lpVtbl->SetCooperativeLevel(p, a, b)
496#define IDirectDraw_SetDisplayMode(p, a, b, c) (p)->lpVtbl->SetDisplayMode(p, a, b, c)
497#define IDirectDraw_WaitForVerticalBlank(p, a, b) (p)->lpVtbl->WaitForVerticalBlank(p, a, b)
499#define IDirectDraw_QueryInterface(p, a, b) (p)->QueryInterface(a, b)
500#define IDirectDraw_AddRef(p) (p)->AddRef()
501#define IDirectDraw_Release(p) (p)->Release()
502#define IDirectDraw_Compact(p) (p)->Compact()
503#define IDirectDraw_CreateClipper(p, a, b, c) (p)->CreateClipper(a, b, c)
504#define IDirectDraw_CreatePalette(p, a, b, c, d) (p)->CreatePalette(a, b, c, d)
505#define IDirectDraw_CreateSurface(p, a, b, c) (p)->CreateSurface(a, b, c)
506#define IDirectDraw_DuplicateSurface(p, a, b) (p)->DuplicateSurface(a, b)
507#define IDirectDraw_EnumDisplayModes(p, a, b, c, d) (p)->EnumDisplayModes(a, b, c, d)
508#define IDirectDraw_EnumSurfaces(p, a, b, c, d) (p)->EnumSurfaces(a, b, c, d)
509#define IDirectDraw_FlipToGDISurface(p) (p)->FlipToGDISurface()
510#define IDirectDraw_GetCaps(p, a, b) (p)->GetCaps(a, b)
511#define IDirectDraw_GetDisplayMode(p, a) (p)->GetDisplayMode(a)
512#define IDirectDraw_GetFourCCCodes(p, a, b) (p)->GetFourCCCodes(a, b)
513#define IDirectDraw_GetGDISurface(p, a) (p)->GetGDISurface(a)
514#define IDirectDraw_GetMonitorFrequency(p, a) (p)->GetMonitorFrequency(a)
515#define IDirectDraw_GetScanLine(p, a) (p)->GetScanLine(a)
516#define IDirectDraw_GetVerticalBlankStatus(p, a) (p)->GetVerticalBlankStatus(a)
517#define IDirectDraw_Initialize(p, a) (p)->Initialize(a)
518#define IDirectDraw_RestoreDisplayMode(p) (p)->RestoreDisplayMode()
519#define IDirectDraw_SetCooperativeLevel(p, a, b) (p)->SetCooperativeLevel(a, b)
520#define IDirectDraw_SetDisplayMode(p, a, b, c) (p)->SetDisplayMode(a, b, c)
521#define IDirectDraw_WaitForVerticalBlank(p, a, b) (p)->WaitForVerticalBlank(a, b)
526#if defined( _WIN32 ) && !defined( _NO_COM )
528#define INTERFACE IDirectDraw2
532 STDMETHOD(QueryInterface) (THIS_ REFIID riid,
LPVOID FAR * ppvObj) PURE;
533 STDMETHOD_(ULONG,AddRef) (THIS) PURE;
534 STDMETHOD_(ULONG,Release) (THIS) PURE;
536 STDMETHOD(Compact)(THIS) PURE;
543 STDMETHOD(FlipToGDISurface)(THIS) PURE;
546 STDMETHOD(GetFourCCCodes)(THIS_ LPDWORD, LPDWORD ) PURE;
548 STDMETHOD(GetMonitorFrequency)(THIS_ LPDWORD) PURE;
549 STDMETHOD(GetScanLine)(THIS_ LPDWORD) PURE;
550 STDMETHOD(GetVerticalBlankStatus)(THIS_ LPBOOL ) PURE;
551 STDMETHOD(Initialize)(THIS_ GUID FAR *) PURE;
552 STDMETHOD(RestoreDisplayMode)(THIS) PURE;
553 STDMETHOD(SetCooperativeLevel)(THIS_ HWND,
DWORD) PURE;
555 STDMETHOD(WaitForVerticalBlank)(THIS_
DWORD, HANDLE ) PURE;
557 STDMETHOD(GetAvailableVidMem)(THIS_
LPDDSCAPS, LPDWORD, LPDWORD) PURE;
559#if !defined(__cplusplus) || defined(CINTERFACE)
560#define IDirectDraw2_QueryInterface(p, a, b) (p)->lpVtbl->QueryInterface(p, a, b)
561#define IDirectDraw2_AddRef(p) (p)->lpVtbl->AddRef(p)
562#define IDirectDraw2_Release(p) (p)->lpVtbl->Release(p)
563#define IDirectDraw2_Compact(p) (p)->lpVtbl->Compact(p)
564#define IDirectDraw2_CreateClipper(p, a, b, c) (p)->lpVtbl->CreateClipper(p, a, b, c)
565#define IDirectDraw2_CreatePalette(p, a, b, c, d) (p)->lpVtbl->CreatePalette(p, a, b, c, d)
566#define IDirectDraw2_CreateSurface(p, a, b, c) (p)->lpVtbl->CreateSurface(p, a, b, c)
567#define IDirectDraw2_DuplicateSurface(p, a, b) (p)->lpVtbl->DuplicateSurface(p, a, b)
568#define IDirectDraw2_EnumDisplayModes(p, a, b, c, d) (p)->lpVtbl->EnumDisplayModes(p, a, b, c, d)
569#define IDirectDraw2_EnumSurfaces(p, a, b, c, d) (p)->lpVtbl->EnumSurfaces(p, a, b, c, d)
570#define IDirectDraw2_FlipToGDISurface(p) (p)->lpVtbl->FlipToGDISurface(p)
571#define IDirectDraw2_GetCaps(p, a, b) (p)->lpVtbl->GetCaps(p, a, b)
572#define IDirectDraw2_GetDisplayMode(p, a) (p)->lpVtbl->GetDisplayMode(p, a)
573#define IDirectDraw2_GetFourCCCodes(p, a, b) (p)->lpVtbl->GetFourCCCodes(p, a, b)
574#define IDirectDraw2_GetGDISurface(p, a) (p)->lpVtbl->GetGDISurface(p, a)
575#define IDirectDraw2_GetMonitorFrequency(p, a) (p)->lpVtbl->GetMonitorFrequency(p, a)
576#define IDirectDraw2_GetScanLine(p, a) (p)->lpVtbl->GetScanLine(p, a)
577#define IDirectDraw2_GetVerticalBlankStatus(p, a) (p)->lpVtbl->GetVerticalBlankStatus(p, a)
578#define IDirectDraw2_Initialize(p, a) (p)->lpVtbl->Initialize(p, a)
579#define IDirectDraw2_RestoreDisplayMode(p) (p)->lpVtbl->RestoreDisplayMode(p)
580#define IDirectDraw2_SetCooperativeLevel(p, a, b) (p)->lpVtbl->SetCooperativeLevel(p, a, b)
581#define IDirectDraw2_SetDisplayMode(p, a, b, c, d, e) (p)->lpVtbl->SetDisplayMode(p, a, b, c, d, e)
582#define IDirectDraw2_WaitForVerticalBlank(p, a, b) (p)->lpVtbl->WaitForVerticalBlank(p, a, b)
583#define IDirectDraw2_GetAvailableVidMem(p, a, b, c) (p)->lpVtbl->GetAvailableVidMem(p, a, b, c)
585#define IDirectDraw2_QueryInterface(p, a, b) (p)->QueryInterface(a, b)
586#define IDirectDraw2_AddRef(p) (p)->AddRef()
587#define IDirectDraw2_Release(p) (p)->Release()
588#define IDirectDraw2_Compact(p) (p)->Compact()
589#define IDirectDraw2_CreateClipper(p, a, b, c) (p)->CreateClipper(a, b, c)
590#define IDirectDraw2_CreatePalette(p, a, b, c, d) (p)->CreatePalette(a, b, c, d)
591#define IDirectDraw2_CreateSurface(p, a, b, c) (p)->CreateSurface(a, b, c)
592#define IDirectDraw2_DuplicateSurface(p, a, b) (p)->DuplicateSurface(a, b)
593#define IDirectDraw2_EnumDisplayModes(p, a, b, c, d) (p)->EnumDisplayModes(a, b, c, d)
594#define IDirectDraw2_EnumSurfaces(p, a, b, c, d) (p)->EnumSurfaces(a, b, c, d)
595#define IDirectDraw2_FlipToGDISurface(p) (p)->FlipToGDISurface()
596#define IDirectDraw2_GetCaps(p, a, b) (p)->GetCaps(a, b)
597#define IDirectDraw2_GetDisplayMode(p, a) (p)->GetDisplayMode(a)
598#define IDirectDraw2_GetFourCCCodes(p, a, b) (p)->GetFourCCCodes(a, b)
599#define IDirectDraw2_GetGDISurface(p, a) (p)->GetGDISurface(a)
600#define IDirectDraw2_GetMonitorFrequency(p, a) (p)->GetMonitorFrequency(a)
601#define IDirectDraw2_GetScanLine(p, a) (p)->GetScanLine(a)
602#define IDirectDraw2_GetVerticalBlankStatus(p, a) (p)->GetVerticalBlankStatus(a)
603#define IDirectDraw2_Initialize(p, a) (p)->Initialize(a)
604#define IDirectDraw2_RestoreDisplayMode(p) (p)->RestoreDisplayMode()
605#define IDirectDraw2_SetCooperativeLevel(p, a, b) (p)->SetCooperativeLevel(a, b)
606#define IDirectDraw2_SetDisplayMode(p, a, b, c, d, e) (p)->SetDisplayMode(a, b, c, d, e)
607#define IDirectDraw2_WaitForVerticalBlank(p, a, b) (p)->WaitForVerticalBlank(a, b)
608#define IDirectDraw2_GetAvailableVidMem(p, a, b, c) (p)->GetAvailableVidMem(a, b, c)
616#if defined( _WIN32 ) && !defined( _NO_COM )
618#define INTERFACE IDirectDrawPalette
622 STDMETHOD(QueryInterface) (THIS_ REFIID riid,
LPVOID FAR * ppvObj) PURE;
623 STDMETHOD_(ULONG,AddRef) (THIS) PURE;
624 STDMETHOD_(ULONG,Release) (THIS) PURE;
626 STDMETHOD(GetCaps)(THIS_ LPDWORD) PURE;
632#if !defined(__cplusplus) || defined(CINTERFACE)
633#define IDirectDrawPalette_QueryInterface(p, a, b) (p)->lpVtbl->QueryInterface(p, a, b)
634#define IDirectDrawPalette_AddRef(p) (p)->lpVtbl->AddRef(p)
635#define IDirectDrawPalette_Release(p) (p)->lpVtbl->Release(p)
636#define IDirectDrawPalette_GetCaps(p, a) (p)->lpVtbl->GetCaps(p, a)
637#define IDirectDrawPalette_GetEntries(p, a, b, c, d) (p)->lpVtbl->GetEntries(p, a, b, c, d)
638#define IDirectDrawPalette_Initialize(p, a, b, c) (p)->lpVtbl->Initialize(p, a, b, c)
639#define IDirectDrawPalette_SetEntries(p, a, b, c, d) (p)->lpVtbl->SetEntries(p, a, b, c, d)
641#define IDirectDrawPalette_QueryInterface(p, a, b) (p)->QueryInterface(a, b)
642#define IDirectDrawPalette_AddRef(p) (p)->AddRef()
643#define IDirectDrawPalette_Release(p) (p)->Release()
644#define IDirectDrawPalette_GetCaps(p, a) (p)->GetCaps(a)
645#define IDirectDrawPalette_GetEntries(p, a, b, c, d) (p)->GetEntries(a, b, c, d)
646#define IDirectDrawPalette_Initialize(p, a, b, c) (p)->Initialize(a, b, c)
647#define IDirectDrawPalette_SetEntries(p, a, b, c, d) (p)->SetEntries(a, b, c, d)
655#if defined( _WIN32 ) && !defined( _NO_COM )
657#define INTERFACE IDirectDrawClipper
661 STDMETHOD(QueryInterface) (THIS_ REFIID riid,
LPVOID FAR * ppvObj) PURE;
662 STDMETHOD_(ULONG,AddRef) (THIS) PURE;
663 STDMETHOD_(ULONG,Release) (THIS) PURE;
665 STDMETHOD(GetClipList)(THIS_ LPRECT, LPRGNDATA, LPDWORD) PURE;
666 STDMETHOD(GetHWnd)(THIS_ HWND FAR *) PURE;
668 STDMETHOD(IsClipListChanged)(THIS_
BOOL FAR *) PURE;
669 STDMETHOD(SetClipList)(THIS_ LPRGNDATA,
DWORD) PURE;
670 STDMETHOD(SetHWnd)(THIS_
DWORD, HWND ) PURE;
673#if !defined(__cplusplus) || defined(CINTERFACE)
674#define IDirectDrawClipper_QueryInterface(p, a, b) (p)->lpVtbl->QueryInterface(p, a, b)
675#define IDirectDrawClipper_AddRef(p) (p)->lpVtbl->AddRef(p)
676#define IDirectDrawClipper_Release(p) (p)->lpVtbl->Release(p)
677#define IDirectDrawClipper_GetClipList(p, a, b, c) (p)->lpVtbl->GetClipList(p, a, b, c)
678#define IDirectDrawClipper_GetHWnd(p, a) (p)->lpVtbl->GetHWnd(p, a)
679#define IDirectDrawClipper_Initialize(p, a, b) (p)->lpVtbl->Initialize(p, a, b)
680#define IDirectDrawClipper_IsClipListChanged(p, a) (p)->lpVtbl->IsClipListChanged(p, a)
681#define IDirectDrawClipper_SetClipList(p, a, b) (p)->lpVtbl->SetClipList(p, a, b)
682#define IDirectDrawClipper_SetHWnd(p, a, b) (p)->lpVtbl->SetHWnd(p, a, b)
684#define IDirectDrawClipper_QueryInterface(p, a, b) (p)->QueryInterface(a, b)
685#define IDirectDrawClipper_AddRef(p) (p)->AddRef()
686#define IDirectDrawClipper_Release(p) (p)->Release()
687#define IDirectDrawClipper_GetClipList(p, a, b, c) (p)->GetClipList(a, b, c)
688#define IDirectDrawClipper_GetHWnd(p, a) (p)->GetHWnd(a)
689#define IDirectDrawClipper_Initialize(p, a, b) (p)->Initialize(a, b)
690#define IDirectDrawClipper_IsClipListChanged(p, a) (p)->IsClipListChanged(a)
691#define IDirectDrawClipper_SetClipList(p, a, b) (p)->SetClipList(a, b)
692#define IDirectDrawClipper_SetHWnd(p, a, b) (p)->SetHWnd(a, b)
700#if defined( _WIN32 ) && !defined( _NO_COM )
702#define INTERFACE IDirectDrawSurface
706 STDMETHOD(QueryInterface) (THIS_ REFIID riid,
LPVOID FAR * ppvObj) PURE;
707 STDMETHOD_(ULONG,AddRef) (THIS) PURE;
708 STDMETHOD_(ULONG,Release) (THIS) PURE;
711 STDMETHOD(AddOverlayDirtyRect)(THIS_ LPRECT) PURE;
716 STDMETHOD(EnumAttachedSurfaces)(THIS_
LPVOID,LPDDENUMSURFACESCALLBACK) PURE;
717 STDMETHOD(EnumOverlayZOrders)(THIS_
DWORD,
LPVOID,LPDDENUMSURFACESCALLBACK) PURE;
720 STDMETHOD(GetBltStatus)(THIS_
DWORD) PURE;
721 STDMETHOD(GetCaps)(THIS_
LPDDSCAPS) PURE;
724 STDMETHOD(GetDC)(THIS_ HDC FAR *) PURE;
725 STDMETHOD(GetFlipStatus)(THIS_
DWORD) PURE;
726 STDMETHOD(GetOverlayPosition)(THIS_ LPLONG, LPLONG ) PURE;
731 STDMETHOD(IsLost)(THIS) PURE;
733 STDMETHOD(ReleaseDC)(THIS_ HDC) PURE;
734 STDMETHOD(Restore)(THIS) PURE;
737 STDMETHOD(SetOverlayPosition)(THIS_ LONG, LONG ) PURE;
739 STDMETHOD(Unlock)(THIS_
LPVOID) PURE;
741 STDMETHOD(UpdateOverlayDisplay)(THIS_
DWORD) PURE;
745#if !defined(__cplusplus) || defined(CINTERFACE)
746#define IDirectDrawSurface_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
747#define IDirectDrawSurface_AddRef(p) (p)->lpVtbl->AddRef(p)
748#define IDirectDrawSurface_Release(p) (p)->lpVtbl->Release(p)
749#define IDirectDrawSurface_AddAttachedSurface(p,a) (p)->lpVtbl->AddAttachedSurface(p,a)
750#define IDirectDrawSurface_AddOverlayDirtyRect(p,a) (p)->lpVtbl->AddOverlayDirtyRect(p,a)
751#define IDirectDrawSurface_Blt(p,a,b,c,d,e) (p)->lpVtbl->Blt(p,a,b,c,d,e)
752#define IDirectDrawSurface_BltBatch(p,a,b,c) (p)->lpVtbl->BltBatch(p,a,b,c)
753#define IDirectDrawSurface_BltFast(p,a,b,c,d,e) (p)->lpVtbl->BltFast(p,a,b,c,d,e)
754#define IDirectDrawSurface_DeleteAttachedSurface(p,a,b) (p)->lpVtbl->DeleteAttachedSurface(p,a,b)
755#define IDirectDrawSurface_EnumAttachedSurfaces(p,a,b) (p)->lpVtbl->EnumAttachedSurfaces(p,a,b)
756#define IDirectDrawSurface_EnumOverlayZOrders(p,a,b,c) (p)->lpVtbl->EnumOverlayZOrders(p,a,b,c)
757#define IDirectDrawSurface_Flip(p,a,b) (p)->lpVtbl->Flip(p,a,b)
758#define IDirectDrawSurface_GetAttachedSurface(p,a,b) (p)->lpVtbl->GetAttachedSurface(p,a,b)
759#define IDirectDrawSurface_GetBltStatus(p,a) (p)->lpVtbl->GetBltStatus(p,a)
760#define IDirectDrawSurface_GetCaps(p,b) (p)->lpVtbl->GetCaps(p,b)
761#define IDirectDrawSurface_GetClipper(p,a) (p)->lpVtbl->GetClipper(p,a)
762#define IDirectDrawSurface_GetColorKey(p,a,b) (p)->lpVtbl->GetColorKey(p,a,b)
763#define IDirectDrawSurface_GetDC(p,a) (p)->lpVtbl->GetDC(p,a)
764#define IDirectDrawSurface_GetFlipStatus(p,a) (p)->lpVtbl->GetFlipStatus(p,a)
765#define IDirectDrawSurface_GetOverlayPosition(p,a,b) (p)->lpVtbl->GetOverlayPosition(p,a,b)
766#define IDirectDrawSurface_GetPalette(p,a) (p)->lpVtbl->GetPalette(p,a)
767#define IDirectDrawSurface_GetPixelFormat(p,a) (p)->lpVtbl->GetPixelFormat(p,a)
768#define IDirectDrawSurface_GetSurfaceDesc(p,a) (p)->lpVtbl->GetSurfaceDesc(p,a)
769#define IDirectDrawSurface_Initialize(p,a,b) (p)->lpVtbl->Initialize(p,a,b)
770#define IDirectDrawSurface_IsLost(p) (p)->lpVtbl->IsLost(p)
771#define IDirectDrawSurface_Lock(p,a,b,c,d) (p)->lpVtbl->Lock(p,a,b,c,d)
772#define IDirectDrawSurface_ReleaseDC(p,a) (p)->lpVtbl->ReleaseDC(p,a)
773#define IDirectDrawSurface_Restore(p) (p)->lpVtbl->Restore(p)
774#define IDirectDrawSurface_SetClipper(p,a) (p)->lpVtbl->SetClipper(p,a)
775#define IDirectDrawSurface_SetColorKey(p,a,b) (p)->lpVtbl->SetColorKey(p,a,b)
776#define IDirectDrawSurface_SetOverlayPosition(p,a,b) (p)->lpVtbl->SetOverlayPosition(p,a,b)
777#define IDirectDrawSurface_SetPalette(p,a) (p)->lpVtbl->SetPalette(p,a)
778#define IDirectDrawSurface_Unlock(p,b) (p)->lpVtbl->Unlock(p,b)
779#define IDirectDrawSurface_UpdateOverlay(p,a,b,c,d,e) (p)->lpVtbl->UpdateOverlay(p,a,b,c,d,e)
780#define IDirectDrawSurface_UpdateOverlayDisplay(p,a) (p)->lpVtbl->UpdateOverlayDisplay(p,a)
781#define IDirectDrawSurface_UpdateOverlayZOrder(p,a,b) (p)->lpVtbl->UpdateOverlayZOrder(p,a,b)
783#define IDirectDrawSurface_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
784#define IDirectDrawSurface_AddRef(p) (p)->AddRef()
785#define IDirectDrawSurface_Release(p) (p)->Release()
786#define IDirectDrawSurface_AddAttachedSurface(p,a) (p)->AddAttachedSurface(a)
787#define IDirectDrawSurface_AddOverlayDirtyRect(p,a) (p)->AddOverlayDirtyRect(a)
788#define IDirectDrawSurface_Blt(p,a,b,c,d,e) (p)->Blt(a,b,c,d,e)
789#define IDirectDrawSurface_BltBatch(p,a,b,c) (p)->BltBatch(a,b,c)
790#define IDirectDrawSurface_BltFast(p,a,b,c,d,e) (p)->BltFast(a,b,c,d,e)
791#define IDirectDrawSurface_DeleteAttachedSurface(p,a,b) (p)->DeleteAttachedSurface(a,b)
792#define IDirectDrawSurface_EnumAttachedSurfaces(p,a,b) (p)->EnumAttachedSurfaces(a,b)
793#define IDirectDrawSurface_EnumOverlayZOrders(p,a,b,c) (p)->EnumOverlayZOrders(a,b,c)
794#define IDirectDrawSurface_Flip(p,a,b) (p)->Flip(a,b)
795#define IDirectDrawSurface_GetAttachedSurface(p,a,b) (p)->GetAttachedSurface(a,b)
796#define IDirectDrawSurface_GetBltStatus(p,a) (p)->GetBltStatus(a)
797#define IDirectDrawSurface_GetCaps(p,b) (p)->GetCaps(b)
798#define IDirectDrawSurface_GetClipper(p,a) (p)->GetClipper(a)
799#define IDirectDrawSurface_GetColorKey(p,a,b) (p)->GetColorKey(a,b)
800#define IDirectDrawSurface_GetDC(p,a) (p)->GetDC(a)
801#define IDirectDrawSurface_GetFlipStatus(p,a) (p)->GetFlipStatus(a)
802#define IDirectDrawSurface_GetOverlayPosition(p,a,b) (p)->GetOverlayPosition(a,b)
803#define IDirectDrawSurface_GetPalette(p,a) (p)->GetPalette(a)
804#define IDirectDrawSurface_GetPixelFormat(p,a) (p)->GetPixelFormat(a)
805#define IDirectDrawSurface_GetSurfaceDesc(p,a) (p)->GetSurfaceDesc(a)
806#define IDirectDrawSurface_Initialize(p,a,b) (p)->Initialize(a,b)
807#define IDirectDrawSurface_IsLost(p) (p)->IsLost()
808#define IDirectDrawSurface_Lock(p,a,b,c,d) (p)->Lock(a,b,c,d)
809#define IDirectDrawSurface_ReleaseDC(p,a) (p)->ReleaseDC(a)
810#define IDirectDrawSurface_Restore(p) (p)->Restore()
811#define IDirectDrawSurface_SetClipper(p,a) (p)->SetClipper(a)
812#define IDirectDrawSurface_SetColorKey(p,a,b) (p)->SetColorKey(a,b)
813#define IDirectDrawSurface_SetOverlayPosition(p,a,b) (p)->SetOverlayPosition(a,b)
814#define IDirectDrawSurface_SetPalette(p,a) (p)->SetPalette(a)
815#define IDirectDrawSurface_Unlock(p,b) (p)->Unlock(b)
816#define IDirectDrawSurface_UpdateOverlay(p,a,b,c,d,e) (p)->UpdateOverlay(a,b,c,d,e)
817#define IDirectDrawSurface_UpdateOverlayDisplay(p,a) (p)->UpdateOverlayDisplay(a)
818#define IDirectDrawSurface_UpdateOverlayZOrder(p,a,b) (p)->UpdateOverlayZOrder(a,b)
825#define INTERFACE IDirectDrawSurface2
829 STDMETHOD(QueryInterface) (THIS_ REFIID riid,
LPVOID FAR * ppvObj) PURE;
830 STDMETHOD_(ULONG,AddRef) (THIS) PURE;
831 STDMETHOD_(ULONG,Release) (THIS) PURE;
834 STDMETHOD(AddOverlayDirtyRect)(THIS_ LPRECT) PURE;
839 STDMETHOD(EnumAttachedSurfaces)(THIS_
LPVOID,LPDDENUMSURFACESCALLBACK) PURE;
840 STDMETHOD(EnumOverlayZOrders)(THIS_
DWORD,
LPVOID,LPDDENUMSURFACESCALLBACK) PURE;
843 STDMETHOD(GetBltStatus)(THIS_
DWORD) PURE;
844 STDMETHOD(GetCaps)(THIS_
LPDDSCAPS) PURE;
847 STDMETHOD(GetDC)(THIS_ HDC FAR *) PURE;
848 STDMETHOD(GetFlipStatus)(THIS_
DWORD) PURE;
849 STDMETHOD(GetOverlayPosition)(THIS_ LPLONG, LPLONG ) PURE;
854 STDMETHOD(IsLost)(THIS) PURE;
856 STDMETHOD(ReleaseDC)(THIS_ HDC) PURE;
857 STDMETHOD(Restore)(THIS) PURE;
860 STDMETHOD(SetOverlayPosition)(THIS_ LONG, LONG ) PURE;
862 STDMETHOD(Unlock)(THIS_
LPVOID) PURE;
864 STDMETHOD(UpdateOverlayDisplay)(THIS_
DWORD) PURE;
867 STDMETHOD(GetDDInterface)(THIS_
LPVOID FAR *) PURE;
868 STDMETHOD(PageLock)(THIS_
DWORD) PURE;
869 STDMETHOD(PageUnlock)(THIS_
DWORD) PURE;
872#if !defined(__cplusplus) || defined(CINTERFACE)
873#define IDirectDrawSurface2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
874#define IDirectDrawSurface2_AddRef(p) (p)->lpVtbl->AddRef(p)
875#define IDirectDrawSurface2_Release(p) (p)->lpVtbl->Release(p)
876#define IDirectDrawSurface2_AddAttachedSurface(p,a) (p)->lpVtbl->AddAttachedSurface(p,a)
877#define IDirectDrawSurface2_AddOverlayDirtyRect(p,a) (p)->lpVtbl->AddOverlayDirtyRect(p,a)
878#define IDirectDrawSurface2_Blt(p,a,b,c,d,e) (p)->lpVtbl->Blt(p,a,b,c,d,e)
879#define IDirectDrawSurface2_BltBatch(p,a,b,c) (p)->lpVtbl->BltBatch(p,a,b,c)
880#define IDirectDrawSurface2_BltFast(p,a,b,c,d,e) (p)->lpVtbl->BltFast(p,a,b,c,d,e)
881#define IDirectDrawSurface2_DeleteAttachedSurface(p,a,b) (p)->lpVtbl->DeleteAttachedSurface(p,a,b)
882#define IDirectDrawSurface2_EnumAttachedSurfaces(p,a,b) (p)->lpVtbl->EnumAttachedSurfaces(p,a,b)
883#define IDirectDrawSurface2_EnumOverlayZOrders(p,a,b,c) (p)->lpVtbl->EnumOverlayZOrders(p,a,b,c)
884#define IDirectDrawSurface2_Flip(p,a,b) (p)->lpVtbl->Flip(p,a,b)
885#define IDirectDrawSurface2_GetAttachedSurface(p,a,b) (p)->lpVtbl->GetAttachedSurface(p,a,b)
886#define IDirectDrawSurface2_GetBltStatus(p,a) (p)->lpVtbl->GetBltStatus(p,a)
887#define IDirectDrawSurface2_GetCaps(p,b) (p)->lpVtbl->GetCaps(p,b)
888#define IDirectDrawSurface2_GetClipper(p,a) (p)->lpVtbl->GetClipper(p,a)
889#define IDirectDrawSurface2_GetColorKey(p,a,b) (p)->lpVtbl->GetColorKey(p,a,b)
890#define IDirectDrawSurface2_GetDC(p,a) (p)->lpVtbl->GetDC(p,a)
891#define IDirectDrawSurface2_GetFlipStatus(p,a) (p)->lpVtbl->GetFlipStatus(p,a)
892#define IDirectDrawSurface2_GetOverlayPosition(p,a,b) (p)->lpVtbl->GetOverlayPosition(p,a,b)
893#define IDirectDrawSurface2_GetPalette(p,a) (p)->lpVtbl->GetPalette(p,a)
894#define IDirectDrawSurface2_GetPixelFormat(p,a) (p)->lpVtbl->GetPixelFormat(p,a)
895#define IDirectDrawSurface2_GetSurfaceDesc(p,a) (p)->lpVtbl->GetSurfaceDesc(p,a)
896#define IDirectDrawSurface2_Initialize(p,a,b) (p)->lpVtbl->Initialize(p,a,b)
897#define IDirectDrawSurface2_IsLost(p) (p)->lpVtbl->IsLost(p)
898#define IDirectDrawSurface2_Lock(p,a,b,c,d) (p)->lpVtbl->Lock(p,a,b,c,d)
899#define IDirectDrawSurface2_ReleaseDC(p,a) (p)->lpVtbl->ReleaseDC(p,a)
900#define IDirectDrawSurface2_Restore(p) (p)->lpVtbl->Restore(p)
901#define IDirectDrawSurface2_SetClipper(p,a) (p)->lpVtbl->SetClipper(p,a)
902#define IDirectDrawSurface2_SetColorKey(p,a,b) (p)->lpVtbl->SetColorKey(p,a,b)
903#define IDirectDrawSurface2_SetOverlayPosition(p,a,b) (p)->lpVtbl->SetOverlayPosition(p,a,b)
904#define IDirectDrawSurface2_SetPalette(p,a) (p)->lpVtbl->SetPalette(p,a)
905#define IDirectDrawSurface2_Unlock(p,b) (p)->lpVtbl->Unlock(p,b)
906#define IDirectDrawSurface2_UpdateOverlay(p,a,b,c,d,e) (p)->lpVtbl->UpdateOverlay(p,a,b,c,d,e)
907#define IDirectDrawSurface2_UpdateOverlayDisplay(p,a) (p)->lpVtbl->UpdateOverlayDisplay(p,a)
908#define IDirectDrawSurface2_UpdateOverlayZOrder(p,a,b) (p)->lpVtbl->UpdateOverlayZOrder(p,a,b)
909#define IDirectDrawSurface2_GetDDInterface(p,a) (p)->lpVtbl->GetDDInterface(p,a)
910#define IDirectDrawSurface2_PageLock(p,a) (p)->lpVtbl->PageLock(p,a)
911#define IDirectDrawSurface2_PageUnlock(p,a) (p)->lpVtbl->PageUnlock(p,a)
913#define IDirectDrawSurface2_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
914#define IDirectDrawSurface2_AddRef(p) (p)->AddRef()
915#define IDirectDrawSurface2_Release(p) (p)->Release()
916#define IDirectDrawSurface2_AddAttachedSurface(p,a) (p)->AddAttachedSurface(a)
917#define IDirectDrawSurface2_AddOverlayDirtyRect(p,a) (p)->AddOverlayDirtyRect(a)
918#define IDirectDrawSurface2_Blt(p,a,b,c,d,e) (p)->Blt(a,b,c,d,e)
919#define IDirectDrawSurface2_BltBatch(p,a,b,c) (p)->BltBatch(a,b,c)
920#define IDirectDrawSurface2_BltFast(p,a,b,c,d,e) (p)->BltFast(a,b,c,d,e)
921#define IDirectDrawSurface2_DeleteAttachedSurface(p,a,b) (p)->DeleteAttachedSurface(a,b)
922#define IDirectDrawSurface2_EnumAttachedSurfaces(p,a,b) (p)->EnumAttachedSurfaces(a,b)
923#define IDirectDrawSurface2_EnumOverlayZOrders(p,a,b,c) (p)->EnumOverlayZOrders(a,b,c)
924#define IDirectDrawSurface2_Flip(p,a,b) (p)->Flip(a,b)
925#define IDirectDrawSurface2_GetAttachedSurface(p,a,b) (p)->GetAttachedSurface(a,b)
926#define IDirectDrawSurface2_GetBltStatus(p,a) (p)->GetBltStatus(a)
927#define IDirectDrawSurface2_GetCaps(p,b) (p)->GetCaps(b)
928#define IDirectDrawSurface2_GetClipper(p,a) (p)->GetClipper(a)
929#define IDirectDrawSurface2_GetColorKey(p,a,b) (p)->GetColorKey(a,b)
930#define IDirectDrawSurface2_GetDC(p,a) (p)->GetDC(a)
931#define IDirectDrawSurface2_GetFlipStatus(p,a) (p)->GetFlipStatus(a)
932#define IDirectDrawSurface2_GetOverlayPosition(p,a,b) (p)->GetOverlayPosition(a,b)
933#define IDirectDrawSurface2_GetPalette(p,a) (p)->GetPalette(a)
934#define IDirectDrawSurface2_GetPixelFormat(p,a) (p)->GetPixelFormat(a)
935#define IDirectDrawSurface2_GetSurfaceDesc(p,a) (p)->GetSurfaceDesc(a)
936#define IDirectDrawSurface2_Initialize(p,a,b) (p)->Initialize(a,b)
937#define IDirectDrawSurface2_IsLost(p) (p)->IsLost()
938#define IDirectDrawSurface2_Lock(p,a,b,c,d) (p)->Lock(a,b,c,d)
939#define IDirectDrawSurface2_ReleaseDC(p,a) (p)->ReleaseDC(a)
940#define IDirectDrawSurface2_Restore(p) (p)->Restore()
941#define IDirectDrawSurface2_SetClipper(p,a) (p)->SetClipper(a)
942#define IDirectDrawSurface2_SetColorKey(p,a,b) (p)->SetColorKey(a,b)
943#define IDirectDrawSurface2_SetOverlayPosition(p,a,b) (p)->SetOverlayPosition(a,b)
944#define IDirectDrawSurface2_SetPalette(p,a) (p)->SetPalette(a)
945#define IDirectDrawSurface2_Unlock(p,b) (p)->Unlock(b)
946#define IDirectDrawSurface2_UpdateOverlay(p,a,b,c,d,e) (p)->UpdateOverlay(a,b,c,d,e)
947#define IDirectDrawSurface2_UpdateOverlayDisplay(p,a) (p)->UpdateOverlayDisplay(a)
948#define IDirectDrawSurface2_UpdateOverlayZOrder(p,a,b) (p)->UpdateOverlayZOrder(a,b)
949#define IDirectDrawSurface2_GetDDInterface(p,a) (p)->GetDDInterface(a)
950#define IDirectDrawSurface2_PageLock(p,a) (p)->PageLock(a)
951#define IDirectDrawSurface2_PageUnlock(p,a) (p)->PageUnlock(a)
958#define INTERFACE IDirectDrawSurface3
962 STDMETHOD(QueryInterface) (THIS_ REFIID riid,
LPVOID FAR * ppvObj) PURE;
963 STDMETHOD_(ULONG,AddRef) (THIS) PURE;
964 STDMETHOD_(ULONG,Release) (THIS) PURE;
967 STDMETHOD(AddOverlayDirtyRect)(THIS_ LPRECT) PURE;
972 STDMETHOD(EnumAttachedSurfaces)(THIS_
LPVOID,LPDDENUMSURFACESCALLBACK) PURE;
973 STDMETHOD(EnumOverlayZOrders)(THIS_
DWORD,
LPVOID,LPDDENUMSURFACESCALLBACK) PURE;
976 STDMETHOD(GetBltStatus)(THIS_
DWORD) PURE;
977 STDMETHOD(GetCaps)(THIS_
LPDDSCAPS) PURE;
980 STDMETHOD(GetDC)(THIS_ HDC FAR *) PURE;
981 STDMETHOD(GetFlipStatus)(THIS_
DWORD) PURE;
982 STDMETHOD(GetOverlayPosition)(THIS_ LPLONG, LPLONG ) PURE;
987 STDMETHOD(IsLost)(THIS) PURE;
989 STDMETHOD(ReleaseDC)(THIS_ HDC) PURE;
990 STDMETHOD(Restore)(THIS) PURE;
993 STDMETHOD(SetOverlayPosition)(THIS_ LONG, LONG ) PURE;
995 STDMETHOD(Unlock)(THIS_
LPVOID) PURE;
997 STDMETHOD(UpdateOverlayDisplay)(THIS_
DWORD) PURE;
1000 STDMETHOD(GetDDInterface)(THIS_
LPVOID FAR *) PURE;
1001 STDMETHOD(PageLock)(THIS_
DWORD) PURE;
1002 STDMETHOD(PageUnlock)(THIS_
DWORD) PURE;
1007#if !defined(__cplusplus) || defined(CINTERFACE)
1008#define IDirectDrawSurface3_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1009#define IDirectDrawSurface3_AddRef(p) (p)->lpVtbl->AddRef(p)
1010#define IDirectDrawSurface3_Release(p) (p)->lpVtbl->Release(p)
1011#define IDirectDrawSurface3_AddAttachedSurface(p,a) (p)->lpVtbl->AddAttachedSurface(p,a)
1012#define IDirectDrawSurface3_AddOverlayDirtyRect(p,a) (p)->lpVtbl->AddOverlayDirtyRect(p,a)
1013#define IDirectDrawSurface3_Blt(p,a,b,c,d,e) (p)->lpVtbl->Blt(p,a,b,c,d,e)
1014#define IDirectDrawSurface3_BltBatch(p,a,b,c) (p)->lpVtbl->BltBatch(p,a,b,c)
1015#define IDirectDrawSurface3_BltFast(p,a,b,c,d,e) (p)->lpVtbl->BltFast(p,a,b,c,d,e)
1016#define IDirectDrawSurface3_DeleteAttachedSurface(p,a,b) (p)->lpVtbl->DeleteAttachedSurface(p,a,b)
1017#define IDirectDrawSurface3_EnumAttachedSurfaces(p,a,b) (p)->lpVtbl->EnumAttachedSurfaces(p,a,b)
1018#define IDirectDrawSurface3_EnumOverlayZOrders(p,a,b,c) (p)->lpVtbl->EnumOverlayZOrders(p,a,b,c)
1019#define IDirectDrawSurface3_Flip(p,a,b) (p)->lpVtbl->Flip(p,a,b)
1020#define IDirectDrawSurface3_GetAttachedSurface(p,a,b) (p)->lpVtbl->GetAttachedSurface(p,a,b)
1021#define IDirectDrawSurface3_GetBltStatus(p,a) (p)->lpVtbl->GetBltStatus(p,a)
1022#define IDirectDrawSurface3_GetCaps(p,b) (p)->lpVtbl->GetCaps(p,b)
1023#define IDirectDrawSurface3_GetClipper(p,a) (p)->lpVtbl->GetClipper(p,a)
1024#define IDirectDrawSurface3_GetColorKey(p,a,b) (p)->lpVtbl->GetColorKey(p,a,b)
1025#define IDirectDrawSurface3_GetDC(p,a) (p)->lpVtbl->GetDC(p,a)
1026#define IDirectDrawSurface3_GetFlipStatus(p,a) (p)->lpVtbl->GetFlipStatus(p,a)
1027#define IDirectDrawSurface3_GetOverlayPosition(p,a,b) (p)->lpVtbl->GetOverlayPosition(p,a,b)
1028#define IDirectDrawSurface3_GetPalette(p,a) (p)->lpVtbl->GetPalette(p,a)
1029#define IDirectDrawSurface3_GetPixelFormat(p,a) (p)->lpVtbl->GetPixelFormat(p,a)
1030#define IDirectDrawSurface3_GetSurfaceDesc(p,a) (p)->lpVtbl->GetSurfaceDesc(p,a)
1031#define IDirectDrawSurface3_Initialize(p,a,b) (p)->lpVtbl->Initialize(p,a,b)
1032#define IDirectDrawSurface3_IsLost(p) (p)->lpVtbl->IsLost(p)
1033#define IDirectDrawSurface3_Lock(p,a,b,c,d) (p)->lpVtbl->Lock(p,a,b,c,d)
1034#define IDirectDrawSurface3_ReleaseDC(p,a) (p)->lpVtbl->ReleaseDC(p,a)
1035#define IDirectDrawSurface3_Restore(p) (p)->lpVtbl->Restore(p)
1036#define IDirectDrawSurface3_SetClipper(p,a) (p)->lpVtbl->SetClipper(p,a)
1037#define IDirectDrawSurface3_SetColorKey(p,a,b) (p)->lpVtbl->SetColorKey(p,a,b)
1038#define IDirectDrawSurface3_SetOverlayPosition(p,a,b) (p)->lpVtbl->SetOverlayPosition(p,a,b)
1039#define IDirectDrawSurface3_SetPalette(p,a) (p)->lpVtbl->SetPalette(p,a)
1040#define IDirectDrawSurface3_Unlock(p,b) (p)->lpVtbl->Unlock(p,b)
1041#define IDirectDrawSurface3_UpdateOverlay(p,a,b,c,d,e) (p)->lpVtbl->UpdateOverlay(p,a,b,c,d,e)
1042#define IDirectDrawSurface3_UpdateOverlayDisplay(p,a) (p)->lpVtbl->UpdateOverlayDisplay(p,a)
1043#define IDirectDrawSurface3_UpdateOverlayZOrder(p,a,b) (p)->lpVtbl->UpdateOverlayZOrder(p,a,b)
1044#define IDirectDrawSurface3_GetDDInterface(p,a) (p)->lpVtbl->GetDDInterface(p,a)
1045#define IDirectDrawSurface3_PageLock(p,a) (p)->lpVtbl->PageLock(p,a)
1046#define IDirectDrawSurface3_PageUnlock(p,a) (p)->lpVtbl->PageUnlock(p,a)
1047#define IDirectDrawSurface3_SetSurfaceDesc(p,a,b) (p)->lpVtbl->SetSurfaceDesc(p,a,b)
1049#define IDirectDrawSurface3_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
1050#define IDirectDrawSurface3_AddRef(p) (p)->AddRef()
1051#define IDirectDrawSurface3_Release(p) (p)->Release()
1052#define IDirectDrawSurface3_AddAttachedSurface(p,a) (p)->AddAttachedSurface(a)
1053#define IDirectDrawSurface3_AddOverlayDirtyRect(p,a) (p)->AddOverlayDirtyRect(a)
1054#define IDirectDrawSurface3_Blt(p,a,b,c,d,e) (p)->Blt(a,b,c,d,e)
1055#define IDirectDrawSurface3_BltBatch(p,a,b,c) (p)->BltBatch(a,b,c)
1056#define IDirectDrawSurface3_BltFast(p,a,b,c,d,e) (p)->BltFast(a,b,c,d,e)
1057#define IDirectDrawSurface3_DeleteAttachedSurface(p,a,b) (p)->DeleteAttachedSurface(a,b)
1058#define IDirectDrawSurface3_EnumAttachedSurfaces(p,a,b) (p)->EnumAttachedSurfaces(a,b)
1059#define IDirectDrawSurface3_EnumOverlayZOrders(p,a,b,c) (p)->EnumOverlayZOrders(a,b,c)
1060#define IDirectDrawSurface3_Flip(p,a,b) (p)->Flip(a,b)
1061#define IDirectDrawSurface3_GetAttachedSurface(p,a,b) (p)->GetAttachedSurface(a,b)
1062#define IDirectDrawSurface3_GetBltStatus(p,a) (p)->GetBltStatus(a)
1063#define IDirectDrawSurface3_GetCaps(p,b) (p)->GetCaps(b)
1064#define IDirectDrawSurface3_GetClipper(p,a) (p)->GetClipper(a)
1065#define IDirectDrawSurface3_GetColorKey(p,a,b) (p)->GetColorKey(a,b)
1066#define IDirectDrawSurface3_GetDC(p,a) (p)->GetDC(a)
1067#define IDirectDrawSurface3_GetFlipStatus(p,a) (p)->GetFlipStatus(a)
1068#define IDirectDrawSurface3_GetOverlayPosition(p,a,b) (p)->GetOverlayPosition(a,b)
1069#define IDirectDrawSurface3_GetPalette(p,a) (p)->GetPalette(a)
1070#define IDirectDrawSurface3_GetPixelFormat(p,a) (p)->GetPixelFormat(a)
1071#define IDirectDrawSurface3_GetSurfaceDesc(p,a) (p)->GetSurfaceDesc(a)
1072#define IDirectDrawSurface3_Initialize(p,a,b) (p)->Initialize(a,b)
1073#define IDirectDrawSurface3_IsLost(p) (p)->IsLost()
1074#define IDirectDrawSurface3_Lock(p,a,b,c,d) (p)->Lock(a,b,c,d)
1075#define IDirectDrawSurface3_ReleaseDC(p,a) (p)->ReleaseDC(a)
1076#define IDirectDrawSurface3_Restore(p) (p)->Restore()
1077#define IDirectDrawSurface3_SetClipper(p,a) (p)->SetClipper(a)
1078#define IDirectDrawSurface3_SetColorKey(p,a,b) (p)->SetColorKey(a,b)
1079#define IDirectDrawSurface3_SetOverlayPosition(p,a,b) (p)->SetOverlayPosition(a,b)
1080#define IDirectDrawSurface3_SetPalette(p,a) (p)->SetPalette(a)
1081#define IDirectDrawSurface3_Unlock(p,b) (p)->Unlock(b)
1082#define IDirectDrawSurface3_UpdateOverlay(p,a,b,c,d,e) (p)->UpdateOverlay(a,b,c,d,e)
1083#define IDirectDrawSurface3_UpdateOverlayDisplay(p,a) (p)->UpdateOverlayDisplay(a)
1084#define IDirectDrawSurface3_UpdateOverlayZOrder(p,a,b) (p)->UpdateOverlayZOrder(a,b)
1085#define IDirectDrawSurface3_GetDDInterface(p,a) (p)->GetDDInterface(a)
1086#define IDirectDrawSurface3_PageLock(p,a) (p)->PageLock(a)
1087#define IDirectDrawSurface3_PageUnlock(p,a) (p)->PageUnlock(a)
1088#define IDirectDrawSurface3_SetSurfaceDesc(p,a,b) (p)->SetSurfaceDesc(a,b)
1094#if defined( _WIN32 ) && !defined( _NO_COM )
1096#define INTERFACE IDirectDrawColorControl
1100 STDMETHOD(QueryInterface) (THIS_ REFIID riid,
LPVOID FAR * ppvObj) PURE;
1101 STDMETHOD_(ULONG,AddRef) (THIS) PURE;
1102 STDMETHOD_(ULONG,Release) (THIS) PURE;
1108#if !defined(__cplusplus) || defined(CINTERFACE)
1109#define IDirectDrawColorControl_QueryInterface(p, a, b) (p)->lpVtbl->QueryInterface(p, a, b)
1110#define IDirectDrawColorControl_AddRef(p) (p)->lpVtbl->AddRef(p)
1111#define IDirectDrawColorControl_Release(p) (p)->lpVtbl->Release(p)
1112#define IDirectDrawColorControl_GetColorControls(p, a) (p)->lpVtbl->GetColorControls(p, a)
1113#define IDirectDrawColorControl_SetColorControls(p, a) (p)->lpVtbl->SetColorControls(p, a)
1115#define IDirectDrawColorControl_QueryInterface(p, a, b) (p)->QueryInterface(a, b)
1116#define IDirectDrawColorControl_AddRef(p) (p)->AddRef()
1117#define IDirectDrawColorControl_Release(p) (p)->Release()
1118#define IDirectDrawColorControl_GetColorControls(p, a) (p)->GetColorControls(a)
1119#define IDirectDrawColorControl_SetColorControls(p, a) (p)->SetColorControls(a)
1164#define DDSD_CAPS 0x00000001l
1169#define DDSD_HEIGHT 0x00000002l
1174#define DDSD_WIDTH 0x00000004l
1179#define DDSD_PITCH 0x00000008l
1184#define DDSD_BACKBUFFERCOUNT 0x00000020l
1189#define DDSD_ZBUFFERBITDEPTH 0x00000040l
1194#define DDSD_ALPHABITDEPTH 0x00000080l
1200#define DDSD_LPSURFACE 0x00000800l
1205#define DDSD_PIXELFORMAT 0x00001000l
1210#define DDSD_CKDESTOVERLAY 0x00002000l
1215#define DDSD_CKDESTBLT 0x00004000l
1220#define DDSD_CKSRCOVERLAY 0x00008000l
1225#define DDSD_CKSRCBLT 0x00010000l
1230#define DDSD_MIPMAPCOUNT 0x00020000l
1235#define DDSD_REFRESHRATE 0x00040000l
1240#define DDSD_LINEARSIZE 0x00080000l
1245#define DDSD_ALL 0x000ff9eel
1269#define DDCOLOR_BRIGHTNESS 0x00000001l
1274#define DDCOLOR_CONTRAST 0x00000002l
1279#define DDCOLOR_HUE 0x00000004l
1284#define DDCOLOR_SATURATION 0x00000008l
1289#define DDCOLOR_SHARPNESS 0x00000010l
1294#define DDCOLOR_GAMMA 0x00000020l
1299#define DDCOLOR_COLORENABLE 0x00000040l
1321#define DDSCAPS_RESERVED1 0x00000001l
1328#define DDSCAPS_ALPHA 0x00000002l
1346#define DDSCAPS_BACKBUFFER 0x00000004l
1355#define DDSCAPS_COMPLEX 0x00000008l
1366#define DDSCAPS_FLIP 0x00000010l
1378#define DDSCAPS_FRONTBUFFER 0x00000020l
1385#define DDSCAPS_OFFSCREENPLAIN 0x00000040l
1393#define DDSCAPS_OVERLAY 0x00000080l
1399#define DDSCAPS_PALETTE 0x00000100l
1405#define DDSCAPS_PRIMARYSURFACE 0x00000200l
1414#define DDSCAPS_PRIMARYSURFACELEFT 0x00000400l
1419#define DDSCAPS_SYSTEMMEMORY 0x00000800l
1425#define DDSCAPS_TEXTURE 0x00001000l
1432#define DDSCAPS_3DDEVICE 0x00002000l
1437#define DDSCAPS_VIDEOMEMORY 0x00004000l
1444#define DDSCAPS_VISIBLE 0x00008000l
1451#define DDSCAPS_WRITEONLY 0x00010000l
1458#define DDSCAPS_ZBUFFER 0x00020000l
1463#define DDSCAPS_OWNDC 0x00040000l
1468#define DDSCAPS_LIVEVIDEO 0x00080000l
1474#define DDSCAPS_HWCODEC 0x00100000l
1480#define DDSCAPS_MODEX 0x00200000l
1489#define DDSCAPS_MIPMAP 0x00400000l
1494#define DDSCAPS_RESERVED2 0x00800000l
1501#define DDSCAPS_ALLOCONLOAD 0x04000000l
1506#define DDSCAPS_VIDEOPORT 0x08000000l
1514#define DDSCAPS_LOCALVIDMEM 0x10000000l
1522#define DDSCAPS_NONLOCALVIDMEM 0x20000000l
1529#define DDSCAPS_STANDARDVGAMODE 0x40000000l
1536#define DDSCAPS_OPTIMIZED 0x80000000l
1549#define DDCAPS_3D 0x00000001l
1556#define DDCAPS_ALIGNBOUNDARYDEST 0x00000002l
1562#define DDCAPS_ALIGNSIZEDEST 0x00000004l
1568#define DDCAPS_ALIGNBOUNDARYSRC 0x00000008l
1574#define DDCAPS_ALIGNSIZESRC 0x00000010l
1580#define DDCAPS_ALIGNSTRIDE 0x00000020l
1585#define DDCAPS_BLT 0x00000040l
1590#define DDCAPS_BLTQUEUE 0x00000080l
1595#define DDCAPS_BLTFOURCC 0x00000100l
1600#define DDCAPS_BLTSTRETCH 0x00000200l
1605#define DDCAPS_GDI 0x00000400l
1610#define DDCAPS_OVERLAY 0x00000800l
1615#define DDCAPS_OVERLAYCANTCLIP 0x00001000l
1621#define DDCAPS_OVERLAYFOURCC 0x00002000l
1626#define DDCAPS_OVERLAYSTRETCH 0x00004000l
1632#define DDCAPS_PALETTE 0x00008000l
1637#define DDCAPS_PALETTEVSYNC 0x00010000l
1642#define DDCAPS_READSCANLINE 0x00020000l
1648#define DDCAPS_STEREOVIEW 0x00040000l
1653#define DDCAPS_VBI 0x00080000l
1658#define DDCAPS_ZBLTS 0x00100000l
1663#define DDCAPS_ZOVERLAYS 0x00200000l
1668#define DDCAPS_COLORKEY 0x00400000l
1673#define DDCAPS_ALPHA 0x00800000l
1678#define DDCAPS_COLORKEYHWASSIST 0x01000000l
1683#define DDCAPS_NOHARDWARE 0x02000000l
1688#define DDCAPS_BLTCOLORFILL 0x04000000l
1694#define DDCAPS_BANKSWITCHED 0x08000000l
1699#define DDCAPS_BLTDEPTHFILL 0x10000000l
1704#define DDCAPS_CANCLIP 0x20000000l
1709#define DDCAPS_CANCLIPSTRETCHED 0x40000000l
1714#define DDCAPS_CANBLTSYSMEM 0x80000000l
1726#define DDCAPS2_CERTIFIED 0x00000001l
1732#define DDCAPS2_NO2DDURING3DSCENE 0x00000002l
1737#define DDCAPS2_VIDEOPORT 0x00000004l
1744#define DDCAPS2_AUTOFLIPOVERLAY 0x00000008l
1750#define DDCAPS2_CANBOBINTERLEAVED 0x00000010l
1756#define DDCAPS2_CANBOBNONINTERLEAVED 0x00000020l
1761#define DDCAPS2_COLORCONTROLOVERLAY 0x00000040l
1766#define DDCAPS2_COLORCONTROLPRIMARY 0x00000080l
1771#define DDCAPS2_CANDROPZ16BIT 0x00000100l
1776#define DDCAPS2_NONLOCALVIDMEM 0x00000200l
1783#define DDCAPS2_NONLOCALVIDMEMCAPS 0x00000400l
1789#define DDCAPS2_NOPAGELOCKREQUIRED 0x00000800l
1794#define DDCAPS2_WIDESURFACES 0x00001000l
1799#define DDCAPS2_CANFLIPODDEVEN 0x00002000l
1811#define DDFXALPHACAPS_BLTALPHAEDGEBLEND 0x00000001l
1819#define DDFXALPHACAPS_BLTALPHAPIXELS 0x00000002l
1828#define DDFXALPHACAPS_BLTALPHAPIXELSNEG 0x00000004l
1836#define DDFXALPHACAPS_BLTALPHASURFACES 0x00000008l
1845#define DDFXALPHACAPS_BLTALPHASURFACESNEG 0x00000010l
1851#define DDFXALPHACAPS_OVERLAYALPHAEDGEBLEND 0x00000020l
1859#define DDFXALPHACAPS_OVERLAYALPHAPIXELS 0x00000040l
1868#define DDFXALPHACAPS_OVERLAYALPHAPIXELSNEG 0x00000080l
1876#define DDFXALPHACAPS_OVERLAYALPHASURFACES 0x00000100l
1885#define DDFXALPHACAPS_OVERLAYALPHASURFACESNEG 0x00000200l
1897#define DDFXCAPS_BLTARITHSTRETCHY 0x00000020l
1904#define DDFXCAPS_BLTARITHSTRETCHYN 0x00000010l
1909#define DDFXCAPS_BLTMIRRORLEFTRIGHT 0x00000040l
1914#define DDFXCAPS_BLTMIRRORUPDOWN 0x00000080l
1919#define DDFXCAPS_BLTROTATION 0x00000100l
1924#define DDFXCAPS_BLTROTATION90 0x00000200l
1930#define DDFXCAPS_BLTSHRINKX 0x00000400l
1936#define DDFXCAPS_BLTSHRINKXN 0x00000800l
1942#define DDFXCAPS_BLTSHRINKY 0x00001000l
1948#define DDFXCAPS_BLTSHRINKYN 0x00002000l
1954#define DDFXCAPS_BLTSTRETCHX 0x00004000l
1960#define DDFXCAPS_BLTSTRETCHXN 0x00008000l
1966#define DDFXCAPS_BLTSTRETCHY 0x00010000l
1972#define DDFXCAPS_BLTSTRETCHYN 0x00020000l
1979#define DDFXCAPS_OVERLAYARITHSTRETCHY 0x00040000l
1986#define DDFXCAPS_OVERLAYARITHSTRETCHYN 0x00000008l
1992#define DDFXCAPS_OVERLAYSHRINKX 0x00080000l
1998#define DDFXCAPS_OVERLAYSHRINKXN 0x00100000l
2004#define DDFXCAPS_OVERLAYSHRINKY 0x00200000l
2010#define DDFXCAPS_OVERLAYSHRINKYN 0x00400000l
2016#define DDFXCAPS_OVERLAYSTRETCHX 0x00800000l
2022#define DDFXCAPS_OVERLAYSTRETCHXN 0x01000000l
2028#define DDFXCAPS_OVERLAYSTRETCHY 0x02000000l
2034#define DDFXCAPS_OVERLAYSTRETCHYN 0x04000000l
2039#define DDFXCAPS_OVERLAYMIRRORLEFTRIGHT 0x08000000l
2044#define DDFXCAPS_OVERLAYMIRRORUPDOWN 0x10000000l
2055#define DDSVCAPS_ENIGMA 0x00000001l
2060#define DDSVCAPS_FLICKER 0x00000002l
2067#define DDSVCAPS_REDBLUE 0x00000004l
2072#define DDSVCAPS_SPLIT 0x00000008l
2083#define DDPCAPS_4BIT 0x00000001l
2091#define DDPCAPS_8BITENTRIES 0x00000002l
2096#define DDPCAPS_8BIT 0x00000004l
2103#define DDPCAPS_INITIALIZE 0x00000008l
2110#define DDPCAPS_PRIMARYSURFACE 0x00000010l
2117#define DDPCAPS_PRIMARYSURFACELEFT 0x00000020l
2122#define DDPCAPS_ALLOW256 0x00000040l
2128#define DDPCAPS_VSYNC 0x00000080l
2133#define DDPCAPS_1BIT 0x00000100l
2138#define DDPCAPS_2BIT 0x00000200l
2177#define DDBD_1 0x00004000l
2182#define DDBD_2 0x00002000l
2187#define DDBD_4 0x00001000l
2192#define DDBD_8 0x00000800l
2197#define DDBD_16 0x00000400l
2202#define DDBD_24 0X00000200l
2207#define DDBD_32 0x00000100l
2219#define DDCKEY_COLORSPACE 0x00000001l
2225#define DDCKEY_DESTBLT 0x00000002l
2231#define DDCKEY_DESTOVERLAY 0x00000004l
2237#define DDCKEY_SRCBLT 0x00000008l
2243#define DDCKEY_SRCOVERLAY 0x00000010l
2256#define DDCKEYCAPS_DESTBLT 0x00000001l
2262#define DDCKEYCAPS_DESTBLTCLRSPACE 0x00000002l
2268#define DDCKEYCAPS_DESTBLTCLRSPACEYUV 0x00000004l
2274#define DDCKEYCAPS_DESTBLTYUV 0x00000008l
2280#define DDCKEYCAPS_DESTOVERLAY 0x00000010l
2285#define DDCKEYCAPS_DESTOVERLAYCLRSPACE 0x00000020l
2290#define DDCKEYCAPS_DESTOVERLAYCLRSPACEYUV 0x00000040l
2296#define DDCKEYCAPS_DESTOVERLAYONEACTIVE 0x00000080l
2302#define DDCKEYCAPS_DESTOVERLAYYUV 0x00000100l
2308#define DDCKEYCAPS_SRCBLT 0x00000200l
2314#define DDCKEYCAPS_SRCBLTCLRSPACE 0x00000400l
2320#define DDCKEYCAPS_SRCBLTCLRSPACEYUV 0x00000800l
2326#define DDCKEYCAPS_SRCBLTYUV 0x00001000l
2332#define DDCKEYCAPS_SRCOVERLAY 0x00002000l
2338#define DDCKEYCAPS_SRCOVERLAYCLRSPACE 0x00004000l
2344#define DDCKEYCAPS_SRCOVERLAYCLRSPACEYUV 0x00008000l
2350#define DDCKEYCAPS_SRCOVERLAYONEACTIVE 0x00010000l
2356#define DDCKEYCAPS_SRCOVERLAYYUV 0x00020000l
2361#define DDCKEYCAPS_NOCOSTOVERLAY 0x00040000l
2373#define DDPF_ALPHAPIXELS 0x00000001l
2378#define DDPF_ALPHA 0x00000002l
2383#define DDPF_FOURCC 0x00000004l
2388#define DDPF_PALETTEINDEXED4 0x00000008l
2394#define DDPF_PALETTEINDEXEDTO8 0x00000010l
2399#define DDPF_PALETTEINDEXED8 0x00000020l
2404#define DDPF_RGB 0x00000040l
2410#define DDPF_COMPRESSED 0x00000080l
2418#define DDPF_RGBTOYUV 0x00000100l
2423#define DDPF_YUV 0x00000200l
2428#define DDPF_ZBUFFER 0x00000400l
2433#define DDPF_PALETTEINDEXED1 0x00000800l
2438#define DDPF_PALETTEINDEXED2 0x00001000l
2443#define DDPF_ZPIXELS 0x00002000l
2462#define DDENUMSURFACES_ALL 0x00000001l
2467#define DDENUMSURFACES_MATCH 0x00000002l
2472#define DDENUMSURFACES_NOMATCH 0x00000004l
2477#define DDENUMSURFACES_CANBECREATED 0x00000008l
2482#define DDENUMSURFACES_DOESEXIST 0x00000010l
2494#define DDSDM_STANDARDVGAMODE 0x00000001l
2509#define DDEDM_REFRESHRATES 0x00000001l
2517#define DDEDM_STANDARDVGAMODES 0x00000002L
2530#define DDSCL_FULLSCREEN 0x00000001l
2535#define DDSCL_ALLOWREBOOT 0x00000002l
2541#define DDSCL_NOWINDOWCHANGES 0x00000004l
2546#define DDSCL_NORMAL 0x00000008l
2551#define DDSCL_EXCLUSIVE 0x00000010l
2557#define DDSCL_ALLOWMODEX 0x00000040l
2570#define DDBLT_ALPHADEST 0x00000001l
2576#define DDBLT_ALPHADESTCONSTOVERRIDE 0x00000002l
2582#define DDBLT_ALPHADESTNEG 0x00000004l
2588#define DDBLT_ALPHADESTSURFACEOVERRIDE 0x00000008l
2594#define DDBLT_ALPHAEDGEBLEND 0x00000010l
2600#define DDBLT_ALPHASRC 0x00000020l
2606#define DDBLT_ALPHASRCCONSTOVERRIDE 0x00000040l
2612#define DDBLT_ALPHASRCNEG 0x00000080l
2618#define DDBLT_ALPHASRCSURFACEOVERRIDE 0x00000100l
2624#define DDBLT_ASYNC 0x00000200l
2630#define DDBLT_COLORFILL 0x00000400l
2636#define DDBLT_DDFX 0x00000800l
2642#define DDBLT_DDROPS 0x00001000l
2647#define DDBLT_KEYDEST 0x00002000l
2653#define DDBLT_KEYDESTOVERRIDE 0x00004000l
2658#define DDBLT_KEYSRC 0x00008000l
2664#define DDBLT_KEYSRCOVERRIDE 0x00010000l
2670#define DDBLT_ROP 0x00020000l
2676#define DDBLT_ROTATIONANGLE 0x00040000l
2683#define DDBLT_ZBUFFER 0x00080000l
2690#define DDBLT_ZBUFFERDESTCONSTOVERRIDE 0x00100000l
2697#define DDBLT_ZBUFFERDESTOVERRIDE 0x00200000l
2704#define DDBLT_ZBUFFERSRCCONSTOVERRIDE 0x00400000l
2711#define DDBLT_ZBUFFERSRCOVERRIDE 0x00800000l
2717#define DDBLT_WAIT 0x01000000l
2724#define DDBLT_DEPTHFILL 0x02000000l
2734#define DDBLTFAST_NOCOLORKEY 0x00000000
2735#define DDBLTFAST_SRCCOLORKEY 0x00000001
2736#define DDBLTFAST_DESTCOLORKEY 0x00000002
2737#define DDBLTFAST_WAIT 0x00000010
2745#define DDFLIP_WAIT 0x00000001l
2751#define DDFLIP_EVEN 0x00000002l
2757#define DDFLIP_ODD 0x00000004l
2772#define DDOVER_ALPHADEST 0x00000001l
2778#define DDOVER_ALPHADESTCONSTOVERRIDE 0x00000002l
2784#define DDOVER_ALPHADESTNEG 0x00000004l
2790#define DDOVER_ALPHADESTSURFACEOVERRIDE 0x00000008l
2796#define DDOVER_ALPHAEDGEBLEND 0x00000010l
2802#define DDOVER_ALPHASRC 0x00000020l
2808#define DDOVER_ALPHASRCCONSTOVERRIDE 0x00000040l
2814#define DDOVER_ALPHASRCNEG 0x00000080l
2820#define DDOVER_ALPHASRCSURFACEOVERRIDE 0x00000100l
2825#define DDOVER_HIDE 0x00000200l
2830#define DDOVER_KEYDEST 0x00000400l
2836#define DDOVER_KEYDESTOVERRIDE 0x00000800l
2841#define DDOVER_KEYSRC 0x00001000l
2847#define DDOVER_KEYSRCOVERRIDE 0x00002000l
2852#define DDOVER_SHOW 0x00004000l
2857#define DDOVER_ADDDIRTYRECT 0x00008000l
2862#define DDOVER_REFRESHDIRTYRECTS 0x00010000l
2867#define DDOVER_REFRESHALL 0x00020000l
2873#define DDOVER_DDFX 0x00080000l
2878#define DDOVER_AUTOFLIP 0x00100000l
2884#define DDOVER_BOB 0x00200000l
2890#define DDOVER_OVERRIDEBOBWEAVE 0x00400000l
2895#define DDOVER_INTERLEAVED 0x00800000l
2909#define DDLOCK_SURFACEMEMORYPTR 0x00000000L
2916#define DDLOCK_WAIT 0x00000001L
2922#define DDLOCK_EVENT 0x00000002L
2927#define DDLOCK_READONLY 0x00000010L
2932#define DDLOCK_WRITEONLY 0x00000020L
2943#define DDLOCK_NOSYSLOCK 0x00000800L
2977#define DDBLTFX_ARITHSTRETCHY 0x00000001l
2983#define DDBLTFX_MIRRORLEFTRIGHT 0x00000002l
2989#define DDBLTFX_MIRRORUPDOWN 0x00000004l
2994#define DDBLTFX_NOTEARING 0x00000008l
2999#define DDBLTFX_ROTATE180 0x00000010l
3004#define DDBLTFX_ROTATE270 0x00000020l
3009#define DDBLTFX_ROTATE90 0x00000040l
3015#define DDBLTFX_ZBUFFERRANGE 0x00000080l
3021#define DDBLTFX_ZBUFFERBASEDEST 0x00000100l
3032#define DDOVERFX_ARITHSTRETCHY 0x00000001l
3037#define DDOVERFX_MIRRORLEFTRIGHT 0x00000002l
3042#define DDOVERFX_MIRRORUPDOWN 0x00000004l
3053#define DDWAITVB_BLOCKBEGIN 0x00000001l
3058#define DDWAITVB_BLOCKBEGINEVENT 0x00000002l
3063#define DDWAITVB_BLOCKEND 0x00000004l
3074#define DDGFS_CANFLIP 0x00000001l
3079#define DDGFS_ISFLIPDONE 0x00000002l
3090#define DDGBS_CANBLT 0x00000001l
3095#define DDGBS_ISBLTDONE 0x00000002l
3107#define DDENUMOVERLAYZ_BACKTOFRONT 0x00000000l
3112#define DDENUMOVERLAYZ_FRONTTOBACK 0x00000001l
3123#define DDOVERZ_SENDTOFRONT 0x00000000l
3128#define DDOVERZ_SENDTOBACK 0x00000001l
3133#define DDOVERZ_MOVEFORWARD 0x00000002l
3138#define DDOVERZ_MOVEBACKWARD 0x00000003l
3143#define DDOVERZ_INSERTINFRONTOF 0x00000004l
3148#define DDOVERZ_INSERTINBACKOF 0x00000005l
3181#define DDENUMRET_CANCEL 0
3186#define DDENUMRET_OK 1
3199#define DDERR_ALREADYINITIALIZED MAKE_DDHRESULT( 5 )
3204#define DDERR_CANNOTATTACHSURFACE MAKE_DDHRESULT( 10 )
3209#define DDERR_CANNOTDETACHSURFACE MAKE_DDHRESULT( 20 )
3214#define DDERR_CURRENTLYNOTAVAIL MAKE_DDHRESULT( 40 )
3219#define DDERR_EXCEPTION MAKE_DDHRESULT( 55 )
3224#define DDERR_GENERIC E_FAIL
3229#define DDERR_HEIGHTALIGN MAKE_DDHRESULT( 90 )
3235#define DDERR_INCOMPATIBLEPRIMARY MAKE_DDHRESULT( 95 )
3240#define DDERR_INVALIDCAPS MAKE_DDHRESULT( 100 )
3245#define DDERR_INVALIDCLIPLIST MAKE_DDHRESULT( 110 )
3250#define DDERR_INVALIDMODE MAKE_DDHRESULT( 120 )
3255#define DDERR_INVALIDOBJECT MAKE_DDHRESULT( 130 )
3261#define DDERR_INVALIDPARAMS E_INVALIDARG
3266#define DDERR_INVALIDPIXELFORMAT MAKE_DDHRESULT( 145 )
3271#define DDERR_INVALIDRECT MAKE_DDHRESULT( 150 )
3276#define DDERR_LOCKEDSURFACES MAKE_DDHRESULT( 160 )
3281#define DDERR_NO3D MAKE_DDHRESULT( 170 )
3287#define DDERR_NOALPHAHW MAKE_DDHRESULT( 180 )
3293#define DDERR_NOCLIPLIST MAKE_DDHRESULT( 205 )
3299#define DDERR_NOCOLORCONVHW MAKE_DDHRESULT( 210 )
3305#define DDERR_NOCOOPERATIVELEVELSET MAKE_DDHRESULT( 212 )
3310#define DDERR_NOCOLORKEY MAKE_DDHRESULT( 215 )
3316#define DDERR_NOCOLORKEYHW MAKE_DDHRESULT( 220 )
3321#define DDERR_NODIRECTDRAWSUPPORT MAKE_DDHRESULT( 222 )
3327#define DDERR_NOEXCLUSIVEMODE MAKE_DDHRESULT( 225 )
3332#define DDERR_NOFLIPHW MAKE_DDHRESULT( 230 )
3337#define DDERR_NOGDI MAKE_DDHRESULT( 240 )
3343#define DDERR_NOMIRRORHW MAKE_DDHRESULT( 250 )
3348#define DDERR_NOTFOUND MAKE_DDHRESULT( 255 )
3354#define DDERR_NOOVERLAYHW MAKE_DDHRESULT( 260 )
3360#define DDERR_NORASTEROPHW MAKE_DDHRESULT( 280 )
3366#define DDERR_NOROTATIONHW MAKE_DDHRESULT( 290 )
3372#define DDERR_NOSTRETCHHW MAKE_DDHRESULT( 310 )
3378#define DDERR_NOT4BITCOLOR MAKE_DDHRESULT( 316 )
3384#define DDERR_NOT4BITCOLORINDEX MAKE_DDHRESULT( 317 )
3390#define DDERR_NOT8BITCOLOR MAKE_DDHRESULT( 320 )
3396#define DDERR_NOTEXTUREHW MAKE_DDHRESULT( 330 )
3402#define DDERR_NOVSYNCHW MAKE_DDHRESULT( 335 )
3408#define DDERR_NOZBUFFERHW MAKE_DDHRESULT( 340 )
3414#define DDERR_NOZOVERLAYHW MAKE_DDHRESULT( 350 )
3420#define DDERR_OUTOFCAPS MAKE_DDHRESULT( 360 )
3425#define DDERR_OUTOFMEMORY E_OUTOFMEMORY
3430#define DDERR_OUTOFVIDEOMEMORY MAKE_DDHRESULT( 380 )
3435#define DDERR_OVERLAYCANTCLIP MAKE_DDHRESULT( 382 )
3440#define DDERR_OVERLAYCOLORKEYONLYONEACTIVE MAKE_DDHRESULT( 384 )
3446#define DDERR_PALETTEBUSY MAKE_DDHRESULT( 387 )
3451#define DDERR_COLORKEYNOTSET MAKE_DDHRESULT( 400 )
3456#define DDERR_SURFACEALREADYATTACHED MAKE_DDHRESULT( 410 )
3462#define DDERR_SURFACEALREADYDEPENDENT MAKE_DDHRESULT( 420 )
3468#define DDERR_SURFACEBUSY MAKE_DDHRESULT( 430 )
3477#define DDERR_CANTLOCKSURFACE MAKE_DDHRESULT( 435 )
3482#define DDERR_SURFACEISOBSCURED MAKE_DDHRESULT( 440 )
3489#define DDERR_SURFACELOST MAKE_DDHRESULT( 450 )
3494#define DDERR_SURFACENOTATTACHED MAKE_DDHRESULT( 460 )
3499#define DDERR_TOOBIGHEIGHT MAKE_DDHRESULT( 470 )
3505#define DDERR_TOOBIGSIZE MAKE_DDHRESULT( 480 )
3510#define DDERR_TOOBIGWIDTH MAKE_DDHRESULT( 490 )
3515#define DDERR_UNSUPPORTED E_NOTIMPL
3520#define DDERR_UNSUPPORTEDFORMAT MAKE_DDHRESULT( 510 )
3525#define DDERR_UNSUPPORTEDMASK MAKE_DDHRESULT( 520 )
3530#define DDERR_VERTICALBLANKINPROGRESS MAKE_DDHRESULT( 537 )
3536#define DDERR_WASSTILLDRAWING MAKE_DDHRESULT( 540 )
3542#define DDERR_XALIGN MAKE_DDHRESULT( 560 )
3548#define DDERR_INVALIDDIRECTDRAWGUID MAKE_DDHRESULT( 561 )
3554#define DDERR_DIRECTDRAWALREADYCREATED MAKE_DDHRESULT( 562 )
3560#define DDERR_NODIRECTDRAWHW MAKE_DDHRESULT( 563 )
3565#define DDERR_PRIMARYSURFACEALREADYEXISTS MAKE_DDHRESULT( 564 )
3570#define DDERR_NOEMULATION MAKE_DDHRESULT( 565 )
3575#define DDERR_REGIONTOOSMALL MAKE_DDHRESULT( 566 )
3581#define DDERR_CLIPPERISUSINGHWND MAKE_DDHRESULT( 567 )
3586#define DDERR_NOCLIPPERATTACHED MAKE_DDHRESULT( 568 )
3592#define DDERR_NOHWND MAKE_DDHRESULT( 569 )
3598#define DDERR_HWNDSUBCLASSED MAKE_DDHRESULT( 570 )
3604#define DDERR_HWNDALREADYSET MAKE_DDHRESULT( 571 )
3609#define DDERR_NOPALETTEATTACHED MAKE_DDHRESULT( 572 )
3614#define DDERR_NOPALETTEHW MAKE_DDHRESULT( 573 )
3620#define DDERR_BLTFASTCANTCLIP MAKE_DDHRESULT( 574 )
3625#define DDERR_NOBLTHW MAKE_DDHRESULT( 575 )
3630#define DDERR_NODDROPSHW MAKE_DDHRESULT( 576 )
3635#define DDERR_OVERLAYNOTVISIBLE MAKE_DDHRESULT( 577 )
3641#define DDERR_NOOVERLAYDEST MAKE_DDHRESULT( 578 )
3647#define DDERR_INVALIDPOSITION MAKE_DDHRESULT( 579 )
3652#define DDERR_NOTAOVERLAYSURFACE MAKE_DDHRESULT( 580 )
3658#define DDERR_EXCLUSIVEMODEALREADYSET MAKE_DDHRESULT( 581 )
3663#define DDERR_NOTFLIPPABLE MAKE_DDHRESULT( 582 )
3669#define DDERR_CANTDUPLICATE MAKE_DDHRESULT( 583 )
3675#define DDERR_NOTLOCKED MAKE_DDHRESULT( 584 )
3680#define DDERR_CANTCREATEDC MAKE_DDHRESULT( 585 )
3685#define DDERR_NODC MAKE_DDHRESULT( 586 )
3691#define DDERR_WRONGMODE MAKE_DDHRESULT( 587 )
3697#define DDERR_IMPLICITLYCREATED MAKE_DDHRESULT( 588 )
3702#define DDERR_NOTPALETTIZED MAKE_DDHRESULT( 589 )
3708#define DDERR_UNSUPPORTEDMODE MAKE_DDHRESULT( 590 )
3714#define DDERR_NOMIPMAPHW MAKE_DDHRESULT( 591 )
3720#define DDERR_INVALIDSURFACETYPE MAKE_DDHRESULT( 592 )
3727#define DDERR_NOOPTIMIZEHW MAKE_DDHRESULT( 600 )
3732#define DDERR_NOTLOADED MAKE_DDHRESULT( 601 )
3738#define DDERR_DCALREADYCREATED MAKE_DDHRESULT( 620 )
3744#define DDERR_NONONLOCALVIDMEM MAKE_DDHRESULT( 630 )
3749#define DDERR_CANTPAGELOCK MAKE_DDHRESULT( 640 )
3754#define DDERR_CANTPAGEUNLOCK MAKE_DDHRESULT( 660 )
3759#define DDERR_NOTPAGELOCKED MAKE_DDHRESULT( 680 )
3764#define DDERR_MOREDATA MAKE_DDHRESULT( 690 )
3769#define DDERR_VIDEONOTACTIVE MAKE_DDHRESULT( 695 )
3775#define DDERR_DEVICEDOESNTOWNSURFACE MAKE_DDHRESULT( 699 )
3782#define DDERR_NOTINITIALIZED CO_E_NOTINITIALIZED
DECLARE_INTERFACE_(IDirect3D, IUnknown)
DEFINE_GUID(IID_IDirect3DRM, 0x2bc49361, 0x8327, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1)
DDCOLORKEY FAR * LPDDCOLORKEY
struct IDirectDraw2 FAR * LPDIRECTDRAW2
struct IDirectDrawSurface2 FAR * LPDIRECTDRAWSURFACE2
DDBLTBATCH FAR * LPDDBLTBATCH
struct IDirectDrawSurface3 FAR * LPDIRECTDRAWSURFACE3
struct _DDCAPS_DX3 DDCAPS_DX3
struct _DDSURFACEDESC FAR * LPDDSURFACEDESC
struct IDirectDrawClipper FAR * LPDIRECTDRAWCLIPPER
struct IDirectDrawColorControl FAR * LPDIRECTDRAWCOLORCONTROL
struct IDirectDrawSurface FAR * LPDIRECTDRAWSURFACE
DDCAPS_DX3 FAR * LPDDCAPS_DX3
struct _DDPIXELFORMAT DDPIXELFORMAT
typedef DWORD(FAR PASCAL *LPCLIPPERCALLBACK)(LPDIRECTDRAWCLIPPER lpDDClipper
struct _DDSURFACEDESC DDSURFACEDESC
struct IDirectDrawPalette FAR * LPDIRECTDRAWPALETTE
struct _DDCOLORKEY DDCOLORKEY
struct _DDBLTBATCH DDBLTBATCH
struct _DDCOLORCONTROL FAR * LPDDCOLORCONTROL
struct _DDOVERLAYFX DDOVERLAYFX
struct _DDCOLORCONTROL DDCOLORCONTROL
struct IDirectDraw FAR * LPDIRECTDRAW
struct _DDFXROP FAR * LPDDFXROP
DDOVERLAYFX FAR * LPDDOVERLAYFX
DDPIXELFORMAT FAR * LPDDPIXELFORMAT
HWND DWORD LPVOID lpContext
LPDIRECTDRAWSURFACE lpDDSSrc
LPDIRECTDRAWSURFACE lpDDSAlphaSrc
LPDIRECTDRAWSURFACE lpDDSPattern
DWORD dwZSrcConstBitDepth
LPDIRECTDRAWSURFACE lpDDSZBufferSrc
DWORD dwAlphaDestConstBitDepth
DWORD dwZDestConstBitDepth
LPDIRECTDRAWSURFACE lpDDSZBufferDest
DDCOLORKEY ddckSrcColorkey
DDCOLORKEY ddckDestColorkey
DWORD dwAlphaSrcConstBitDepth
DWORD dwAlphaEdgeBlendBitDepth
LPDIRECTDRAWSURFACE lpDDSAlphaDest
DWORD dwMaxLiveVideoStretch
DWORD dwAlphaBltPixelBitDepths
DWORD dwMinOverlayStretch
DWORD dwAlphaBltSurfaceBitDepths
DWORD dwMinHwCodecStretch
DWORD dwSSBRops[DD_ROP_SPACE]
DWORD dwAlphaOverlaySurfaceBitDepths
DWORD dwMaxVisibleOverlays
DWORD dwMaxHwCodecStretch
DWORD dwAlignBoundaryDest
DWORD dwMaxOverlayStretch
DWORD dwAlphaOverlayConstBitDepths
DWORD dwSVBRops[DD_ROP_SPACE]
DWORD dwMinLiveVideoStretch
DWORD dwVSBRops[DD_ROP_SPACE]
DWORD dwAlphaBltConstBitDepths
DWORD dwCurrVisibleOverlays
DWORD dwRops[DD_ROP_SPACE]
DWORD dwAlphaOverlayPixelBitDepths
DWORD dwAlphaBltPixelBitDepths
DWORD dwCurrVisibleOverlays
DWORD dwRops[DD_ROP_SPACE]
DWORD dwMaxVisibleOverlays
DWORD dwMaxLiveVideoStretch
DWORD dwNLVBRops[DD_ROP_SPACE]
DWORD dwAlphaBltSurfaceBitDepths
DWORD dwAlignBoundaryDest
DWORD dwSVBRops[DD_ROP_SPACE]
DWORD dwAlphaOverlayPixelBitDepths
DWORD dwSSBRops[DD_ROP_SPACE]
DWORD dwAlphaOverlayConstBitDepths
DWORD dwMaxHwCodecStretch
DWORD dwVSBRops[DD_ROP_SPACE]
DWORD dwMaxOverlayStretch
DWORD dwAlphaBltConstBitDepths
DWORD dwMinHwCodecStretch
DWORD dwAlphaOverlaySurfaceBitDepths
DWORD dwMinLiveVideoStretch
DWORD dwMinOverlayStretch
DWORD dwColorSpaceHighValue
DWORD dwColorSpaceLowValue
DWORD dwAlphaSrcConstBitDepth
DDCOLORKEY dckDestColorkey
LPDIRECTDRAWSURFACE lpDDSAlphaSrc
DWORD dwAlphaEdgeBlendBitDepth
LPDIRECTDRAWSURFACE lpDDSAlphaDest
DWORD dwAlphaDestConstBitDepth
DDCOLORKEY dckSrcColorkey
DDPIXELFORMAT ddpfPixelFormat
DDCOLORKEY ddckCKDestOverlay
DDCOLORKEY ddckCKSrcOverlay