38{
45
46 struct
47 {
50 } bmi;
54 PBITMAPV5HEADER pbV5h = (PBITMAPV5HEADER)&bmi.bmiHeader;
55
59
72
74
77 cjHeader = bmi.bmiHeader.biSize +
cEntries * 4 + 8;
78
79
81 pvBits = 0;
85
93
94
95
97 pvBits = 0;
103
104
106 pvBits = 0;
112
113
121
122
130
131
139
140
146
147
153
154
160
161
167
168
176
177
182
187
193
198
203
204
238
240
241
243
244
245
247 pvBits = 0;
248
264 cjHeader = bmi.bmiHeader.biSize +
cEntries * 4 + 20;
265
266
271
273 cjHeader = bmi.bmiHeader.biSize +
cEntries * 4 + 8;
274
275
283
284
285
288
296
297
301 cjHeader = bmi.bmiHeader.biSize +
cEntries * 4 + 8;
302
303
311
312
320
321
329
330
338
339
343 pvBits = 0;
349
350
360
361
371
372
376 pbV4h->bV4Width = 2;
377 pbV4h->bV4Height = 3;
378 pbV4h->bV4Planes = 1;
379 pbV4h->bV4BitCount = 1;
380 pbV4h->bV4V4Compression =
BI_RGB;
381 pbV4h->bV4SizeImage = 0;
382 pbV4h->bV4XPelsPerMeter = 100;
383 pbV4h->bV4YPelsPerMeter = 100;
384 pbV4h->bV4ClrUsed = 0;
385 pbV4h->bV4ClrImportant = 0;
386 pbV4h->bV4RedMask = 0;
387 pbV4h->bV4GreenMask = 0;
388 pbV4h->bV4BlueMask = 0;
389 pbV4h->bV4AlphaMask = 0;
390 pbV4h->bV4CSType = 0;
392 pbV4h->bV4GammaRed = 0;
393 pbV4h->bV4GammaGreen = 0;
394 pbV4h->bV4GammaBlue = 0;
395
397 cjHeader = bmi.bmiHeader.biSize +
cEntries * 4 + 8;
398
399
401 pvBits = 0;
407
408
411 pbV5h->bV5Size = sizeof(BITMAPV5HEADER);
412 pbV5h->bV5Width = 2;
413 pbV5h->bV5Height = 3;
414 pbV5h->bV5Planes = 1;
415 pbV5h->bV5BitCount = 1;
416 pbV5h->bV5Compression =
BI_RGB;
417 pbV5h->bV5SizeImage = 0;
418 pbV5h->bV5XPelsPerMeter = 100;
419 pbV5h->bV5YPelsPerMeter = 100;
420 pbV5h->bV5ClrUsed = 2;
421 pbV5h->bV5ClrImportant = 2;
422 pbV5h->bV5RedMask = 0;
423 pbV5h->bV5GreenMask = 0;
424 pbV5h->bV5BlueMask = 0;
425 pbV5h->bV5AlphaMask = 0;
426 pbV5h->bV5CSType = 0;
428 pbV5h->bV5GammaRed = 0;
429 pbV5h->bV5GammaGreen = 0;
430 pbV5h->bV5GammaBlue = 0;
431 pbV5h->bV5Intent = 0;
432 pbV5h->bV5ProfileData = 0;
433 pbV5h->bV5ProfileSize = 0;
434 pbV5h->bV5Reserved = 0;
435
437 cjHeader = pbV5h->bV5Size +
cEntries * 4 + 8;
438
439
441 pvBits = 0;
447
448
449 pbV5h->bV5Size = sizeof(BITMAPV5HEADER) + 64;
450 cjHeader = pbV5h->bV5Size +
cEntries * 4 + 8;
452 pvBits = 0;
458
459
469
471 pvBits = 0;
475
477
479}
NTSTATUS NTAPI NtCreateSection(OUT PHANDLE SectionHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL, IN PLARGE_INTEGER MaximumSize OPTIONAL, IN ULONG SectionPageProtection OPTIONAL, IN ULONG AllocationAttributes, IN HANDLE FileHandle OPTIONAL)
#define ok_hex(expression, result)
#define NT_SUCCESS(StatCode)
#define ERROR_INVALID_PARAMETER
struct tagBITMAPINFOHEADER * PBITMAPINFOHEADER
_In_ ACCESS_MASK _In_opt_ POBJECT_ATTRIBUTES _In_opt_ PLARGE_INTEGER MaximumSize
#define SECTION_ALL_ACCESS
__kernel_entry W32KAPI HBITMAP APIENTRY NtGdiCreateDIBSection(_In_ HDC hdc, _In_opt_ HANDLE hSectionApp, _In_ DWORD dwOffset, _In_reads_bytes_opt_(cjHeader) LPBITMAPINFO pbmi, _In_ DWORD iUsage, _In_ UINT cjHeader, _In_ FLONG fl, _In_ ULONG_PTR dwColorSpace, _Outptr_ PVOID *ppvBits)
_In_ HBITMAP _In_ UINT _In_ UINT _Inout_ LPBITMAPINFO pbmi
BITMAPINFOHEADER bmiHeader
DWORD WINAPI GetLastError(void)
_In_ const BITMAPINFO _In_ UINT _In_opt_ HANDLE hSection
_In_ UINT _In_ UINT cEntries
struct tagBITMAPINFO * PBITMAPINFO
HDC WINAPI GetDC(_In_opt_ HWND)