dibeng.inc
来自「用于查询PC机上的USB端口是否有设备挂接上」· INC 代码 · 共 303 行 · 第 1/2 页
INC
303 行
;/*
;----------------------------------------------------------------------------
; DIBENG.INC
; Copyright (c) 1992 Microsoft Corporation
;
; Dib Engine Interface Definitions
;----------------------------------------------------------------------------
;----------------------------------------------------------------------------
; General Comments:
; The DIB Engine is non-palettized from GDI's perspective. When an app
; selects a DIB into a memory DC, GDI will create a DIB Engine PDevice
; (see definition below) and will stuff in a 'DI' in the deType field.
; Subsequent operations on this DC will result in calls to the DIB Engine
; with this PDevice.
; Device drivers can also use the DIB Engine to handle most, if not all,
; of their rendering work. A device driver exports the DIB Engine PDevice
; as it's own PDevice to GDI. This PDevice contains a pointer to a
; BitmapInfo header in the driver's data segment. Immediately following
; this is an optional color table for devices less than 16 bpp.
;----------------------------------------------------------------------------
;----------------------------------------------------------------------------
; E Q U A T E S
;----------------------------------------------------------------------------
BRUSHSIZE equ 8 ;height and width in pixels.
VER_DIBENG equ 400h ;version = 4.0
TYPE_DIBENG equ 'RP' ;deType
comment ~
*/
#define BRUSHSIZE 8
#define VER_DIBENG 0x400
#define TYPE_DIBENG 0x5250
/*
end comment ~
;----------------------------------------------------------------------------
; S T R U C T U R E S
;----------------------------------------------------------------------------
;----------------------------------------------------------------------------
; PDevice Structure for the DIB Engine. deType will contain 'DI' when GDI
; calls the DIB Engine to perform graphics operations on the dib. deType
; will contain a 0 or a Selector if a mini-driver is calling the DIB Engine
; to do graphics operations.
;----------------------------------------------------------------------------
deCursorExclude equ deBeginAccess
deCursorUnexclude equ deEndAccess
comment ~
*/
#define deCursorExclude deBeginAccess
#define deCursorUnexclude deEndAccess
/*
end comment ~
DIBENGINE struc ;*/ typedef struct { /*
deType dw ? ; contains TYPE_DIBENG or 0 ;*/ WORD deType; /*
deWidth dw ? ; Width of dib in pixels ;*/ WORD deWidth; /*
deHeight dw ? ; Height of dib in pixels ;*/ WORD deHeight; /*
deWidthBytes dw ? ; #bytes per scan line ;*/ WORD deWidthBytes; /*
dePlanes db ? ; # of planes in bitmap ;*/ BYTE dePlanes; /*
deBitsPixel db ? ; # of bits per pixel ;*/ BYTE deBitsPixel; /*
deReserved1 dd ? ; cannot be used. ;*/ DWORD deReserved1; /*
deDeltaScan dd ? ; + or -. Displacement to next scan. ;*/ DWORD deDeltaScan; /*
delpPDevice dd ? ; Pointer to associated PDevice ;*/ LPBYTE delpPDevice; /*
deBits df ? ; fword offset to bits of dib ;*/ DWORD deBitsOffset; /*
; ;*/ WORD deBitsSelector; /*
deFlags dw ? ; additional flags ;*/ WORD deFlags; /*
deVersion dw ? ; lsb=minor, msb=major (0400h = 4.0) ;*/ WORD deVersion; /*
deBitmapInfo dd ? ; pointer to the bitmapinfo header ;*/ LPBITMAPINFO deBitmapInfo; /*
deBeginAccess dd ? ; Begin surface access call back ;*/ void (FAR *deBeginAccess)(); /*
deEndAccess dd ? ; End surface access call back ;*/ void (FAR *deEndAccess)(); /*
deDriverReserved dd ? ; Reserved for Minidriver use. ;*/ DWORD deDriverReserved; /*
DIBENGINE ends ;*/ } DIBENGINE, FAR *LPDIBENGINE; /*
;----------------------------------------------------------------------------
; Definitions for DIBEngine.deFlags
;----------------------------------------------------------------------------
MINIDRIVER equ 0000000000000001b ;display driver
PALETTIZED equ 0000000000000010b ;paletized device
SELECTEDDIB equ 0000000000000100b ;DIB Section
OFFSCREEN equ 0000000000001000b ;offscreen surface (use with VRAM)
DISABLED equ 0000000000010000b ;going away -- please use BUSY instead [raypat]
BUSY equ 0000000000010000b ;
NOT_FRAMEBUFFER equ 0000000000100000b ;example: 8514/a
FIVE6FIVE equ 0000000001000000b ;16 bpp, 565 color format.
NON64KBANK equ 0000000010000000b ;bank size is not 64K
VRAM equ 1000000000000000b ;physical surface (video memory)
BANKEDVRAM equ 0100000000000000b ;VFlatD simulated
BANKEDSCAN equ 0010000000000000b ;VFlatD simulated (broken rasters)
PALETTE_XLAT equ 0001000000000000b ;background palette xlat
VGADITHER equ 0000100000000000b ;dither to VGA colors (first 8, and last 8)
CTCHANGE equ 0000010000000000b ;color table has been changed
DITHER256 equ 0000001000000000b ;dither to 256 fixed colors
HWCURSOR equ 0000000100000000b ;driver is using a HWCURSOR right now.
FREE2 equ 0000000100000000b ;Free.
BUSY_BIT equ 4 ;bit number to test for BUSY
comment ~
*/
#define MINIDRIVER 0x0001
#define PALETTIZED 0x0002
#define SELECTEDDIB 0x0004
#define OFFSCREEN 0x0008
#define DISABLED 0x0010
#define BUSY 0x0010
#define NOT_FRAMEBUFFER 0x0020
#define FIVE6FIVE 0x0040
#define NON64KBANK 0x0080
#define VRAM 0x8000
#define BANKEDVRAM 0x4000
#define BANKEDSCAN 0x2000
#define PALETTE_XLAT 0x1000
#define VGADITHER 0x0800
#define CTCHANGE 0x0400
#define DITHER256 0x0200
#define HWCURSOR 0x0100
#define BUSY_BIT 0x0004
/*
end comment ~
;----------------------------------------------------------------------------
; Definitions for DIBEngine.deBeginAccess flags
;----------------------------------------------------------------------------
FB_ACCESS equ 0000000000000001b
CURSOREXCLUDE equ 0000000000001000b
comment ~
*/
#define FB_ACCESS 0x0001
#define CURSOREXCLUDE 0x0008
/*
end comment ~
;----------------------------------------------------------------------------
; Definitions for most significant byte of a physical color.
;----------------------------------------------------------------------------
GREY_BIT equ 01000000b ;color is grey (r=g=b)
comment ~
*/
#define GREY_BIT 0x40
/*
end comment ~
;----------------------------------------------------------------------------
; DIB Engine Color Table entry structure. This structure is used by device
; drivers that are using DIB Engine services for rendering. This structure
; is identical to the RGBQuad structure except for some bit definitions
; in the 4th byte.
;----------------------------------------------------------------------------
DIBColorEntry struc ;*/ typedef struct { /*
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?