--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mingw-5.1.4/win32/include/ddk/ddkmapi.h Fri Apr 03 17:16:45 2009 +0100
@@ -0,0 +1,334 @@
+/*
+ * ddkmapi.h
+ *
+ * DirectDraw support for DxApi function
+ *
+ * This file is part of the w32api package.
+ *
+ * Contributors:
+ * Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
+ *
+ * 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_H
+#define __DDKMAPI_H
+
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include "ntddk.h"
+
+#if defined(_DXAPI_)
+ #define DXAPI DECLSPEC_EXPORT
+#else
+ #define DXAPI DECLSPEC_IMPORT
+#endif
+
+DXAPI
+DWORD
+FAR PASCAL
+DxApi(
+ /*IN*/ DWORD dwFunctionNum,
+ /*IN*/ LPVOID lpvInBuffer,
+ /*IN*/ DWORD cbInBuffer,
+ /*OUT*/ LPVOID lpvOutBuffer,
+ /*OUT*/ DWORD cbOutBuffer);
+
+typedef DWORD (FAR PASCAL *LPDXAPI)(
+ DWORD dwFunctionNum,
+ LPVOID lpvInBuffer,
+ DWORD cbInBuffer,
+ LPVOID lpvOutBuffer,
+ DWORD cbOutBuffer);
+
+
+#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)
+
+
+typedef struct _DDCAPBUFFINFO {
+ DWORD dwFieldNumber;
+ DWORD bPolarity;
+ LARGE_INTEGER liTimeStamp;
+ DWORD ddRVal;
+} DDCAPBUFFINFO, FAR * LPDDCAPBUFFINFO;
+
+/* DDADDVPCAPTUREBUFF.dwFlags constants */
+#define DDADDBUFF_SYSTEMMEMORY 0x0001
+#define DDADDBUFF_NONLOCALVIDMEM 0x0002
+#define DDADDBUFF_INVERT 0x0004
+
+typedef struct _DDADDVPCAPTUREBUFF {
+ HANDLE hCapture;
+ DWORD dwFlags;
+ PMDL pMDL;
+ PKEVENT pKEvent;
+ LPDDCAPBUFFINFO lpBuffInfo;
+} DDADDVPCAPTUREBUFF, FAR * LPDDADDVPCAPTUREBUFF;
+
+typedef struct _DDCLOSEHANDLE {
+ HANDLE hHandle;
+} DDCLOSEHANDLE, FAR *LPDDCLOSEHANDLE;
+
+typedef struct _DDFLIPOVERLAY {
+ HANDLE hDirectDraw;
+ HANDLE hCurrentSurface;
+ HANDLE hTargetSurface;
+ DWORD dwFlags;
+} DDFLIPOVERLAY, FAR *LPDDFLIPOVERLAY;
+
+typedef struct _DDFLIPVIDEOPORT {
+ HANDLE hDirectDraw;
+ HANDLE hVideoPort;
+ HANDLE hCurrentSurface;
+ HANDLE hTargetSurface;
+ DWORD dwFlags;
+} DDFLIPVIDEOPORT, FAR *LPDDFLIPVIDEOPORT;
+
+typedef struct _DDGETAUTOFLIPIN {
+ HANDLE hDirectDraw;
+ HANDLE hVideoPort;
+} DDGETAUTOFLIPIN, FAR *LPDDGETAUTOFLIPIN;
+
+typedef struct _DDGETAUTOFLIPOUT {
+ DWORD ddRVal;
+ HANDLE hVideoSurface;
+ HANDLE hVBISurface;
+ BOOL bPolarity;
+} DDGETAUTOFLIPOUT, FAR *LPDDGETAUTOFLIPOUT;
+
+typedef struct _DDGETPOLARITYIN {
+ HANDLE hDirectDraw;
+ HANDLE hVideoPort;
+} DDGETPOLARITYIN, FAR *LPDDGETPOLARITYIN;
+
+typedef struct _DDGETPOLARITYOUT {
+ DWORD ddRVal;
+ BOOL bPolarity;
+} DDGETPOLARITYOUT, FAR *LPDDGETPOLARITYOUT;
+
+typedef struct _DDGETSURFACESTATEIN {
+ HANDLE hDirectDraw;
+ HANDLE hSurface;
+} DDGETSURFACESTATEIN, FAR *LPDDGETSURFACESTATEIN;
+
+/* 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
+
+typedef struct _DDGETSURFACESTATEOUT {
+ DWORD ddRVal;
+ DWORD dwStateCaps;
+ DWORD dwStateStatus;
+} DDGETSURFACESTATEOUT, FAR *LPDDGETSURFACESTATEOUT;
+
+typedef struct _DDGETFIELDNUMIN {
+ HANDLE hDirectDraw;
+ HANDLE hVideoPort;
+} DDGETFIELDNUMIN, FAR *LPDDGETFIELDNUMIN;
+
+typedef struct _DDGETFIELDNUMOUT {
+ DWORD ddRVal;
+ DWORD dwFieldNum;
+} DDGETFIELDNUMOUT, FAR *LPDDGETFIELDNUMOUT;
+
+typedef struct _DDGETKERNELCAPSOUT {
+ DWORD ddRVal;
+ DWORD dwCaps;
+ DWORD dwIRQCaps;
+} DDGETKERNELCAPSOUT, FAR *LPDDGETKERNELCAPSOUT;
+
+typedef struct _DDGETVERSIONNUMBER {
+ DWORD ddRVal;
+ DWORD dwMajorVersion;
+ DWORD dwMinorVersion;
+} DDGETVERSIONNUMBER, FAR *LPDDGETVERSIONNUMBER;
+
+typedef struct _DDLOCKIN {
+ HANDLE hDirectDraw;
+ HANDLE hSurface;
+} DDLOCKIN, FAR *LPDDLOCKIN;
+
+typedef struct _DDLOCKOUT {
+ DWORD ddRVal;
+ DWORD dwSurfHeight;
+ DWORD dwSurfWidth;
+ LONG lSurfPitch;
+ PVOID lpSurface;
+ DWORD SurfaceCaps;
+ DWORD dwFormatFlags;
+ DWORD dwFormatFourCC;
+ DWORD dwFormatBitCount;
+ _ANONYMOUS_UNION union {
+ DWORD dwRBitMask;
+ DWORD dwYBitMask;
+ } DUMMYUNIONNAME;
+ _ANONYMOUS_UNION union {
+ DWORD dwGBitMask;
+ DWORD dwUBitMask;
+ } DUMMYUNIONNAME2;
+ _ANONYMOUS_UNION union {
+ DWORD dwBBitMask;
+ DWORD dwVBitMask;
+ } DUMMYUNIONNAME3;
+} DDLOCKOUT, FAR *LPDDLOCKOUT;
+
+/* 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 ULONG (FAR PASCAL *LPDD_NOTIFYCALLBACK)(
+ DWORD dwFlags,
+ PVOID pContext,
+ DWORD dwParam1,
+ DWORD dwParam2);
+
+typedef struct _DDOPENDIRECTDRAWIN {
+ ULONG_PTR dwDirectDrawHandle;
+ LPDD_NOTIFYCALLBACK pfnDirectDrawClose;
+ PVOID pContext;
+} DDOPENDIRECTDRAWIN, FAR *LPDDOPENDIRECTDRAWIN;
+
+typedef struct _DDOPENDIRECTDRAWOUT {
+ DWORD ddRVal;
+ HANDLE hDirectDraw;
+} DDOPENDIRECTDRAWOUT, FAR *LPDDOPENDIRECTDRAWOUT;
+
+typedef struct _DDOPENSURFACEIN {
+ HANDLE hDirectDraw;
+ ULONG_PTR dwSurfaceHandle;
+ LPDD_NOTIFYCALLBACK pfnSurfaceClose;
+ PVOID pContext;
+} DDOPENSURFACEIN, FAR *LPDDOPENSURFACEIN;
+
+typedef struct _DDOPENSURFACEOUT {
+ DWORD ddRVal;
+ HANDLE hSurface;
+} DDOPENSURFACEOUT, FAR *LPDDOPENSURFACEOUT;
+
+typedef struct _DDOPENVIDEOPORTIN {
+ HANDLE hDirectDraw;
+ ULONG dwVideoPortHandle;
+ LPDD_NOTIFYCALLBACK pfnVideoPortClose;
+ PVOID pContext;
+} DDOPENVIDEOPORTIN, FAR *LPDDOPENVIDEOPORTIN;
+
+typedef struct _DDOPENVIDEOPORTOUT {
+ DWORD ddRVal;
+ HANDLE hVideoPort;
+} DDOPENVIDEOPORTOUT, FAR *LPDDOPENVIDEOPORTOUT;
+
+/* DDOPENVPCAPTUREDEVICEIN.dwFlags constants */
+#define DDOPENCAPTURE_VIDEO 0x0001
+#define DDOPENCAPTURE_VBI 0x0002
+
+typedef struct _DDOPENVPCAPTUREDEVICEIN {
+ HANDLE hDirectDraw;
+ HANDLE hVideoPort;
+ DWORD dwStartLine;
+ DWORD dwEndLine;
+ DWORD dwCaptureEveryNFields;
+ LPDD_NOTIFYCALLBACK pfnCaptureClose;
+ PVOID pContext;
+ DWORD dwFlags;
+} DDOPENVPCAPTUREDEVICEIN, FAR * LPDDOPENVPCAPTUREDEVICEIN;
+
+typedef struct _DDOPENVPCAPTUREDEVICEOUT {
+ DWORD ddRVal;
+ HANDLE hCapture;
+} DDOPENVPCAPTUREDEVICEOUT, FAR * LPDDOPENVPCAPTUREDEVICEOUT;
+
+/* 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
+
+typedef struct _DDREGISTERCALLBACK {
+ HANDLE hDirectDraw;
+ ULONG dwEvents;
+ LPDD_NOTIFYCALLBACK pfnCallback;
+ ULONG_PTR dwParam1;
+ ULONG_PTR dwParam2;
+ PVOID pContext;
+} DDREGISTERCALLBACK, FAR *LPDDREGISTERCALLBACK;
+
+typedef struct _DDSETSURFACETATE {
+ HANDLE hDirectDraw;
+ HANDLE hSurface;
+ DWORD dwState;
+ DWORD dwStartField;
+} DDSETSURFACESTATE, FAR *LPDDSETSURFACESTATE;
+
+typedef struct _DDSETFIELDNUM {
+ HANDLE hDirectDraw;
+ HANDLE hVideoPort;
+ DWORD dwFieldNum;
+} DDSETFIELDNUM, FAR *LPDDSETFIELDNUM;
+
+typedef struct _DDSETSKIPFIELD {
+ HANDLE hDirectDraw;
+ HANDLE hVideoPort;
+ DWORD dwStartField;
+} DDSETSKIPFIELD, FAR *LPDDSETSKIPFIELD;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __DDKMAPI_H */