* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
-#ifndef __WINE_DDRAWI_H
-#define __WINE_DDRAWI_H
+#ifndef __DDRAWI_INCLUDED__
+#define __DDRAWI_INCLUDED__
#ifdef __cplusplus
extern "C" {
#endif
-#include <ddraw.h>
+#define OBJECT_ISROOT 0x80000000
-typedef struct _DDVIDEOPORTCAPS *LPDDVIDEOPORTCAPS; /* should be in dvp.h */
-typedef struct _DDKERNELCAPS *LPDDKERNELCAPS; /* should be in ddkernel.h */
-typedef struct _VMEMHEAP *LPVMEMHEAP; /* should be in dmemmgr.h */
+#include <ddraw.h>
+#include <dvp.h>
+#include <ddkernel.h>
+#include <dmemmgr.h>
#define DDAPI WINAPI
+#define VALID_ALIGNMENT(align) \
+ (!((align==0)||(align%2)!= 0 ))
+
/* the DirectDraw versions */
#define DD_VERSION 0x0200 /* compatibility version */
-#define DD_RUNTIME_VERSION 0x0700 /* actual version */
+#define DD_RUNTIME_VERSION 0x0902 /* actual version */
/* the HAL version returned from QUERYESCSUPPORT - DCICOMMAND */
#define DD_HAL_VERSION 0x0100
/* more DCICOMMAND escapes */
+#ifndef DCICOMMAND
+#define DCICOMMAND 3075
+#endif
+
#define DDCREATEDRIVEROBJECT 10
#define DDGET32BITDRIVERNAME 11
#define DDNEWCALLBACKFNS 12
#define DDVERSIONINFO 13
+
+
+#define DDUNSUPPORTEDMODE ((DWORD) -1)
+
+#include "dciddi.h"
+
+#ifndef CCHDEVICENAME
+#define CCHDEVICENAME 32
+#endif
#define MAX_DRIVER_NAME CCHDEVICENAME
+#define DDHAL_DRIVER_DLLNAME "DDRAW16.DLL"
+#define DDHAL_APP_DLLNAME "DDRAW.DLL"
+
+
+
+/* GUID */
+#ifdef _WIN32
+DEFINE_GUID(GUID_MiscellaneousCallbacks, 0xefd60cc0, 0x49e7, 0x11d0, 0x88, 0x9d, 0x00, 0xaa, 0x00, 0xbb, 0xb7, 0x6a);
+DEFINE_GUID(GUID_VideoPortCallbacks, 0xefd60cc1, 0x49e7, 0x11d0, 0x88, 0x9d, 0x00, 0xaa, 0x00, 0xbb, 0xb7, 0x6a);
+DEFINE_GUID(GUID_ColorControlCallbacks, 0xefd60cc2, 0x49e7, 0x11d0, 0x88, 0x9d, 0x00, 0xaa, 0x00, 0xbb, 0xb7, 0x6a);
+DEFINE_GUID(GUID_VideoPortCaps, 0xefd60cc3, 0x49e7, 0x11d0, 0x88, 0x9d, 0x00, 0xaa, 0x00, 0xbb, 0xb7, 0x6a);
+DEFINE_GUID(GUID_D3DCallbacks2, 0x0ba584e1, 0x70b6, 0x11d0, 0x88, 0x9d, 0x00, 0xaa, 0x00, 0xbb, 0xb7, 0x6a);
+DEFINE_GUID(GUID_D3DCallbacks3, 0xddf41230, 0xec0a, 0x11d0, 0xa9, 0xb6, 0x00, 0xaa, 0x00, 0xc0, 0x99, 0x3e);
+DEFINE_GUID(GUID_NonLocalVidMemCaps, 0x86c4fa80, 0x8d84, 0x11d0, 0x94, 0xe8, 0x00, 0xc0, 0x4f, 0xc3, 0x41, 0x37);
+DEFINE_GUID(GUID_KernelCallbacks, 0x80863800, 0x6B06, 0x11D0, 0x9B, 0x06, 0x0, 0xA0, 0xC9, 0x03, 0xA3, 0xB8);
+DEFINE_GUID(GUID_KernelCaps, 0xFFAA7540, 0x7AA8, 0x11D0, 0x9B, 0x06, 0x00, 0xA0, 0xC9, 0x03, 0xA3, 0xB8);
+DEFINE_GUID(GUID_D3DExtendedCaps, 0x7de41f80, 0x9d93, 0x11d0, 0x89, 0xab, 0x0, 0xa0, 0xc9, 0x5, 0x41, 0x29);
+DEFINE_GUID(GUID_ZPixelFormats, 0x93869880, 0x36cf, 0x11d1, 0x9b, 0x1b, 0x0, 0xaa, 0x0, 0xbb, 0xb8, 0xae);
+DEFINE_GUID(GUID_DDMoreSurfaceCaps, 0x3b8a0466, 0xf269, 0x11d1, 0x88, 0x0b, 0x0, 0xc0, 0x4f, 0xd9, 0x30, 0xc5);
+DEFINE_GUID(GUID_DDStereoMode, 0xf828169c, 0xa8e8, 0x11d2, 0xa1, 0xf2, 0x0, 0xa0, 0xc9, 0x83, 0xea, 0xf6);
+DEFINE_GUID(GUID_OptSurfaceKmodeInfo, 0xe05c8472, 0x51d4, 0x11d1, 0x8c, 0xce, 0x0, 0xa0, 0xc9, 0x6, 0x29, 0xa8);
+DEFINE_GUID(GUID_OptSurfaceUmodeInfo, 0x9d792804, 0x5fa8, 0x11d1, 0x8c, 0xd0, 0x0, 0xa0, 0xc9, 0x6, 0x29, 0xa8);
+DEFINE_GUID(GUID_UserModeDriverInfo, 0xf0b0e8e2, 0x5f97, 0x11d1, 0x8c, 0xd0, 0x0, 0xa0, 0xc9, 0x6, 0x29, 0xa8);
+DEFINE_GUID(GUID_UserModeDriverPassword, 0x97f861b6, 0x60a1, 0x11d1, 0x8c, 0xd0, 0x0, 0xa0, 0xc9, 0x6, 0x29, 0xa8);
+DEFINE_GUID(GUID_D3DParseUnknownCommandCallback, 0x2e04ffa0, 0x98e4, 0x11d1, 0x8c, 0xe1, 0x0, 0xa0, 0xc9, 0x6, 0x29, 0xa8);
+DEFINE_GUID(GUID_MotionCompCallbacks, 0xb1122b40, 0x5dA5, 0x11d1, 0x8f, 0xcF, 0x00, 0xc0, 0x4f, 0xc2, 0x9b, 0x4e);
+DEFINE_GUID(GUID_Miscellaneous2Callbacks, 0x406B2F00, 0x3E5A, 0x11D1, 0xB6, 0x40, 0x00, 0xAA, 0x00, 0xA1, 0xF9, 0x6A);
+#endif
+
+#ifndef _WIN32
+#undef E_NOTIMPL
+#undef E_OUTOFMEMORY
+#undef E_INVALIDARG
+#undef E_FAIL
+#define E_NOTIMPL 0x80004001L
+#define E_OUTOFMEMORY 0x8007000EL
+#define E_INVALIDARG 0x80070057L
+#define E_FAIL 0x80004005L
+#endif
+
+
/*****************************************************************************
* Initialization stuff
*/
typedef DWORD (PASCAL *LPDD32BITDRIVERINIT)(DWORD dwContext);
-/* pointer to video memory */
-typedef ULONG_PTR FLATPTR;
+
/* predeclare some structures */
typedef struct _DDHALINFO *LPDDHALINFO;
typedef struct _DDRAWI_DIRECTDRAW_INT *LPDDRAWI_DIRECTDRAW_INT;
+
+#ifndef DDRAWI_DIRECTDRAW_DEFINED
typedef struct _DDRAWI_DIRECTDRAW_LCL *LPDDRAWI_DIRECTDRAW_LCL;
typedef struct _DDRAWI_DIRECTDRAW_GBL *LPDDRAWI_DIRECTDRAW_GBL;
+#define DDRAWI_DIRECTDRAW_DEFINED
+#endif
+
typedef struct _DDRAWI_DDRAWSURFACE_INT *LPDDRAWI_DDRAWSURFACE_INT;
+
+#ifndef DDRAWI_DDRAWSURFACE_DEFINED
typedef struct _DDRAWI_DDRAWSURFACE_LCL *LPDDRAWI_DDRAWSURFACE_LCL;
+#define DDRAWI_DDRAWSURFACE_DEFINED
+#endif
+
typedef struct _DDRAWI_DDRAWSURFACE_GBL *LPDDRAWI_DDRAWSURFACE_GBL;
typedef struct _DDRAWI_DDRAWSURFACE_MORE *LPDDRAWI_DDRAWSURFACE_MORE;
typedef struct _DDRAWI_DDRAWSURFACE_GBL_MORE *LPDDRAWI_DDRAWSURFACE_GBL_MORE;
DWORD dwAlphaBitMask;
} DDHALMODEINFO,*LPDDHALMODEINFO;
+
+
+
#define DDMODEINFO_PALETTIZED 0x0001
#define DDMODEINFO_MODEX 0x0002
#define DDMODEINFO_UNSUPPORTED 0x0004
union {
FLATPTR fpEnd;
DWORD dwWidth;
- } DUMMYUNIONNAME1;
+ };
DDSCAPS ddsCaps;
DDSCAPS ddsCapsAlt;
union {
LPVMEMHEAP lpHeap;
DWORD dwHeight;
- } DUMMYUNIONNAME2;
-} VIDMEM,*LPVIDMEM;
+ };
+} VIDMEM;
+
+
+#ifndef __DD_INCLUDED__
#define VIDMEM_ISLINEAR 0x00000001
#define VIDMEM_ISRECTANGULAR 0x00000002
#define VIDMEM_ISHEAP 0x00000004
#define VIDMEM_ISNONLOCAL 0x00000008
#define VIDMEM_ISWC 0x00000010
#define VIDMEM_ISDISABLED 0x00000020
+#endif
typedef struct _VIDMEMINFO {
FLATPTR fpPrimary;
LPVIDMEM pvmList;
} VIDMEMINFO,*LPVIDMEMINFO;
+
+
typedef struct _HEAPALIAS {
FLATPTR fpVidMem;
LPVOID lpAlias;
DWORD dwNLVBRops[DD_ROP_SPACE];
} DDNONLOCALVIDMEMCAPS,*LPDDNONLOCALVIDMEMCAPS;
-typedef struct _DDSCAPSEX {
- DWORD dwCaps2;
- DWORD dwCaps3;
- DWORD dwCaps4;
-} DDSCAPSEX,*LPDDSCAPSEX;
+
#define DDSCAPS_EXECUTEBUFFER DDSCAPS_RESERVED2
#define DDSCAPS2_VERTEXBUFFER DDSCAPS2_RESERVED1
#define DDSCAPS2_COMMANDBUFFER DDSCAPS2_RESERVED2
+
+
+
/*****************************************************************************
* ddraw->driver callbacks
*/
+#ifndef __DD_INCLUDED__
#define DDHAL_DRIVER_NOTHANDLED 0
#define DDHAL_DRIVER_HANDLED 1
#define DDHAL_DRIVER_NOCKEYHW 2
+#endif
typedef struct _DDHAL_DESTROYDRIVERDATA *LPDDHAL_DESTROYDRIVERDATA;
typedef struct _DDHAL_CREATESURFACEDATA *LPDDHAL_CREATESURFACEDATA;
typedef DWORD (PASCAL *LPDDHAL_SETEXCLUSIVEMODE) (LPDDHAL_SETEXCLUSIVEMODEDATA);
typedef DWORD (PASCAL *LPDDHAL_FLIPTOGDISURFACE) (LPDDHAL_FLIPTOGDISURFACEDATA);
+
+
typedef struct _DDHAL_DDCALLBACKS {
DWORD dwSize;
DWORD dwFlags;
LPDDHAL_FLIPTOGDISURFACE FlipToGDISurface;
} DDHAL_DDCALLBACKS,*LPDDHAL_DDCALLBACKS;
+
+
typedef struct _DDHAL_DESTROYSURFACEDATA *LPDDHAL_DESTROYSURFACEDATA;
typedef struct _DDHAL_FLIPDATA *LPDDHAL_FLIPDATA;
typedef struct _DDHAL_SETCLIPLISTDATA *LPDDHAL_SETCLIPLISTDATA;
LPDDHALSURFCB_SETPALETTE SetPalette;
} DDHAL_DDSURFACECALLBACKS,*LPDDHAL_DDSURFACECALLBACKS;
+
+
typedef struct _DDHAL_DESTROYPALETTEDATA *LPDDHAL_DESTROYPALETTEDATA;
typedef struct _DDHAL_SETENTRIESDATA *LPDDHAL_SETENTRIESDATA;
LPDDHAL_DESTROYDDLOCAL DestroyDDLocal;
} DDHAL_DDMISCELLANEOUS2CALLBACKS,*LPDDHAL_DDMISCELLANEOUS2CALLBACKS;
+
+typedef struct _DDHAL_CANCREATEVPORTDATA *LPDDHAL_CANCREATEVPORTDATA;
+typedef struct _DDHAL_CREATEVPORTDATA *LPDDHAL_CREATEVPORTDATA;
+typedef struct _DDHAL_FLIPVPORTDATA *LPDDHAL_FLIPVPORTDATA;
+typedef struct _DDHAL_GETVPORTCONNECTDATA *LPDDHAL_GETVPORTCONNECTDATA;
+typedef struct _DDHAL_GETVPORTBANDWIDTHDATA *LPDDHAL_GETVPORTBANDWIDTHDATA;
+typedef struct _DDHAL_GETVPORTINPUTFORMATDATA *LPDDHAL_GETVPORTINPUTFORMATDATA;
+typedef struct _DDHAL_GETVPORTOUTPUTFORMATDATA *LPDDHAL_GETVPORTOUTPUTFORMATDATA;
+typedef struct _DDHAL_GETVPORTFIELDDATA *LPDDHAL_GETVPORTFIELDDATA;
+typedef struct _DDHAL_GETVPORTLINEDATA *LPDDHAL_GETVPORTLINEDATA;
+typedef struct _DDHAL_DESTROYVPORTDATA *LPDDHAL_DESTROYVPORTDATA;
+typedef struct _DDHAL_GETVPORTFLIPSTATUSDATA *LPDDHAL_GETVPORTFLIPSTATUSDATA;
+typedef struct _DDHAL_UPDATEVPORTDATA *LPDDHAL_UPDATEVPORTDATA;
+typedef struct _DDHAL_WAITFORVPORTSYNCDATA *LPDDHAL_WAITFORVPORTSYNCDATA;
+typedef struct _DDHAL_GETVPORTSIGNALDATA *LPDDHAL_GETVPORTSIGNALDATA;
+typedef struct _DDHAL_VPORTCOLORDATA *LPDDHAL_VPORTCOLORDATA;
+
+typedef DWORD (PASCAL *LPDDHALVPORTCB_CANCREATEVIDEOPORT)(LPDDHAL_CANCREATEVPORTDATA);
+typedef DWORD (PASCAL *LPDDHALVPORTCB_CREATEVIDEOPORT)(LPDDHAL_CREATEVPORTDATA);
+typedef DWORD (PASCAL *LPDDHALVPORTCB_FLIP)(LPDDHAL_FLIPVPORTDATA);
+typedef DWORD (PASCAL *LPDDHALVPORTCB_GETBANDWIDTH)(LPDDHAL_GETVPORTBANDWIDTHDATA);
+typedef DWORD (PASCAL *LPDDHALVPORTCB_GETINPUTFORMATS)(LPDDHAL_GETVPORTINPUTFORMATDATA);
+typedef DWORD (PASCAL *LPDDHALVPORTCB_GETOUTPUTFORMATS)(LPDDHAL_GETVPORTOUTPUTFORMATDATA);
+typedef DWORD (PASCAL *LPDDHALVPORTCB_GETFIELD)(LPDDHAL_GETVPORTFIELDDATA);
+typedef DWORD (PASCAL *LPDDHALVPORTCB_GETLINE)(LPDDHAL_GETVPORTLINEDATA);
+typedef DWORD (PASCAL *LPDDHALVPORTCB_GETVPORTCONNECT)(LPDDHAL_GETVPORTCONNECTDATA);
+typedef DWORD (PASCAL *LPDDHALVPORTCB_DESTROYVPORT)(LPDDHAL_DESTROYVPORTDATA);
+typedef DWORD (PASCAL *LPDDHALVPORTCB_GETFLIPSTATUS)(LPDDHAL_GETVPORTFLIPSTATUSDATA);
+typedef DWORD (PASCAL *LPDDHALVPORTCB_UPDATE)(LPDDHAL_UPDATEVPORTDATA);
+typedef DWORD (PASCAL *LPDDHALVPORTCB_WAITFORSYNC)(LPDDHAL_WAITFORVPORTSYNCDATA);
+typedef DWORD (PASCAL *LPDDHALVPORTCB_GETSIGNALSTATUS)(LPDDHAL_GETVPORTSIGNALDATA);
+typedef DWORD (PASCAL *LPDDHALVPORTCB_COLORCONTROL)(LPDDHAL_VPORTCOLORDATA);
+
+typedef struct _DDHAL_DDVIDEOPORTCALLBACKS
+{
+ DWORD dwSize;
+ DWORD dwFlags;
+ LPDDHALVPORTCB_CANCREATEVIDEOPORT CanCreateVideoPort;
+ LPDDHALVPORTCB_CREATEVIDEOPORT CreateVideoPort;
+ LPDDHALVPORTCB_FLIP FlipVideoPort;
+ LPDDHALVPORTCB_GETBANDWIDTH GetVideoPortBandwidth;
+ LPDDHALVPORTCB_GETINPUTFORMATS GetVideoPortInputFormats;
+ LPDDHALVPORTCB_GETOUTPUTFORMATS GetVideoPortOutputFormats;
+ LPVOID lpReserved1;
+ LPDDHALVPORTCB_GETFIELD GetVideoPortField;
+ LPDDHALVPORTCB_GETLINE GetVideoPortLine;
+ LPDDHALVPORTCB_GETVPORTCONNECT GetVideoPortConnectInfo;
+ LPDDHALVPORTCB_DESTROYVPORT DestroyVideoPort;
+ LPDDHALVPORTCB_GETFLIPSTATUS GetVideoPortFlipStatus;
+ LPDDHALVPORTCB_UPDATE UpdateVideoPort;
+ LPDDHALVPORTCB_WAITFORSYNC WaitForVideoPortSync;
+ LPDDHALVPORTCB_GETSIGNALSTATUS GetVideoSignalStatus;
+ LPDDHALVPORTCB_COLORCONTROL ColorControl;
+} DDHAL_DDVIDEOPORTCALLBACKS;
+
+
+typedef struct _DDHAL_COLORCONTROLDATA *LPDDHAL_COLORCONTROLDATA;
+
+typedef DWORD (PASCAL *LPDDHALCOLORCB_COLORCONTROL)(LPDDHAL_COLORCONTROLDATA);
+
+
+typedef struct _DDHAL_DDCOLORCONTROLCALLBACKS
+{
+ DWORD dwSize;
+ DWORD dwFlags;
+ LPDDHALCOLORCB_COLORCONTROL ColorControl;
+} DDHAL_DDCOLORCONTROLCALLBACKS;
+
+typedef struct _DDHAL_SYNCSURFACEDATA *LPDDHAL_SYNCSURFACEDATA;
+typedef struct _DDHAL_SYNCVIDEOPORTDATA *LPDDHAL_SYNCVIDEOPORTDATA;
+
+typedef DWORD (PASCAL *LPDDHALKERNELCB_SYNCSURFACE)(LPDDHAL_SYNCSURFACEDATA);
+typedef DWORD (PASCAL *LPDDHALKERNELCB_SYNCVIDEOPORT)(LPDDHAL_SYNCVIDEOPORTDATA);
+
+typedef struct _DDHAL_DDKERNELCALLBACKS
+{
+ DWORD dwSize;
+ DWORD dwFlags;
+ LPDDHALKERNELCB_SYNCSURFACE SyncSurfaceData;
+ LPDDHALKERNELCB_SYNCVIDEOPORT SyncVideoPortData;
+} DDHAL_DDKERNELCALLBACKS, *LPDDHAL_DDKERNELCALLBACKS;
+
+typedef struct _DDHAL_GETMOCOMPGUIDSDATA *LPDDHAL_GETMOCOMPGUIDSDATA;
+typedef struct _DDHAL_GETMOCOMPFORMATSDATA *LPDDHAL_GETMOCOMPFORMATSDATA;
+typedef struct _DDHAL_CREATEMOCOMPDATA *LPDDHAL_CREATEMOCOMPDATA;
+typedef struct _DDHAL_GETMOCOMPCOMPBUFFDATA *LPDDHAL_GETMOCOMPCOMPBUFFDATA;
+typedef struct _DDHAL_GETINTERNALMOCOMPDATA *LPDDHAL_GETINTERNALMOCOMPDATA;
+typedef struct _DDHAL_BEGINMOCOMPFRAMEDATA *LPDDHAL_BEGINMOCOMPFRAMEDATA;
+typedef struct _DDHAL_ENDMOCOMPFRAMEDATA *LPDDHAL_ENDMOCOMPFRAMEDATA;
+typedef struct _DDHAL_RENDERMOCOMPDATA *LPDDHAL_RENDERMOCOMPDATA;
+typedef struct _DDHAL_QUERYMOCOMPSTATUSDATA *LPDDHAL_QUERYMOCOMPSTATUSDATA;
+typedef struct _DDHAL_DESTROYMOCOMPDATA *LPDDHAL_DESTROYMOCOMPDATA;
+
+typedef DWORD (PASCAL *LPDDHALMOCOMPCB_GETGUIDS)( LPDDHAL_GETMOCOMPGUIDSDATA);
+typedef DWORD (PASCAL *LPDDHALMOCOMPCB_GETFORMATS)( LPDDHAL_GETMOCOMPFORMATSDATA);
+typedef DWORD (PASCAL *LPDDHALMOCOMPCB_CREATE)( LPDDHAL_CREATEMOCOMPDATA);
+typedef DWORD (PASCAL *LPDDHALMOCOMPCB_GETCOMPBUFFINFO)( LPDDHAL_GETMOCOMPCOMPBUFFDATA);
+typedef DWORD (PASCAL *LPDDHALMOCOMPCB_GETINTERNALINFO)( LPDDHAL_GETINTERNALMOCOMPDATA);
+typedef DWORD (PASCAL *LPDDHALMOCOMPCB_BEGINFRAME)( LPDDHAL_BEGINMOCOMPFRAMEDATA);
+typedef DWORD (PASCAL *LPDDHALMOCOMPCB_ENDFRAME)( LPDDHAL_ENDMOCOMPFRAMEDATA);
+typedef DWORD (PASCAL *LPDDHALMOCOMPCB_RENDER)( LPDDHAL_RENDERMOCOMPDATA);
+typedef DWORD (PASCAL *LPDDHALMOCOMPCB_QUERYSTATUS)( LPDDHAL_QUERYMOCOMPSTATUSDATA);
+typedef DWORD (PASCAL *LPDDHALMOCOMPCB_DESTROY)( LPDDHAL_DESTROYMOCOMPDATA);
+
+typedef struct _DDHAL_DDMOTIONCOMPCALLBACKS
+{
+ DWORD dwSize;
+ DWORD dwFlags;
+ LPDDHALMOCOMPCB_GETGUIDS GetMoCompGuids;
+ LPDDHALMOCOMPCB_GETFORMATS GetMoCompFormats;
+ LPDDHALMOCOMPCB_CREATE CreateMoComp;
+ LPDDHALMOCOMPCB_GETCOMPBUFFINFO GetMoCompBuffInfo;
+ LPDDHALMOCOMPCB_GETINTERNALINFO GetInternalMoCompInfo;
+ LPDDHALMOCOMPCB_BEGINFRAME BeginMoCompFrame;
+ LPDDHALMOCOMPCB_ENDFRAME EndMoCompFrame;
+ LPDDHALMOCOMPCB_RENDER RenderMoComp;
+ LPDDHALMOCOMPCB_QUERYSTATUS QueryMoCompStatus;
+ LPDDHALMOCOMPCB_DESTROY DestroyMoComp;
+} DDHAL_DDMOTIONCOMPCALLBACKS, *LPDDHAL_DDMOTIONCOMPCALLBACKS;
+
+
+
typedef HRESULT (WINAPI *LPDDGAMMACALIBRATORPROC)(LPDDGAMMARAMP, LPBYTE);
+
+
/*****************************************************************************
* driver info structure
*
typedef struct _DDHAL_GETDRIVERINFODATA *LPDDHAL_GETDRIVERINFODATA;
typedef DWORD (PASCAL *LPDDHAL_GETDRIVERINFO)(LPDDHAL_GETDRIVERINFODATA);
+
+typedef struct _DDHAL_GETDRIVERINFODATA {
+ DWORD dwSize;
+ DWORD dwFlags;
+ GUID guidInfo;
+ DWORD dwExpectedSize;
+ LPVOID lpvData;
+ DWORD dwActualSize;
+ HRESULT ddRVal;
+ ULONG_PTR dwContext;
+
+} DDHAL_GETDRIVERINFODATA;
+
typedef struct _DDHALINFO {
DWORD dwSize;
LPDDHAL_DDCALLBACKS lpDDCallbacks;
LPDDHAL_DDEXEBUFCALLBACKS lpDDExeBufCallbacks;
} DDHALINFO;
-#define DDHALINFO_ISPRIMARYDISPLAY 0x00000001
-#define DDHALINFO_MODEXILLEGAL 0x00000002
-#define DDHALINFO_GETDRIVERINFOSET 0x00000004
+
+
+#define DDPALETTECALLBACKSSIZE sizeof( DDHAL_DDPALETTECALLBACKS )
+#define DDSURFACECALLBACKSSIZE sizeof( DDHAL_DDSURFACECALLBACKS )
+#define DDMISCELLANEOUSCALLBACKSSIZE sizeof(DDHAL_DDMISCELLANEOUSCALLBACKS)
+#define DDMISCELLANEOUS2CALLBACKSSIZE sizeof(DDHAL_DDMISCELLANEOUS2CALLBACKS)
+#define DDEXEBUFCALLBACKSSIZE sizeof( DDHAL_DDEXEBUFCALLBACKS )
+#define DDVIDEOPORTCALLBACKSSIZE sizeof( DDHAL_DDVIDEOPORTCALLBACKS )
+#define DDCOLORCONTROLCALLBACKSSIZE sizeof( DDHAL_DDCOLORCONTROLCALLBACKS )
+#define DDKERNELCALLBACKSSIZE sizeof(DDHAL_DDKERNELCALLBACKS)
+#define DDMOTIONCOMPCALLBACKSSIZE sizeof( DDHAL_DDMOTIONCOMPCALLBACKS )
+
+#define MAX_PALETTE_SIZE 256
+
+#define MAX_AUTOFLIP_BUFFERS 10
+#define DDSCAPS2_INDEXBUFFER DDSCAPS2_RESERVED3
+#define DDSCAPS3_VIDEO DDSCAPS3_RESERVED2
+#define D3DFMT_INTERNAL_D32 71
+#define D3DFMT_INTERNAL_S1D15 72
+#define D3DFMT_INTERNAL_D15S1 73
+#define D3DFMT_INTERNAL_S8D24 74
+#define D3DFMT_INTERNAL_D24S8 75
+#define D3DFMT_INTERNAL_X8D24 76
+#define D3DFMT_INTERNAL_D24X8 77
+#define DDHAL_PLEASEALLOC_BLOCKSIZE 0x00000002l
+#define DDHAL_PLEASEALLOC_LINEARSIZE 0x00000003l
+
+#define DDHAL_CB32_DESTROYDRIVER 0x00000001l
+#define DDHAL_CB32_CREATESURFACE 0x00000002l
+#define DDHAL_CB32_SETCOLORKEY 0x00000004l
+#define DDHAL_CB32_SETMODE 0x00000008l
+#define DDHAL_CB32_WAITFORVERTICALBLANK 0x00000010l
+#define DDHAL_CB32_CANCREATESURFACE 0x00000020l
+#define DDHAL_CB32_CREATEPALETTE 0x00000040l
+#define DDHAL_CB32_GETSCANLINE 0x00000080l
+#define DDHAL_CB32_SETEXCLUSIVEMODE 0x00000100l
+#define DDHAL_CB32_FLIPTOGDISURFACE 0x00000200l
+#define DDHAL_PALCB32_DESTROYPALETTE 0x00000001l
+#define DDHAL_PALCB32_SETENTRIES 0x00000002l
+#ifndef __DD_INCLUDED__
+#define DDHALINFO_ISPRIMARYDISPLAY 0x00000001
+#define DDHALINFO_MODEXILLEGAL 0x00000002
+#define DDHALINFO_GETDRIVERINFOSET 0x00000004
+#define DDHALINFO_GETDRIVERINFO2 0x00000008
+#endif
+#define DDRAWI_VPORTSTART 0x0001
+#define DDRAWI_VPORTSTOP 0x0002
+#define DDRAWI_VPORTUPDATE 0x0003
+#define DDRAWI_VPORTGETCOLOR 0x0001
+#define DDRAWI_VPORTSETCOLOR 0x0002
+#define DDHAL_SURFCB32_DESTROYSURFACE 0x00000001
+#define DDHAL_SURFCB32_FLIP 0x00000002
+#define DDHAL_SURFCB32_SETCLIPLIST 0x00000004
+#define DDHAL_SURFCB32_LOCK 0x00000008
+#define DDHAL_SURFCB32_UNLOCK 0x00000010
+#define DDHAL_SURFCB32_BLT 0x00000020
+#define DDHAL_SURFCB32_SETCOLORKEY 0x00000040
+#define DDHAL_SURFCB32_ADDATTACHEDSURFACE 0x00000080
+#define DDHAL_SURFCB32_GETBLTSTATUS 0x00000100
+#define DDHAL_SURFCB32_GETFLIPSTATUS 0x00000200
+#define DDHAL_SURFCB32_UPDATEOVERLAY 0x00000400
+#define DDHAL_SURFCB32_SETOVERLAYPOSITION 0x00000800
+#define DDHAL_SURFCB32_RESERVED4 0x00001000
+#define DDHAL_SURFCB32_SETPALETTE 0x00002000
+#define DDHAL_MISCCB32_GETAVAILDRIVERMEMORY 0x00000001
+#define DDHAL_MISCCB32_UPDATENONLOCALHEAP 0x00000002
+#define DDHAL_MISCCB32_GETHEAPALIGNMENT 0x00000004
+#define DDHAL_MISCCB32_GETSYSMEMBLTSTATUS 0x00000008
+#define DDHAL_MISC2CB32_ALPHABLT 0x00000001
+#define DDHAL_MISC2CB32_CREATESURFACEEX 0x00000002
+#define DDHAL_MISC2CB32_GETDRIVERSTATE 0x00000004
+#define DDHAL_MISC2CB32_DESTROYDDLOCAL 0x00000008
+#ifndef __DD_INCLUDED__
+#define DDHAL_EXEBUFCB32_CANCREATEEXEBUF 0x00000001
+#define DDHAL_EXEBUFCB32_CREATEEXEBUF 0x00000002
+#define DDHAL_EXEBUFCB32_DESTROYEXEBUF 0x00000004
+#define DDHAL_EXEBUFCB32_LOCKEXEBUF 0x00000008
+#define DDHAL_EXEBUFCB32_UNLOCKEXEBUF 0x00000010
+#endif
+#define DDHAL_VPORT32_CANCREATEVIDEOPORT 0x00000001
+#define DDHAL_VPORT32_CREATEVIDEOPORT 0x00000002
+#define DDHAL_VPORT32_FLIP 0x00000004
+#define DDHAL_VPORT32_GETBANDWIDTH 0x00000008
+#define DDHAL_VPORT32_GETINPUTFORMATS 0x00000010
+#define DDHAL_VPORT32_GETOUTPUTFORMATS 0x00000020
+#define DDHAL_VPORT32_GETFIELD 0x00000080
+#define DDHAL_VPORT32_GETLINE 0x00000100
+#define DDHAL_VPORT32_GETCONNECT 0x00000200
+#define DDHAL_VPORT32_DESTROY 0x00000400
+#define DDHAL_VPORT32_GETFLIPSTATUS 0x00000800
+#define DDHAL_VPORT32_UPDATE 0x00001000
+#define DDHAL_VPORT32_WAITFORSYNC 0x00002000
+#define DDHAL_VPORT32_GETSIGNALSTATUS 0x00004000
+#define DDHAL_VPORT32_COLORCONTROL 0x00008000
+#define DDHAL_COLOR_COLORCONTROL 0x00000001
+#ifndef __DD_INCLUDED__
+#define DDHAL_KERNEL_SYNCSURFACEDATA 0x00000001
+#define DDHAL_KERNEL_SYNCVIDEOPORTDATA 0x00000002
+#endif
+#define DDHAL_MOCOMP32_GETGUIDS 0x00000001
+#define DDHAL_MOCOMP32_GETFORMATS 0x00000002
+#define DDHAL_MOCOMP32_CREATE 0x00000004
+#define DDHAL_MOCOMP32_GETCOMPBUFFINFO 0x00000008
+#define DDHAL_MOCOMP32_GETINTERNALINFO 0x00000010
+#define DDHAL_MOCOMP32_BEGINFRAME 0x00000020
+#define DDHAL_MOCOMP32_ENDFRAME 0x00000040
+#define DDHAL_MOCOMP32_RENDER 0x00000080
+#define DDHAL_MOCOMP32_QUERYSTATUS 0x00000100
+#define DDHAL_MOCOMP32_DESTROY 0x00000200
+
/* where the high-level ddraw implementation stores the callbacks */
typedef struct _DDHAL_CALLBACKS {
- DDHAL_DDCALLBACKS cbDDCallbacks;
- DDHAL_DDSURFACECALLBACKS cbDDSurfaceCallbacks;
- DDHAL_DDPALETTECALLBACKS cbDDPaletteCallbacks;
- DDHAL_DDCALLBACKS HALDD;
- DDHAL_DDSURFACECALLBACKS HALDDSurface;
- DDHAL_DDPALETTECALLBACKS HALDDPalette;
- DDHAL_DDCALLBACKS HELDD;
- DDHAL_DDSURFACECALLBACKS HELDDSurface;
- DDHAL_DDPALETTECALLBACKS HELDDPalette;
- DDHAL_DDEXEBUFCALLBACKS cbDDExeBufCallbacks;
- DDHAL_DDEXEBUFCALLBACKS HALDDExeBuf;
- DDHAL_DDEXEBUFCALLBACKS HELDDExeBuf;
- /* there's more... videoport, colorcontrol, misc, and motion compensation callbacks... */
+ DDHAL_DDCALLBACKS cbDDCallbacks;
+ DDHAL_DDSURFACECALLBACKS cbDDSurfaceCallbacks;
+ DDHAL_DDPALETTECALLBACKS cbDDPaletteCallbacks;
+ DDHAL_DDCALLBACKS HALDD;
+ DDHAL_DDSURFACECALLBACKS HALDDSurface;
+ DDHAL_DDPALETTECALLBACKS HALDDPalette;
+ DDHAL_DDCALLBACKS HELDD;
+ DDHAL_DDSURFACECALLBACKS HELDDSurface;
+ DDHAL_DDPALETTECALLBACKS HELDDPalette;
+ DDHAL_DDEXEBUFCALLBACKS cbDDExeBufCallbacks;
+ DDHAL_DDEXEBUFCALLBACKS HALDDExeBuf;
+ DDHAL_DDEXEBUFCALLBACKS HELDDExeBuf;
+ DDHAL_DDVIDEOPORTCALLBACKS cbDDVideoPortCallbacks;
+ DDHAL_DDVIDEOPORTCALLBACKS HALDDVideoPort;
+ DDHAL_DDCOLORCONTROLCALLBACKS cbDDColorControlCallbacks;
+ DDHAL_DDCOLORCONTROLCALLBACKS HALDDColorControl;
+ DDHAL_DDMISCELLANEOUSCALLBACKS cbDDMiscellaneousCallbacks;
+ DDHAL_DDMISCELLANEOUSCALLBACKS HALDDMiscellaneous;
+ DDHAL_DDKERNELCALLBACKS cbDDKernelCallbacks;
+ DDHAL_DDKERNELCALLBACKS HALDDKernel;
+ DDHAL_DDMOTIONCOMPCALLBACKS cbDDMotionCompCallbacks;
+ DDHAL_DDMOTIONCOMPCALLBACKS HALDDMotionComp;
} DDHAL_CALLBACKS,*LPDDHAL_CALLBACKS;
/*****************************************************************************
LPDDHALPALCB_SETENTRIES SetEntries;
} DDHAL_SETENTRIESDATA;
-typedef struct _DDHAL_GETDRIVERINFODATA {
- DWORD dwSize;
- DWORD dwFlags;
- GUID guidInfo;
- DWORD dwExpectedSize;
- LPVOID lpvData;
- DWORD dwActualSize;
- HRESULT ddRVal;
- ULONG_PTR dwContext;
-} DDHAL_GETDRIVERINFODATA;
+
+typedef struct _DDHAL_CANCREATEVPORTDATA
+{
+ LPDDRAWI_DIRECTDRAW_LCL lpDD;
+ LPDDVIDEOPORTDESC lpDDVideoPortDesc;
+ HRESULT ddRVal;
+ LPDDHALVPORTCB_CANCREATEVIDEOPORT CanCreateVideoPort;
+} DDHAL_CANCREATEVPORTDATA;
+
+typedef struct _DDHAL_CREATEVPORTDATA
+{
+ LPDDRAWI_DIRECTDRAW_LCL lpDD;
+ LPDDVIDEOPORTDESC lpDDVideoPortDesc;
+ LPDDRAWI_DDVIDEOPORT_LCL lpVideoPort;
+ HRESULT ddRVal;
+ LPDDHALVPORTCB_CREATEVIDEOPORT CreateVideoPort;
+} DDHAL_CREATEVPORTDATA;
+
+typedef struct _DDHAL_GETVPORTBANDWIDTHDATA
+{
+ LPDDRAWI_DIRECTDRAW_LCL lpDD;
+ LPDDRAWI_DDVIDEOPORT_LCL lpVideoPort;
+ LPDDPIXELFORMAT lpddpfFormat;
+ DWORD dwWidth;
+ DWORD dwHeight;
+ DWORD dwFlags;
+ LPDDVIDEOPORTBANDWIDTH lpBandwidth;
+ HRESULT ddRVal;
+ LPDDHALVPORTCB_GETBANDWIDTH GetVideoPortBandwidth;
+} DDHAL_GETVPORTBANDWIDTHDATA;
+
+typedef struct _DDHAL_GETVPORTINPUTFORMATDATA
+{
+ LPDDRAWI_DIRECTDRAW_LCL lpDD;
+ LPDDRAWI_DDVIDEOPORT_LCL lpVideoPort;
+ DWORD dwFlags;
+ LPDDPIXELFORMAT lpddpfFormat;
+ DWORD dwNumFormats;
+ HRESULT ddRVal;
+ LPDDHALVPORTCB_GETINPUTFORMATS GetVideoPortInputFormats;
+} DDHAL_GETVPORTINPUTFORMATDATA;
+
+typedef struct _DDHAL_GETVPORTFIELDDATA
+{
+ LPDDRAWI_DIRECTDRAW_LCL lpDD;
+ LPDDRAWI_DDVIDEOPORT_LCL lpVideoPort;
+ BOOL bField;
+ HRESULT ddRVal;
+ LPDDHALVPORTCB_GETFIELD GetVideoPortField;
+} DDHAL_GETVPORTFIELDDATA;
+
+typedef struct _DDHAL_GETVPORTOUTPUTFORMATDATA
+{
+ LPDDRAWI_DIRECTDRAW_LCL lpDD;
+ LPDDRAWI_DDVIDEOPORT_LCL lpVideoPort;
+ DWORD dwFlags;
+ LPDDPIXELFORMAT lpddpfInputFormat;
+ LPDDPIXELFORMAT lpddpfOutputFormats;
+ DWORD dwNumFormats;
+ HRESULT ddRVal;
+ LPDDHALVPORTCB_GETOUTPUTFORMATS GetVideoPortOutputFormats;
+} DDHAL_GETVPORTOUTPUTFORMATDATA;
+
+typedef struct _DDHAL_GETVPORTLINEDATA
+{
+ LPDDRAWI_DIRECTDRAW_LCL lpDD;
+ LPDDRAWI_DDVIDEOPORT_LCL lpVideoPort;
+ DWORD dwLine;
+ HRESULT ddRVal;
+ LPDDHALVPORTCB_GETLINE GetVideoPortLine;
+} DDHAL_GETVPORTLINEDATA;
+
+typedef struct _DDHAL_DESTROYVPORTDATA
+{
+ LPDDRAWI_DIRECTDRAW_LCL lpDD;
+ LPDDRAWI_DDVIDEOPORT_LCL lpVideoPort;
+ HRESULT ddRVal;
+ LPDDHALVPORTCB_DESTROYVPORT DestroyVideoPort;
+} DDHAL_DESTROYVPORTDATA;
+
+typedef struct _DDHAL_GETVPORTFLIPSTATUSDATA
+{
+ LPDDRAWI_DIRECTDRAW_LCL lpDD;
+ FLATPTR fpSurface;
+ HRESULT ddRVal;
+ LPDDHALVPORTCB_GETFLIPSTATUS GetVideoPortFlipStatus;
+} DDHAL_GETVPORTFLIPSTATUSDATA;
+
+typedef struct _DDHAL_UPDATEVPORTDATA
+{
+ LPDDRAWI_DIRECTDRAW_LCL lpDD;
+ LPDDRAWI_DDVIDEOPORT_LCL lpVideoPort;
+ LPDDRAWI_DDRAWSURFACE_INT *lplpDDSurface;
+ LPDDRAWI_DDRAWSURFACE_INT *lplpDDVBISurface;
+ LPDDVIDEOPORTINFO lpVideoInfo;
+ DWORD dwFlags;
+ DWORD dwNumAutoflip;
+ DWORD dwNumVBIAutoflip;
+ HRESULT ddRVal;
+ LPDDHALVPORTCB_UPDATE UpdateVideoPort;
+} DDHAL_UPDATEVPORTDATA;
+
+typedef struct _DDHAL_WAITFORVPORTSYNCDATA
+{
+ LPDDRAWI_DIRECTDRAW_LCL lpDD;
+ LPDDRAWI_DDVIDEOPORT_LCL lpVideoPort;
+ DWORD dwFlags;
+ DWORD dwLine;
+ DWORD dwTimeOut;
+ HRESULT ddRVal;
+ LPDDHALVPORTCB_WAITFORSYNC WaitForVideoPortSync;
+} DDHAL_WAITFORVPORTSYNCDATA;
+
+typedef struct _DDHAL_GETVPORTSIGNALDATA
+{
+ LPDDRAWI_DIRECTDRAW_LCL lpDD;
+ LPDDRAWI_DDVIDEOPORT_LCL lpVideoPort;
+ DWORD dwStatus;
+ HRESULT ddRVal;
+ LPDDHALVPORTCB_GETSIGNALSTATUS GetVideoSignalStatus;
+} DDHAL_GETVPORTSIGNALDATA;
+
+typedef struct _DDHAL_VPORTCOLORDATA
+{
+ LPDDRAWI_DIRECTDRAW_LCL lpDD;
+ LPDDRAWI_DDVIDEOPORT_LCL lpVideoPort;
+ DWORD dwFlags;
+ LPDDCOLORCONTROL lpColorData;
+ HRESULT ddRVal;
+ LPDDHALVPORTCB_COLORCONTROL ColorControl;
+} DDHAL_VPORTCOLORDATA;
+
+typedef struct _DDHAL_FLIPVPORTDATA
+{
+ LPDDRAWI_DIRECTDRAW_LCL lpDD;
+ LPDDRAWI_DDVIDEOPORT_LCL lpVideoPort;
+ LPDDRAWI_DDRAWSURFACE_LCL lpSurfCurr;
+ LPDDRAWI_DDRAWSURFACE_LCL lpSurfTarg;
+ HRESULT ddRVal;
+ LPDDHALVPORTCB_FLIP FlipVideoPort;
+} DDHAL_FLIPVPORTDATA;
+
+typedef struct _DDHAL_GETVPORTCONNECTDATA
+{
+ LPDDRAWI_DIRECTDRAW_LCL lpDD;
+ DWORD dwPortId;
+ LPDDVIDEOPORTCONNECT lpConnect;
+ DWORD dwNumEntries;
+ HRESULT ddRVal;
+ LPDDHALVPORTCB_GETVPORTCONNECT GetVideoPortConnectInfo;
+} DDHAL_GETVPORTCONNECTDATA;
+
+typedef struct _DDHAL_SYNCSURFACEDATA
+{
+ DWORD dwSize;
+ LPDDRAWI_DIRECTDRAW_LCL lpDD;
+ LPDDRAWI_DDRAWSURFACE_LCL lpDDSurface;
+ DWORD dwSurfaceOffset;
+ ULONG_PTR fpLockPtr;
+ LONG lPitch;
+ DWORD dwOverlayOffset;
+ DWORD dwOverlaySrcWidth;
+ DWORD dwOverlaySrcHeight;
+ DWORD dwOverlayDestWidth;
+ DWORD dwOverlayDestHeight;
+ ULONG_PTR dwDriverReserved1;
+ ULONG_PTR dwDriverReserved2;
+ ULONG_PTR dwDriverReserved3;
+ HRESULT ddRVal;
+} DDHAL_SYNCSURFACEDATA;
+
+typedef struct _DDHAL_SYNCVIDEOPORTDATA
+{
+ DWORD dwSize;
+ LPDDRAWI_DIRECTDRAW_LCL lpDD;
+ LPDDRAWI_DDVIDEOPORT_LCL lpVideoPort;
+ DWORD dwOriginOffset;
+ DWORD dwHeight;
+ DWORD dwVBIHeight;
+ ULONG_PTR dwDriverReserved1;
+ ULONG_PTR dwDriverReserved2;
+ ULONG_PTR dwDriverReserved3;
+ HRESULT ddRVal;
+} DDHAL_SYNCVIDEOPORTDATA;
+
+typedef struct _DDHAL_DESTROYDDLOCALDATA
+{
+ DWORD dwFlags;
+ LPDDRAWI_DIRECTDRAW_LCL pDDLcl;
+ HRESULT ddRVal;
+} DDHAL_DESTROYDDLOCALDATA;
+
+typedef struct _DDHAL_CREATESURFACEEXDATA {
+ DWORD dwFlags;
+ LPDDRAWI_DIRECTDRAW_LCL lpDDLcl;
+ LPDDRAWI_DDRAWSURFACE_LCL lpDDSLcl;
+ HRESULT ddRVal;
+} DDHAL_CREATESURFACEEXDATA;
+
+typedef struct _DDHAL_GETHEAPALIGNMENTDATA
+{
+ ULONG_PTR dwInstance;
+ DWORD dwHeap;
+ HRESULT ddRVal;
+ LPDDHAL_GETHEAPALIGNMENT GetHeapAlignment;
+ HEAPALIGNMENT Alignment;
+} DDHAL_GETHEAPALIGNMENTDATA;
+
+
+typedef struct _DDMORESURFACECAPS
+{
+ DWORD dwSize;
+ DDSCAPSEX ddsCapsMore;
+ struct tagExtendedHeapRestrictions
+ {
+ DDSCAPSEX ddsCapsEx;
+ DDSCAPSEX ddsCapsExAlt;
+ } ddsExtendedHeapRestrictions[1];
+} DDMORESURFACECAPS, * LPDDMORESURFACECAPS;
+
+typedef struct _DDSTEREOMODE
+{
+ DWORD dwSize;
+ DWORD dwHeight;
+ DWORD dwWidth;
+ DWORD dwBpp;
+ DWORD dwRefreshRate;
+ BOOL bSupported;
+
+} DDSTEREOMODE, * LPDDSTEREOMODE;
/*****************************************************************************
* high-level ddraw implementation structures
*/
-typedef DWORD IUnknown; /* FIXME: implement proper definition */
typedef struct _IUNKNOWN_LIST {
struct _IUNKNOWN_LIST * lpLink;
LPGUID lpGuid;
+
+#ifndef _NO_COM
IUnknown * lpIUnknown;
+#else
+ LPVOID lpIUnknown;
+#endif /* _NO_COM */
} IUNKNOWN_LIST,*LPIUNKNOWN_LIST;
+
typedef struct _PROCESS_LIST {
struct _PROCESS_LIST * lpLink;
DWORD dwProcessId;
DWORD dwIntRefCnt;
} DDRAWI_DIRECTDRAW_INT;
+
typedef struct _DDRAWI_DIRECTDRAW_LCL {
DWORD lpDDMore;
LPDDRAWI_DIRECTDRAW_GBL lpGbl;
DWORD dwLocalFlags;
DWORD dwLocalRefCnt;
DWORD dwProcessId;
+#ifndef _NO_COM
IUnknown * pUnkOuter;
+#else
+ PVOID pUnkOuter;
+#endif
DWORD dwObsolete1;
ULONG_PTR hWnd;
ULONG_PTR hDC;
DWORD dwPreferredMode;
/* DirectX 2 */
HINSTANCE hD3DInstance;
+#ifndef _NO_COM
IUnknown * pD3DIUnknown;
+#else
+ PVOID pD3DIUnknown;
+#endif
LPDDHAL_CALLBACKS lpDDCB;
ULONG_PTR hDDVxd;
/* DirectX 5.0 */
LPDDGAMMACALIBRATORPROC lpGammaCalibrator;
} DDRAWI_DIRECTDRAW_LCL;
+
#define DDRAWILCL_HASEXCLUSIVEMODE 0x00000001
#define DDRAWILCL_ISFULLSCREEN 0x00000002
#define DDRAWILCL_SETCOOPCALLED 0x00000004
#define DDRAWILCL_CURSORCLIPPED 0x00001000
#define DDRAWILCL_EXPLICITMONITOR 0x00002000
#define DDRAWILCL_MULTITHREADED 0x00004000
-#define DDRAWILCL_FPUSETUP 0x00008000
+#define DDRAWILCL_FPUSETUP 0x00008000
#define DDRAWILCL_POWEREDDOWN 0x00010000
#define DDRAWILCL_DIRECTDRAW7 0x00020000
#define DDRAWILCL_ATTEMPTEDD3DCONTEXT 0x00040000
#define DDRAWILCL_FPUPRESERVE 0x00080000
+#define DDRAWILCL_DX8DRIVER 0x00100000
+#define DDRAWILCL_DIRECTDRAW8 0x00200000
+
typedef struct _DDRAWI_DIRECTDRAW_GBL {
DWORD dwRefCnt;
DDSCAPSEX ddsCapsMore;
} DDRAWI_DIRECTDRAW_GBL;
-#define DDRAWI_VIRTUALDESKTOP 0x00000008
-#define DDRAWI_MODEX 0x00000010
-#define DDRAWI_DISPLAYDRV 0x00000020
-#define DDRAWI_FULLSCREEN 0x00000040
-#define DDRAWI_MODECHANGED 0x00000080
-#define DDRAWI_NOHARDWARE 0x00000100
-#define DDRAWI_PALETTEINIT 0x00000200
-#define DDRAWI_NOEMULATION 0x00000400
-/* more... */
+#define DDRAWI_xxxxxxxxx1 0x00000001
+#define DDRAWI_xxxxxxxxx2 0x00000002
+#define DDRAWI_VIRTUALDESKTOP 0x00000008
+#define DDRAWI_MODEX 0x00000010
+#define DDRAWI_DISPLAYDRV 0x00000020
+#define DDRAWI_FULLSCREEN 0x00000040
+#define DDRAWI_MODECHANGED 0x00000080
+#define DDRAWI_NOHARDWARE 0x00000100
+#define DDRAWI_PALETTEINIT 0x00000200
+#define DDRAWI_NOEMULATION 0x00000400
+#define DDRAWI_HASCKEYDESTOVERLAY 0x00000800
+#define DDRAWI_HASCKEYSRCOVERLAY 0x00001000
+#define DDRAWI_HASGDIPALETTE 0x00002000
+#define DDRAWI_EMULATIONINITIALIZED 0x00004000
+#define DDRAWI_HASGDIPALETTE_EXCLUSIVE 0x00008000
+#define DDRAWI_MODEXILLEGAL 0x00010000
+#define DDRAWI_FLIPPEDTOGDI 0x00020000
+#define DDRAWI_NEEDSWIN16FORVRAMLOCK 0x00040000
+#define DDRAWI_PDEVICEVRAMBITCLEARED 0x00080000
+#define DDRAWI_STANDARDVGA 0x00100000
+#define DDRAWI_EXTENDEDALIGNMENT 0x00200000
+#define DDRAWI_CHANGINGMODE 0x00400000
+#define DDRAWI_GDIDRV 0x00800000
+#define DDRAWI_ATTACHEDTODESKTOP 0x01000000
+#define DDRAWI_UMODELOADED 0x02000000
+#define DDRAWI_DDRAWDATANOTFETCHED 0x04000000
+#define DDRAWI_SECONDARYDRIVERLOADED 0x08000000
+#define DDRAWI_TESTINGMODES 0x10000000
+#define DDRAWI_DRIVERINFO2 0x20000000
+#define DDRAWI_BADPDEV 0x40000000
+
/* surfaces */
typedef struct _DDRAWI_DDRAWSURFACE_INT {
DWORD dwGlobalFlags;
union {
LPACCESSRECTLIST lpRectList;
- DWORD dwBlockSizeY;
- } DUMMYUNIONNAME1;
+ DWORD dwBlockSizeY;
+ LONG lSlicePitch;
+ };
union {
LPVMEMHEAP lpVidMemHeap;
DWORD dwBlockSizeX;
- } DUMMYUNIONNAME2;
+ };
union {
LPDDRAWI_DIRECTDRAW_GBL lpDD;
LPVOID lpDDHandle;
- } DUMMYUNIONNAME3;
+ };
FLATPTR fpVidMem;
union {
LONG lPitch;
DWORD dwLinearSize;
- } DUMMYUNIONNAME4;
+ };
WORD wHeight;
WORD wWidth;
DWORD dwUsageCount;
- ULONG_PTR dwReserved1; /* for display driver use */
- /* optional (defaults to primary surface pixelformat) */
+ ULONG_PTR dwReserved1;
DDPIXELFORMAT ddpfSurface;
} DDRAWI_DDRAWSURFACE_GBL;
-#define DDRAWISURFGBL_MEMFREE 0x00000001
-#define DDRAWISURFGBL_SYSMEMREQUESTED 0x00000002
-#define DDRAWISURFGBL_ISGDISURFACE 0x00000004
-#define DDRAWISURFGBL_SOFTWAREAUTOFLIP 0x00000008
-#define DDRAWISURFGBL_LOCKNOTHOLDINGWIN16LOCK 0x00000010
-#define DDRAWISURFGBL_LOCKVRAMSTYLE 0x00000020
-#define DDRAWISURFGBL_LOCKBROKEN 0x00000040
-#define DDRAWISURFGBL_IMPLICITHANDLE 0x00000080
-#define DDRAWISURFGBL_ISCLIENTMEM 0x00000100
-#define DDRAWISURFGBL_HARDWAREOPSOURCE 0x00000200
-#define DDRAWISURFGBL_HARDWAREOPDEST 0x00000400
-#define DDRAWISURFGBL_HARDWAREOPSTARTED 0x00000600
-#define DDRAWISURFGBL_VPORTINTERLEAVED 0x00000800
-#define DDRAWISURFGBL_VPORTDATA 0x00001000
-#define DDRAWISURFGBL_LATEALLOCATELINEAR 0x00002000
-#define DDRAWISURFGBL_SYSMEMEXECUTEBUFFER 0x00004000
-#define DDRAWISURFGBL_FASTLOCKHELD 0x00008000
-#define DDRAWISURFGBL_READONLYLOCKHELD 0x00010000
+#define DDRAWISURFGBL_MEMFREE 0x00000001L
+#define DDRAWISURFGBL_SYSMEMREQUESTED 0x00000002L
+#define DDRAWISURFGBL_ISGDISURFACE 0x00000004L
+#define DDRAWISURFGBL_SOFTWAREAUTOFLIP 0x00000008L
+#define DDRAWISURFGBL_LOCKNOTHOLDINGWIN16LOCK 0x00000010L
+#define DDRAWISURFGBL_LOCKVRAMSTYLE 0x00000020L
+#define DDRAWISURFGBL_LOCKBROKEN 0x00000040L
+#define DDRAWISURFGBL_IMPLICITHANDLE 0x00000080L
+#define DDRAWISURFGBL_ISCLIENTMEM 0x00000100L
+#define DDRAWISURFGBL_HARDWAREOPSOURCE 0x00000200L
+#define DDRAWISURFGBL_HARDWAREOPDEST 0x00000400L
+#define DDRAWISURFGBL_HARDWAREOPSTARTED (DDRAWISURFGBL_HARDWAREOPSOURCE|DDRAWISURFGBL_HARDWAREOPDEST)
+#define DDRAWISURFGBL_VPORTINTERLEAVED 0x00000800L
+#define DDRAWISURFGBL_VPORTDATA 0x00001000L
+#define DDRAWISURFGBL_LATEALLOCATELINEAR 0x00002000L
+#define DDRAWISURFGBL_SYSMEMEXECUTEBUFFER 0x00004000L
+#define DDRAWISURFGBL_FASTLOCKHELD 0x00008000L
+#define DDRAWISURFGBL_READONLYLOCKHELD 0x00010000L
+#define DDRAWISURFGBL_DX8SURFACE 0x00080000L
+#define DDRAWISURFGBL_DDHELDONTFREE 0x00100000L
+#define DDRAWISURFGBL_NOTIFYWHENUNLOCKED 0x00200000L
+#define DDRAWISURFGBL_RESERVED0 0x80000000L // Reserved flag
typedef struct _DDRAWI_DDRAWSURFACE_GBL_MORE {
DWORD dwSize;
union {
DWORD dwPhysicalPageTable;
FLATPTR fpPhysicalVidMem;
- } DUMMYUNIONNAME1;
+ };
LPDWORD pPageTable;
DWORD cPages;
ULONG_PTR dwSavedDCContext;
#define GET_LPDDRAWSURFACE_GBL_MORE(psurf_gbl) \
(*(((LPDDRAWI_DDRAWSURFACE_GBL_MORE *)(psurf_gbl)) - 1))
+#define SURFACE_PHYSICALVIDMEM( psurf_gbl ) \
+ ( GET_LPDDRAWSURFACE_GBL_MORE(psurf_gbl )->fpPhysicalVidMem )
+
+
+typedef struct _DISPLAYMODEINFO
+{
+ WORD wWidth;
+ WORD wHeight;
+ BYTE wBPP;
+ BYTE wMonitorsAttachedToDesktop;
+ WORD wRefreshRate;
+} DISPLAYMODEINFO, *LPDISPLAYMODEINFO;
+
+#define EQUAL_DISPLAYMODE ( A, B ) (0 == memcmp(&(A), &(B), sizeof (DISPLAYMODEINFO)))
+
+
+
+
typedef struct _DDRAWI_DDRAWSURFACE_MORE {
DWORD dwSize;
IUNKNOWN_LIST * lpIUnknowns;
LPDWORD lpGammaRamp;
LPDWORD lpOriginalGammaRamp;
LPVOID lpDDrawReserved6;
+ #ifndef WIN95
+ DISPLAYMODEINFO dmiDDrawReserved7;
+ #endif
DWORD dwSurfaceHandle;
DWORD qwDDrawReserved8[2];
LPVOID lpDDrawReserved9;
LPVOID lpVB;
} DDRAWI_DDRAWSURFACE_MORE;
+
+
typedef struct _DDRAWI_DDRAWSURFACE_LCL {
LPDDRAWI_DDRAWSURFACE_MORE lpSurfMore;
LPDDRAWI_DDRAWSURFACE_GBL lpGbl;
DWORD dwProcessId;
DWORD dwFlags;
DDSCAPS ddsCaps;
+ union
+ {
LPDDRAWI_DDRAWPALETTE_INT lpDDPalette;
- LPDDRAWI_DDRAWCLIPPER_LCL lpDDClipper;
+ LPDDRAWI_DDRAWPALETTE_INT lp16DDPalette;
+ };
+ union
+ {
+ LPDDRAWI_DDRAWCLIPPER_LCL lpDDClipper;
+ LPDDRAWI_DDRAWCLIPPER_INT lp16DDClipper;
+ };
DWORD dwModeCreatedIn;
DWORD dwBackBufferCount;
DDCOLORKEY ddckCKDestBlt;
DDCOLORKEY ddckCKSrcBlt;
ULONG_PTR hDC;
- ULONG_PTR dwReserved1; /* for display driver use */
- /* overlays only */
+ ULONG_PTR dwReserved1;
DDCOLORKEY ddckCKSrcOverlay;
DDCOLORKEY ddckCKDestOverlay;
LPDDRAWI_DDRAWSURFACE_INT lpSurfaceOverlaying;
LONG lOverlayY;
} DDRAWI_DDRAWSURFACE_LCL;
-#define DDRAWISURF_ATTACHED 0x00000001
-#define DDRAWISURF_IMPLICITCREATE 0x00000002
-#define DDRAWISURF_ISFREE 0x00000004
-#define DDRAWISURF_ATTACHED_FROM 0x00000008
-#define DDRAWISURF_IMPLICITROOT 0x00000010
-#define DDRAWISURF_PARTOFPRIMARYCHAIN 0x00000020
-#define DDRAWISURF_DATAISALIASED 0x00000040
-#define DDRAWISURF_HASDC 0x00000080
-#define DDRAWISURF_HASCKEYDESTOVERLAY 0x00000100
-#define DDRAWISURF_HASCKEYDESTBLT 0x00000200
-#define DDRAWISURF_HASCKEYSRCOVERLAY 0x00000400
-#define DDRAWISURF_HASCKEYSRCBLT 0x00000800
-#define DDRAWISURF_LOCKEXCLUDEDCURSOR 0x00001000
-#define DDRAWISURF_HASPIXELFORMAT 0x00002000
-#define DDRAWISURF_HASOVERLAYDATA 0x00004000
-#define DDRAWISURF_SETGAMMA 0x00008000
-/* more... */
-#define DDRAWISURF_INVALID 0x10000000
+#define DDRAWISURF_ATTACHED 0x00000001L
+#define DDRAWISURF_IMPLICITCREATE 0x00000002L
+#define DDRAWISURF_ISFREE 0x00000004L
+#define DDRAWISURF_ATTACHED_FROM 0x00000008L
+#define DDRAWISURF_IMPLICITROOT 0x00000010L
+#define DDRAWISURF_PARTOFPRIMARYCHAIN 0x00000020L
+#define DDRAWISURF_DATAISALIASED 0x00000040L
+#define DDRAWISURF_HASDC 0x00000080L
+#define DDRAWISURF_HASCKEYDESTOVERLAY 0x00000100L
+#define DDRAWISURF_HASCKEYDESTBLT 0x00000200L
+#define DDRAWISURF_HASCKEYSRCOVERLAY 0x00000400L
+#define DDRAWISURF_HASCKEYSRCBLT 0x00000800L
+#define DDRAWISURF_LOCKEXCLUDEDCURSOR 0x00001000L
+#define DDRAWISURF_HASPIXELFORMAT 0x00002000L
+#define DDRAWISURF_HASOVERLAYDATA 0x00004000L
+#define DDRAWISURF_SETGAMMA 0x00008000L
+#define DDRAWISURF_SW_CKEYDESTOVERLAY 0x00010000L
+#define DDRAWISURF_SW_CKEYDESTBLT 0x00020000L
+#define DDRAWISURF_SW_CKEYSRCOVERLAY 0x00040000L
+#define DDRAWISURF_SW_CKEYSRCBLT 0x00080000L
+#define DDRAWISURF_HW_CKEYDESTOVERLAY 0x00100000L
+#define DDRAWISURF_HW_CKEYDESTBLT 0x00200000L
+#define DDRAWISURF_HW_CKEYSRCOVERLAY 0x00400000L
+#define DDRAWISURF_HW_CKEYSRCBLT 0x00800000L
+#define DDRAWISURF_INMASTERSPRITELIST 0x01000000L
+#define DDRAWISURF_HELCB 0x02000000L
+#define DDRAWISURF_FRONTBUFFER 0x04000000L
+#define DDRAWISURF_BACKBUFFER 0x08000000L
+#define DDRAWISURF_INVALID 0x10000000L
+#define DDRAWISURF_DCIBUSY 0x20000000L
+#define DDRAWISURF_GETDCNULL 0x40000000L
+#define DDRAWISURF_STEREOSURFACELEFT 0x20000000L
+#define DDRAWISURF_DRIVERMANAGED 0x40000000L
+#define DDRAWISURF_DCILOCK 0x80000000L
/* palettes */
typedef struct _DDRAWI_DDRAWPALETTE_INT {
DWORD dwProcessId;
LPPALETTEENTRY lpColorTable;
union {
- ULONG_PTR dwReserved1; /* for display driver use */
+ ULONG_PTR dwReserved1;
HPALETTE hHELGDIPalette;
- } DUMMYUNIONNAME1;
- /* DirectX 5.0 */
+ };
DWORD dwDriverReserved;
DWORD dwContentsStamp;
- /* DirectX 6.0 */
DWORD dwSaveStamp;
- /* DirectX 7.0 */
DWORD dwHandle;
} DDRAWI_DDRAWPALETTE_GBL;
#define DDRAWIPAL_STORED_8INDEX 0x00001000
#define DDRAWIPAL_ALPHA 0x00002000
+#define D3DFORMAT_OP_TEXTURE 0x00000001L
+#define D3DFORMAT_OP_VOLUMETEXTURE 0x00000002L
+#define D3DFORMAT_OP_CUBETEXTURE 0x00000004L
+#define D3DFORMAT_OP_OFFSCREEN_RENDERTARGET 0x00000008L
+#define D3DFORMAT_OP_SAME_FORMAT_RENDERTARGET 0x00000010L
+#define D3DFORMAT_OP_ZSTENCIL 0x00000040L
+#define D3DFORMAT_OP_ZSTENCIL_WITH_ARBITRARY_COLOR_DEPTH 0x00000080L
+#define D3DFORMAT_OP_SAME_FORMAT_UP_TO_ALPHA_RENDERTARGET 0x00000100L
+#define D3DFORMAT_OP_DISPLAYMODE 0x00000400L
+#define D3DFORMAT_OP_3DACCELERATION 0x00000800L
+#define D3DFORMAT_OP_PIXELSIZE 0x00001000L
+#define D3DFORMAT_OP_CONVERT_TO_ARGB 0x00002000L
+#define D3DFORMAT_OP_OFFSCREENPLAIN 0x00004000L
+#define D3DFORMAT_OP_SRGBREAD 0x00008000L
+#define D3DFORMAT_OP_BUMPMAP 0x00010000L
+#define D3DFORMAT_OP_NOFILTER 0x00040000L
+#define DDPF_D3DFORMAT 0x00200000l
+#define DDPF_NOVEL_TEXTURE_FORMAT 0x00100000l
+#define D3DFORMAT_MEMBEROFGROUP_ARGB 0x00080000L
+#define D3DFORMAT_OP_SRGBWRITE 0x00100000L
+#define D3DFORMAT_OP_NOALPHABLEND 0x00200000L
+#define D3DFORMAT_OP_AUTOGENMIPMAP 0x00400000L
+#define D3DFORMAT_OP_VERTEXTEXTURE 0x00800000L
+#define D3DFORMAT_OP_NOTEXCOORDWRAPNORMIP 0x01000000L
+#define DELETED_OK 0
+#define DELETED_LASTONE 1
+#define DELETED_NOTFOUND 2
+#define DDCALLBACKSSIZE_V1 ( offsetof( DDHAL_DDCALLBACKS, SetExclusiveMode ) )
+#define DDCALLBACKSSIZE sizeof( DDHAL_DDCALLBACKS )
+#define DDRAWICLIP_WATCHWINDOW 0x00000001
+#define DDRAWICLIP_ISINITIALIZED 0x00000002
+#define DDRAWICLIP_INMASTERSPRITELIST 0x00000004
+#define PFINDEX_UNINITIALIZED (0UL)
+#define PFINDEX_UNSUPPORTED (~0UL)
+#ifndef __DD_INCLUDED__
+#define ROP_HAS_SOURCE 0x00000001
+#define ROP_HAS_PATTERN 0x00000002
+#define ROP_HAS_SOURCEPATTERN ROP_HAS_PATTERN | ROP_HAS_SOURCE
+#endif
+#define DDRAWIVPORT_ON 0x00000001
+#define DDRAWIVPORT_SOFTWARE_AUTOFLIP 0x00000002
+#define DDRAWIVPORT_COLORKEYANDINTERP 0x00000004
+#define DDRAWIVPORT_NOKERNELHANDLES 0x00000008
+#define DDRAWIVPORT_SOFTWARE_BOB 0x00000010
+#define DDRAWIVPORT_VBION 0x00000020
+#define DDRAWIVPORT_VIDEOON 0x00000040
+#define DDRAWI_GETCOLOR 0x0001
+#define DDRAWI_SETCOLOR 0x0002
+#define DDMCQUERY_READ 0x00000001
+#define DDWAITVB_I_TESTVB 0x80000006
+
+
+#define DDBLT_ANYALPHA \
+ (DDBLT_ALPHASRCSURFACEOVERRIDE | DDBLT_ALPHASRCCONSTOVERRIDE | \
+ DDBLT_ALPHASRC | DDBLT_ALPHADESTSURFACEOVERRIDE | \
+ DDBLT_ALPHADESTCONSTOVERRIDE | DDBLT_ALPHADEST)
+
+#define DDHAL_ALIGNVALIDCAPS (DDSCAPS_OFFSCREENPLAIN | DDSCAPS_EXECUTEBUFFER | \
+ DDSCAPS_OVERLAY | DDSCAPS_TEXTURE | \
+ DDSCAPS_ZBUFFER | DDSCAPS_ALPHA | DDSCAPS_FLIP )
+
+
+#define DDHALINFOSIZE_V2 sizeof(DDHALINFO)
+
+#define DDOVER_ANYALPHA \
+ (DDOVER_ALPHASRCSURFACEOVERRIDE | DDOVER_ALPHASRCCONSTOVERRIDE | \
+ DDOVER_ALPHASRC | DDOVER_ALPHADESTSURFACEOVERRIDE | \
+ DDOVER_ALPHADESTCONSTOVERRIDE | DDOVER_ALPHADEST)
+
+
typedef struct _DDRAWI_DDRAWPALETTE_LCL {
DWORD lpPalMore;
LPDDRAWI_DDRAWPALETTE_GBL lpGbl;
ULONG_PTR dwUnused0;
DWORD dwLocalRefCnt;
+#ifndef _NO_COM
IUnknown * pUnkOuter;
+#else
+ PVOID pUnkOuter;
+#endif
LPDDRAWI_DIRECTDRAW_LCL lpDD_lcl;
ULONG_PTR dwReserved1;
/* DirectX 6.0 */
ULONG_PTR dwDDRAWReserved3;
} DDRAWI_DDRAWPALETTE_LCL;
-typedef struct _DDHAL_GETMOCOMPGUIDSDATA FAR *LPDDHAL_GETMOCOMPGUIDSDATA;
-typedef struct _DDHAL_GETMOCOMPFORMATSDATA FAR *LPDDHAL_GETMOCOMPFORMATSDATA;
-typedef struct _DDHAL_CREATEMOCOMPDATA FAR *LPDDHAL_CREATEMOCOMPDATA;
-typedef struct _DDHAL_GETMOCOMPCOMPBUFFDATA FAR *LPDDHAL_GETMOCOMPCOMPBUFFDATA;
-typedef struct _DDHAL_GETINTERNALMOCOMPDATA FAR *LPDDHAL_GETINTERNALMOCOMPDATA;
-typedef struct _DDHAL_BEGINMOCOMPFRAMEDATA FAR *LPDDHAL_BEGINMOCOMPFRAMEDATA;
-typedef struct _DDHAL_ENDMOCOMPFRAMEDATA FAR *LPDDHAL_ENDMOCOMPFRAMEDATA;
-typedef struct _DDHAL_RENDERMOCOMPDATA FAR *LPDDHAL_RENDERMOCOMPDATA;
-typedef struct _DDHAL_QUERYMOCOMPSTATUSDATA FAR *LPDDHAL_QUERYMOCOMPSTATUSDATA;
-typedef struct _DDHAL_DESTROYMOCOMPDATA FAR *LPDDHAL_DESTROYMOCOMPDATA;
-typedef struct _DDHAL_COLORCONTROLDATA FAR *LPDDHAL_COLORCONTROLDATA;
-
-typedef DWORD (FAR PASCAL *LPDDHALMOCOMPCB_GETGUIDS)( LPDDHAL_GETMOCOMPGUIDSDATA);
-typedef DWORD (FAR PASCAL *LPDDHALMOCOMPCB_GETFORMATS)( LPDDHAL_GETMOCOMPFORMATSDATA);
-typedef DWORD (FAR PASCAL *LPDDHALMOCOMPCB_CREATE)( LPDDHAL_CREATEMOCOMPDATA);
-typedef DWORD (FAR PASCAL *LPDDHALMOCOMPCB_GETCOMPBUFFINFO)( LPDDHAL_GETMOCOMPCOMPBUFFDATA);
-typedef DWORD (FAR PASCAL *LPDDHALMOCOMPCB_GETINTERNALINFO)( LPDDHAL_GETINTERNALMOCOMPDATA);
-typedef DWORD (FAR PASCAL *LPDDHALMOCOMPCB_BEGINFRAME)( LPDDHAL_BEGINMOCOMPFRAMEDATA);
-typedef DWORD (FAR PASCAL *LPDDHALMOCOMPCB_ENDFRAME)( LPDDHAL_ENDMOCOMPFRAMEDATA);
-typedef DWORD (FAR PASCAL *LPDDHALMOCOMPCB_RENDER)( LPDDHAL_RENDERMOCOMPDATA);
-typedef DWORD (FAR PASCAL *LPDDHALMOCOMPCB_QUERYSTATUS)( LPDDHAL_QUERYMOCOMPSTATUSDATA);
-typedef DWORD (FAR PASCAL *LPDDHALMOCOMPCB_DESTROY)( LPDDHAL_DESTROYMOCOMPDATA);
-typedef DWORD (FAR PASCAL *LPDDHALCOLORCB_COLORCONTROL)(LPDDHAL_COLORCONTROLDATA);
typedef struct _DDMCCOMPBUFFERINFO
{
- DWORD dwSize; // [in] size of the struct
- DWORD dwNumCompBuffers; // [out] number of buffers required for compressed data
- DWORD dwWidthToCreate; // [out] Width of surface to create
- DWORD dwHeightToCreate; // [out] Height of surface to create
- DWORD dwBytesToAllocate; // [out] Total number of bytes used by each surface
- DDSCAPS2 ddCompCaps; // [out] caps to create surfaces to store compressed data
- DDPIXELFORMAT ddPixelFormat; // [out] format to create surfaces to store compressed data
+ DWORD dwSize;
+ DWORD dwNumCompBuffers;
+ DWORD dwWidthToCreate;
+ DWORD dwHeightToCreate;
+ DWORD dwBytesToAllocate;
+ DDSCAPS2 ddCompCaps;
+ DDPIXELFORMAT ddPixelFormat;
} DDMCCOMPBUFFERINFO, *LPDDMCCOMPBUFFERINFO;
typedef struct _DDMCBUFFERINFO
{
- DWORD dwSize; // [in] size of the struct
- LPDDRAWI_DDRAWSURFACE_LCL lpCompSurface; // [in] pointer to buffer containing compressed data
- DWORD dwDataOffset; // [in] offset of relevant data from the beginning of buffer
- DWORD dwDataSize; // [in] size of relevant data
- LPVOID lpPrivate; // Reserved for DirectDraw;
+ DWORD dwSize;
+ LPDDRAWI_DDRAWSURFACE_LCL lpCompSurface;
+ DWORD dwDataOffset;
+ DWORD dwDataSize;
+ LPVOID lpPrivate;
} DDMCBUFFERINFO, *LPDDMCBUFFERINFO;
typedef struct _DDHAL_GETDRIVERSTATEDATA {
LPDDHALSURFCB_ADDATTACHEDSURFACE AddAttachedSurface;
} DDHAL_ADDATTACHEDSURFACEDATA;
+
+
typedef struct _DDHAL_BEGINMOCOMPFRAMEDATA
{
LPDDRAWI_DIRECTDRAW_LCL lpDD;
LPDDRAWI_DDMOTIONCOMP_LCL lpMoComp;
- LPDDRAWI_DDRAWSURFACE_LCL lpDestSurface; // [in] destination buffer in which to decoding this frame
- DWORD dwInputDataSize; // [in] size of other misc input data to begin frame
- LPVOID lpInputData; // [in] pointer to misc input data
- DWORD dwOutputDataSize; // [in] size of other misc output data to begin frame
- LPVOID lpOutputData; // [in] pointer to output misc data (allocated by client)
- HRESULT ddRVal; // [out]
+ LPDDRAWI_DDRAWSURFACE_LCL lpDestSurface;
+ DWORD dwInputDataSize;
+ LPVOID lpInputData;
+ DWORD dwOutputDataSize;
+ LPVOID lpOutputData;
+ HRESULT ddRVal;
LPDDHALMOCOMPCB_BEGINFRAME BeginMoCompFrame;
} DDHAL_BEGINMOCOMPFRAMEDATA;
typedef struct _DDHAL_COLORCONTROLDATA
{
- LPDDRAWI_DIRECTDRAW_GBL lpDD; // driver struct
- LPDDRAWI_DDRAWSURFACE_LCL lpDDSurface; // surface
- LPDDCOLORCONTROL lpColorData; // color control information
- DWORD dwFlags; // DDRAWI_GETCOLOR/DDRAWI_SETCOLOR
- HRESULT ddRVal; // return value
- LPDDHALCOLORCB_COLORCONTROL ColorControl; // PRIVATE: ptr to callback
+ LPDDRAWI_DIRECTDRAW_GBL lpDD;
+ LPDDRAWI_DDRAWSURFACE_LCL lpDDSurface;
+ LPDDCOLORCONTROL lpColorData;
+ DWORD dwFlags;
+ HRESULT ddRVal;
+ LPDDHALCOLORCB_COLORCONTROL ColorControl;
} DDHAL_COLORCONTROLDATA;
typedef struct _DDHAL_CREATEMOCOMPDATA
typedef struct _DDHAL_FLIPTOGDISURFACEDATA
{
- LPDDRAWI_DIRECTDRAW_GBL lpDD; // driver struct
- DWORD dwToGDI; // TRUE if flipping to the GDI surface, FALSE if flipping away
- DWORD dwReserved; // reserved for future use
- HRESULT ddRVal; // return value
- LPDDHAL_FLIPTOGDISURFACE FlipToGDISurface; // PRIVATE: ptr to callback
+ LPDDRAWI_DIRECTDRAW_GBL lpDD;
+ DWORD dwToGDI;
+ DWORD dwReserved;
+ HRESULT ddRVal;
+ LPDDHAL_FLIPTOGDISURFACE FlipToGDISurface;
} DDHAL_FLIPTOGDISURFACEDATA;
typedef struct _DDHAL_GETAVAILDRIVERMEMORYDATA
{
- LPDDRAWI_DIRECTDRAW_GBL lpDD; // driver struct
- DDSCAPS DDSCaps; // caps for type of surface memory
- DWORD dwTotal; // total memory for this kind of surface
- DWORD dwFree; // free memory for this kind of surface
- HRESULT ddRVal; // return value
- LPDDHAL_GETAVAILDRIVERMEMORY GetAvailDriverMemory; // PRIVATE: ptr to callback
- DDSCAPSEX ddsCapsEx; // Added in V6. Driver should check DDVERSION info
- // to see if this field is present.
+ LPDDRAWI_DIRECTDRAW_GBL lpDD;
+ DDSCAPS DDSCaps;
+ DWORD dwTotal;
+ DWORD dwFree;
+ HRESULT ddRVal;
+ LPDDHAL_GETAVAILDRIVERMEMORY GetAvailDriverMemory;
+ DDSCAPSEX ddsCapsEx;
+
} DDHAL_GETAVAILDRIVERMEMORYDATA;
typedef struct _DDHAL_GETBLTSTATUSDATA
{
- LPDDRAWI_DIRECTDRAW_GBL lpDD; // driver struct
- LPDDRAWI_DDRAWSURFACE_LCL lpDDSurface; // surface struct
- DWORD dwFlags; // flags
- HRESULT ddRVal; // return value
- LPDDHALSURFCB_GETBLTSTATUS GetBltStatus; // PRIVATE: ptr to callback
+ LPDDRAWI_DIRECTDRAW_GBL lpDD;
+ LPDDRAWI_DDRAWSURFACE_LCL lpDDSurface;
+ DWORD dwFlags;
+ HRESULT ddRVal;
+ LPDDHALSURFCB_GETBLTSTATUS GetBltStatus;
} DDHAL_GETBLTSTATUSDATA;
typedef struct _DDHAL_GETFLIPSTATUSDATA
{
- LPDDRAWI_DIRECTDRAW_GBL lpDD; // driver struct
- LPDDRAWI_DDRAWSURFACE_LCL lpDDSurface; // surface struct
- DWORD dwFlags; // flags
- HRESULT ddRVal; // return value
- LPDDHALSURFCB_GETFLIPSTATUS GetFlipStatus; // PRIVATE: ptr to callback
+ LPDDRAWI_DIRECTDRAW_GBL lpDD;
+ LPDDRAWI_DDRAWSURFACE_LCL lpDDSurface;
+ DWORD dwFlags;
+ HRESULT ddRVal;
+ LPDDHALSURFCB_GETFLIPSTATUS GetFlipStatus;
} DDHAL_GETFLIPSTATUSDATA;
typedef struct _DDHAL_GETINTERNALMOCOMPDATA
{
LPDDRAWI_DIRECTDRAW_LCL lpDD;
LPGUID lpGuid;
- DWORD dwWidth; // [in] width of uncompressed data
- DWORD dwHeight; // [in] height of uncompressed data
- DDPIXELFORMAT ddPixelFormat; // [in] pixel-format of uncompressed data
- DWORD dwScratchMemAlloc; // [out] amount of scratch memory will the hal allocate for its private use
- HRESULT ddRVal; // [out]
+ DWORD dwWidth;
+ DWORD dwHeight;
+ DDPIXELFORMAT ddPixelFormat;
+ DWORD dwScratchMemAlloc;
+ HRESULT ddRVal;
LPDDHALMOCOMPCB_GETINTERNALINFO GetInternalMoCompInfo;
} DDHAL_GETINTERNALMOCOMPDATA;
typedef struct _DDHAL_GETMOCOMPCOMPBUFFDATA
{
- LPDDRAWI_DIRECTDRAW_LCL lpDD;
- LPGUID lpGuid;
- DWORD dwWidth; // [in] width of uncompressed data
- DWORD dwHeight; // [in] height of uncompressed data
- DDPIXELFORMAT ddPixelFormat; // [in] pixel-format of uncompressed data
- DWORD dwNumTypesCompBuffs;// [in/out] number of memory types required for comp buffers
- LPDDMCCOMPBUFFERINFO lpCompBuffInfo; // [in] driver supplied info regarding comp buffers (allocated by client)
- HRESULT ddRVal; // [out]
- LPDDHALMOCOMPCB_GETCOMPBUFFINFO GetMoCompBuffInfo;
+ LPDDRAWI_DIRECTDRAW_LCL lpDD;
+ LPGUID lpGuid;
+ DWORD dwWidth;
+ DWORD dwHeight;
+ DDPIXELFORMAT ddPixelFormat;
+ DWORD dwNumTypesCompBuffs;
+ LPDDMCCOMPBUFFERINFO lpCompBuffInfo;
+ HRESULT ddRVal;
+ LPDDHALMOCOMPCB_GETCOMPBUFFINFO GetMoCompBuffInfo;
} DDHAL_GETMOCOMPCOMPBUFFDATA;
typedef struct _DDHAL_GETMOCOMPGUIDSDATA
typedef struct _DDHAL_GETSCANLINEDATA
{
- LPDDRAWI_DIRECTDRAW_GBL lpDD; // driver struct
- DWORD dwScanLine; // returned scan line
- HRESULT ddRVal; // return value
- LPDDHAL_GETSCANLINE GetScanLine; // PRIVATE: ptr to callback
+ LPDDRAWI_DIRECTDRAW_GBL lpDD;
+ DWORD dwScanLine;
+ HRESULT ddRVal;
+ LPDDHAL_GETSCANLINE GetScanLine;
} DDHAL_GETSCANLINEDATA;
typedef struct _DDHAL_QUERYMOCOMPSTATUSDATA
{
LPDDRAWI_DIRECTDRAW_LCL lpDD;
LPDDRAWI_DDMOTIONCOMP_LCL lpMoComp;
- LPDDRAWI_DDRAWSURFACE_LCL lpSurface; // [in] Surface being queried
- DWORD dwFlags; // [in] DDMCQUERY_XXX falgs
- HRESULT ddRVal; // [out]
+ LPDDRAWI_DDRAWSURFACE_LCL lpSurface;
+ DWORD dwFlags;
+ HRESULT ddRVal;
LPDDHALMOCOMPCB_QUERYSTATUS QueryMoCompStatus;
} DDHAL_QUERYMOCOMPSTATUSDATA;
{
LPDDRAWI_DIRECTDRAW_LCL lpDD;
LPDDRAWI_DDMOTIONCOMP_LCL lpMoComp;
- DWORD dwNumBuffers; // [in] Number of entries in the lpMacroBlockInfo array
- LPDDMCBUFFERINFO lpBufferInfo; // [in] Surfaces containing macro block info
- DWORD dwFunction; // [in] Function
+ DWORD dwNumBuffers;
+ LPDDMCBUFFERINFO lpBufferInfo;
+ DWORD dwFunction;
LPVOID lpInputData;
DWORD dwInputDataSize;
LPVOID lpOutputData;
DWORD dwOutputDataSize;
- HRESULT ddRVal; // [out]
+ HRESULT ddRVal;
LPDDHALMOCOMPCB_RENDER RenderMoComp;
} DDHAL_RENDERMOCOMPDATA;
typedef struct _DDHAL_SETCOLORKEYDATA
{
- LPDDRAWI_DIRECTDRAW_GBL lpDD; // driver struct
- LPDDRAWI_DDRAWSURFACE_LCL lpDDSurface; // surface struct
- DWORD dwFlags; // flags
- DDCOLORKEY ckNew; // new color key
- HRESULT ddRVal; // return value
- LPDDHALSURFCB_SETCOLORKEY SetColorKey; // PRIVATE: ptr to callback
+ LPDDRAWI_DIRECTDRAW_GBL lpDD;
+ LPDDRAWI_DDRAWSURFACE_LCL lpDDSurface;
+ DWORD dwFlags;
+ DDCOLORKEY ckNew;
+ HRESULT ddRVal;
+ LPDDHALSURFCB_SETCOLORKEY SetColorKey;
} DDHAL_SETCOLORKEYDATA;
typedef struct _DDHAL_SETOVERLAYPOSITIONDATA
{
- LPDDRAWI_DIRECTDRAW_GBL lpDD; // driver struct
- LPDDRAWI_DDRAWSURFACE_LCL lpDDSrcSurface; // src surface
- LPDDRAWI_DDRAWSURFACE_LCL lpDDDestSurface;// dest surface
- LONG lXPos; // x position
- LONG lYPos; // y position
- HRESULT ddRVal; // return value
- LPDDHALSURFCB_SETOVERLAYPOSITION SetOverlayPosition; // PRIVATE: ptr to callback
+ LPDDRAWI_DIRECTDRAW_GBL lpDD;
+ LPDDRAWI_DDRAWSURFACE_LCL lpDDSrcSurface;
+ LPDDRAWI_DDRAWSURFACE_LCL lpDDDestSurface;
+ LONG lXPos;
+ LONG lYPos;
+ HRESULT ddRVal;
+ LPDDHALSURFCB_SETOVERLAYPOSITION SetOverlayPosition;
} DDHAL_SETOVERLAYPOSITIONDATA;
typedef struct _DDHAL_UPDATEOVERLAYDATA
{
- LPDDRAWI_DIRECTDRAW_GBL lpDD; // driver struct
- LPDDRAWI_DDRAWSURFACE_LCL lpDDDestSurface;// dest surface
- RECTL rDest; // dest rect
- LPDDRAWI_DDRAWSURFACE_LCL lpDDSrcSurface; // src surface
- RECTL rSrc; // src rect
- DWORD dwFlags; // flags
- DDOVERLAYFX overlayFX; // overlay FX
- HRESULT ddRVal; // return value
- LPDDHALSURFCB_UPDATEOVERLAY UpdateOverlay; // PRIVATE: ptr to callback
+ LPDDRAWI_DIRECTDRAW_GBL lpDD;
+ LPDDRAWI_DDRAWSURFACE_LCL lpDDDestSurface;
+ RECTL rDest;
+ LPDDRAWI_DDRAWSURFACE_LCL lpDDSrcSurface;
+ RECTL rSrc;
+ DWORD dwFlags;
+ DDOVERLAYFX overlayFX;
+ HRESULT ddRVal;
+ LPDDHALSURFCB_UPDATEOVERLAY UpdateOverlay;
} DDHAL_UPDATEOVERLAYDATA;
typedef struct _DDHAL_WAITFORVERTICALBLANKDATA
{
- LPDDRAWI_DIRECTDRAW_GBL lpDD; // driver struct
- DWORD dwFlags; // flags
- DWORD bIsInVB; // is in vertical blank
- ULONG_PTR hEvent; // event
- HRESULT ddRVal; // return value
- LPDDHAL_WAITFORVERTICALBLANK WaitForVerticalBlank; // PRIVATE: ptr to callback
+ LPDDRAWI_DIRECTDRAW_GBL lpDD;
+ DWORD dwFlags;
+ DWORD bIsInVB;
+ ULONG_PTR hEvent;
+ HRESULT ddRVal;
+ LPDDHAL_WAITFORVERTICALBLANK WaitForVerticalBlank;
} DDHAL_WAITFORVERTICALBLANKDATA;
-typedef struct _DD_D3DBUFCALLBACKS
+typedef struct _DDHAL_DRVSETCOLORKEYDATA
{
- DWORD dwSize;
- DWORD dwFlags;
- LPDDHAL_CANCREATESURFACE CanCreateD3DBuffer;
- LPDDHAL_CREATESURFACE CreateD3DBuffer;
- LPDDHALSURFCB_DESTROYSURFACE DestroyD3DBuffer;
- LPDDHALSURFCB_LOCK LockD3DBuffer;
- LPDDHALSURFCB_UNLOCK UnlockD3DBuffer;
-} DD_D3DBUFCALLBACKS, *PDD_D3DBUFCALLBACKS;
+ LPDDRAWI_DDRAWSURFACE_LCL lpDDSurface;
+ DWORD dwFlags;
+ DDCOLORKEY ckNew;
+ HRESULT ddRVal;
+ LPDDHAL_SETCOLORKEY SetColorKey;
+} DDHAL_DRVSETCOLORKEYDATA;
+
+typedef struct _DDMONITORINFO
+{
+ WORD Manufacturer;
+ WORD Product;
+ DWORD SerialNumber;
+ GUID DeviceIdentifier;
+ int Mode640x480;
+ int Mode800x600;
+ int Mode1024x768;
+ int Mode1280x1024;
+ int Mode1600x1200;
+ int ModeReserved1;
+ int ModeReserved2;
+ int ModeReserved3;
+} DDMONITORINFO, FAR *LPDDMONITORINFO;
+
+typedef struct _DDRAWI_DDRAWCLIPPER_INT
+{
+ LPVOID lpVtbl;
+ LPDDRAWI_DDRAWCLIPPER_LCL lpLcl;
+ LPDDRAWI_DDRAWCLIPPER_INT lpLink;
+ DWORD dwIntRefCnt;
+} DDRAWI_DDRAWCLIPPER_INT;
+
+typedef struct _DDHAL_UPDATENONLOCALHEAPDATA
+{
+ LPDDRAWI_DIRECTDRAW_GBL lpDD;
+ DWORD dwHeap;
+ FLATPTR fpGARTLin;
+ FLATPTR fpGARTDev;
+ ULONG_PTR ulPolicyMaxBytes;
+ HRESULT ddRVal;
+ LPDDHAL_UPDATENONLOCALHEAP UpdateNonLocalHeap;
+} DDHAL_UPDATENONLOCALHEAPDATA;
+
+typedef struct _DDHAL_SETCLIPLISTDATA
+{
+ LPDDRAWI_DIRECTDRAW_GBL lpDD;
+ LPDDRAWI_DDRAWSURFACE_LCL lpDDSurface;
+ HRESULT ddRVal;
+ LPDDHALSURFCB_SETCLIPLIST SetClipList;
+} DDHAL_SETCLIPLISTDATA;
+
+typedef struct _DDRAWI_DDMOTIONCOMP_LCL
+{
+ LPDDRAWI_DIRECTDRAW_LCL lpDD;
+ GUID guid;
+ DWORD dwUncompWidth;
+ DWORD dwUncompHeight;
+ DDPIXELFORMAT ddUncompPixelFormat;
+ DWORD dwInternalFlags;
+ DWORD dwRefCnt;
+ DWORD dwProcessId;
+ HANDLE hMoComp;
+ DWORD dwDriverReserved1;
+ DWORD dwDriverReserved2;
+ DWORD dwDriverReserved3;
+ LPVOID lpDriverReserved1;
+ LPVOID lpDriverReserved2;
+ LPVOID lpDriverReserved3;
+} DDRAWI_DDMOTIONCOMP_LCL;
+
+typedef struct _DDRAWI_DDMOTIONCOMP_INT
+{
+ LPVOID lpVtbl;
+ LPDDRAWI_DDMOTIONCOMP_LCL lpLcl;
+ LPDDRAWI_DDMOTIONCOMP_INT lpLink;
+ DWORD dwIntRefCnt;
+} DDRAWI_DDMOTIONCOMP_INT;
+
+
+typedef struct _DDRAWI_DDVIDEOPORT_LCL
+{
+ LPDDRAWI_DIRECTDRAW_LCL lpDD;
+ DDVIDEOPORTDESC ddvpDesc;
+ DDVIDEOPORTINFO ddvpInfo;
+ LPDDRAWI_DDRAWSURFACE_INT lpSurface;
+ LPDDRAWI_DDRAWSURFACE_INT lpVBISurface;
+ LPDDRAWI_DDRAWSURFACE_INT *lpFlipInts;
+ DWORD dwNumAutoflip;
+ DWORD dwProcessID;
+ DWORD dwStateFlags;
+ DWORD dwFlags;
+ DWORD dwRefCnt;
+ FLATPTR fpLastFlip;
+ ULONG_PTR dwReserved1;
+ ULONG_PTR dwReserved2;
+ HANDLE hDDVideoPort;
+ DWORD dwNumVBIAutoflip;
+ LPDDVIDEOPORTDESC lpVBIDesc;
+ LPDDVIDEOPORTDESC lpVideoDesc;
+ LPDDVIDEOPORTINFO lpVBIInfo;
+ LPDDVIDEOPORTINFO lpVideoInfo;
+ DWORD dwVBIProcessID;
+ LPDDRAWI_DDVIDEOPORT_INT lpVPNotify;
+} DDRAWI_DDVIDEOPORT_LCL;
+
+
+typedef struct _DDRAWI_DDVIDEOPORT_INT
+{
+ LPVOID lpVtbl;
+ LPDDRAWI_DDVIDEOPORT_LCL lpLcl;
+ LPDDRAWI_DDVIDEOPORT_INT lpLink;
+ DWORD dwIntRefCnt;
+ DWORD dwFlags;
+} DDRAWI_DDVIDEOPORT_INT;
+
+
+typedef struct _DDRAWI_DDRAWCLIPPER_LCL
+{
+ DWORD lpClipMore;
+ LPDDRAWI_DDRAWCLIPPER_GBL lpGbl;
+ LPDDRAWI_DIRECTDRAW_LCL lpDD_lcl;
+ DWORD dwLocalRefCnt;
+#ifndef _NO_COM
+ IUnknown *pUnkOuter;
+#else
+ PVOID *pUnkOuter;
+#endif
+ LPDDRAWI_DIRECTDRAW_INT lpDD_int;
+ ULONG_PTR dwReserved1;
+#ifndef _NO_COM
+ IUnknown * pAddrefedThisOwner;
+#else
+ PVOID pAddrefedThisOwner;
+#endif
+} DDRAWI_DDRAWCLIPPER_LCL;
+
+
+
+typedef struct _DDRAWI_DDRAWCLIPPER_GBL
+{
+ DWORD dwRefCnt;
+ DWORD dwFlags;
+ LPDDRAWI_DIRECTDRAW_GBL lpDD;
+ DWORD dwProcessId;
+ ULONG_PTR dwReserved1;
+ ULONG_PTR hWnd;
+ LPRGNDATA lpStaticClipList;
+} DDRAWI_DDRAWCLIPPER_GBL;
+
+typedef BOOL (PASCAL *LPDDHEL_INIT)(LPDDRAWI_DIRECTDRAW_GBL,BOOL);
+
+extern HRESULT DDAPI
+ LateAllocateSurfaceMem(
+ LPDIRECTDRAWSURFACE lpSurface,
+ DWORD dwPleaseAllocType,
+ DWORD dwWidthInBytesOrSize,
+ DWORD dwHeight);
+
+ LPDIRECTDRAWSURFACE GetNextMipMap(
+ LPDIRECTDRAWSURFACE lpLevel);
+
+
+
+typedef struct IDirectDrawClipperVtbl DIRECTDRAWCLIPPERCALLBACKS;
+typedef struct IDirectDrawPaletteVtbl DIRECTDRAWPALETTECALLBACKS;
+typedef struct IDirectDrawSurfaceVtbl DIRECTDRAWSURFACECALLBACKS;
+typedef struct IDirectDrawSurface2Vtbl DIRECTDRAWSURFACE2CALLBACKS;
+typedef struct IDirectDrawSurface3Vtbl DIRECTDRAWSURFACE3CALLBACKS;
+typedef struct IDirectDrawSurface4Vtbl DIRECTDRAWSURFACE4CALLBACKS;
+typedef struct IDirectDrawSurface7Vtbl DIRECTDRAWSURFACE7CALLBACKS;
+typedef struct IDirectDrawColorControlVtbl DIRECTDRAWCOLORCONTROLCALLBACKS;
+typedef struct IDirectDrawVtbl DIRECTDRAWCALLBACKS;
+typedef struct IDirectDraw2Vtbl DIRECTDRAW2CALLBACKS;
+typedef struct IDirectDraw4Vtbl DIRECTDRAW4CALLBACKS;
+typedef struct IDirectDraw7Vtbl DIRECTDRAW7CALLBACKS;
+typedef struct IDirectDrawKernelVtbl DIRECTDRAWKERNELCALLBACKS;
+typedef struct IDirectDrawSurfaceKernelVtbl DIRECTDRAWSURFACEKERNELCALLBACKS;
+typedef struct IDirectDrawGammaControlVtbl DIRECTDRAWGAMMACONTROLCALLBACKS;
+
+
+typedef DIRECTDRAWCLIPPERCALLBACKS *LPDIRECTDRAWCLIPPERCALLBACKS;
+typedef DIRECTDRAWPALETTECALLBACKS *LPDIRECTDRAWPALETTECALLBACKS;
+typedef DIRECTDRAWSURFACECALLBACKS *LPDIRECTDRAWSURFACECALLBACKS;
+typedef DIRECTDRAWCALLBACKS *LPDIRECTDRAWCALLBACKS;
+
+
+HRESULT CALLBACK
+ D3DParseUnknownCommand (LPVOID lpvCommands,
+ LPVOID *lplpvReturnedCommand);
#ifdef __cplusplus
-} /* extern "C" */
+ /* extern "C" */
#endif
-#endif /* __WINE_DDRAWI_H */
+#endif /* __DDRAWI_INCLUDED__ */