diff options
| author | 2023-12-12 11:41:26 -0500 | |
|---|---|---|
| committer | 2023-12-12 11:41:26 -0500 | |
| commit | ff489bd82ff313bcfd7dc2ab585ed31cec909ebd (patch) | |
| tree | 300e031693a5ddb990a32068ab0596382349aeea /tcc/include/winapi/ddk/ddkmapi.h | |
| parent | init (diff) | |
fix software to compile properly on Windows XP x86
Diffstat (limited to 'tcc/include/winapi/ddk/ddkmapi.h')
| -rw-r--r-- | tcc/include/winapi/ddk/ddkmapi.h | 334 |
1 files changed, 334 insertions, 0 deletions
diff --git a/tcc/include/winapi/ddk/ddkmapi.h b/tcc/include/winapi/ddk/ddkmapi.h new file mode 100644 index 0000000..7772b34 --- /dev/null +++ b/tcc/include/winapi/ddk/ddkmapi.h @@ -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 */ |
