?? ddraw.h
字號:
/*
* This element can be used to check changes in driver/chipset. This GUID is a unique identifier for the
* driver/chipset pair. Use this element if you wish to track changes to the driver/chipset in order to
* reprofile the graphics subsystem.
* This element can also be used to identify particular problematic drivers.
*/
GUID guidDeviceIdentifier;
} DDDEVICEIDENTIFIER, * LPDDDEVICEIDENTIFIER;
/*
* DDCOLORCONTROL
*/
typedef struct _DDCOLORCONTROL
{
DWORD dwSize;
DWORD dwFlags;
LONG lBrightness;
LONG lContrast;
LONG lHue;
LONG lSaturation;
LONG lSharpness;
LONG lGamma;
LONG lColorEnable;
} DDCOLORCONTROL, * LPDDCOLORCONTROL;
/*
* DDCOLORCONTROL dwFlags values.
*/
#define DDCOLOR_BRIGHTNESS 0x00000001
#define DDCOLOR_CONTRAST 0x00000002
#define DDCOLOR_HUE 0x00000004
#define DDCOLOR_SATURATION 0x00000008
#define DDCOLOR_SHARPNESS 0x00000010
#define DDCOLOR_GAMMA 0x00000020
#define DDCOLOR_COLORENABLE 0x00000040
#define DDCOLOR_VALID (DDCOLOR_BRIGHTNESS | \
DDCOLOR_CONTRAST | \
DDCOLOR_SATURATION | \
DDCOLOR_SHARPNESS | \
DDCOLOR_GAMMA | \
DDCOLOR_COLORENABLE)
/*
* API's
*/
typedef BOOL (PASCAL * LPDDENUMCALLBACKEX)(LPGUID, LPWSTR, LPWSTR, LPVOID, HMONITOR);
extern HRESULT WINAPI DirectDrawEnumerateEx(LPDDENUMCALLBACKEX lpCallback, LPVOID lpContext, DWORD dwFlags);
extern HRESULT WINAPI DirectDrawCreate(LPGUID lpGUID, LPDIRECTDRAW *lplpDD, IUnknown *pUnkOuter);
extern HRESULT WINAPI DirectDrawCreateClipper(DWORD dwFlags, LPDIRECTDRAWCLIPPER *lplpDDClipper, IUnknown *pUnkOuter);
/*
* DirectDrawEnumerateEx Flags
*/
/*
* This flag causes enumeration of any GDI display devices which are part of
* the Windows Desktop
*/
#define DDENUM_ATTACHEDSECONDARYDEVICES 0x00000001
/*
* This flag causes enumeration of any GDI display devices which are not
* part of the Windows Desktop
*/
#define DDENUM_DETACHEDSECONDARYDEVICES 0x00000002
#define DDENUM_VALID (DDENUM_ATTACHEDSECONDARYDEVICES | \
DDENUM_DETACHEDSECONDARYDEVICES)
/*
* Enumeration function pointer types
*/
typedef HRESULT (FAR PASCAL * LPDDENUMMODESCALLBACK)(LPDDSURFACEDESC, LPVOID);
typedef HRESULT (FAR PASCAL * LPDDENUMSURFACESCALLBACK)(LPDIRECTDRAWSURFACE, LPDDSURFACEDESC, LPVOID);
/*
* IDirectDraw
*/
#undef INTERFACE
#define INTERFACE IDirectDraw
DECLARE_INTERFACE_(IDirectDraw, IUnknown)
{
/*** IUnknown methods ***/
STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID * ppvObj) PURE;
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
STDMETHOD_(ULONG,Release)(THIS) PURE;
/*** IDirectDraw methods ***/
STDMETHOD(CreateClipper)(THIS_ DWORD, LPDIRECTDRAWCLIPPER *, IUnknown *) PURE;
STDMETHOD(CreatePalette)(THIS_ DWORD, LPPALETTEENTRY, LPDIRECTDRAWPALETTE *, IUnknown *) PURE;
STDMETHOD(CreateSurface)(THIS_ LPDDSURFACEDESC, LPDIRECTDRAWSURFACE *, IUnknown *) PURE;
STDMETHOD(EnumDisplayModes)(THIS_ DWORD, LPDDSURFACEDESC, LPVOID, LPDDENUMMODESCALLBACK) PURE;
STDMETHOD(EnumSurfaces)(THIS_ DWORD, LPDDSURFACEDESC, LPVOID, LPDDENUMSURFACESCALLBACK) PURE;
STDMETHOD(FlipToGDISurface)(THIS) PURE;
STDMETHOD(GetCaps)(THIS_ LPDDCAPS, LPDDCAPS) PURE;
STDMETHOD(GetDisplayMode)(THIS_ LPDDSURFACEDESC) PURE;
STDMETHOD(GetFourCCCodes)(THIS_ LPDWORD, LPDWORD) PURE;
STDMETHOD(GetGDISurface)(THIS_ LPDIRECTDRAWSURFACE *) PURE;
STDMETHOD(GetMonitorFrequency)(THIS_ LPDWORD) PURE;
STDMETHOD(GetScanLine)(THIS_ LPDWORD) PURE;
STDMETHOD(GetVerticalBlankStatus)(THIS_ LPBOOL) PURE;
STDMETHOD(RestoreDisplayMode)(THIS) PURE;
STDMETHOD(SetCooperativeLevel)(THIS_ HWND, DWORD) PURE;
STDMETHOD(SetDisplayMode)(THIS_ DWORD, DWORD,DWORD, DWORD, DWORD) PURE;
STDMETHOD(WaitForVerticalBlank)(THIS_ DWORD, HANDLE) PURE;
STDMETHOD(GetAvailableVidMem)(THIS_ LPDDSCAPS, LPDWORD, LPDWORD) PURE;
STDMETHOD(GetSurfaceFromDC)(THIS_ HDC, LPDIRECTDRAWSURFACE *) PURE;
STDMETHOD(RestoreAllSurfaces)(THIS) PURE;
STDMETHOD(TestCooperativeLevel)(THIS) PURE;
STDMETHOD(GetDeviceIdentifier)(THIS_ LPDDDEVICEIDENTIFIER, DWORD ) PURE;
};
/*
* IDirectDrawPalette
*/
#undef INTERFACE
#define INTERFACE IDirectDrawPalette
DECLARE_INTERFACE_(IDirectDrawPalette, IUnknown)
{
/*** IUnknown methods ***/
STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID * ppvObj) PURE;
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
STDMETHOD_(ULONG,Release)(THIS) PURE;
/*** IDirectDrawPalette methods ***/
STDMETHOD(GetCaps)(THIS_ LPDWORD) PURE;
STDMETHOD(GetEntries)(THIS_ DWORD, DWORD, DWORD, LPPALETTEENTRY) PURE;
STDMETHOD(SetEntries)(THIS_ DWORD, DWORD, DWORD, LPPALETTEENTRY) PURE;
};
/*
* IDirectDrawClipper
*/
#undef INTERFACE
#define INTERFACE IDirectDrawClipper
DECLARE_INTERFACE_(IDirectDrawClipper, IUnknown)
{
/*** IUnknown methods ***/
STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID * ppvObj) PURE;
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
STDMETHOD_(ULONG,Release)(THIS) PURE;
/*** IDirectDrawClipper methods ***/
STDMETHOD(GetClipList)(THIS_ LPRECT, LPRGNDATA, LPDWORD) PURE;
STDMETHOD(GetHWnd)(THIS_ HWND *) PURE;
STDMETHOD(IsClipListChanged)(THIS_ LPBOOL) PURE;
STDMETHOD(SetClipList)(THIS_ LPRGNDATA, DWORD) PURE;
STDMETHOD(SetHWnd)(THIS_ DWORD, HWND) PURE;
};
/*
* IDirectDrawSurface
*/
#undef INTERFACE
#define INTERFACE IDirectDrawSurface
DECLARE_INTERFACE_(IDirectDrawSurface, IUnknown)
{
/*** IUnknown methods ***/
STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID * ppvObj) PURE;
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
STDMETHOD_(ULONG,Release)(THIS) PURE;
/*** IDirectDrawSurface methods ***/
STDMETHOD(AddOverlayDirtyRect)(THIS_ LPRECT) PURE;
STDMETHOD(Blt)(THIS_ LPRECT, LPDIRECTDRAWSURFACE, LPRECT, DWORD, LPDDBLTFX) PURE;
STDMETHOD(EnumAttachedSurfaces)(THIS_ LPVOID, LPDDENUMSURFACESCALLBACK) PURE;
STDMETHOD(EnumOverlayZOrders)(THIS_ DWORD, LPVOID, LPDDENUMSURFACESCALLBACK) PURE;
STDMETHOD(Flip)(THIS_ LPDIRECTDRAWSURFACE, DWORD) PURE;
STDMETHOD(GetBltStatus)(THIS_ DWORD) PURE;
STDMETHOD(GetCaps)(THIS_ LPDDSCAPS) PURE;
STDMETHOD(GetClipper)(THIS_ LPDIRECTDRAWCLIPPER *) PURE;
STDMETHOD(GetColorKey)(THIS_ DWORD, LPDDCOLORKEY) PURE;
STDMETHOD(GetDC)(THIS_ HDC *) PURE;
STDMETHOD(GetFlipStatus)(THIS_ DWORD) PURE;
STDMETHOD(GetOverlayPosition)(THIS_ LPLONG, LPLONG) PURE;
STDMETHOD(GetPalette)(THIS_ LPDIRECTDRAWPALETTE *) PURE;
STDMETHOD(GetPixelFormat)(THIS_ LPDDPIXELFORMAT) PURE;
STDMETHOD(GetSurfaceDesc)(THIS_ LPDDSURFACEDESC) PURE;
STDMETHOD(IsLost)(THIS) PURE;
STDMETHOD(Lock)(THIS_ LPRECT, LPDDSURFACEDESC, DWORD, HANDLE) PURE;
STDMETHOD(ReleaseDC)(THIS_ HDC) PURE;
STDMETHOD(Restore)(THIS) PURE;
STDMETHOD(SetClipper)(THIS_ LPDIRECTDRAWCLIPPER) PURE;
STDMETHOD(SetColorKey)(THIS_ DWORD, LPDDCOLORKEY) PURE;
STDMETHOD(SetOverlayPosition)(THIS_ LONG, LONG ) PURE;
STDMETHOD(SetPalette)(THIS_ LPDIRECTDRAWPALETTE) PURE;
STDMETHOD(Unlock)(THIS_ LPRECT) PURE;
STDMETHOD(UpdateOverlay)(THIS_ LPRECT, LPDIRECTDRAWSURFACE, LPRECT, DWORD, LPDDOVERLAYFX) PURE;
STDMETHOD(UpdateOverlayZOrder)(THIS_ DWORD, LPDIRECTDRAWSURFACE) PURE;
STDMETHOD(GetDDInterface)(THIS_ LPDIRECTDRAW *) PURE;
STDMETHOD(AlphaBlt)(THIS_ LPRECT, LPDIRECTDRAWSURFACE, LPRECT, DWORD, LPDDALPHABLTFX) PURE;
};
/*
* IDirectDrawColorControl
*/
#undef INTERFACE
#define INTERFACE IDirectDrawColorControl
DECLARE_INTERFACE_(IDirectDrawColorControl, IUnknown)
{
/*** IUnknown methods ***/
STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID * ppvObj) PURE;
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
STDMETHOD_(ULONG,Release)(THIS) PURE;
/*** IDirectDrawColorControl methods ***/
STDMETHOD(GetColorControls)(THIS_ LPDDCOLORCONTROL) PURE;
STDMETHOD(SetColorControls)(THIS_ LPDDCOLORCONTROL) PURE;
};
/*
* IDirectDrawGammaControl
*/
#undef INTERFACE
#define INTERFACE IDirectDrawGammaControl
DECLARE_INTERFACE_(IDirectDrawGammaControl, IUnknown)
{
/*** IUnknown methods ***/
STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID * ppvObj) PURE;
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
STDMETHOD_(ULONG,Release)(THIS) PURE;
/*** IDirectDrawColorControl methods ***/
STDMETHOD(GetGammaRamp)(THIS_ DWORD, LPDDGAMMARAMP) PURE;
STDMETHOD(SetGammaRamp)(THIS_ DWORD, LPDDGAMMARAMP) PURE;
};
/*
* DirectDraw Macros
*/
#ifndef MAKEFOURCC
#define MAKEFOURCC(ch0, ch1, ch2, ch3) \
((DWORD)(BYTE)(ch0) | ((DWORD)(BYTE)(ch1) << 8) | \
((DWORD)(BYTE)(ch2) << 16) | ((DWORD)(BYTE)(ch3) << 24 ))
#endif //defined(MAKEFOURCC)
/*
* Direct Draw Capability Flags
*/
/*
* Surface Capability Flags
*/
#define DDSCAPS_ALPHA 0x00000001
#define DDSCAPS_BACKBUFFER 0x00000002
#define DDSCAPS_FLIP 0x00000004
#define DDSCAPS_FRONTBUFFER 0x00000008
#define DDSCAPS_OVERLAY 0x00000010
#define DDSCAPS_PALETTE 0x00000020
#define DDSCAPS_PRIMARYSURFACE 0x00000040
#define DDSCAPS_SYSTEMMEMORY 0x00000080
#define DDSCAPS_VIDEOMEMORY 0x00000100
#define DDSCAPS_WRITEONLY 0x00000200
#define DDSCAPS_READONLY 0x00000800
#define DDSCAPS_NOTUSERLOCKABLE 0x00002000
#define DDSCAPS_DYNAMIC 0x00004000
#define DDSCAPS_VALID (DDSCAPS_ALPHA | \
DDSCAPS_BACKBUFFER | \
DDSCAPS_FLIP | \
DDSCAPS_FRONTBUFFER | \
DDSCAPS_OVERLAY | \
DDSCAPS_PALETTE | \
DDSCAPS_PRIMARYSURFACE | \
DDSCAPS_SYSTEMMEMORY | \
DDSCAPS_VIDEOMEMORY | \
DDSCAPS_WRITEONLY | \
DDSCAPS_READONLY | \
DDSCAPS_NOTUSERLOCKABLE | \
DDSCAPS_DYNAMIC)
/*
* Palette Capability Flags
*/
#define DDPCAPS_PRIMARYSURFACE 0x00000010
#define DDPCAPS_ALPHA 0x00000400
#define DDPCAPS_VALID (DDPCAPS_PRIMARYSURFACE | \
DDPCAPS_ALPHA)
/*
* DirectDraw Capability Flags
*/
/*
* General hardware blitting capabilities (For DDCAPS dwBltCaps field)
*/
#define DDBLTCAPS_READSYSMEM 0x00000001
#define DDBLTCAPS_WRITESYSMEM 0x00000002
#define DDBLTCAPS_FOURCCTORGB 0x00000004
#define DDBLTCAPS_COPYFOURCC 0x00000008
#define DDBLTCAPS_FILLFOURCC 0x00000010
#define DDBLTCAPS_VALID (DDBLTCAPS_READSYSMEM | \
DDBLTCAPS_WRITESYSMEM | \
DDBLTCAPS_FOURCCTORGB | \
DDBLTCAPS_COPYFOURCC | \
DDBLTCAPS_FILLFOURCC)
/*
* Hardware color key blitting capabilities (For DDCAPS dwCKeyCaps field)
*/
#define DDCKEYCAPS_DESTBLT 0x00000001
#define DDCKEYCAPS_DESTBLTCLRSPACE 0x00000002
#define DDCKEYCAPS_DESTBLTCLRSPACEYUV 0x00000004
#define DDCKEYCAPS_SRCBLT 0x00000200
#define DDCKEYCAPS_SRCBLTCLRSPACE 0x00000400
#define DDCKEYCAPS_SRCBLTCLRSPACEYUV 0x00000800
#define DDCKEYCAPS_BOTHBLT 0x00001000
#define DDCKEYCAPS_VALID (DDCKEYCAPS_DESTBLT | \
DDCKEYCAPS_DESTBLTCLRSPACE | \
DDCKEYCAPS_DESTBLTCLRSPACEYUV | \
DDCKEYCAPS_SRCBLT | \
DDCKEYCAPS_SRCBLTCLRSPACE | \
DDCKEYCAPS_SRCBLTCLRSPACEYUV | \
DDCKEYCAPS_BOTHBLT)
/*
* Hardware alpha blitting capabilities (For DDCAPS dwAlphaCaps field)
*/
#define DDALPHACAPS_ALPHAPIXELS 0x00000001
#define DDALPHACAPS_ALPHASURFACE 0x00000002
#define DDALPHACAPS_ALPHAPALETTE 0x00000004
#define DDALPHACAPS_ALPHACONSTANT 0x00000008
#define DDALPHACAPS_ARGBSCALE 0x00000010
#define DDALPHACAPS_SATURATE 0x00000020
#define DDALPHACAPS_PREMULT 0x00000040
#define DDALPHACAPS_NONPREMULT 0x00000080
#define DDALPHACAPS_ALPHAFILL 0x00000800
#define DDALPHACAPS_ALPHANEG 0x00000100
#define DDALPHACAPS_VALID (DDALPHACAPS_ALPHAPIXELS | \
DDALPHACAPS_ALPHASURFACE | \
DDALPHACAPS_ALPHAPALETTE | \
DDALPHACAPS_ALPHACONSTANT | \
DDALPHACAPS_ARGBSCALE | \
DDALPHACAPS_SATURATE | \
DDALPHACAPS_PREMULT | \
DDALPHACAPS_NONPREMULT | \
DDALPHACAPS_ALPHAFILL | \
DDALPHACAPS_ALPHANEG)
/*
* Overlay capabilities ( For DDCAPS dwOverlayCaps field)
*/
#define DDOVERLAYCAPS_FLIP 0x00000001
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -