ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

ddkmapi.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 doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.