+++ /dev/null
-/*
- * 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;
- BOOL bPolarity;
-} DDGETAUTOFLIPOUT, *LPDDGETAUTOFLIPOUT;
-
-typedef struct _DDGETPOLARITYIN {
- HANDLE hDirectDraw;
- HANDLE hVideoPort;
-} DDGETPOLARITYIN, *LPDDGETPOLARITYIN;
-
-typedef struct _DDGETPOLARITYOUT {
- DWORD ddRVal;
- BOOL 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__ */
-