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