ddraw.inc

来自「工欲善其事」· INC 代码 · 共 407 行 · 第 1/2 页

INC
407
字号
DDSCAPS_STANDARDVGAMODE 	equ 040000000h ; Indicates that this surface is a standard VGA mode surface, ...
DDSCAPS_OPTIMIZED			equ 080000000h ; Indicates that this surface will be an optimized surface. ...

;*** SetCooperativeLevel flags

DDSCL_FULLSCREEN			equ 000000001h
DDSCL_ALLOWREBOOT			equ 000000002h
DDSCL_NOWINDOWCHANGES		equ 000000004h
DDSCL_NORMAL				equ 000000008h
DDSCL_EXCLUSIVE             equ 000000010h
DDSCL_ALLOWMODEX            equ 000000040h
DDSCL_SETFOCUSWINDOW        equ 000000080h
DDSCL_SETDEVICEWINDOW       equ 000000100h
DDSCL_CREATEDEVICEWINDOW    equ 000000200h

;-------------------------------------------------------------------

LPDIRECTDRAWPALETTE typedef ptr IDirectDrawPalette
LPDIRECTDRAWCLIPPER typedef ptr IDirectDrawClipper
LPDIRECTDRAW        typedef ptr IDirectDraw
LPDIRECTDRAW2       typedef ptr IDirectDraw2
LPDIRECTDRAWSURFACE typedef ptr IDirectDrawSurface
LPDIRECTDRAWSURFACE2 typedef ptr IDirectDrawSurface2

LPPALETTEENTRY  typedef ptr
LPRECT          typedef ptr RECT
LPRGNDATA       typedef ptr
LPDDENUMSURFACESCALLBACK typedef ptr
LPBOOL          typedef ptr
LPDDBLTBATCH    typedef ptr 
LPDDBLTFX       typedef ptr
LPLONG          typedef ptr LONG
LPDDOVERLAYFX   typedef ptr

;-------------------------------------------------------------------

;*** definition IDirectDrawPalette

externdef c IID_IDirectDrawPalette:ptr IID

start_interface IDirectDrawPalette
    STDMETHOD	QueryInterface      ,:ptr IID,:ptr ptr
    STDMETHOD   AddRef
    STDMETHOD   Release

    STDMETHOD   GetCaps             , :LPDWORD
    STDMETHOD   GetEntries          , :DWORD, :DWORD, :DWORD, :LPPALETTEENTRY
    STDMETHOD   Initialize          , :LPDIRECTDRAW, :DWORD, :LPPALETTEENTRY
    STDMETHOD   SetEntries          , :DWORD, :DWORD, :DWORD, :LPPALETTEENTRY
end_interface

;-------------------------------------------------------------------

;*** definition IDirectDrawClipper

externdef c IID_IDirectDrawClipper:ptr IID

start_interface IDirectDrawClipper
    STDMETHOD	QueryInterface      ,:ptr IID,:ptr ptr
    STDMETHOD   AddRef
    STDMETHOD   Release

    STDMETHOD   GetClipList         , :LPRECT, :LPRGNDATA, :LPDWORD
    STDMETHOD   GetHWnd             , :ptr HWND
    STDMETHOD   Initialize          , :LPDIRECTDRAW, :DWORD
    STDMETHOD   IsClipListChanged   , :ptr BOOL 
    STDMETHOD   SetClipList         , :LPRGNDATA, :DWORD
    STDMETHOD   SetHWnd             , :DWORD, :HWND 
end_interface

;-------------------------------------------------------------------

;*** definition IDirectDraw

externdef c IID_IDirectDraw:ptr IID

DDENUMMODESCALLBACK typedef proto stdcall :LPDDSURFACEDESC,:LPVOID
LPDDENUMMODESCALLBACK typedef ptr DDENUMMODESCALLBACK

start_interface IDirectDraw
    STDMETHOD	QueryInterface	,:ptr IID,:ptr ptr
    STDMETHOD	AddRef
    STDMETHOD	Release

    STDMETHOD	Compact
    STDMETHOD	CreateClipper		,:DWORD, :ptr LPDIRECTDRAWCLIPPER, :ptr IUnknown
    STDMETHOD	CreatePalette		,:DWORD, :LPPALETTEENTRY, : ptr LPDIRECTDRAWPALETTE, :ptr IUnknown
    STDMETHOD	CreateSurface		,:LPDDSURFACEDESC, :ptr LPDIRECTDRAWSURFACE, :ptr IUnknown
    STDMETHOD	DuplicateSurface	,:LPDIRECTDRAWSURFACE, :ptr LPDIRECTDRAWSURFACE
    STDMETHOD	EnumDisplayModes	,:DWORD, :LPDDSURFACEDESC, :LPVOID, :LPDDENUMMODESCALLBACK
    STDMETHOD	EnumSurfaces		,:DWORD, :LPDDSURFACEDESC, :LPVOID, :LPDDENUMSURFACESCALLBACK 
    STDMETHOD	FlipToGDISurface
    STDMETHOD	GetCaps				,:LPDDCAPS, :LPDDCAPS
    STDMETHOD	GetDisplayMode		,:LPDDSURFACEDESC
    STDMETHOD	GetFourCCCodes		,:LPDWORD, :LPDWORD 
    STDMETHOD	GetGDISurface		,:ptr LPDIRECTDRAWSURFACE
    STDMETHOD	GetMonitorFrequency	,:LPDWORD
    STDMETHOD	GetScanLine			,:LPDWORD
    STDMETHOD	GetVerticalBlankStatus,:LPBOOL 
    STDMETHOD	Initialize			,:ptr GUID
    STDMETHOD	RestoreDisplayMode 
    STDMETHOD	SetCooperativeLevel	,:HWND, :DWORD
    STDMETHOD	SetDisplayMode		,:DWORD, :DWORD, :DWORD
    STDMETHOD	WaitForVerticalBlank,:DWORD, :HANDLE
end_interface

;-------------------------------------------------------------------

;*** definition IDirectDraw2

externdef c IID_IDirectDraw2:ptr IID

start_interface IDirectDraw2
    STDMETHOD	QueryInterface	,:ptr IID,:ptr ptr
    STDMETHOD	AddRef
    STDMETHOD	Release

    STDMETHOD	Compact
    STDMETHOD	CreateClipper		,:DWORD, :ptr LPDIRECTDRAWCLIPPER, :ptr IUnknown
    STDMETHOD	CreatePalette		,:DWORD, :LPPALETTEENTRY, : ptr LPDIRECTDRAWPALETTE, :ptr IUnknown
    STDMETHOD	CreateSurface		,:LPDDSURFACEDESC, :ptr LPDIRECTDRAWSURFACE, :ptr IUnknown
    STDMETHOD	DuplicateSurface	,:LPDIRECTDRAWSURFACE, :ptr LPDIRECTDRAWSURFACE
    STDMETHOD	EnumDisplayModes	,:DWORD, :LPDDSURFACEDESC, :LPVOID, :LPDDENUMMODESCALLBACK
    STDMETHOD	EnumSurfaces		,:DWORD, :LPDDSURFACEDESC, :LPVOID, :LPDDENUMSURFACESCALLBACK 
    STDMETHOD	FlipToGDISurface
    STDMETHOD	GetCaps				,:LPDDCAPS, :LPDDCAPS
    STDMETHOD	GetDisplayMode		,:LPDDSURFACEDESC
    STDMETHOD	GetFourCCCodes		,:LPDWORD, :LPDWORD 
    STDMETHOD	GetGDISurface		,:ptr LPDIRECTDRAWSURFACE
    STDMETHOD	GetMonitorFrequency	,:LPDWORD
    STDMETHOD	GetScanLine			,:LPDWORD
    STDMETHOD	GetVerticalBlankStatus,:LPBOOL 
    STDMETHOD	Initialize			,:ptr GUID
    STDMETHOD	RestoreDisplayMode 
    STDMETHOD	SetCooperativeLevel	,:HWND, :DWORD
    STDMETHOD	SetDisplayMode		,:DWORD, :DWORD, :DWORD, :DWORD, :DWORD ;;changed for IDirectDraw2
    STDMETHOD	WaitForVerticalBlank,:DWORD, :HANDLE
    STDMETHOD   GetAvailableVidMem  ,:LPDDSCAPS, :LPDWORD, :LPDWORD         ;;new for IDirectDraw2
end_interface

;-------------------------------------------------------------------

;*** definition IDirectDrawSurface

externdef c IID_IDirectDrawSurface:ptr IID

start_interface IDirectDrawSurface
    STDMETHOD	QueryInterface      ,:ptr IID,:ptr ptr
    STDMETHOD   AddRef
    STDMETHOD   Release

    STDMETHOD   AddAttachedSurface  , :LPDIRECTDRAWSURFACE
    STDMETHOD   AddOverlayDirtyRect , :LPRECT
    STDMETHOD   Blt                 , :LPRECT, :LPDIRECTDRAWSURFACE, :LPRECT, :DWORD, :LPDDBLTFX
    STDMETHOD   BltBatch            , :LPDDBLTBATCH, :DWORD, :DWORD 
    STDMETHOD   BltFast             , :DWORD, :DWORD, :LPDIRECTDRAWSURFACE, :LPRECT, :DWORD
    STDMETHOD   DeleteAttachedSurface   , :DWORD, :LPDIRECTDRAWSURFACE
    STDMETHOD   EnumAttachedSurfaces    , :LPVOID, :LPDDENUMSURFACESCALLBACK
    STDMETHOD   EnumOverlayZOrders  , :DWORD, :LPVOID, :LPDDENUMSURFACESCALLBACK
    STDMETHOD   Flip                , :LPDIRECTDRAWSURFACE, :DWORD
    STDMETHOD   GetAttachedSurface  , :LPDDSCAPS, :ptr LPDIRECTDRAWSURFACE
    STDMETHOD   GetBltStatus        , :DWORD
    STDMETHOD   GetCaps             , :LPDDSCAPS
    STDMETHOD   GetClipper          , :ptr LPDIRECTDRAWCLIPPER
    STDMETHOD   GetColorKey         , :DWORD, :LPDDCOLORKEY
    STDMETHOD   GetDC               , :ptr HDC
    STDMETHOD   GetFlipStatus       , :DWORD
    STDMETHOD   GetOverlayPosition  , :LPLONG, :LPLONG 
    STDMETHOD   GetPalette          , :ptr LPDIRECTDRAWPALETTE
    STDMETHOD   GetPixelFormat      , :LPDDPIXELFORMAT
    STDMETHOD   GetSurfaceDesc      , :LPDDSURFACEDESC
    STDMETHOD   Initialize          , :LPDIRECTDRAW, :LPDDSURFACEDESC
    STDMETHOD   IsLost              
    STDMETHOD   Lock_               , :LPRECT, :LPDDSURFACEDESC, :DWORD, :HANDLE
    STDMETHOD   ReleaseDC           , :HDC
    STDMETHOD   Restore             
    STDMETHOD   SetClipper          , :LPDIRECTDRAWCLIPPER
    STDMETHOD   SetColorKey         , :DWORD, :LPDDCOLORKEY
    STDMETHOD   SetOverlayPosition  , :LONG, :LONG 
    STDMETHOD   SetPalette          , :LPDIRECTDRAWPALETTE
    STDMETHOD   Unlock              , :LPVOID
    STDMETHOD   UpdateOverlay       , :LPRECT, :LPDIRECTDRAWSURFACE, :LPRECT, :DWORD, :LPDDOVERLAYFX
    STDMETHOD   UpdateOverlayDisplay    , :DWORD
    STDMETHOD   UpdateOverlayZOrder     , :DWORD, :LPDIRECTDRAWSURFACE
end_interface

;-------------------------------------------------------------------

;*** definition IDirectDrawSurface2

externdef c IID_IDirectDrawSurface2:ptr IID

start_interface IDirectDrawSurface2

    IDirectDrawSurfaceVtbl <>

    STDMETHOD   GetDDInterface      ,:ptr LPVOID
    STDMETHOD   PageLock            ,:DWORD
    STDMETHOD   PageUnlock          ,:DWORD
end_interface

;*** end of file

⌨️ 快捷键说明

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