| /* | |
| * ddkmapi.h | |
| * | |
| * DirectDraw support for DxApi function | |
| * | |
| * Contributors: | |
| * Created by Magnus Olsen | |
| * | |
| * 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 __DDKMAPI_INCLUDED__ | |
| #define __DDKMAPI_INCLUDED__ | |
| #if defined(_DXAPI_) | |
| #define DXAPI | |
| #else | |
| #define DXAPI DECLSPEC_IMPORT | |
| #endif | |
| #define DXAPI_MAJORVERSION 1 | |
| #define DXAPI_MINORVERSION 0 | |
| #define DD_FIRST_DXAPI 0x500 | |
| #define DD_DXAPI_GETVERSIONNUMBER (DD_FIRST_DXAPI) | |
| #define DD_DXAPI_CLOSEHANDLE (DD_FIRST_DXAPI+1) | |
| #define DD_DXAPI_OPENDIRECTDRAW (DD_FIRST_DXAPI+2) | |
| #define DD_DXAPI_OPENSURFACE (DD_FIRST_DXAPI+3) | |
| #define DD_DXAPI_OPENVIDEOPORT (DD_FIRST_DXAPI+4) | |
| #define DD_DXAPI_GETKERNELCAPS (DD_FIRST_DXAPI+5) | |
| #define DD_DXAPI_GET_VP_FIELD_NUMBER (DD_FIRST_DXAPI+6) | |
| #define DD_DXAPI_SET_VP_FIELD_NUMBER (DD_FIRST_DXAPI+7) | |
| #define DD_DXAPI_SET_VP_SKIP_FIELD (DD_FIRST_DXAPI+8) | |
| #define DD_DXAPI_GET_SURFACE_STATE (DD_FIRST_DXAPI+9) | |
| #define DD_DXAPI_SET_SURFACE_STATE (DD_FIRST_DXAPI+10) | |
| #define DD_DXAPI_LOCK (DD_FIRST_DXAPI+11) | |
| #define DD_DXAPI_FLIP_OVERLAY (DD_FIRST_DXAPI+12) | |
| #define DD_DXAPI_FLIP_VP (DD_FIRST_DXAPI+13) | |
| #define DD_DXAPI_GET_CURRENT_VP_AUTOFLIP_SURFACE (DD_FIRST_DXAPI+14) | |
| #define DD_DXAPI_GET_LAST_VP_AUTOFLIP_SURFACE (DD_FIRST_DXAPI+15) | |
| #define DD_DXAPI_REGISTER_CALLBACK (DD_FIRST_DXAPI+16) | |
| #define DD_DXAPI_UNREGISTER_CALLBACK (DD_FIRST_DXAPI+17) | |
| #define DD_DXAPI_GET_POLARITY (DD_FIRST_DXAPI+18) | |
| #define DD_DXAPI_OPENVPCAPTUREDEVICE (DD_FIRST_DXAPI+19) | |
| #define DD_DXAPI_ADDVPCAPTUREBUFFER (DD_FIRST_DXAPI+20) | |
| #define DD_DXAPI_FLUSHVPCAPTUREBUFFERS (DD_FIRST_DXAPI+21) | |
| /* DDOPENVPCAPTUREDEVICEIN.dwFlags constants */ | |
| #define DDOPENCAPTURE_VIDEO 0x0001 | |
| #define DDOPENCAPTURE_VBI 0x0002 | |
| /* DDADDVPCAPTUREBUFF.dwFlags constants */ | |
| #define DDADDBUFF_SYSTEMMEMORY 0x0001 | |
| #define DDADDBUFF_NONLOCALVIDMEM 0x0002 | |
| #define DDADDBUFF_INVERT 0x0004 | |
| /* DDGETSURFACESTATEOUT.dwStateCaps/dwStateStatus constants */ | |
| #define DDSTATE_BOB 0x0001 | |
| #define DDSTATE_WEAVE 0x0002 | |
| #define DDSTATE_EXPLICITLY_SET 0x0004 | |
| #define DDSTATE_SOFTWARE_AUTOFLIP 0x0008 | |
| #define DDSTATE_SKIPEVENFIELDS 0x0010 | |
| /* DDREGISTERCALLBACK.dwEvents constants */ | |
| #define DDEVENT_DISPLAY_VSYNC 0x0001 | |
| #define DDEVENT_VP_VSYNC 0x0002 | |
| #define DDEVENT_VP_LINE 0x0004 | |
| #define DDEVENT_PRERESCHANGE 0x0008 | |
| #define DDEVENT_POSTRESCHANGE 0x0010 | |
| #define DDEVENT_PREDOSBOX 0x0020 | |
| #define DDEVENT_POSTDOSBOX 0x0040 | |
| /* LPDD_NOTIFYCALLBACK.dwFlags constants */ | |
| #define DDNOTIFY_DISPLAY_VSYNC 0x0001 | |
| #define DDNOTIFY_VP_VSYNC 0x0002 | |
| #define DDNOTIFY_VP_LINE 0x0004 | |
| #define DDNOTIFY_PRERESCHANGE 0x0008 | |
| #define DDNOTIFY_POSTRESCHANGE 0x0010 | |
| #define DDNOTIFY_PREDOSBOX 0x0020 | |
| #define DDNOTIFY_POSTDOSBOX 0x0040 | |
| #define DDNOTIFY_CLOSEDIRECTDRAW 0x0080 | |
| #define DDNOTIFY_CLOSESURFACE 0x0100 | |
| #define DDNOTIFY_CLOSEVIDEOPORT 0x0200 | |
| #define DDNOTIFY_CLOSECAPTURE 0x0400 | |
| typedef DWORD (PASCAL *LPDXAPI)(DWORD dwFunctionNum, LPVOID lpvInBuffer, DWORD cbInBuffer, LPVOID lpvOutBuffer, DWORD cbOutBuffer); | |
| typedef ULONG (PASCAL *LPDD_NOTIFYCALLBACK) (DWORD dwFlags, PVOID pContext, DWORD dwParam1, DWORD dwParam2); | |
| typedef struct _DDCAPBUFFINFO { | |
| DWORD dwFieldNumber; | |
| DWORD bPolarity; | |
| LARGE_INTEGER liTimeStamp; | |
| DWORD ddRVal; | |
| } DDCAPBUFFINFO, * LPDDCAPBUFFINFO; | |
| typedef struct _DDADDVPCAPTUREBUFF { | |
| HANDLE hCapture; | |
| DWORD dwFlags; | |
| PMDL pMDL; | |
| PKEVENT pKEvent; | |
| LPDDCAPBUFFINFO lpBuffInfo; | |
| } DDADDVPCAPTUREBUFF, * LPDDADDVPCAPTUREBUFF; | |
| typedef struct _DDCLOSEHANDLE { | |
| HANDLE hHandle; | |
| } DDCLOSEHANDLE, *LPDDCLOSEHANDLE; | |
| typedef struct _DDFLIPOVERLAY { | |
| HANDLE hDirectDraw; | |
| HANDLE hCurrentSurface; | |
| HANDLE hTargetSurface; | |
| DWORD dwFlags; | |
| } DDFLIPOVERLAY, *LPDDFLIPOVERLAY; | |
| typedef struct _DDFLIPVIDEOPORT { | |
| HANDLE hDirectDraw; | |
| HANDLE hVideoPort; | |
| HANDLE hCurrentSurface; | |
| HANDLE hTargetSurface; | |
| DWORD dwFlags; | |
| } DDFLIPVIDEOPORT, *LPDDFLIPVIDEOPORT; | |
| typedef struct _DDGETAUTOFLIPIN { | |
| HANDLE hDirectDraw; | |
| HANDLE hVideoPort; | |
| } DDGETAUTOFLIPIN, *LPDDGETAUTOFLIPIN; | |
| typedef struct _DDGETAUTOFLIPOUT { | |
| DWORD ddRVal; | |
| HANDLE hVideoSurface; | |
| HANDLE hVBISurface; | |
| WINBOOL bPolarity; | |
| } DDGETAUTOFLIPOUT, *LPDDGETAUTOFLIPOUT; | |
| typedef struct _DDGETPOLARITYIN { | |
| HANDLE hDirectDraw; | |
| HANDLE hVideoPort; | |
| } DDGETPOLARITYIN, *LPDDGETPOLARITYIN; | |
| typedef struct _DDGETPOLARITYOUT { | |
| DWORD ddRVal; | |
| WINBOOL bPolarity; | |
| } DDGETPOLARITYOUT, *LPDDGETPOLARITYOUT; | |
| typedef struct _DDGETSURFACESTATEIN { | |
| HANDLE hDirectDraw; | |
| HANDLE hSurface; | |
| } DDGETSURFACESTATEIN, *LPDDGETSURFACESTATEIN; | |
| typedef struct _DDGETSURFACESTATEOUT { | |
| DWORD ddRVal; | |
| DWORD dwStateCaps; | |
| DWORD dwStateStatus; | |
| } DDGETSURFACESTATEOUT, *LPDDGETSURFACESTATEOUT; | |
| typedef struct _DDGETFIELDNUMIN { | |
| HANDLE hDirectDraw; | |
| HANDLE hVideoPort; | |
| } DDGETFIELDNUMIN, *LPDDGETFIELDNUMIN; | |
| typedef struct _DDGETFIELDNUMOUT { | |
| DWORD ddRVal; | |
| DWORD dwFieldNum; | |
| } DDGETFIELDNUMOUT, *LPDDGETFIELDNUMOUT; | |
| typedef struct _DDGETKERNELCAPSOUT { | |
| DWORD ddRVal; | |
| DWORD dwCaps; | |
| DWORD dwIRQCaps; | |
| } DDGETKERNELCAPSOUT, *LPDDGETKERNELCAPSOUT; | |
| typedef struct _DDGETVERSIONNUMBER { | |
| DWORD ddRVal; | |
| DWORD dwMajorVersion; | |
| DWORD dwMinorVersion; | |
| } DDGETVERSIONNUMBER, *LPDDGETVERSIONNUMBER; | |
| typedef struct _DDLOCKIN { | |
| HANDLE hDirectDraw; | |
| HANDLE hSurface; | |
| } DDLOCKIN, *LPDDLOCKIN; | |
| typedef struct _DDLOCKOUT { | |
| DWORD ddRVal; | |
| DWORD dwSurfHeight; | |
| DWORD dwSurfWidth; | |
| LONG lSurfPitch; | |
| PVOID lpSurface; | |
| DWORD SurfaceCaps; | |
| DWORD dwFormatFlags; | |
| DWORD dwFormatFourCC; | |
| DWORD dwFormatBitCount; | |
| __GNU_EXTENSION union { | |
| DWORD dwRBitMask; | |
| DWORD dwYBitMask; | |
| }; | |
| __GNU_EXTENSION union { | |
| DWORD dwGBitMask; | |
| DWORD dwUBitMask; | |
| }; | |
| __GNU_EXTENSION union { | |
| DWORD dwBBitMask; | |
| DWORD dwVBitMask; | |
| }; | |
| } DDLOCKOUT, *LPDDLOCKOUT; | |
| typedef struct _DDOPENDIRECTDRAWIN { | |
| ULONG_PTR dwDirectDrawHandle; | |
| LPDD_NOTIFYCALLBACK pfnDirectDrawClose; | |
| PVOID pContext; | |
| } DDOPENDIRECTDRAWIN, *LPDDOPENDIRECTDRAWIN; | |
| typedef struct _DDOPENDIRECTDRAWOUT { | |
| DWORD ddRVal; | |
| HANDLE hDirectDraw; | |
| } DDOPENDIRECTDRAWOUT, *LPDDOPENDIRECTDRAWOUT; | |
| typedef struct _DDOPENSURFACEIN { | |
| HANDLE hDirectDraw; | |
| ULONG_PTR dwSurfaceHandle; | |
| LPDD_NOTIFYCALLBACK pfnSurfaceClose; | |
| PVOID pContext; | |
| } DDOPENSURFACEIN, *LPDDOPENSURFACEIN; | |
| typedef struct _DDOPENSURFACEOUT { | |
| DWORD ddRVal; | |
| HANDLE hSurface; | |
| } DDOPENSURFACEOUT, *LPDDOPENSURFACEOUT; | |
| typedef struct _DDOPENVIDEOPORTIN { | |
| HANDLE hDirectDraw; | |
| ULONG dwVideoPortHandle; | |
| LPDD_NOTIFYCALLBACK pfnVideoPortClose; | |
| PVOID pContext; | |
| } DDOPENVIDEOPORTIN, *LPDDOPENVIDEOPORTIN; | |
| typedef struct _DDOPENVIDEOPORTOUT { | |
| DWORD ddRVal; | |
| HANDLE hVideoPort; | |
| } DDOPENVIDEOPORTOUT, *LPDDOPENVIDEOPORTOUT; | |
| typedef struct _DDOPENVPCAPTUREDEVICEIN { | |
| HANDLE hDirectDraw; | |
| HANDLE hVideoPort; | |
| DWORD dwStartLine; | |
| DWORD dwEndLine; | |
| DWORD dwCaptureEveryNFields; | |
| LPDD_NOTIFYCALLBACK pfnCaptureClose; | |
| PVOID pContext; | |
| DWORD dwFlags; | |
| } DDOPENVPCAPTUREDEVICEIN, *LPDDOPENVPCAPTUREDEVICEIN; | |
| typedef struct _DDOPENVPCAPTUREDEVICEOUT { | |
| DWORD ddRVal; | |
| HANDLE hCapture; | |
| } DDOPENVPCAPTUREDEVICEOUT, *LPDDOPENVPCAPTUREDEVICEOUT; | |
| typedef struct _DDREGISTERCALLBACK { | |
| HANDLE hDirectDraw; | |
| ULONG dwEvents; | |
| LPDD_NOTIFYCALLBACK pfnCallback; | |
| ULONG_PTR dwParam1; | |
| ULONG_PTR dwParam2; | |
| PVOID pContext; | |
| } DDREGISTERCALLBACK, *LPDDREGISTERCALLBACK; | |
| typedef struct _DDSETSURFACETATE { | |
| HANDLE hDirectDraw; | |
| HANDLE hSurface; | |
| DWORD dwState; | |
| DWORD dwStartField; | |
| } DDSETSURFACESTATE, *LPDDSETSURFACESTATE; | |
| typedef struct _DDSETFIELDNUM { | |
| HANDLE hDirectDraw; | |
| HANDLE hVideoPort; | |
| DWORD dwFieldNum; | |
| } DDSETFIELDNUM, *LPDDSETFIELDNUM; | |
| typedef struct _DDSETSKIPFIELD { | |
| HANDLE hDirectDraw; | |
| HANDLE hVideoPort; | |
| DWORD dwStartField; | |
| } DDSETSKIPFIELD, *LPDDSETSKIPFIELD; | |
| DXAPI | |
| DWORD PASCAL | |
| DxApi(IN DWORD dwFunctionNum, | |
| IN LPVOID lpvInBuffer, | |
| IN DWORD cbInBuffer, | |
| OUT LPVOID lpvOutBuffer, | |
| OUT DWORD cbOutBuffer); | |
| #endif /* __DDKMAPI_INCLUDED__ */ | |