summaryrefslogtreecommitdiff
path: root/wingdi_bitmap_struct.h
blob: 2cfde26a0b171995f345e4d9250dfdfca1d25300 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
typedef struct tagRGBTRIPLE {
	unsigned char	rgbtBlue;
	unsigned char	rgbtGreen;
	unsigned char	rgbtRed;
} RGBTRIPLE, *PRGBTRIPLE, *NPRGBTRIPLE, *LPRGBTRIPLE;

typedef struct tagRGBQUAD {
	unsigned char	rgbBlue;
	unsigned char	rgbGreen;
	unsigned char	rgbRed;
	unsigned char	rgbReserved;
} RGBQUAD;

typedef struct tagCIEXYZ {
	FXPT2DOT30	ciexyzX;
	FXPT2DOT30	ciexyzY;
	FXPT2DOT30	ciexyzZ;
} CIEXYZ;

typedef struct tagCIEXYZTRIPLE {
	CIEXYZ		ciexyzRed;
	CIEXYZ		ciexyzGreen;
	CIEXYZ		ciexyzBlue;
} CIEXYZTRIPLE;

typedef struct _GRADIENT_RECT {
	ULONG		UpperLeft;
	ULONG		LowerRight;
} GRADIENT_RECT, *PGRADIENT_RECT, *LPGRADIENT_RECT;

typedef struct _GRADIENT_TRIANGLE {
	ULONG		Vertex1;
	ULONG		Vertex2;
	ULONG		Vertex3;
} GRADIENT_TRIANGLE, *PGRADIENT_TRIANGLE, *LPGRADIENT_TRIANGLE;

typedef struct _TRIVERTEX {
	LONG		x;
	LONG		y;
	COLOR16		Red;
	COLOR16		Green;
	COLOR16		Blue;
	COLOR16		Alpha;
} TRIVERTEX, *PTRIVERTEX, *LPTRIVERTEX;

typedef struct tagBITMAP {
	LONG		bmType;
	LONG		bmWidth;
	LONG		bmHeight;
	LONG		bmWidthBytes;
	WORD		bmPlanes;
	WORD		bmBitsPixel;
	void *		bmBits;
} BITMAP, *PBITMAP, *NPBITMAP, *LPBITMAP;

typedef struct tagBITMAPCOREHEADER {
	DWORD		bcSize;
	WORD		bcWidth;
	WORD		bcHeight;
	WORD		bcPlanes;
	WORD		bcBitCount;
} BITMAPCOREHEADER, *PBITMAPCOREHEADER, *LPBITMAPCOREHEADER;

typedef struct _BITMAPCOREINFO { 
	BITMAPCOREHEADER	bmciHeader; 
	RGBTRIPLE		bmciColors[];
} BITMAPCOREINFO;

typedef struct tagBITMAPFILEHEADER {
	WORD		bfType;
	DWORD		bfSize;
	WORD		bfReserved1;
	WORD		bfReserved2;
	DWORD		bfOffBits;
} BITMAPFILEHEADER, *PBITMAPFILEHEADER;

typedef struct tagBITMAPINFOHEADER {
	DWORD		biSize;
	LONG		biWidth;
	LONG		biHeight;
	WORD		biPlanes;
	WORD		biBitCount;
	DWORD		biCompression;
	DWORD		biSizeImage;
	LONG		biXPelsPerMeter;
	LONG		biYPelsPerMeter;
	DWORD		biClrUsed;
	DWORD		biClrImportant;
} BITMAPINFOHEADER, *PBITMAPINFOHEADER;

typedef struct tagBITMAPINFO {
	BITMAPINFOHEADER	bmiHeader;
	RGBQUAD			bmiColors[];
} BITMAPINFO, *PBITMAPINFO;


typedef struct tagBITMAPV4HEADER {
	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, *PBITMAPV4HEADER;


typedef struct tagBITMAPV5HEADER {
	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;
	DWORD		bV5Intent;
	DWORD		bV5ProfileData;
	DWORD		bV5ProfileSize;
	DWORD		bV5Reserved;
} BITMAPV5HEADER, *PBITMAPV5HEADER;


typedef struct _BLENDFUNCTION {
	unsigned char	BlendOp;
	unsigned char	BlendFlags;
	unsigned char	SourceConstantAlpha;
	unsigned char	AlphaFormat;
} BLENDFUNCTION, *PBLENDFUNCTION, *LPBLENDFUNCTION;

typedef struct tagCOLORADJUSTMENT {
	WORD	caSize;
	WORD	caFlags;
	WORD	caIlluminantIndex;
	WORD	caRedGamma;
	WORD	caGreenGamma;
	WORD	caBlueGamma;
	WORD	caReferenceBlack;
	WORD	caReferenceWhite;
	SHORT	caContrast;
	SHORT	caBrightness;
	SHORT	caColorfulness;
	SHORT	caRedGreenTint;
} COLORADJUSTMENT, *PCOLORADJUSTMENT;

typedef struct tagDIBSECTION {
	BITMAP			dsBm;
	BITMAPINFOHEADER	dsBmih;
	DWORD			dsBitfields[3];
	HANDLE			dshSection;
	DWORD			dsOffset;
} DIBSECTION, *PDIBSECTION;