Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
ddkmapi.h
00001 /* 00002 * ddkmapi.h 00003 * 00004 * DirectDraw support for DxApi function 00005 * 00006 * This file is part of the w32api package. 00007 * 00008 * Contributors: 00009 * Created by Casper S. Hornstrup <chorns@users.sourceforge.net> 00010 * 00011 * THIS SOFTWARE IS NOT COPYRIGHTED 00012 * 00013 * This source code is offered for use in the public domain. You may 00014 * use, modify or distribute it freely. 00015 * 00016 * This code is distributed in the hope that it will be useful but 00017 * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY 00018 * DISCLAIMED. This includes but is not limited to warranties of 00019 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 00020 * 00021 */ 00022 00023 #ifndef __DDKMAPI_H 00024 #define __DDKMAPI_H 00025 00026 #if __GNUC__ >=3 00027 #pragma GCC system_header 00028 #endif 00029 00030 #ifdef __cplusplus 00031 extern "C" { 00032 #endif 00033 00034 #include "ntddk.h" 00035 00036 #if defined(_DXAPI_) 00037 #define DXAPI DECLSPEC_EXPORT 00038 #else 00039 #define DXAPI DECLSPEC_IMPORT 00040 #endif 00041 00042 DXAPI 00043 DWORD 00044 FAR PASCAL 00045 DxApi( 00046 /*IN*/ DWORD dwFunctionNum, 00047 /*IN*/ LPVOID lpvInBuffer, 00048 /*IN*/ DWORD cbInBuffer, 00049 /*OUT*/ LPVOID lpvOutBuffer, 00050 /*OUT*/ DWORD cbOutBuffer); 00051 00052 typedef DWORD (FAR PASCAL *LPDXAPI)( 00053 DWORD dwFunctionNum, 00054 LPVOID lpvInBuffer, 00055 DWORD cbInBuffer, 00056 LPVOID lpvOutBuffer, 00057 DWORD cbOutBuffer); 00058 00059 00060 #define DXAPI_MAJORVERSION 1 00061 #define DXAPI_MINORVERSION 0 00062 00063 #define DD_FIRST_DXAPI 0x500 00064 00065 #define DD_DXAPI_GETVERSIONNUMBER (DD_FIRST_DXAPI) 00066 #define DD_DXAPI_CLOSEHANDLE (DD_FIRST_DXAPI+1) 00067 #define DD_DXAPI_OPENDIRECTDRAW (DD_FIRST_DXAPI+2) 00068 #define DD_DXAPI_OPENSURFACE (DD_FIRST_DXAPI+3) 00069 #define DD_DXAPI_OPENVIDEOPORT (DD_FIRST_DXAPI+4) 00070 #define DD_DXAPI_GETKERNELCAPS (DD_FIRST_DXAPI+5) 00071 #define DD_DXAPI_GET_VP_FIELD_NUMBER (DD_FIRST_DXAPI+6) 00072 #define DD_DXAPI_SET_VP_FIELD_NUMBER (DD_FIRST_DXAPI+7) 00073 #define DD_DXAPI_SET_VP_SKIP_FIELD (DD_FIRST_DXAPI+8) 00074 #define DD_DXAPI_GET_SURFACE_STATE (DD_FIRST_DXAPI+9) 00075 #define DD_DXAPI_SET_SURFACE_STATE (DD_FIRST_DXAPI+10) 00076 #define DD_DXAPI_LOCK (DD_FIRST_DXAPI+11) 00077 #define DD_DXAPI_FLIP_OVERLAY (DD_FIRST_DXAPI+12) 00078 #define DD_DXAPI_FLIP_VP (DD_FIRST_DXAPI+13) 00079 #define DD_DXAPI_GET_CURRENT_VP_AUTOFLIP_SURFACE (DD_FIRST_DXAPI+14) 00080 #define DD_DXAPI_GET_LAST_VP_AUTOFLIP_SURFACE (DD_FIRST_DXAPI+15) 00081 #define DD_DXAPI_REGISTER_CALLBACK (DD_FIRST_DXAPI+16) 00082 #define DD_DXAPI_UNREGISTER_CALLBACK (DD_FIRST_DXAPI+17) 00083 #define DD_DXAPI_GET_POLARITY (DD_FIRST_DXAPI+18) 00084 #define DD_DXAPI_OPENVPCAPTUREDEVICE (DD_FIRST_DXAPI+19) 00085 #define DD_DXAPI_ADDVPCAPTUREBUFFER (DD_FIRST_DXAPI+20) 00086 #define DD_DXAPI_FLUSHVPCAPTUREBUFFERS (DD_FIRST_DXAPI+21) 00087 00088 00089 typedef struct _DDCAPBUFFINFO { 00090 DWORD dwFieldNumber; 00091 DWORD bPolarity; 00092 LARGE_INTEGER liTimeStamp; 00093 DWORD ddRVal; 00094 } DDCAPBUFFINFO, FAR * LPDDCAPBUFFINFO; 00095 00096 /* DDADDVPCAPTUREBUFF.dwFlags constants */ 00097 #define DDADDBUFF_SYSTEMMEMORY 0x0001 00098 #define DDADDBUFF_NONLOCALVIDMEM 0x0002 00099 #define DDADDBUFF_INVERT 0x0004 00100 00101 typedef struct _DDADDVPCAPTUREBUFF { 00102 HANDLE hCapture; 00103 DWORD dwFlags; 00104 PMDL pMDL; 00105 PKEVENT pKEvent; 00106 LPDDCAPBUFFINFO lpBuffInfo; 00107 } DDADDVPCAPTUREBUFF, FAR * LPDDADDVPCAPTUREBUFF; 00108 00109 typedef struct _DDCLOSEHANDLE { 00110 HANDLE hHandle; 00111 } DDCLOSEHANDLE, FAR *LPDDCLOSEHANDLE; 00112 00113 typedef struct _DDFLIPOVERLAY { 00114 HANDLE hDirectDraw; 00115 HANDLE hCurrentSurface; 00116 HANDLE hTargetSurface; 00117 DWORD dwFlags; 00118 } DDFLIPOVERLAY, FAR *LPDDFLIPOVERLAY; 00119 00120 typedef struct _DDFLIPVIDEOPORT { 00121 HANDLE hDirectDraw; 00122 HANDLE hVideoPort; 00123 HANDLE hCurrentSurface; 00124 HANDLE hTargetSurface; 00125 DWORD dwFlags; 00126 } DDFLIPVIDEOPORT, FAR *LPDDFLIPVIDEOPORT; 00127 00128 typedef struct _DDGETAUTOFLIPIN { 00129 HANDLE hDirectDraw; 00130 HANDLE hVideoPort; 00131 } DDGETAUTOFLIPIN, FAR *LPDDGETAUTOFLIPIN; 00132 00133 typedef struct _DDGETAUTOFLIPOUT { 00134 DWORD ddRVal; 00135 HANDLE hVideoSurface; 00136 HANDLE hVBISurface; 00137 BOOL bPolarity; 00138 } DDGETAUTOFLIPOUT, FAR *LPDDGETAUTOFLIPOUT; 00139 00140 typedef struct _DDGETPOLARITYIN { 00141 HANDLE hDirectDraw; 00142 HANDLE hVideoPort; 00143 } DDGETPOLARITYIN, FAR *LPDDGETPOLARITYIN; 00144 00145 typedef struct _DDGETPOLARITYOUT { 00146 DWORD ddRVal; 00147 BOOL bPolarity; 00148 } DDGETPOLARITYOUT, FAR *LPDDGETPOLARITYOUT; 00149 00150 typedef struct _DDGETSURFACESTATEIN { 00151 HANDLE hDirectDraw; 00152 HANDLE hSurface; 00153 } DDGETSURFACESTATEIN, FAR *LPDDGETSURFACESTATEIN; 00154 00155 /* DDGETSURFACESTATEOUT.dwStateCaps/dwStateStatus constants */ 00156 #define DDSTATE_BOB 0x0001 00157 #define DDSTATE_WEAVE 0x0002 00158 #define DDSTATE_EXPLICITLY_SET 0x0004 00159 #define DDSTATE_SOFTWARE_AUTOFLIP 0x0008 00160 #define DDSTATE_SKIPEVENFIELDS 0x0010 00161 00162 typedef struct _DDGETSURFACESTATEOUT { 00163 DWORD ddRVal; 00164 DWORD dwStateCaps; 00165 DWORD dwStateStatus; 00166 } DDGETSURFACESTATEOUT, FAR *LPDDGETSURFACESTATEOUT; 00167 00168 typedef struct _DDGETFIELDNUMIN { 00169 HANDLE hDirectDraw; 00170 HANDLE hVideoPort; 00171 } DDGETFIELDNUMIN, FAR *LPDDGETFIELDNUMIN; 00172 00173 typedef struct _DDGETFIELDNUMOUT { 00174 DWORD ddRVal; 00175 DWORD dwFieldNum; 00176 } DDGETFIELDNUMOUT, FAR *LPDDGETFIELDNUMOUT; 00177 00178 typedef struct _DDGETKERNELCAPSOUT { 00179 DWORD ddRVal; 00180 DWORD dwCaps; 00181 DWORD dwIRQCaps; 00182 } DDGETKERNELCAPSOUT, FAR *LPDDGETKERNELCAPSOUT; 00183 00184 typedef struct _DDGETVERSIONNUMBER { 00185 DWORD ddRVal; 00186 DWORD dwMajorVersion; 00187 DWORD dwMinorVersion; 00188 } DDGETVERSIONNUMBER, FAR *LPDDGETVERSIONNUMBER; 00189 00190 typedef struct _DDLOCKIN { 00191 HANDLE hDirectDraw; 00192 HANDLE hSurface; 00193 } DDLOCKIN, FAR *LPDDLOCKIN; 00194 00195 typedef struct _DDLOCKOUT { 00196 DWORD ddRVal; 00197 DWORD dwSurfHeight; 00198 DWORD dwSurfWidth; 00199 LONG lSurfPitch; 00200 PVOID lpSurface; 00201 DWORD SurfaceCaps; 00202 DWORD dwFormatFlags; 00203 DWORD dwFormatFourCC; 00204 DWORD dwFormatBitCount; 00205 _ANONYMOUS_UNION union { 00206 DWORD dwRBitMask; 00207 DWORD dwYBitMask; 00208 } DUMMYUNIONNAME; 00209 _ANONYMOUS_UNION union { 00210 DWORD dwGBitMask; 00211 DWORD dwUBitMask; 00212 } DUMMYUNIONNAME2; 00213 _ANONYMOUS_UNION union { 00214 DWORD dwBBitMask; 00215 DWORD dwVBitMask; 00216 } DUMMYUNIONNAME3; 00217 } DDLOCKOUT, FAR *LPDDLOCKOUT; 00218 00219 /* LPDD_NOTIFYCALLBACK.dwFlags constants */ 00220 #define DDNOTIFY_DISPLAY_VSYNC 0x0001 00221 #define DDNOTIFY_VP_VSYNC 0x0002 00222 #define DDNOTIFY_VP_LINE 0x0004 00223 #define DDNOTIFY_PRERESCHANGE 0x0008 00224 #define DDNOTIFY_POSTRESCHANGE 0x0010 00225 #define DDNOTIFY_PREDOSBOX 0x0020 00226 #define DDNOTIFY_POSTDOSBOX 0x0040 00227 #define DDNOTIFY_CLOSEDIRECTDRAW 0x0080 00228 #define DDNOTIFY_CLOSESURFACE 0x0100 00229 #define DDNOTIFY_CLOSEVIDEOPORT 0x0200 00230 #define DDNOTIFY_CLOSECAPTURE 0x0400 00231 00232 typedef ULONG (FAR PASCAL *LPDD_NOTIFYCALLBACK)( 00233 DWORD dwFlags, 00234 PVOID pContext, 00235 DWORD dwParam1, 00236 DWORD dwParam2); 00237 00238 typedef struct _DDOPENDIRECTDRAWIN { 00239 ULONG_PTR dwDirectDrawHandle; 00240 LPDD_NOTIFYCALLBACK pfnDirectDrawClose; 00241 PVOID pContext; 00242 } DDOPENDIRECTDRAWIN, FAR *LPDDOPENDIRECTDRAWIN; 00243 00244 typedef struct _DDOPENDIRECTDRAWOUT { 00245 DWORD ddRVal; 00246 HANDLE hDirectDraw; 00247 } DDOPENDIRECTDRAWOUT, FAR *LPDDOPENDIRECTDRAWOUT; 00248 00249 typedef struct _DDOPENSURFACEIN { 00250 HANDLE hDirectDraw; 00251 ULONG_PTR dwSurfaceHandle; 00252 LPDD_NOTIFYCALLBACK pfnSurfaceClose; 00253 PVOID pContext; 00254 } DDOPENSURFACEIN, FAR *LPDDOPENSURFACEIN; 00255 00256 typedef struct _DDOPENSURFACEOUT { 00257 DWORD ddRVal; 00258 HANDLE hSurface; 00259 } DDOPENSURFACEOUT, FAR *LPDDOPENSURFACEOUT; 00260 00261 typedef struct _DDOPENVIDEOPORTIN { 00262 HANDLE hDirectDraw; 00263 ULONG dwVideoPortHandle; 00264 LPDD_NOTIFYCALLBACK pfnVideoPortClose; 00265 PVOID pContext; 00266 } DDOPENVIDEOPORTIN, FAR *LPDDOPENVIDEOPORTIN; 00267 00268 typedef struct _DDOPENVIDEOPORTOUT { 00269 DWORD ddRVal; 00270 HANDLE hVideoPort; 00271 } DDOPENVIDEOPORTOUT, FAR *LPDDOPENVIDEOPORTOUT; 00272 00273 /* DDOPENVPCAPTUREDEVICEIN.dwFlags constants */ 00274 #define DDOPENCAPTURE_VIDEO 0x0001 00275 #define DDOPENCAPTURE_VBI 0x0002 00276 00277 typedef struct _DDOPENVPCAPTUREDEVICEIN { 00278 HANDLE hDirectDraw; 00279 HANDLE hVideoPort; 00280 DWORD dwStartLine; 00281 DWORD dwEndLine; 00282 DWORD dwCaptureEveryNFields; 00283 LPDD_NOTIFYCALLBACK pfnCaptureClose; 00284 PVOID pContext; 00285 DWORD dwFlags; 00286 } DDOPENVPCAPTUREDEVICEIN, FAR * LPDDOPENVPCAPTUREDEVICEIN; 00287 00288 typedef struct _DDOPENVPCAPTUREDEVICEOUT { 00289 DWORD ddRVal; 00290 HANDLE hCapture; 00291 } DDOPENVPCAPTUREDEVICEOUT, FAR * LPDDOPENVPCAPTUREDEVICEOUT; 00292 00293 /* DDREGISTERCALLBACK.dwEvents constants */ 00294 #define DDEVENT_DISPLAY_VSYNC 0x0001 00295 #define DDEVENT_VP_VSYNC 0x0002 00296 #define DDEVENT_VP_LINE 0x0004 00297 #define DDEVENT_PRERESCHANGE 0x0008 00298 #define DDEVENT_POSTRESCHANGE 0x0010 00299 #define DDEVENT_PREDOSBOX 0x0020 00300 #define DDEVENT_POSTDOSBOX 0x0040 00301 00302 typedef struct _DDREGISTERCALLBACK { 00303 HANDLE hDirectDraw; 00304 ULONG dwEvents; 00305 LPDD_NOTIFYCALLBACK pfnCallback; 00306 ULONG_PTR dwParam1; 00307 ULONG_PTR dwParam2; 00308 PVOID pContext; 00309 } DDREGISTERCALLBACK, FAR *LPDDREGISTERCALLBACK; 00310 00311 typedef struct _DDSETSURFACETATE { 00312 HANDLE hDirectDraw; 00313 HANDLE hSurface; 00314 DWORD dwState; 00315 DWORD dwStartField; 00316 } DDSETSURFACESTATE, FAR *LPDDSETSURFACESTATE; 00317 00318 typedef struct _DDSETFIELDNUM { 00319 HANDLE hDirectDraw; 00320 HANDLE hVideoPort; 00321 DWORD dwFieldNum; 00322 } DDSETFIELDNUM, FAR *LPDDSETFIELDNUM; 00323 00324 typedef struct _DDSETSKIPFIELD { 00325 HANDLE hDirectDraw; 00326 HANDLE hVideoPort; 00327 DWORD dwStartField; 00328 } DDSETSKIPFIELD, FAR *LPDDSETSKIPFIELD; 00329 00330 #ifdef __cplusplus 00331 } 00332 #endif 00333 00334 #endif /* __DDKMAPI_H */
Generated on Tue Jul 12 2022 19:59:53 by
1.7.2