Something went wrong. Try again.
Reactos
Something went wrong. Try again.
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337/* * ddrawint.h * * DirectDraw NT driver interface * * Contributors: * Created by Ge van Geldorp * * THIS SOFTWARE IS NOT COPYRIGHTED * * This source code is offered for use in the public domain. You may * use, modify or distribute it freely. * * This code is distributed in the hope that it will be useful but * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY * DISCLAIMED. This includes but is not limited to warranties of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * */
#ifndef __DD_INCLUDED__#define __DD_INCLUDED__
DEFINE_GUID( GUID_MiscellaneousCallbacks, 0xEFD60CC0, 0x49e7, 0x11d0, 0x88, 0x9d, 0x0, 0xaa, 0x0, 0xbb, 0xb7, 0x6a);DEFINE_GUID( GUID_Miscellaneous2Callbacks, 0x406B2F00, 0x3E5A, 0x11D1, 0xB6, 0x40, 0x00, 0xAA, 0x00, 0xA1, 0xF9, 0x6A);DEFINE_GUID( GUID_VideoPortCallbacks, 0xefd60cc1, 0x49e7, 0x11d0, 0x88, 0x9d, 0x0, 0xaa, 0x0, 0xbb, 0xb7, 0x6a);DEFINE_GUID( GUID_ColorControlCallbacks, 0xefd60cc2, 0x49e7, 0x11d0, 0x88, 0x9d, 0x0, 0xaa, 0x0, 0xbb, 0xb7, 0x6a);DEFINE_GUID( GUID_MotionCompCallbacks, 0xb1122b40, 0x5dA5, 0x11d1, 0x8f, 0xcF, 0x00, 0xc0, 0x4f, 0xc2, 0x9b, 0x4e);DEFINE_GUID( GUID_VideoPortCaps, 0xefd60cc3, 0x49e7, 0x11d0, 0x88, 0x9d, 0x0, 0xaa, 0x0, 0xbb, 0xb7, 0x6a);DEFINE_GUID( GUID_D3DCaps, 0x7bf06991, 0x8794, 0x11d0, 0x91, 0x39, 0x08, 0x00, 0x36, 0xd2, 0xef, 0x02);DEFINE_GUID( GUID_D3DExtendedCaps, 0x7de41f80, 0x9d93, 0x11d0, 0x89, 0xab, 0x00, 0xa0, 0xc9, 0x05, 0x41, 0x29);DEFINE_GUID( GUID_D3DCallbacks, 0x7bf06990, 0x8794, 0x11d0, 0x91, 0x39, 0x08, 0x00, 0x36, 0xd2, 0xef, 0x02);DEFINE_GUID( GUID_D3DCallbacks2, 0xba584e1, 0x70b6, 0x11d0, 0x88, 0x9d, 0x0, 0xaa, 0x0, 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_ZPixelFormats, 0x93869880, 0x36cf, 0x11d1, 0x9b, 0x1b, 0x0, 0xaa, 0x0, 0xbb, 0xb8, 0xae);DEFINE_GUID( GUID_DDMoreCaps, 0x880baf30, 0xb030, 0x11d0, 0x8e, 0xa7, 0x00, 0x60, 0x97, 0x97, 0xea, 0x5b);DEFINE_GUID( GUID_D3DParseUnknownCommandCallback, 0x2e04ffa0, 0x98e4, 0x11d1, 0x8c, 0xe1, 0x0, 0xa0, 0xc9, 0x6, 0x29, 0xa8);DEFINE_GUID( GUID_NTCallbacks, 0x6fe9ecde, 0xdf89, 0x11d1, 0x9d, 0xb0, 0x00, 0x60, 0x08, 0x27, 0x71, 0xba);DEFINE_GUID( GUID_DDMoreSurfaceCaps, 0x3b8a0466, 0xf269, 0x11d1, 0x88, 0x0b, 0x0, 0xc0, 0x4f, 0xd9, 0x30, 0xc5);DEFINE_GUID( GUID_GetHeapAlignment, 0x42e02f16, 0x7b41, 0x11d2, 0x8b, 0xff, 0x0, 0xa0, 0xc9, 0x83, 0xea, 0xf6);DEFINE_GUID( GUID_UpdateNonLocalHeap, 0x42e02f17, 0x7b41, 0x11d2, 0x8b, 0xff, 0x0, 0xa0, 0xc9, 0x83, 0xea, 0xf6);DEFINE_GUID( GUID_NTPrivateDriverCaps, 0xfad16a23, 0x7b66, 0x11d2, 0x83, 0xd7, 0x0, 0xc0, 0x4f, 0x7c, 0xe5, 0x8c);DEFINE_GUID( GUID_DDStereoMode, 0xf828169c, 0xa8e8, 0x11d2, 0xa1, 0xf2, 0x0, 0xa0, 0xc9, 0x83, 0xea, 0xf6);DEFINE_GUID( GUID_VPE2Callbacks, 0x52882147, 0x2d47, 0x469a, 0xa0, 0xd1, 0x3, 0x45, 0x58, 0x90, 0xf6, 0xc8);
#ifndef GUID_DEFS_ONLY
#ifndef _NO_DDRAWINT_NO_COM#ifndef _NO_COM#define _NO_COM#include <ddraw.h>#include <dvp.h>#undef _NO_COM#else#include <ddraw.h>#include <dvp.h>#endif#else#include <ddraw.h>#include <dvp.h>#endif
#ifdef __cplusplusextern "C" {#endif
#ifndef MAKE_HRESULT // fixme this if statment should not be here, but MAKE_HRESULT should be here#define MAKE_HRESULT(sev,fac,code) ((HRESULT) (((unsigned long)(sev)<<31) | ((unsigned long)(fac)<<16) | ((unsigned long)(code))) )#endif
#ifndef FLATPTR_DEFINEDtypedef ULONG_PTR FLATPTR;#define FLATPTR_DEFINED#endif
typedef struct _DD_VIDEOPORT_LOCAL *PDD_VIDEOPORT_LOCAL;
/************************************************************************//* _DD_GETHEAPALIGNMENTDATA is defined in dmemmgr.h */ /************************************************************************/struct _DD_GETHEAPALIGNMENTDATA;#ifndef DD_GETHEAPALIGNMENTDATA_DECLAREDtypedef struct _DD_GETHEAPALIGNMENTDATA *PDD_GETHEAPALIGNMENTDATA;#define DD_GETHEAPALIGNMENTDATA_DECLARED#endif
/************************************************************************//* Video memory info structures *//************************************************************************/
typedef struct _VIDEOMEMORY { DWORD dwFlags; FLATPTR fpStart; __GNU_EXTENSION union { FLATPTR fpEnd; DWORD dwWidth; }; DDSCAPS ddsCaps; DDSCAPS ddsCapsAlt; __GNU_EXTENSION union { struct _VMEMHEAP *lpHeap; DWORD dwHeight; };} VIDEOMEMORY, *PVIDEOMEMORY;
typedef struct _VIDEOMEMORYINFO { FLATPTR fpPrimary; DWORD dwFlags; DWORD dwDisplayWidth; DWORD dwDisplayHeight; LONG lDisplayPitch; DDPIXELFORMAT ddpfDisplay; DWORD dwOffscreenAlign; DWORD dwOverlayAlign; DWORD dwTextureAlign; DWORD dwZBufferAlign; DWORD dwAlphaAlign; PVOID pvPrimary;} VIDEOMEMORYINFO, *LPVIDEOMEMORYINFO;
typedef struct _DD_DIRECTDRAW_GLOBAL { PVOID dhpdev; ULONG_PTR dwReserved1; ULONG_PTR dwReserved2; LPDDVIDEOPORTCAPS lpDDVideoPortCaps;} DD_DIRECTDRAW_GLOBAL, *PDD_DIRECTDRAW_GLOBAL;
typedef struct _DD_DIRECTDRAW_LOCAL { PDD_DIRECTDRAW_GLOBAL lpGbl;} DD_DIRECTDRAW_LOCAL, *PDD_DIRECTDRAW_LOCAL;
typedef struct _DD_SURFACE_GLOBAL { __GNU_EXTENSION union { DWORD dwBlockSizeY; LONG lSlicePitch; }; __GNU_EXTENSION union { PVIDEOMEMORY lpVidMemHeap; DWORD dwBlockSizeX; DWORD dwUserMemSize; }; FLATPTR fpVidMem; __GNU_EXTENSION union { LONG lPitch; DWORD dwLinearSize; }; LONG yHint; LONG xHint; DWORD wHeight; DWORD wWidth; ULONG_PTR dwReserved1; DDPIXELFORMAT ddpfSurface; FLATPTR fpHeapOffset; HANDLE hCreatorProcess;} DD_SURFACE_GLOBAL, *PDD_SURFACE_GLOBAL;
typedef struct _DD_SURFACE_MORE { DWORD dwMipMapCount; PDD_VIDEOPORT_LOCAL lpVideoPort; DWORD dwOverlayFlags; DDSCAPSEX ddsCapsEx; DWORD dwSurfaceHandle;} DD_SURFACE_MORE, *PDD_SURFACE_MORE;
typedef struct _DD_ATTACHLIST *PDD_ATTACHLIST;
typedef struct _DD_SURFACE_LOCAL { PDD_SURFACE_GLOBAL lpGbl; DWORD dwFlags; DDSCAPS ddsCaps; ULONG_PTR dwReserved1; __GNU_EXTENSION union { DDCOLORKEY ddckCKSrcOverlay; DDCOLORKEY ddckCKSrcBlt; }; __GNU_EXTENSION union { DDCOLORKEY ddckCKDestOverlay; DDCOLORKEY ddckCKDestBlt; }; PDD_SURFACE_MORE lpSurfMore; PDD_ATTACHLIST lpAttachList; PDD_ATTACHLIST lpAttachListFrom; RECT rcOverlaySrc;} DD_SURFACE_LOCAL, *PDD_SURFACE_LOCAL;
typedef struct _DD_ATTACHLIST { PDD_ATTACHLIST lpLink; PDD_SURFACE_LOCAL lpAttached;} DD_ATTACHLIST;
typedef struct _DD_SURFACE_INT { PDD_SURFACE_LOCAL lpLcl;} DD_SURFACE_INT, *PDD_SURFACE_INT;
/************************************************************************//* DDI representation of the DirectDrawPalette object *//************************************************************************/
typedef struct _DD_PALETTE_GLOBAL { ULONG_PTR Reserved1;} DD_PALETTE_GLOBAL, *PDD_PALETTE_GLOBAL;
/************************************************************************//* DDI representation of the DirectDrawVideo object *//************************************************************************/
typedef struct { PDD_DIRECTDRAW_LOCAL lpDD; GUID guid; DWORD dwUncompWidth; DWORD dwUncompHeight; DDPIXELFORMAT ddUncompPixelFormat; DWORD dwDriverReserved1; DWORD dwDriverReserved2; DWORD dwDriverReserved3; LPVOID lpDriverReserved1; LPVOID lpDriverReserved2; LPVOID lpDriverReserved3;} DD_MOTIONCOMP_LOCAL, *PDD_MOTIONCOMP_LOCAL;
typedef struct _DD_VIDEOPORT_LOCAL { PDD_DIRECTDRAW_LOCAL lpDD; DDVIDEOPORTDESC ddvpDesc; DDVIDEOPORTINFO ddvpInfo; PDD_SURFACE_INT lpSurface; PDD_SURFACE_INT lpVBISurface; DWORD dwNumAutoflip; DWORD dwNumVBIAutoflip; ULONG_PTR dwReserved1; ULONG_PTR dwReserved2; ULONG_PTR dwReserved3;} DD_VIDEOPORT_LOCAL;
/************************************************************************//* IDirectDrawSurface callbacks *//************************************************************************/
typedef struct _DD_LOCKDATA { PDD_DIRECTDRAW_GLOBAL lpDD; PDD_SURFACE_LOCAL lpDDSurface; DWORD bHasRect; RECTL rArea; LPVOID lpSurfData; HRESULT ddRVal; PVOID Lock; DWORD dwFlags; FLATPTR fpProcess;} DD_LOCKDATA, *PDD_LOCKDATA;typedef DWORD (WINAPI *PDD_SURFCB_LOCK)(PDD_LOCKDATA);
typedef struct _DD_UNLOCKDATA { PDD_DIRECTDRAW_GLOBAL lpDD; PDD_SURFACE_LOCAL lpDDSurface; HRESULT ddRVal; PVOID Unlock;} DD_UNLOCKDATA, *PDD_UNLOCKDATA;typedef DWORD (WINAPI *PDD_SURFCB_UNLOCK)(PDD_UNLOCKDATA);
#define DDABLT_SRCOVERDEST 0x00000001#define DDBLT_AFLAGS 0x80000000
typedef struct _DD_BLTDATA { PDD_DIRECTDRAW_GLOBAL lpDD; PDD_SURFACE_LOCAL lpDDDestSurface; RECTL rDest; PDD_SURFACE_LOCAL lpDDSrcSurface; RECTL rSrc; DWORD dwFlags; DWORD dwROPFlags; DDBLTFX bltFX; HRESULT ddRVal; PVOID Blt; BOOL IsClipped; RECTL rOrigDest; RECTL rOrigSrc; DWORD dwRectCnt; LPRECT prDestRects; DWORD dwAFlags; DDARGB ddargbScaleFactors;} DD_BLTDATA, *PDD_BLTDATA;typedef DWORD (WINAPI *PDD_SURFCB_BLT)(PDD_BLTDATA);
typedef struct _DD_UPDATEOVERLAYDATA { PDD_DIRECTDRAW_GLOBAL lpDD; PDD_SURFACE_LOCAL lpDDDestSurface; RECTL rDest; PDD_SURFACE_LOCAL lpDDSrcSurface; RECTL rSrc; DWORD dwFlags; DDOVERLAYFX overlayFX; HRESULT ddRVal; PVOID UpdateOverlay;} DD_UPDATEOVERLAYDATA, *PDD_UPDATEOVERLAYDATA;typedef DWORD (WINAPI *PDD_SURFCB_UPDATEOVERLAY)(PDD_UPDATEOVERLAYDATA);
typedef struct _DD_SETOVERLAYPOSITIONDATA { PDD_DIRECTDRAW_GLOBAL lpDD; PDD_SURFACE_LOCAL lpDDSrcSurface; PDD_SURFACE_LOCAL lpDDDestSurface; LONG lXPos; LONG lYPos; HRESULT ddRVal; PVOID SetOverlayPosition;} DD_SETOVERLAYPOSITIONDATA, *PDD_SETOVERLAYPOSITIONDATA;typedef DWORD (WINAPI *PDD_SURFCB_SETOVERLAYPOSITION)(PDD_SETOVERLAYPOSITIONDATA);
typedef struct _DD_SETPALETTEDATA { PDD_DIRECTDRAW_GLOBAL lpDD; PDD_SURFACE_LOCAL lpDDSurface; PDD_PALETTE_GLOBAL lpDDPalette; HRESULT ddRVal; PVOID SetPalette; BOOL Attach;} DD_SETPALETTEDATA, *PDD_SETPALETTEDATA;typedef DWORD (WINAPI *PDD_SURFCB_SETPALETTE)(PDD_SETPALETTEDATA);
typedef struct _DD_FLIPDATA { PDD_DIRECTDRAW_GLOBAL lpDD; PDD_SURFACE_LOCAL lpSurfCurr; PDD_SURFACE_LOCAL lpSurfTarg; DWORD dwFlags; HRESULT ddRVal; PVOID Flip; PDD_SURFACE_LOCAL lpSurfCurrLeft; PDD_SURFACE_LOCAL lpSurfTargLeft;} DD_FLIPDATA, *PDD_FLIPDATA;typedef DWORD (WINAPI *PDD_SURFCB_FLIP)(PDD_FLIPDATA);
typedef struct _DD_DESTROYSURFACEDATA { PDD_DIRECTDRAW_GLOBAL lpDD; PDD_SURFACE_LOCAL lpDDSurface; HRESULT ddRVal; PVOID DestroySurface;} DD_DESTROYSURFACEDATA, *PDD_DESTROYSURFACEDATA;typedef DWORD (WINAPI *PDD_SURFCB_DESTROYSURFACE)(PDD_DESTROYSURFACEDATA);
typedef struct _DD_SETCLIPLISTDATA { PDD_DIRECTDRAW_GLOBAL lpDD; PDD_SURFACE_LOCAL lpDDSurface; HRESULT ddRVal; PVOID SetClipList;} DD_SETCLIPLISTDATA, *PDD_SETCLIPLISTDATA;typedef DWORD (WINAPI *PDD_SURFCB_SETCLIPLIST)(PDD_SETCLIPLISTDATA);
typedef struct _DD_ADDATTACHEDSURFACEDATA { PDD_DIRECTDRAW_GLOBAL lpDD; PDD_SURFACE_LOCAL lpDDSurface; PDD_SURFACE_LOCAL lpSurfAttached; HRESULT ddRVal; PVOID AddAttachedSurface;} DD_ADDATTACHEDSURFACEDATA, *PDD_ADDATTACHEDSURFACEDATA;typedef DWORD (WINAPI *PDD_SURFCB_ADDATTACHEDSURFACE)(PDD_ADDATTACHEDSURFACEDATA);
typedef struct _DD_SETCOLORKEYDATA { PDD_DIRECTDRAW_GLOBAL lpDD; PDD_SURFACE_LOCAL lpDDSurface; DWORD dwFlags; DDCOLORKEY ckNew; HRESULT ddRVal; PVOID SetColorKey;} DD_SETCOLORKEYDATA, *PDD_SETCOLORKEYDATA;typedef DWORD (WINAPI *PDD_SURFCB_SETCOLORKEY)(PDD_SETCOLORKEYDATA);
typedef struct _DD_GETBLTSTATUSDATA { PDD_DIRECTDRAW_GLOBAL lpDD; PDD_SURFACE_LOCAL lpDDSurface; DWORD dwFlags; HRESULT ddRVal; PVOID GetBltStatus;} DD_GETBLTSTATUSDATA, *PDD_GETBLTSTATUSDATA;typedef DWORD (WINAPI *PDD_SURFCB_GETBLTSTATUS)(PDD_GETBLTSTATUSDATA);
typedef struct _DD_GETFLIPSTATUSDATA { PDD_DIRECTDRAW_GLOBAL lpDD; PDD_SURFACE_LOCAL lpDDSurface; DWORD dwFlags; HRESULT ddRVal; PVOID GetFlipStatus;} DD_GETFLIPSTATUSDATA, *PDD_GETFLIPSTATUSDATA;typedef DWORD (WINAPI *PDD_SURFCB_GETFLIPSTATUS)(PDD_GETFLIPSTATUSDATA);
typedef struct DD_SURFACECALLBACKS { DWORD dwSize; DWORD dwFlags; PDD_SURFCB_DESTROYSURFACE DestroySurface; PDD_SURFCB_FLIP Flip; PDD_SURFCB_SETCLIPLIST SetClipList; PDD_SURFCB_LOCK Lock; PDD_SURFCB_UNLOCK Unlock; PDD_SURFCB_BLT Blt; PDD_SURFCB_SETCOLORKEY SetColorKey; PDD_SURFCB_ADDATTACHEDSURFACE AddAttachedSurface; PDD_SURFCB_GETBLTSTATUS GetBltStatus; PDD_SURFCB_GETFLIPSTATUS GetFlipStatus; PDD_SURFCB_UPDATEOVERLAY UpdateOverlay; PDD_SURFCB_SETOVERLAYPOSITION SetOverlayPosition; PVOID reserved4; PDD_SURFCB_SETPALETTE SetPalette;} DD_SURFACECALLBACKS, *PDD_SURFACECALLBACKS;
#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
/************************************************************************//* IDirectDraw callbacks *//************************************************************************/
typedef struct _DD_CREATESURFACEDATA { PDD_DIRECTDRAW_GLOBAL lpDD; DDSURFACEDESC *lpDDSurfaceDesc; PDD_SURFACE_LOCAL *lplpSList; DWORD dwSCnt; HRESULT ddRVal; PVOID CreateSurface;} DD_CREATESURFACEDATA, *PDD_CREATESURFACEDATA;typedef DWORD (WINAPI *PDD_CREATESURFACE)(PDD_CREATESURFACEDATA);
typedef struct _DD_DRVSETCOLORKEYDATA { PDD_SURFACE_LOCAL lpDDSurface; DWORD dwFlags; DDCOLORKEY ckNew; HRESULT ddRVal; PVOID SetColorKey;} DD_DRVSETCOLORKEYDATA, *PDD_DRVSETCOLORKEYDATA;typedef DWORD (WINAPI *PDD_SETCOLORKEY)(PDD_DRVSETCOLORKEYDATA);
#define DDWAITVB_I_TESTVB 0x80000006
typedef struct _DD_WAITFORVERTICALBLANKDATA { PDD_DIRECTDRAW_GLOBAL lpDD; DWORD dwFlags; DWORD bIsInVB; DWORD hEvent; HRESULT ddRVal; PVOID WaitForVerticalBlank;} DD_WAITFORVERTICALBLANKDATA, *PDD_WAITFORVERTICALBLANKDATA;typedef DWORD (WINAPI *PDD_WAITFORVERTICALBLANK)(PDD_WAITFORVERTICALBLANKDATA);
typedef struct _DD_CANCREATESURFACEDATA { PDD_DIRECTDRAW_GLOBAL lpDD; DDSURFACEDESC *lpDDSurfaceDesc; DWORD bIsDifferentPixelFormat; HRESULT ddRVal; PVOID CanCreateSurface;} DD_CANCREATESURFACEDATA, *PDD_CANCREATESURFACEDATA;typedef DWORD (WINAPI *PDD_CANCREATESURFACE)(PDD_CANCREATESURFACEDATA);
typedef struct _DD_CREATEPALETTEDATA { PDD_DIRECTDRAW_GLOBAL lpDD; PDD_PALETTE_GLOBAL lpDDPalette; LPPALETTEENTRY lpColorTable; HRESULT ddRVal; PVOID CreatePalette; BOOL is_excl;} DD_CREATEPALETTEDATA, *PDD_CREATEPALETTEDATA;typedef DWORD (WINAPI *PDD_CREATEPALETTE)(PDD_CREATEPALETTEDATA);
typedef struct _DD_GETSCANLINEDATA { PDD_DIRECTDRAW_GLOBAL lpDD; DWORD dwScanLine; HRESULT ddRVal; PVOID GetScanLine;} DD_GETSCANLINEDATA, *PDD_GETSCANLINEDATA;typedef DWORD (WINAPI *PDD_GETSCANLINE)(PDD_GETSCANLINEDATA);
typedef struct _DD_MAPMEMORYDATA { PDD_DIRECTDRAW_GLOBAL lpDD; BOOL bMap; HANDLE hProcess; FLATPTR fpProcess; HRESULT ddRVal;} DD_MAPMEMORYDATA, *PDD_MAPMEMORYDATA;typedef DWORD (WINAPI *PDD_MAPMEMORY)(PDD_MAPMEMORYDATA);
typedef struct _DD_DESTROYDRIVERDATA *PDD_DESTROYDRIVERDATA;typedef struct _DD_SETMODEDATA *PDD_SETMODEDATA;
typedef DWORD (APIENTRY *PDD_DESTROYDRIVER)(PDD_DESTROYDRIVERDATA);typedef DWORD (APIENTRY *PDD_SETMODE)(PDD_SETMODEDATA);
typedef struct DD_CALLBACKS { DWORD dwSize; DWORD dwFlags; PDD_DESTROYDRIVER DestroyDriver; PDD_CREATESURFACE CreateSurface; PDD_SETCOLORKEY SetColorKey; PDD_SETMODE SetMode; PDD_WAITFORVERTICALBLANK WaitForVerticalBlank; PDD_CANCREATESURFACE CanCreateSurface; PDD_CREATEPALETTE CreatePalette; PDD_GETSCANLINE GetScanLine; PDD_MAPMEMORY MapMemory;} DD_CALLBACKS, *PDD_CALLBACKS;
#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_MAPMEMORY 0x80000000l
typedef struct _DD_GETAVAILDRIVERMEMORYDATA { PDD_DIRECTDRAW_GLOBAL lpDD; DDSCAPS DDSCaps; DWORD dwTotal; DWORD dwFree; HRESULT ddRVal; PVOID GetAvailDriverMemory;} DD_GETAVAILDRIVERMEMORYDATA, *PDD_GETAVAILDRIVERMEMORYDATA;typedef DWORD (WINAPI *PDD_GETAVAILDRIVERMEMORY)(PDD_GETAVAILDRIVERMEMORYDATA);
typedef struct _DD_MISCELLANEOUSCALLBACKS { DWORD dwSize; DWORD dwFlags; PDD_GETAVAILDRIVERMEMORY GetAvailDriverMemory;} DD_MISCELLANEOUSCALLBACKS, *PDD_MISCELLANEOUSCALLBACKS;
#define DDHAL_MISCCB32_GETAVAILDRIVERMEMORY 0x00000001
typedef DWORD (WINAPI *PDD_ALPHABLT)(PDD_BLTDATA);
typedef struct _DD_CREATESURFACEEXDATA { DWORD dwFlags; PDD_DIRECTDRAW_LOCAL lpDDLcl; PDD_SURFACE_LOCAL lpDDSLcl; HRESULT ddRVal;} DD_CREATESURFACEEXDATA, *PDD_CREATESURFACEEXDATA;typedef DWORD (WINAPI *PDD_CREATESURFACEEX)(PDD_CREATESURFACEEXDATA);
typedef struct _DD_GETDRIVERSTATEDATA { DWORD dwFlags; __GNU_EXTENSION union { PDD_DIRECTDRAW_GLOBAL lpDD; DWORD_PTR dwhContext; }; LPDWORD lpdwStates; DWORD dwLength; HRESULT ddRVal;} DD_GETDRIVERSTATEDATA, *PDD_GETDRIVERSTATEDATA;typedef DWORD (WINAPI *PDD_GETDRIVERSTATE)(PDD_GETDRIVERSTATEDATA);
typedef struct _DD_DESTROYDDLOCALDATA { DWORD dwFlags; PDD_DIRECTDRAW_LOCAL pDDLcl; HRESULT ddRVal;} DD_DESTROYDDLOCALDATA, *PDD_DESTROYDDLOCALDATA;typedef DWORD (WINAPI *PDD_DESTROYDDLOCAL)(PDD_DESTROYDDLOCALDATA);
typedef struct _DD_MISCELLANEOUS2CALLBACKS { DWORD dwSize; DWORD dwFlags; PDD_ALPHABLT AlphaBlt; PDD_CREATESURFACEEX CreateSurfaceEx; PDD_GETDRIVERSTATE GetDriverState; PDD_DESTROYDDLOCAL DestroyDDLocal;} DD_MISCELLANEOUS2CALLBACKS, *PDD_MISCELLANEOUS2CALLBACKS;
#define DDHAL_MISC2CB32_ALPHABLT 0x00000001#define DDHAL_MISC2CB32_CREATESURFACEEX 0x00000002#define DDHAL_MISC2CB32_GETDRIVERSTATE 0x00000004#define DDHAL_MISC2CB32_DESTROYDDLOCAL 0x00000008
typedef struct _DD_FREEDRIVERMEMORYDATA { PDD_DIRECTDRAW_GLOBAL lpDD; PDD_SURFACE_LOCAL lpDDSurface; HRESULT ddRVal; PVOID FreeDriverMemory;} DD_FREEDRIVERMEMORYDATA, *PDD_FREEDRIVERMEMORYDATA;typedef DWORD (WINAPI *PDD_FREEDRIVERMEMORY)(PDD_FREEDRIVERMEMORYDATA);
typedef struct _DD_SETEXCLUSIVEMODEDATA { PDD_DIRECTDRAW_GLOBAL lpDD; DWORD dwEnterExcl; DWORD dwReserved; HRESULT ddRVal; PVOID SetExclusiveMode;} DD_SETEXCLUSIVEMODEDATA, *PDD_SETEXCLUSIVEMODEDATA;typedef DWORD (WINAPI *PDD_SETEXCLUSIVEMODE)(PDD_SETEXCLUSIVEMODEDATA);
typedef struct _DD_FLIPTOGDISURFACEDATA { PDD_DIRECTDRAW_GLOBAL lpDD; DWORD dwToGDI; DWORD dwReserved; HRESULT ddRVal; PVOID FlipToGDISurface;} DD_FLIPTOGDISURFACEDATA, *PDD_FLIPTOGDISURFACEDATA;typedef DWORD (WINAPI *PDD_FLIPTOGDISURFACE)(PDD_FLIPTOGDISURFACEDATA);
typedef struct _DD_NTCALLBACKS { DWORD dwSize; DWORD dwFlags; PDD_FREEDRIVERMEMORY FreeDriverMemory; PDD_SETEXCLUSIVEMODE SetExclusiveMode; PDD_FLIPTOGDISURFACE FlipToGDISurface;} DD_NTCALLBACKS, *PDD_NTCALLBACKS;
#define DDHAL_NTCB32_FREEDRIVERMEMORY 0x00000001#define DDHAL_NTCB32_SETEXCLUSIVEMODE 0x00000002#define DDHAL_NTCB32_FLIPTOGDISURFACE 0x00000004
/************************************************************************//* IDirectDrawPalette callbacks *//************************************************************************/
typedef struct _DD_DESTROYPALETTEDATA { PDD_DIRECTDRAW_GLOBAL lpDD; PDD_PALETTE_GLOBAL lpDDPalette; HRESULT ddRVal; PVOID DestroyPalette;} DD_DESTROYPALETTEDATA, *PDD_DESTROYPALETTEDATA;typedef DWORD (WINAPI *PDD_PALCB_DESTROYPALETTE)(PDD_DESTROYPALETTEDATA);
typedef struct _DD_SETENTRIESDATA { PDD_DIRECTDRAW_GLOBAL lpDD; PDD_PALETTE_GLOBAL lpDDPalette; DWORD dwBase; DWORD dwNumEntries; LPPALETTEENTRY lpEntries; HRESULT ddRVal; PVOID SetEntries;} DD_SETENTRIESDATA, *PDD_SETENTRIESDATA;typedef DWORD (WINAPI *PDD_PALCB_SETENTRIES)(PDD_SETENTRIESDATA);
typedef struct DD_PALETTECALLBACKS { DWORD dwSize; DWORD dwFlags; PDD_PALCB_DESTROYPALETTE DestroyPalette; PDD_PALCB_SETENTRIES SetEntries;} DD_PALETTECALLBACKS, *PDD_PALETTECALLBACKS;
#define DDHAL_PALCB32_DESTROYPALETTE 0x00000001l#define DDHAL_PALCB32_SETENTRIES 0x00000002l
/************************************************************************//* IDirectDrawVideoport callbacks *//************************************************************************/
typedef struct _DD_CANCREATEVPORTDATA { PDD_DIRECTDRAW_LOCAL lpDD; LPDDVIDEOPORTDESC lpDDVideoPortDesc; HRESULT ddRVal; PVOID CanCreateVideoPort;} DD_CANCREATEVPORTDATA, *PDD_CANCREATEVPORTDATA;typedef DWORD (WINAPI *PDD_VPORTCB_CANCREATEVIDEOPORT)(PDD_CANCREATEVPORTDATA);
typedef struct _DD_CREATEVPORTDATA { PDD_DIRECTDRAW_LOCAL lpDD; LPDDVIDEOPORTDESC lpDDVideoPortDesc; PDD_VIDEOPORT_LOCAL lpVideoPort; HRESULT ddRVal; PVOID CreateVideoPort;} DD_CREATEVPORTDATA, *PDD_CREATEVPORTDATA;typedef DWORD (WINAPI *PDD_VPORTCB_CREATEVIDEOPORT)(PDD_CREATEVPORTDATA);
typedef struct _DD_FLIPVPORTDATA { PDD_DIRECTDRAW_LOCAL lpDD; PDD_VIDEOPORT_LOCAL lpVideoPort; PDD_SURFACE_LOCAL lpSurfCurr; PDD_SURFACE_LOCAL lpSurfTarg; HRESULT ddRVal; PVOID FlipVideoPort;} DD_FLIPVPORTDATA, *PDD_FLIPVPORTDATA;typedef DWORD (WINAPI *PDD_VPORTCB_FLIP)(PDD_FLIPVPORTDATA);
typedef struct _DD_GETVPORTBANDWIDTHDATA { PDD_DIRECTDRAW_LOCAL lpDD; PDD_VIDEOPORT_LOCAL lpVideoPort; LPDDPIXELFORMAT lpddpfFormat; DWORD dwWidth; DWORD dwHeight; DWORD dwFlags; LPDDVIDEOPORTBANDWIDTH lpBandwidth; HRESULT ddRVal; PVOID GetVideoPortBandwidth;} DD_GETVPORTBANDWIDTHDATA, *PDD_GETVPORTBANDWIDTHDATA;typedef DWORD (WINAPI *PDD_VPORTCB_GETBANDWIDTH)(PDD_GETVPORTBANDWIDTHDATA);
typedef struct _DD_GETVPORTINPUTFORMATDATA { PDD_DIRECTDRAW_LOCAL lpDD; PDD_VIDEOPORT_LOCAL lpVideoPort; DWORD dwFlags; LPDDPIXELFORMAT lpddpfFormat; DWORD dwNumFormats; HRESULT ddRVal; PVOID GetVideoPortInputFormats;} DD_GETVPORTINPUTFORMATDATA, *PDD_GETVPORTINPUTFORMATDATA;typedef DWORD (WINAPI *PDD_VPORTCB_GETINPUTFORMATS)(PDD_GETVPORTINPUTFORMATDATA);
typedef struct _DD_GETVPORTOUTPUTFORMATDATA { PDD_DIRECTDRAW_LOCAL lpDD; PDD_VIDEOPORT_LOCAL lpVideoPort; DWORD dwFlags; LPDDPIXELFORMAT lpddpfInputFormat; LPDDPIXELFORMAT lpddpfOutputFormats; DWORD dwNumFormats; HRESULT ddRVal; PVOID GetVideoPortInputFormats;} DD_GETVPORTOUTPUTFORMATDATA, *PDD_GETVPORTOUTPUTFORMATDATA;typedef DWORD (WINAPI *PDD_VPORTCB_GETOUTPUTFORMATS)(PDD_GETVPORTOUTPUTFORMATDATA);
typedef struct _DD_GETVPORTFIELDDATA { PDD_DIRECTDRAW_LOCAL lpDD; PDD_VIDEOPORT_LOCAL lpVideoPort; BOOL bField; HRESULT ddRVal; PVOID GetVideoPortField;} DD_GETVPORTFIELDDATA, *PDD_GETVPORTFIELDDATA;typedef DWORD (WINAPI *PDD_VPORTCB_GETFIELD)(PDD_GETVPORTFIELDDATA);
typedef struct _DD_GETVPORTLINEDATA { PDD_DIRECTDRAW_LOCAL lpDD; PDD_VIDEOPORT_LOCAL lpVideoPort; DWORD dwLine; HRESULT ddRVal; PVOID GetVideoPortLine;} DD_GETVPORTLINEDATA, *PDD_GETVPORTLINEDATA;typedef DWORD (WINAPI *PDD_VPORTCB_GETLINE)(PDD_GETVPORTLINEDATA);
typedef struct _DD_GETVPORTCONNECTDATA { PDD_DIRECTDRAW_LOCAL lpDD; DWORD dwPortId; LPDDVIDEOPORTCONNECT lpConnect; DWORD dwNumEntries; HRESULT ddRVal; PVOID GetVideoPortConnectInfo;} DD_GETVPORTCONNECTDATA, *PDD_GETVPORTCONNECTDATA;typedef DWORD (WINAPI *PDD_VPORTCB_GETVPORTCONNECT)(PDD_GETVPORTCONNECTDATA);
typedef struct _DD_DESTROYVPORTDATA { PDD_DIRECTDRAW_LOCAL lpDD; PDD_VIDEOPORT_LOCAL lpVideoPort; HRESULT ddRVal; PVOID DestroyVideoPort;} DD_DESTROYVPORTDATA, *PDD_DESTROYVPORTDATA;typedef DWORD (WINAPI *PDD_VPORTCB_DESTROYVPORT)(PDD_DESTROYVPORTDATA);
typedef struct _DD_GETVPORTFLIPSTATUSDATA { PDD_DIRECTDRAW_LOCAL lpDD; FLATPTR fpSurface; HRESULT ddRVal; PVOID GetVideoPortFlipStatus;} DD_GETVPORTFLIPSTATUSDATA, *PDD_GETVPORTFLIPSTATUSDATA;typedef DWORD (WINAPI *PDD_VPORTCB_GETFLIPSTATUS)(PDD_GETVPORTFLIPSTATUSDATA);
typedef struct _DD_UPDATEVPORTDATA { PDD_DIRECTDRAW_LOCAL lpDD; PDD_VIDEOPORT_LOCAL lpVideoPort; PDD_SURFACE_INT *lplpDDSurface; PDD_SURFACE_INT *lplpDDVBISurface; LPDDVIDEOPORTINFO lpVideoInfo; DWORD dwFlags; DWORD dwNumAutoflip; DWORD dwNumVBIAutoflip; HRESULT ddRVal; PVOID UpdateVideoPort;} DD_UPDATEVPORTDATA, *PDD_UPDATEVPORTDATA;typedef DWORD (WINAPI *PDD_VPORTCB_UPDATE)(PDD_UPDATEVPORTDATA);
typedef struct _DD_WAITFORVPORTSYNCDATA { PDD_DIRECTDRAW_LOCAL lpDD; PDD_VIDEOPORT_LOCAL lpVideoPort; DWORD dwFlags; DWORD dwLine; DWORD dwTimeOut; HRESULT ddRVal; PVOID UpdateVideoPort;} DD_WAITFORVPORTSYNCDATA, *PDD_WAITFORVPORTSYNCDATA;typedef DWORD (WINAPI *PDD_VPORTCB_WAITFORSYNC)(PDD_WAITFORVPORTSYNCDATA);
typedef struct _DD_GETVPORTSIGNALDATA { PDD_DIRECTDRAW_LOCAL lpDD; PDD_VIDEOPORT_LOCAL lpVideoPort; DWORD dwStatus; HRESULT ddRVal; PVOID GetVideoSignalStatus;} DD_GETVPORTSIGNALDATA, *PDD_GETVPORTSIGNALDATA;typedef DWORD (WINAPI *PDD_VPORTCB_GETSIGNALSTATUS)(PDD_GETVPORTSIGNALDATA);
typedef struct _DD_VPORTCOLORDATA { PDD_DIRECTDRAW_LOCAL lpDD; PDD_VIDEOPORT_LOCAL lpVideoPort; DWORD dwFlags; LPDDCOLORCONTROL lpColorData; HRESULT ddRVal; PVOID ColorControl;} DD_VPORTCOLORDATA, *PDD_VPORTCOLORDATA;typedef DWORD (WINAPI *PDD_VPORTCB_COLORCONTROL)(PDD_VPORTCOLORDATA);
typedef struct DD_VIDEOPORTCALLBACKS { DWORD dwSize; DWORD dwFlags; PDD_VPORTCB_CANCREATEVIDEOPORT CanCreateVideoPort; PDD_VPORTCB_CREATEVIDEOPORT CreateVideoPort; PDD_VPORTCB_FLIP FlipVideoPort; PDD_VPORTCB_GETBANDWIDTH GetVideoPortBandwidth; PDD_VPORTCB_GETINPUTFORMATS GetVideoPortInputFormats; PDD_VPORTCB_GETOUTPUTFORMATS GetVideoPortOutputFormats; PVOID lpReserved1; PDD_VPORTCB_GETFIELD GetVideoPortField; PDD_VPORTCB_GETLINE GetVideoPortLine; PDD_VPORTCB_GETVPORTCONNECT GetVideoPortConnectInfo; PDD_VPORTCB_DESTROYVPORT DestroyVideoPort; PDD_VPORTCB_GETFLIPSTATUS GetVideoPortFlipStatus; PDD_VPORTCB_UPDATE UpdateVideoPort; PDD_VPORTCB_WAITFORSYNC WaitForVideoPortSync; PDD_VPORTCB_GETSIGNALSTATUS GetVideoSignalStatus; PDD_VPORTCB_COLORCONTROL ColorControl;} DD_VIDEOPORTCALLBACKS, *PDD_VIDEOPORTCALLBACKS;
#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
/************************************************************************//* IDirectDrawColorControl callbacks *//************************************************************************/
#define DDRAWI_GETCOLOR 0x0001#define DDRAWI_SETCOLOR 0x0002
typedef struct _DD_COLORCONTROLDATA { PDD_DIRECTDRAW_GLOBAL lpDD; PDD_SURFACE_LOCAL lpDDSurface; LPDDCOLORCONTROL lpColorData; DWORD dwFlags; HRESULT ddRVal; PVOID ColorControl;} DD_COLORCONTROLDATA, *PDD_COLORCONTROLDATA;typedef DWORD (WINAPI *PDD_COLORCB_COLORCONTROL)(PDD_COLORCONTROLDATA);
typedef struct _DD_COLORCONTROLCALLBACKS { DWORD dwSize; DWORD dwFlags; PDD_COLORCB_COLORCONTROL ColorControl;} DD_COLORCONTROLCALLBACKS, *PDD_COLORCONTROLCALLBACKS;
#define DDHAL_COLOR_COLORCONTROL 0x00000001
/************************************************************************//* IDirectDrawVideo callbacks *//************************************************************************/
typedef struct _DD_GETMOCOMPGUIDSDATA { PDD_DIRECTDRAW_LOCAL lpDD; DWORD dwNumGuids; GUID *lpGuids; HRESULT ddRVal;} DD_GETMOCOMPGUIDSDATA, *PDD_GETMOCOMPGUIDSDATA;typedef DWORD (WINAPI *PDD_MOCOMPCB_GETGUIDS)(PDD_GETMOCOMPGUIDSDATA);
typedef struct _DD_GETMOCOMPFORMATSDATA { PDD_DIRECTDRAW_LOCAL lpDD; GUID *lpGuid; DWORD dwNumFormats; LPDDPIXELFORMAT lpFormats; HRESULT ddRVal;} DD_GETMOCOMPFORMATSDATA, *PDD_GETMOCOMPFORMATSDATA;typedef DWORD (WINAPI *PDD_MOCOMPCB_GETFORMATS)(PDD_GETMOCOMPFORMATSDATA);
typedef struct _DD_CREATEMOCOMPDATA { PDD_DIRECTDRAW_LOCAL lpDD; PDD_MOTIONCOMP_LOCAL lpMoComp; GUID *lpGuid; DWORD dwUncompWidth; DWORD dwUncompHeight; DDPIXELFORMAT ddUncompPixelFormat; LPVOID lpData; DWORD dwDataSize; HRESULT ddRVal;} DD_CREATEMOCOMPDATA, *PDD_CREATEMOCOMPDATA;typedef DWORD (WINAPI *PDD_MOCOMPCB_CREATE)(PDD_CREATEMOCOMPDATA);
typedef struct _DDCOMPBUFFERINFO { DWORD dwSize; DWORD dwNumCompBuffers; DWORD dwWidthToCreate; DWORD dwHeightToCreate; DWORD dwBytesToAllocate; DDSCAPS2 ddCompCaps; DDPIXELFORMAT ddPixelFormat;} DDCOMPBUFFERINFO, *LPDDCOMPBUFFERINFO;
typedef struct _DD_GETMOCOMPCOMPBUFFDATA { PDD_DIRECTDRAW_LOCAL lpDD; GUID *lpGuid; DWORD dwWidth; DWORD dwHeight; DDPIXELFORMAT ddPixelFormat; DWORD dwNumTypesCompBuffs; LPDDCOMPBUFFERINFO lpCompBuffInfo; HRESULT ddRVal;} DD_GETMOCOMPCOMPBUFFDATA, *PDD_GETMOCOMPCOMPBUFFDATA;typedef DWORD (WINAPI *PDD_MOCOMPCB_GETCOMPBUFFINFO)(PDD_GETMOCOMPCOMPBUFFDATA);
typedef struct _DD_GETINTERNALMOCOMPDATA { PDD_DIRECTDRAW_LOCAL lpDD; GUID *lpGuid; DWORD dwWidth; DWORD dwHeight; DDPIXELFORMAT ddPixelFormat; DWORD dwScratchMemAlloc; HRESULT ddRVal;} DD_GETINTERNALMOCOMPDATA, *PDD_GETINTERNALMOCOMPDATA;typedef DWORD (WINAPI *PDD_MOCOMPCB_GETINTERNALINFO)(PDD_GETINTERNALMOCOMPDATA);
typedef struct _DD_BEGINMOCOMPFRAMEDATA { PDD_DIRECTDRAW_LOCAL lpDD; PDD_MOTIONCOMP_LOCAL lpMoComp; PDD_SURFACE_LOCAL lpDestSurface; DWORD dwInputDataSize; LPVOID lpInputData; DWORD dwOutputDataSize; LPVOID lpOutputData; HRESULT ddRVal;} DD_BEGINMOCOMPFRAMEDATA, *PDD_BEGINMOCOMPFRAMEDATA;typedef DWORD (WINAPI *PDD_MOCOMPCB_BEGINFRAME)(PDD_BEGINMOCOMPFRAMEDATA);
typedef struct _DD_ENDMOCOMPFRAMEDATA { PDD_DIRECTDRAW_LOCAL lpDD; PDD_MOTIONCOMP_LOCAL lpMoComp; LPVOID lpInputData; DWORD dwInputDataSize; HRESULT ddRVal;} DD_ENDMOCOMPFRAMEDATA, *PDD_ENDMOCOMPFRAMEDATA;typedef DWORD (WINAPI *PDD_MOCOMPCB_ENDFRAME)(PDD_ENDMOCOMPFRAMEDATA);
typedef struct _DDMOCOMPBUFFERINFO { DWORD dwSize; PDD_SURFACE_LOCAL lpCompSurface; DWORD dwDataOffset; DWORD dwDataSize; LPVOID lpPrivate;} DDMOCOMPBUFFERINFO, *LPDDMOCOMPBUFFERINFO;
typedef struct _DD_RENDERMOCOMPDATA { PDD_DIRECTDRAW_LOCAL lpDD; PDD_MOTIONCOMP_LOCAL lpMoComp; DWORD dwNumBuffers; LPDDMOCOMPBUFFERINFO lpBufferInfo; DWORD dwFunction; LPVOID lpInputData; DWORD dwInputDataSize; LPVOID lpOutputData; DWORD dwOutputDataSize; HRESULT ddRVal;} DD_RENDERMOCOMPDATA, *PDD_RENDERMOCOMPDATA;typedef DWORD (WINAPI *PDD_MOCOMPCB_RENDER)(PDD_RENDERMOCOMPDATA);
#define DDMCQUERY_READ 0x00000001
typedef struct _DD_QUERYMOCOMPSTATUSDATA { PDD_DIRECTDRAW_LOCAL lpDD; PDD_MOTIONCOMP_LOCAL lpMoComp; PDD_SURFACE_LOCAL lpSurface; DWORD dwFlags; HRESULT ddRVal;} DD_QUERYMOCOMPSTATUSDATA, *PDD_QUERYMOCOMPSTATUSDATA;typedef DWORD (WINAPI *PDD_MOCOMPCB_QUERYSTATUS)(PDD_QUERYMOCOMPSTATUSDATA);
typedef struct _DD_DESTROYMOCOMPDATA { PDD_DIRECTDRAW_LOCAL lpDD; PDD_MOTIONCOMP_LOCAL lpMoComp; HRESULT ddRVal;} DD_DESTROYMOCOMPDATA, *PDD_DESTROYMOCOMPDATA;typedef DWORD (WINAPI *PDD_MOCOMPCB_DESTROY)(PDD_DESTROYMOCOMPDATA);
typedef struct DD_MOTIONCOMPCALLBACKS { DWORD dwSize; DWORD dwFlags; PDD_MOCOMPCB_GETGUIDS GetMoCompGuids; PDD_MOCOMPCB_GETFORMATS GetMoCompFormats; PDD_MOCOMPCB_CREATE CreateMoComp; PDD_MOCOMPCB_GETCOMPBUFFINFO GetMoCompBuffInfo; PDD_MOCOMPCB_GETINTERNALINFO GetInternalMoCompInfo; PDD_MOCOMPCB_BEGINFRAME BeginMoCompFrame; PDD_MOCOMPCB_ENDFRAME EndMoCompFrame; PDD_MOCOMPCB_RENDER RenderMoComp; PDD_MOCOMPCB_QUERYSTATUS QueryMoCompStatus; PDD_MOCOMPCB_DESTROY DestroyMoComp;} DD_MOTIONCOMPCALLBACKS, *PDD_MOTIONCOMPCALLBACKS;
#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
/************************************************************************//* D3D buffer callbacks *//************************************************************************/
typedef struct _DD_D3DBUFCALLBACKS { DWORD dwSize; DWORD dwFlags; PDD_CANCREATESURFACE CanCreateD3DBuffer; PDD_CREATESURFACE CreateD3DBuffer; PDD_SURFCB_DESTROYSURFACE DestroyD3DBuffer; PDD_SURFCB_LOCK LockD3DBuffer; PDD_SURFCB_UNLOCK UnlockD3DBuffer;} DD_D3DBUFCALLBACKS, *PDD_D3DBUFCALLBACKS;
/************************************************************************//* DdGetDriverInfo callback *//************************************************************************/
typedef struct _DD_GETDRIVERINFODATA {// Input: PVOID dhpdev; DWORD dwSize; DWORD dwFlags; GUID guidInfo; DWORD dwExpectedSize; PVOID lpvData;// Output: DWORD dwActualSize; HRESULT ddRVal;} DD_GETDRIVERINFODATA, *PDD_GETDRIVERINFODATA;typedef DWORD (WINAPI *PDD_GETDRIVERINFO)(PDD_GETDRIVERINFODATA);
/************************************************************************//* Driver info structures *//************************************************************************/
typedef struct _DDNTCORECAPS { DWORD dwSize; DWORD dwCaps; DWORD dwCaps2; DWORD dwCKeyCaps; DWORD dwFXCaps; DWORD dwFXAlphaCaps; DWORD dwPalCaps; DWORD dwSVCaps; DWORD dwAlphaBltConstBitDepths; DWORD dwAlphaBltPixelBitDepths; DWORD dwAlphaBltSurfaceBitDepths; DWORD dwAlphaOverlayConstBitDepths; DWORD dwAlphaOverlayPixelBitDepths; DWORD dwAlphaOverlaySurfaceBitDepths; DWORD dwZBufferBitDepths; DWORD dwVidMemTotal; DWORD dwVidMemFree; DWORD dwMaxVisibleOverlays; DWORD dwCurrVisibleOverlays; DWORD dwNumFourCCCodes; DWORD dwAlignBoundarySrc; DWORD dwAlignSizeSrc; DWORD dwAlignBoundaryDest; DWORD dwAlignSizeDest; DWORD dwAlignStrideAlign; DWORD dwRops[DD_ROP_SPACE]; DDSCAPS ddsCaps; DWORD dwMinOverlayStretch; DWORD dwMaxOverlayStretch; DWORD dwMinLiveVideoStretch; DWORD dwMaxLiveVideoStretch; DWORD dwMinHwCodecStretch; DWORD dwMaxHwCodecStretch; DWORD dwReserved1; DWORD dwReserved2; DWORD dwReserved3; DWORD dwSVBCaps; DWORD dwSVBCKeyCaps; DWORD dwSVBFXCaps; DWORD dwSVBRops[DD_ROP_SPACE]; DWORD dwVSBCaps; DWORD dwVSBCKeyCaps; DWORD dwVSBFXCaps; DWORD dwVSBRops[DD_ROP_SPACE]; DWORD dwSSBCaps; DWORD dwSSBCKeyCaps; DWORD dwSSBFXCaps; DWORD dwSSBRops[DD_ROP_SPACE]; DWORD dwMaxVideoPorts; DWORD dwCurrVideoPorts; DWORD dwSVBCaps2;} DDNTCORECAPS, *PDDNTCORECAPS;
typedef struct _DD_HALINFO_V4 { DWORD dwSize; VIDEOMEMORYINFO vmiData; DDNTCORECAPS ddCaps; PDD_GETDRIVERINFO GetDriverInfo; DWORD dwFlags;} DD_HALINFO_V4, *PDD_HALINFO_V4;
typedef struct _DD_HALINFO { DWORD dwSize; VIDEOMEMORYINFO vmiData; DDNTCORECAPS ddCaps; PDD_GETDRIVERINFO GetDriverInfo; DWORD dwFlags; PVOID lpD3DGlobalDriverData; PVOID lpD3DHALCallbacks; PDD_D3DBUFCALLBACKS lpD3DBufCallbacks;} DD_HALINFO, *PDD_HALINFO;
typedef struct _DD_NONLOCALVIDMEMCAPS { DWORD dwSize; DWORD dwNLVBCaps; DWORD dwNLVBCaps2; DWORD dwNLVBCKeyCaps; DWORD dwNLVBFXCaps; DWORD dwNLVBRops[DD_ROP_SPACE];} DD_NONLOCALVIDMEMCAPS, *PDD_NONLOCALVIDMEMCAPS;
typedef struct _DD_MORESURFACECAPS { DWORD dwSize; DDSCAPSEX ddsCapsMore; struct tagNTExtendedHeapRestrictions { DDSCAPSEX ddsCapsEx; DDSCAPSEX ddsCapsExAlt; } ddsExtendedHeapRestrictions[1];} DD_MORESURFACECAPS, *PDD_MORESURFACECAPS;
/*********************************************************//* Kernel Callbacks *//*********************************************************/typedef struct _DD_SYNCSURFACEDATA { PDD_DIRECTDRAW_LOCAL lpDD; PDD_SURFACE_LOCAL lpDDSurface; DWORD dwSurfaceOffset; ULONG_PTR fpLockPtr; LONG lPitch; DWORD dwOverlayOffset; ULONG dwDriverReserved1; ULONG dwDriverReserved2; ULONG dwDriverReserved3; ULONG dwDriverReserved4; HRESULT ddRVal;} DD_SYNCSURFACEDATA, *PDD_SYNCSURFACEDATA;typedef DWORD (WINAPI *PDD_KERNELCB_SYNCSURFACE)(PDD_SYNCSURFACEDATA);
typedef struct _DD_SYNCVIDEOPORTDATA { PDD_DIRECTDRAW_LOCAL lpDD; PDD_VIDEOPORT_LOCAL lpVideoPort; DWORD dwOriginOffset; DWORD dwHeight; DWORD dwVBIHeight; ULONG dwDriverReserved1; ULONG dwDriverReserved2; ULONG dwDriverReserved3; HRESULT ddRVal;} DD_SYNCVIDEOPORTDATA, *PDD_SYNCVIDEOPORTDATA;typedef DWORD (WINAPI *PDD_KERNELCB_SYNCVIDEOPORT)(PDD_SYNCVIDEOPORTDATA);
typedef struct DD_NTPRIVATEDRIVERCAPS { DWORD dwSize; DWORD dwPrivateCaps;} DD_NTPRIVATEDRIVERCAPS;
typedef struct _DD_UPDATENONLOCALHEAPDATA { PDD_DIRECTDRAW_GLOBAL lpDD; DWORD dwHeap; FLATPTR fpGARTLin; FLATPTR fpGARTDev; ULONG_PTR ulPolicyMaxBytes; HRESULT ddRVal; VOID* UpdateNonLocalHeap;} DD_UPDATENONLOCALHEAPDATA, *PDD_UPDATENONLOCALHEAPDATA;
typedef struct _DD_STEREOMODE { DWORD dwSize; DWORD dwHeight; DWORD dwWidth; DWORD dwBpp; DWORD dwRefreshRate; BOOL bSupported;} DD_STEREOMODE, *PDD_STEREOMODE;
typedef struct _DD_MORECAPS { DWORD dwSize; DWORD dwAlphaCaps; DWORD dwSVBAlphaCaps; DWORD dwVSBAlphaCaps; DWORD dwSSBAlphaCaps; DWORD dwFilterCaps; DWORD dwSVBFilterCaps; DWORD dwVSBFilterCaps; DWORD dwSSBFilterCaps;} DD_MORECAPS, *PDD_MORECAPS;
typedef struct _DD_CLIPPER_GLOBAL { ULONG_PTR dwReserved1;} DD_CLIPPER_GLOBAL;
typedef struct _DD_CLIPPER_LOCAL { ULONG_PTR dwReserved1;} DD_CLIPPER_LOCAL;
typedef struct _DD_PALETTE_LOCAL { ULONG dwReserved0; ULONG_PTR dwReserved1;} DD_PALETTE_LOCAL;
typedef struct DD_KERNELCALLBACKS { DWORD dwSize; DWORD dwFlags; PDD_KERNELCB_SYNCSURFACE SyncSurfaceData; PDD_KERNELCB_SYNCVIDEOPORT SyncVideoPortData;} DD_KERNELCALLBACKS, *PDD_KERNELCALLBACKS;
#define MAX_AUTOFLIP_BUFFERS 10#define DDSCAPS_EXECUTEBUFFER DDSCAPS_RESERVED2#define DDSCAPS_COMMANDBUFFER DDSCAPS_RESERVED3#define DDSCAPS_VERTEXBUFFER DDSCAPS_RESERVED4#define DDPF_D3DFORMAT 0x00200000l#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_DMAP 0x00020000L#define D3DFORMAT_OP_NOFILTER 0x00040000L#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 DDHAL_PLEASEALLOC_BLOCKSIZE 0x00000002l#define DDHAL_PLEASEALLOC_USERMEM 0x00000004l
#define VIDMEM_ISLINEAR 0x00000001l#define VIDMEM_ISRECTANGULAR 0x00000002l#define VIDMEM_ISHEAP 0x00000004l#define VIDMEM_ISNONLOCAL 0x00000008l#define VIDMEM_ISWC 0x00000010l#define VIDMEM_HEAPDISABLED 0x00000020l
#define DDHAL_CREATESURFACEEX_SWAPHANDLES 0x00000001l
#define DDHAL_KERNEL_SYNCSURFACEDATA 0x00000001l#define DDHAL_KERNEL_SYNCVIDEOPORTDATA 0x00000002l
#define DDHAL_DRIVER_NOTHANDLED 0x00000000l#define DDHAL_DRIVER_HANDLED 0x00000001l#define DDHAL_DRIVER_NOCKEYHW 0x00000002l
#define DDRAWISURF_HASCKEYSRCBLT 0x00000800L#define DDRAWISURF_HASPIXELFORMAT 0x00002000L#define DDRAWISURF_HASOVERLAYDATA 0x00004000L#define DDRAWISURF_FRONTBUFFER 0x04000000L#define DDRAWISURF_BACKBUFFER 0x08000000L#define DDRAWISURF_INVALID 0x10000000L#define DDRAWISURF_DRIVERMANAGED 0x40000000L
#define ROP_HAS_SOURCE 0x00000001l#define ROP_HAS_PATTERN 0x00000002l#define ROP_HAS_SOURCEPATTERN ROP_HAS_SOURCE | ROP_HAS_PATTERN
#define DDHAL_EXEBUFCB32_CANCREATEEXEBUF 0x00000001l#define DDHAL_EXEBUFCB32_CREATEEXEBUF 0x00000002l#define DDHAL_EXEBUFCB32_DESTROYEXEBUF 0x00000004l#define DDHAL_EXEBUFCB32_LOCKEXEBUF 0x00000008l#define DDHAL_EXEBUFCB32_UNLOCKEXEBUF 0x00000010l
#define DDHAL_D3DBUFCB32_CANCREATED3DBUF DDHAL_EXEBUFCB32_CANCREATEEXEBUF#define DDHAL_D3DBUFCB32_CREATED3DBUF DDHAL_EXEBUFCB32_CREATEEXEBUF#define DDHAL_D3DBUFCB32_DESTROYD3DBUF DDHAL_EXEBUFCB32_DESTROYEXEBUF#define DDHAL_D3DBUFCB32_LOCKD3DBUF DDHAL_EXEBUFCB32_LOCKEXEBUF#define DDHAL_D3DBUFCB32_UNLOCKD3DBUF DDHAL_EXEBUFCB32_UNLOCKEXEBUF
#define DDHALINFO_ISPRIMARYDISPLAY 0x00000001#define DDHALINFO_MODEXILLEGAL 0x00000002#define DDHALINFO_GETDRIVERINFOSET 0x00000004#define DDHALINFO_GETDRIVERINFO2 0x00000008
#define DDRAWIVPORT_ON 0x00000001#define DDRAWIVPORT_SOFTWARE_AUTOFLIP 0x00000002#define DDRAWIVPORT_COLORKEYANDINTERP 0x00000004
#define DDHAL_PRIVATECAP_ATOMICSURFACECREATION 0x00000001l#define DDHAL_PRIVATECAP_NOTIFYPRIMARYCREATION 0x00000002l#define DDHAL_PRIVATECAP_RESERVED1 0x00000004l
#define DDRAWI_VPORTSTART 0x0001#define DDRAWI_VPORTSTOP 0x0002#define DDRAWI_VPORTUPDATE 0x0003#define DDRAWI_VPORTGETCOLOR 0x0001#define DDRAWI_VPORTSETCOLOR 0x0002
#ifdef __cplusplus} /* extern "C" */#endif
#endif /* GUID_DEFS_ONLY */
#endif /* __DD_INCLUDED__ */