source: Daodan/MinGW/include/ddk/ddkmapi.h@ 1089

Last change on this file since 1089 was 1046, checked in by alloc, 8 years ago

Daodan: Added Windows MinGW and build batch file

File size: 9.3 KB
Line 
1/*
2 * ddkmapi.h
3 *
4 * DirectDraw support for DxApi function
5 *
6 * This file is part of the w32api package.
7 *
8 * Contributors:
9 * Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
10 *
11 * THIS SOFTWARE IS NOT COPYRIGHTED
12 *
13 * This source code is offered for use in the public domain. You may
14 * use, modify or distribute it freely.
15 *
16 * This code is distributed in the hope that it will be useful but
17 * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
18 * DISCLAIMED. This includes but is not limited to warranties of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
20 *
21 */
22
23#ifndef __DDKMAPI_H
24#define __DDKMAPI_H
25
26#if __GNUC__ >=3
27#pragma GCC system_header
28#endif
29
30#ifdef __cplusplus
31extern "C" {
32#endif
33
34#include "ntddk.h"
35
36#if defined(_DXAPI_)
37 #define DXAPI DECLSPEC_EXPORT
38#else
39 #define DXAPI DECLSPEC_IMPORT
40#endif
41
42DXAPI
43DWORD
44FAR PASCAL
45DxApi(
46 /*IN*/ DWORD dwFunctionNum,
47 /*IN*/ LPVOID lpvInBuffer,
48 /*IN*/ DWORD cbInBuffer,
49 /*OUT*/ LPVOID lpvOutBuffer,
50 /*OUT*/ DWORD cbOutBuffer);
51
52typedef DWORD (FAR PASCAL *LPDXAPI)(
53 DWORD dwFunctionNum,
54 LPVOID lpvInBuffer,
55 DWORD cbInBuffer,
56 LPVOID lpvOutBuffer,
57 DWORD cbOutBuffer);
58
59
60#define DXAPI_MAJORVERSION 1
61#define DXAPI_MINORVERSION 0
62
63#define DD_FIRST_DXAPI 0x500
64
65#define DD_DXAPI_GETVERSIONNUMBER (DD_FIRST_DXAPI)
66#define DD_DXAPI_CLOSEHANDLE (DD_FIRST_DXAPI+1)
67#define DD_DXAPI_OPENDIRECTDRAW (DD_FIRST_DXAPI+2)
68#define DD_DXAPI_OPENSURFACE (DD_FIRST_DXAPI+3)
69#define DD_DXAPI_OPENVIDEOPORT (DD_FIRST_DXAPI+4)
70#define DD_DXAPI_GETKERNELCAPS (DD_FIRST_DXAPI+5)
71#define DD_DXAPI_GET_VP_FIELD_NUMBER (DD_FIRST_DXAPI+6)
72#define DD_DXAPI_SET_VP_FIELD_NUMBER (DD_FIRST_DXAPI+7)
73#define DD_DXAPI_SET_VP_SKIP_FIELD (DD_FIRST_DXAPI+8)
74#define DD_DXAPI_GET_SURFACE_STATE (DD_FIRST_DXAPI+9)
75#define DD_DXAPI_SET_SURFACE_STATE (DD_FIRST_DXAPI+10)
76#define DD_DXAPI_LOCK (DD_FIRST_DXAPI+11)
77#define DD_DXAPI_FLIP_OVERLAY (DD_FIRST_DXAPI+12)
78#define DD_DXAPI_FLIP_VP (DD_FIRST_DXAPI+13)
79#define DD_DXAPI_GET_CURRENT_VP_AUTOFLIP_SURFACE (DD_FIRST_DXAPI+14)
80#define DD_DXAPI_GET_LAST_VP_AUTOFLIP_SURFACE (DD_FIRST_DXAPI+15)
81#define DD_DXAPI_REGISTER_CALLBACK (DD_FIRST_DXAPI+16)
82#define DD_DXAPI_UNREGISTER_CALLBACK (DD_FIRST_DXAPI+17)
83#define DD_DXAPI_GET_POLARITY (DD_FIRST_DXAPI+18)
84#define DD_DXAPI_OPENVPCAPTUREDEVICE (DD_FIRST_DXAPI+19)
85#define DD_DXAPI_ADDVPCAPTUREBUFFER (DD_FIRST_DXAPI+20)
86#define DD_DXAPI_FLUSHVPCAPTUREBUFFERS (DD_FIRST_DXAPI+21)
87
88
89typedef struct _DDCAPBUFFINFO {
90 DWORD dwFieldNumber;
91 DWORD bPolarity;
92 LARGE_INTEGER liTimeStamp;
93 DWORD ddRVal;
94} DDCAPBUFFINFO, FAR * LPDDCAPBUFFINFO;
95
96/* DDADDVPCAPTUREBUFF.dwFlags constants */
97#define DDADDBUFF_SYSTEMMEMORY 0x0001
98#define DDADDBUFF_NONLOCALVIDMEM 0x0002
99#define DDADDBUFF_INVERT 0x0004
100
101typedef struct _DDADDVPCAPTUREBUFF {
102 HANDLE hCapture;
103 DWORD dwFlags;
104 PMDL pMDL;
105 PKEVENT pKEvent;
106 LPDDCAPBUFFINFO lpBuffInfo;
107} DDADDVPCAPTUREBUFF, FAR * LPDDADDVPCAPTUREBUFF;
108
109typedef struct _DDCLOSEHANDLE {
110 HANDLE hHandle;
111} DDCLOSEHANDLE, FAR *LPDDCLOSEHANDLE;
112
113typedef struct _DDFLIPOVERLAY {
114 HANDLE hDirectDraw;
115 HANDLE hCurrentSurface;
116 HANDLE hTargetSurface;
117 DWORD dwFlags;
118} DDFLIPOVERLAY, FAR *LPDDFLIPOVERLAY;
119
120typedef struct _DDFLIPVIDEOPORT {
121 HANDLE hDirectDraw;
122 HANDLE hVideoPort;
123 HANDLE hCurrentSurface;
124 HANDLE hTargetSurface;
125 DWORD dwFlags;
126} DDFLIPVIDEOPORT, FAR *LPDDFLIPVIDEOPORT;
127
128typedef struct _DDGETAUTOFLIPIN {
129 HANDLE hDirectDraw;
130 HANDLE hVideoPort;
131} DDGETAUTOFLIPIN, FAR *LPDDGETAUTOFLIPIN;
132
133typedef struct _DDGETAUTOFLIPOUT {
134 DWORD ddRVal;
135 HANDLE hVideoSurface;
136 HANDLE hVBISurface;
137 BOOL bPolarity;
138} DDGETAUTOFLIPOUT, FAR *LPDDGETAUTOFLIPOUT;
139
140typedef struct _DDGETPOLARITYIN {
141 HANDLE hDirectDraw;
142 HANDLE hVideoPort;
143} DDGETPOLARITYIN, FAR *LPDDGETPOLARITYIN;
144
145typedef struct _DDGETPOLARITYOUT {
146 DWORD ddRVal;
147 BOOL bPolarity;
148} DDGETPOLARITYOUT, FAR *LPDDGETPOLARITYOUT;
149
150typedef struct _DDGETSURFACESTATEIN {
151 HANDLE hDirectDraw;
152 HANDLE hSurface;
153} DDGETSURFACESTATEIN, FAR *LPDDGETSURFACESTATEIN;
154
155/* DDGETSURFACESTATEOUT.dwStateCaps/dwStateStatus constants */
156#define DDSTATE_BOB 0x0001
157#define DDSTATE_WEAVE 0x0002
158#define DDSTATE_EXPLICITLY_SET 0x0004
159#define DDSTATE_SOFTWARE_AUTOFLIP 0x0008
160#define DDSTATE_SKIPEVENFIELDS 0x0010
161
162typedef struct _DDGETSURFACESTATEOUT {
163 DWORD ddRVal;
164 DWORD dwStateCaps;
165 DWORD dwStateStatus;
166} DDGETSURFACESTATEOUT, FAR *LPDDGETSURFACESTATEOUT;
167
168typedef struct _DDGETFIELDNUMIN {
169 HANDLE hDirectDraw;
170 HANDLE hVideoPort;
171} DDGETFIELDNUMIN, FAR *LPDDGETFIELDNUMIN;
172
173typedef struct _DDGETFIELDNUMOUT {
174 DWORD ddRVal;
175 DWORD dwFieldNum;
176} DDGETFIELDNUMOUT, FAR *LPDDGETFIELDNUMOUT;
177
178typedef struct _DDGETKERNELCAPSOUT {
179 DWORD ddRVal;
180 DWORD dwCaps;
181 DWORD dwIRQCaps;
182} DDGETKERNELCAPSOUT, FAR *LPDDGETKERNELCAPSOUT;
183
184typedef struct _DDGETVERSIONNUMBER {
185 DWORD ddRVal;
186 DWORD dwMajorVersion;
187 DWORD dwMinorVersion;
188} DDGETVERSIONNUMBER, FAR *LPDDGETVERSIONNUMBER;
189
190typedef struct _DDLOCKIN {
191 HANDLE hDirectDraw;
192 HANDLE hSurface;
193} DDLOCKIN, FAR *LPDDLOCKIN;
194
195typedef struct _DDLOCKOUT {
196 DWORD ddRVal;
197 DWORD dwSurfHeight;
198 DWORD dwSurfWidth;
199 LONG lSurfPitch;
200 PVOID lpSurface;
201 DWORD SurfaceCaps;
202 DWORD dwFormatFlags;
203 DWORD dwFormatFourCC;
204 DWORD dwFormatBitCount;
205 _ANONYMOUS_UNION union {
206 DWORD dwRBitMask;
207 DWORD dwYBitMask;
208 } DUMMYUNIONNAME;
209 _ANONYMOUS_UNION union {
210 DWORD dwGBitMask;
211 DWORD dwUBitMask;
212 } DUMMYUNIONNAME2;
213 _ANONYMOUS_UNION union {
214 DWORD dwBBitMask;
215 DWORD dwVBitMask;
216 } DUMMYUNIONNAME3;
217} DDLOCKOUT, FAR *LPDDLOCKOUT;
218
219/* LPDD_NOTIFYCALLBACK.dwFlags constants */
220#define DDNOTIFY_DISPLAY_VSYNC 0x0001
221#define DDNOTIFY_VP_VSYNC 0x0002
222#define DDNOTIFY_VP_LINE 0x0004
223#define DDNOTIFY_PRERESCHANGE 0x0008
224#define DDNOTIFY_POSTRESCHANGE 0x0010
225#define DDNOTIFY_PREDOSBOX 0x0020
226#define DDNOTIFY_POSTDOSBOX 0x0040
227#define DDNOTIFY_CLOSEDIRECTDRAW 0x0080
228#define DDNOTIFY_CLOSESURFACE 0x0100
229#define DDNOTIFY_CLOSEVIDEOPORT 0x0200
230#define DDNOTIFY_CLOSECAPTURE 0x0400
231
232typedef ULONG (FAR PASCAL *LPDD_NOTIFYCALLBACK)(
233 DWORD dwFlags,
234 PVOID pContext,
235 DWORD dwParam1,
236 DWORD dwParam2);
237
238typedef struct _DDOPENDIRECTDRAWIN {
239 ULONG_PTR dwDirectDrawHandle;
240 LPDD_NOTIFYCALLBACK pfnDirectDrawClose;
241 PVOID pContext;
242} DDOPENDIRECTDRAWIN, FAR *LPDDOPENDIRECTDRAWIN;
243
244typedef struct _DDOPENDIRECTDRAWOUT {
245 DWORD ddRVal;
246 HANDLE hDirectDraw;
247} DDOPENDIRECTDRAWOUT, FAR *LPDDOPENDIRECTDRAWOUT;
248
249typedef struct _DDOPENSURFACEIN {
250 HANDLE hDirectDraw;
251 ULONG_PTR dwSurfaceHandle;
252 LPDD_NOTIFYCALLBACK pfnSurfaceClose;
253 PVOID pContext;
254} DDOPENSURFACEIN, FAR *LPDDOPENSURFACEIN;
255
256typedef struct _DDOPENSURFACEOUT {
257 DWORD ddRVal;
258 HANDLE hSurface;
259} DDOPENSURFACEOUT, FAR *LPDDOPENSURFACEOUT;
260
261typedef struct _DDOPENVIDEOPORTIN {
262 HANDLE hDirectDraw;
263 ULONG dwVideoPortHandle;
264 LPDD_NOTIFYCALLBACK pfnVideoPortClose;
265 PVOID pContext;
266} DDOPENVIDEOPORTIN, FAR *LPDDOPENVIDEOPORTIN;
267
268typedef struct _DDOPENVIDEOPORTOUT {
269 DWORD ddRVal;
270 HANDLE hVideoPort;
271} DDOPENVIDEOPORTOUT, FAR *LPDDOPENVIDEOPORTOUT;
272
273/* DDOPENVPCAPTUREDEVICEIN.dwFlags constants */
274#define DDOPENCAPTURE_VIDEO 0x0001
275#define DDOPENCAPTURE_VBI 0x0002
276
277typedef struct _DDOPENVPCAPTUREDEVICEIN {
278 HANDLE hDirectDraw;
279 HANDLE hVideoPort;
280 DWORD dwStartLine;
281 DWORD dwEndLine;
282 DWORD dwCaptureEveryNFields;
283 LPDD_NOTIFYCALLBACK pfnCaptureClose;
284 PVOID pContext;
285 DWORD dwFlags;
286} DDOPENVPCAPTUREDEVICEIN, FAR * LPDDOPENVPCAPTUREDEVICEIN;
287
288typedef struct _DDOPENVPCAPTUREDEVICEOUT {
289 DWORD ddRVal;
290 HANDLE hCapture;
291} DDOPENVPCAPTUREDEVICEOUT, FAR * LPDDOPENVPCAPTUREDEVICEOUT;
292
293/* DDREGISTERCALLBACK.dwEvents constants */
294#define DDEVENT_DISPLAY_VSYNC 0x0001
295#define DDEVENT_VP_VSYNC 0x0002
296#define DDEVENT_VP_LINE 0x0004
297#define DDEVENT_PRERESCHANGE 0x0008
298#define DDEVENT_POSTRESCHANGE 0x0010
299#define DDEVENT_PREDOSBOX 0x0020
300#define DDEVENT_POSTDOSBOX 0x0040
301
302typedef struct _DDREGISTERCALLBACK {
303 HANDLE hDirectDraw;
304 ULONG dwEvents;
305 LPDD_NOTIFYCALLBACK pfnCallback;
306 ULONG_PTR dwParam1;
307 ULONG_PTR dwParam2;
308 PVOID pContext;
309} DDREGISTERCALLBACK, FAR *LPDDREGISTERCALLBACK;
310
311typedef struct _DDSETSURFACETATE {
312 HANDLE hDirectDraw;
313 HANDLE hSurface;
314 DWORD dwState;
315 DWORD dwStartField;
316} DDSETSURFACESTATE, FAR *LPDDSETSURFACESTATE;
317
318typedef struct _DDSETFIELDNUM {
319 HANDLE hDirectDraw;
320 HANDLE hVideoPort;
321 DWORD dwFieldNum;
322} DDSETFIELDNUM, FAR *LPDDSETFIELDNUM;
323
324typedef struct _DDSETSKIPFIELD {
325 HANDLE hDirectDraw;
326 HANDLE hVideoPort;
327 DWORD dwStartField;
328} DDSETSKIPFIELD, FAR *LPDDSETSKIPFIELD;
329
330#ifdef __cplusplus
331}
332#endif
333
334#endif /* __DDKMAPI_H */
Note: See TracBrowser for help on using the repository browser.