gdidefs.inc
来自「用于查询PC机上的USB端口是否有设备挂接上」· INC 代码 · 共 1,679 行 · 第 1/5 页
INC
1,679 行
;/*
;***************************************************************************
; *
; Copyright (C) 1983-1995 by Microsoft Inc. *
; *
;***************************************************************************
; GDI Definitions for Device Drivers
;
; Since most of the routines only need a portion of these definitions,
; conditional assembly flags have been defined in the various files
; to only include portions as needed (as opposed to having a lot of
; include files to mess with). The flags are as follows:
;
; incFont include font definitions
; incDevice include device definitions
; incLogical include logical object definitions
; incDrawmode include DrawMode structure definition
; incOutput include Output definitions
; incControl include Control definitions
; incPolyScanline include Scan definition
page
; General definitions that almost everyone will use.
; Physical Bitmap Structure
;
; Bitmap data structure passed to OEM routines. Defines the location and
; size of a main memory bitmap.
BITMAP struc ;*/ typedef struct { /*
bmType dw 0 ; 0 means main memory bitmap. Non-zero ;*/ short int bmType; /*
; is number of physical display and format
; of the rest of the structure known only
; to device driver
bmWidth dw 0 ; Width of bitmap in pixels ;*/ unsigned short int bmWidth; /*
bmHeight dw 0 ; Height of bitmap in pixels ;*/ unsigned short int bmHeight; /*
bmWidthBytes dw 0 ; #bytes per scan line ;*/ unsigned short int bmWidthBytes; /*
bmPlanes db 0 ; # of planes in bitmap ;*/ BYTE bmPlanes; /*
bmBitsPixel db 0 ; # of bits per pixel ;*/ BYTE bmBitsPixel; /*
bmBits dd 0 ; Far pointer to bits of main memory bitmap ;*/ BYTE FAR *bmBits; /*
bmWidthPlanes dd 0 ; Product of bmWidthBytes and bmHeight ;*/ unsigned long int bmWidthPlanes;/*
bmlpPDevice dd 0 ; Pointer to associated PDevice ;*/ BYTE FAR *bmlpPDevice; /*
bmSegmentIndex dw 0 ; Index to plaens next segment if non-zero ;*/ unsigned short int bmSegmentIndex; /*
bmScanSegment dw 0 ; Number of scans per segment ;*/ unsigned short int bmScanSegment; /*
bmFillBytes dw 0 ; Number of unused bytes per segment ;*/ unsigned short int bmFillBytes; /*
dw 0 ;*/ unsigned short int futureUse4; /*
dw 0 ;*/ unsigned short int futureUse5; /*
BITMAP ends ;*/ } BITMAP; /*
; structures used for Device Independent Bitmap (DIB) processing.
; all taken out of Presentation Manager's documentation
; Tuesday 25-October-1988 15:04 -by- Ron Gery [rong]
; C definitions are provided below (separately).
; triple used in PM1.1 (BitmapCoreInfo) format color table
RGBTriple struc
rgbtBlue db 0
rgbtGreen db 0
rgbtRed db 0
RGBTriple ends
; RGB DWORD used in PM2.0 format color table
RGBQuad struc
rgbBlue db 0
rgbGreen db 0
rgbRed db 0
rgbReserved db 0
RGBQuad ends
BitmapCoreHeader struc
bcSize dd 0
bcWidth dw 0
bcHeight dw 0
bcPlanes dw 0
bcBitCount dw 0
BitmapCoreHeader ends
; new format bitmap structure based on PM2.0 format DCR.
; Tuesday 23-May-1989 16:05 -by- Ron Gery [rong]
BitmapInfoHeader struc
biSize dd 0
biWidth dd 0
biHeight dd 0
biPlanes dw 0
biBitCount dw 0
biCompression dd 0
biSizeImage dd 0
biXPelsPerMeter dd 0
biYPelsPerMeter dd 0
biClrUsed dd 0
biClrImportant dd 0
BitmapInfoHeader ends
BitmapInfo struc
bmiHeader db (size BitmapInfoHeader) DUP (?)
bmiColors db ? ; array of RGBQUADS
BitmapInfo ends
BitmapCoreInfo struc
bmciHeader db (size BitmapCoreHeader) DUP (?)
bmciColors db ? ; array of RGBTRIPLES
BitmapCoreInfo ends
BI_RGB equ 0h
BI_RLE8 equ 1h
BI_RLE4 equ 2h
BI_BITFIELDS equ 3h
BitmapV4Header struc
bV4Size dd 0
bV4Width dd 0
bV4Height dd 0
bV4Planes dw 0
bV4BitCount dw 0
bV4Compression dd 0
bV4SizeImage dd 0
bV4XPelsPerMeter dd 0
bV4YPelsPerMeter dd 0
bV4ClrUsed dd 0
bV4ClrImportant dd 0
bV4RedMask dd 0
bV4GreenMask dd 0
bV4BlueMask dd 0
bV4AlphaMask dd 0
bV4CSType dd 0
bV4Endpoints db 36 dup (0)
bV4GammaRed dd 0
bV4GammaGreen dd 0
bV4GammaBlue dd 0
BitmapV4Header ends
if 0
*/
/* C definitions for DIBs, as defined in windows.h */
typedef struct {
DWORD bcSize;
WORD bcWidth;
WORD bcHeight;
WORD bcPlanes;
WORD bcBitCount;
} BITMAPCOREHEADER;
typedef BITMAPCOREHEADER FAR *LPBITMAPCOREHEADER;
typedef BITMAPCOREHEADER *PBITMAPCOREHEADER;
typedef struct {
DWORD biSize;
DWORD biWidth;
DWORD biHeight;
WORD biPlanes;
WORD biBitCount;
DWORD biCompression;
DWORD biSizeImage;
DWORD biXPelsPerMeter;
DWORD biYPelsPerMeter;
DWORD biClrUsed;
DWORD biClrImportant;
} BITMAPINFOHEADER;
typedef BITMAPINFOHEADER FAR *LPBITMAPINFOHEADER;
typedef BITMAPINFOHEADER *PBITMAPINFOHEADER;
typedef struct {
BYTE rgbtBlue;
BYTE rgbtGreen;
BYTE rgbtRed;
} RGBTRIPLE;
typedef struct {
BYTE rgbBlue;
BYTE rgbGreen;
BYTE rgbRed;
BYTE rgbReserved;
} RGBQUAD;
/* ICM Color Definitions */
// The following two structures are used for defining RGB's in terms of
// CIEXYZ. The values are fixed point 16.16.
typedef long FXPT16DOT16, FAR *LPFXPT16DOT16;
typedef long FXPT2DOT30, FAR *LPFXPT2DOT30;
typedef struct tagCIEXYZ
{
FXPT2DOT30 ciexyzX;
FXPT2DOT30 ciexyzY;
FXPT2DOT30 ciexyzZ;
} CIEXYZ;
typedef CIEXYZ FAR *LPCIEXYZ;
typedef struct tagICEXYZTRIPLE
{
CIEXYZ ciexyzRed;
CIEXYZ ciexyzGreen;
CIEXYZ ciexyzBlue;
} CIEXYZTRIPLE;
typedef CIEXYZTRIPLE FAR *LPCIEXYZTRIPLE;
typedef struct {
BITMAPCOREHEADER bmciHeader;
RGBQUAD bmciColors[1];
} BITMAPCOREINFO;
typedef BITMAPCOREINFO FAR *LPBITMAPCOREINFO;
typedef BITMAPCOREINFO *PBITMAPCOREINFO;
typedef struct {
BITMAPINFOHEADER bmiHeader;
RGBQUAD bmiColors[1];
} BITMAPINFO;
typedef BITMAPINFO FAR *LPBITMAPINFO;
typedef BITMAPINFO *PBITMAPINFO;
typedef struct {
DWORD bV4Size;
LONG bV4Width;
LONG bV4Height;
WORD bV4Planes;
WORD bV4BitCount;
DWORD bV4V4Compression;
DWORD bV4SizeImage;
LONG bV4XPelsPerMeter;
LONG bV4YPelsPerMeter;
DWORD bV4ClrUsed;
DWORD bV4ClrImportant;
DWORD bV4RedMask;
DWORD bV4GreenMask;
DWORD bV4BlueMask;
DWORD bV4AlphaMask;
DWORD bV4CSType;
CIEXYZTRIPLE bV4Endpoints;
DWORD bV4GammaRed;
DWORD bV4GammaGreen;
DWORD bV4GammaBlue;
} BITMAPV4HEADER, FAR *LPBITMAPV4HEADER, *PBITMAPV4HEADER;
typedef struct {
BITMAPV4HEADER bmv4Header;
RGBQUAD bmv4Colors[1];
} BITMAPV4INFO;
typedef BITMAPV4INFO FAR *LPBITMAPV4INFO;
typedef BITMAPV4INFO *PBITMAPV4INFO;
/* currently, if the low byte of biCompression is non zero,
* it must be one of following */
#define BI_RGB 0x00
#define BI_RLE8 0x01
#define BI_RLE4 0x02
#define BI_BITFIELDS 0x03
#define BITMAP_SELECTED 0x01
#define BITMAP_64K 0x01
#define DIBSIGNATURE 0x4944
/*
endif
if 0
*/
#ifndef NOPTRC
/*
endif
PTTYPE struc ;*/ typedef struct { /*
xcoord dw 0 ;x coordinate of point ;*/ short int xcoord; /*
ycoord dw 0 ;y coordinate of point ;*/ short int ycoord; /*
PTTYPE ends ;*/ } PTTYPE; /*
;*/ typedef PTTYPE *PPOINT; /*
;*/ typedef PTTYPE FAR *LPPOINT; /*
if 0
*/
#define POINT PTTYPE
/*
endif
RECT struc ;*/ typedef struct { /*
left dw 0 ;*/ short int left, /*
top dw 0 ;*/ top, /*
right dw 0 ;*/ right, /*
bottom dw 0 ;*/ bottom; /*
RECT ends ;*/ } RECT; /*
;*/ typedef RECT *PRECT; /*
if 0
*/
#endif
/*
endif
BOXTYPE struc ;*/ typedef struct { /*
min db SIZE PTTYPE dup (?) ;x,y starting coord ;*/ PTTYPE min; /*
ext db SIZE PTTYPE dup (?) ;x,y extents ;*/ PTTYPE ext; /*
BOXTYPE ends ;*/ } BOXTYPE; /*
;*/ typedef RECT FAR * LPRECT; /*
page
; Logical Object Definitions - incLogical
ifdef incLogical
if incLogical
OBJ_PEN equ 1
OBJ_BRUSH equ 2
OBJ_FONT equ 3
if 0
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?