⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ddkmapi.h

📁 MinGW+MSYS开发必用的api参考
💻 H
字号:
/* * 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 __cplusplusextern "C" {#endif#include "ntddk.h"#if defined(_DXAPI_)  #define DXAPI DECLSPEC_EXPORT#else  #define DXAPI DECLSPEC_IMPORT#endifDXAPIDWORDFAR PASCALDxApi(  /*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                  0x0004typedef 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            0x0010typedef 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             0x0400typedef 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                 0x0002typedef 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                0x0040typedef 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 */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -