Fixed METAFILEPICT bug
[reactos.git] / reactos / include / structs.h
1 /*
2 Structures.h
3
4 Declarations for all the Windows32 API Structures
5
6 Copyright (C) 1996 Free Software Foundation, Inc.
7
8 Author: Scott Christley <scottc@net-community.com>
9 Date: 1996
10
11 This file is part of the Windows32 API Library.
12
13 This library is free software; you can redistribute it and/or
14 modify it under the terms of the GNU Library General Public
15 License as published by the Free Software Foundation; either
16 version 2 of the License, or (at your option) any later version.
17
18 This library is distributed in the hope that it will be useful,
19 but WITHOUT ANY WARRANTY; without even the implied warranty of
20 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
21 Library General Public License for more details.
22
23 If you are interested in a warranty or support for this source code,
24 contact Scott Christley <scottc@net-community.com> for more information.
25
26 You should have received a copy of the GNU Library General Public
27 License along with this library; see the file COPYING.LIB.
28 If not, write to the Free Software Foundation,
29 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
30 */
31
32
33 #ifndef _GNU_H_WINDOWS32_STRUCTURES
34 #define _GNU_H_WINDOWS32_STRUCTURES
35
36 typedef union _LARGE_INTEGER
37 {
38 struct
39 {
40 DWORD LowPart;
41 LONG HighPart;
42 } u;
43 LONGLONG QuadPart;
44 } LARGE_INTEGER, *PLARGE_INTEGER;
45
46 typedef union _ULARGE_INTEGER
47 {
48 struct
49 {
50 DWORD LowPart;
51 DWORD HighPart;
52 } u;
53 ULONGLONG QuadPart;
54 } ULARGE_INTEGER, *PULARGE_INTEGER;
55
56 #include <security.h>
57
58 typedef struct _LIST_ENTRY {
59 struct _LIST_ENTRY *Flink;
60 struct _LIST_ENTRY *Blink;
61 } LIST_ENTRY, *PLIST_ENTRY;
62
63
64
65 typedef struct _PARTITION_INFORMATION {
66 BYTE PartitionType;
67 BOOLEAN BootIndicator;
68 BOOLEAN RecognizedPartition;
69 BOOLEAN RewritePartition;
70 LARGE_INTEGER StartingOffset;
71 LARGE_INTEGER PartitionLength;
72 LARGE_INTEGER HiddenSectors;
73 } PARTITION_INFORMATION ;
74
75 typedef struct _SINGLE_LIST_ENTRY {
76 struct _SINGLE_LIST_ENTRY *Next;
77 } SINGLE_LIST_ENTRY, *PSINGLE_LIST_ENTRY;
78
79
80 typedef struct _CRITICAL_SECTION_DEBUG {
81 WORD Type;
82 WORD CreatorBackTraceIndex;
83 struct _CRITICAL_SECTION *CriticalSection;
84 LIST_ENTRY ProcessLocksList;
85 DWORD EntryCount;
86 DWORD ContentionCount;
87 DWORD Depth;
88 PVOID OwnerBackTrace[ 5 ];
89 } CRITICAL_SECTION_DEBUG, *PCRITICAL_SECTION_DEBUG;
90
91 typedef struct _CRITICAL_SECTION {
92 PCRITICAL_SECTION_DEBUG DebugInfo;
93 LONG LockCount;
94 LONG RecursionCount;
95 HANDLE OwningThread;
96 HANDLE LockSemaphore;
97 DWORD Reserved;
98 } CRITICAL_SECTION, *PCRITICAL_SECTION, *LPCRITICAL_SECTION;
99
100 typedef struct _GENERIC_MAPPING {
101 ACCESS_MASK GenericRead;
102 ACCESS_MASK GenericWrite;
103 ACCESS_MASK GenericExecute;
104 ACCESS_MASK GenericAll;
105 } GENERIC_MAPPING, *PGENERIC_MAPPING;
106
107 typedef struct _PRIVILEGE_SET {
108 DWORD PrivilegeCount;
109 DWORD Control;
110 LUID_AND_ATTRIBUTES Privilege[ANYSIZE_ARRAY];
111 } PRIVILEGE_SET, *PPRIVILEGE_SET, *LPPRIVILEGE_SET;
112
113 #ifdef __i386__
114
115 typedef struct _FLOATING_SAVE_AREA {
116 DWORD ControlWord;
117 DWORD StatusWord;
118 DWORD TagWord;
119 DWORD ErrorOffset;
120 DWORD ErrorSelector;
121 DWORD DataOffset;
122 DWORD DataSelector;
123 BYTE RegisterArea[80];
124 DWORD Cr0NpxState;
125 } FLOATING_SAVE_AREA;
126
127 typedef struct _CONTEXT {
128 DWORD ContextFlags;
129
130 DWORD Dr0;
131 DWORD Dr1;
132 DWORD Dr2;
133 DWORD Dr3;
134 DWORD Dr6;
135 DWORD Dr7;
136
137 FLOATING_SAVE_AREA FloatSave;
138
139 DWORD SegGs;
140 DWORD SegFs;
141 DWORD SegEs;
142 DWORD SegDs;
143
144 DWORD Edi;
145 DWORD Esi;
146 DWORD Ebx;
147 DWORD Edx;
148 DWORD Ecx;
149 DWORD Eax;
150
151 DWORD Ebp;
152 DWORD Eip;
153 DWORD SegCs;
154 DWORD EFlags;
155 DWORD Esp;
156 DWORD SegSs;
157 } CONTEXT, *PCONTEXT, *LPCONTEXT;
158
159 #else /* __ppc__ */
160
161 typedef struct
162 {
163 /* Floating point registers returned when CONTEXT_FLOATING_POINT is set */
164 double Fpr0;
165 double Fpr1;
166 double Fpr2;
167 double Fpr3;
168 double Fpr4;
169 double Fpr5;
170 double Fpr6;
171 double Fpr7;
172 double Fpr8;
173 double Fpr9;
174 double Fpr10;
175 double Fpr11;
176 double Fpr12;
177 double Fpr13;
178 double Fpr14;
179 double Fpr15;
180 double Fpr16;
181 double Fpr17;
182 double Fpr18;
183 double Fpr19;
184 double Fpr20;
185 double Fpr21;
186 double Fpr22;
187 double Fpr23;
188 double Fpr24;
189 double Fpr25;
190 double Fpr26;
191 double Fpr27;
192 double Fpr28;
193 double Fpr29;
194 double Fpr30;
195 double Fpr31;
196 double Fpscr;
197
198 /* Integer registers returned when CONTEXT_INTEGER is set. */
199 DWORD Gpr0;
200 DWORD Gpr1;
201 DWORD Gpr2;
202 DWORD Gpr3;
203 DWORD Gpr4;
204 DWORD Gpr5;
205 DWORD Gpr6;
206 DWORD Gpr7;
207 DWORD Gpr8;
208 DWORD Gpr9;
209 DWORD Gpr10;
210 DWORD Gpr11;
211 DWORD Gpr12;
212 DWORD Gpr13;
213 DWORD Gpr14;
214 DWORD Gpr15;
215 DWORD Gpr16;
216 DWORD Gpr17;
217 DWORD Gpr18;
218 DWORD Gpr19;
219 DWORD Gpr20;
220 DWORD Gpr21;
221 DWORD Gpr22;
222 DWORD Gpr23;
223 DWORD Gpr24;
224 DWORD Gpr25;
225 DWORD Gpr26;
226 DWORD Gpr27;
227 DWORD Gpr28;
228 DWORD Gpr29;
229 DWORD Gpr30;
230 DWORD Gpr31;
231
232 DWORD Cr; /* Condition register */
233 DWORD Xer; /* Fixed point exception register */
234
235 /* The following are set when CONTEXT_CONTROL is set. */
236 DWORD Msr; /* Machine status register */
237 DWORD Iar; /* Instruction address register */
238 DWORD Lr; /* Link register */
239 DWORD Ctr; /* Control register */
240
241 /* Control which context values are returned */
242 DWORD ContextFlags;
243 DWORD Fill[3];
244
245 /* Registers returned if CONTEXT_DEBUG_REGISTERS is set. */
246 DWORD Dr0; /* Breakpoint Register 1 */
247 DWORD Dr1; /* Breakpoint Register 2 */
248 DWORD Dr2; /* Breakpoint Register 3 */
249 DWORD Dr3; /* Breakpoint Register 4 */
250 DWORD Dr4; /* Breakpoint Register 5 */
251 DWORD Dr5; /* Breakpoint Register 6 */
252 DWORD Dr6; /* Debug Status Register */
253 DWORD Dr7; /* Debug Control Register */
254 } CONTEXT, *PCONTEXT, *LPCONTEXT;
255 #endif
256
257
258 typedef struct value_ent {
259 LPTSTR ve_valuename;
260 DWORD ve_valuelen;
261 DWORD ve_valueptr;
262 DWORD ve_type;
263 } VALENT, *PVALENT;
264
265
266 typedef struct _EXCEPTION_RECORD {
267 DWORD ExceptionCode;
268 DWORD ExceptionFlags;
269 struct _EXCEPTION_RECORD *ExceptionRecord;
270 PVOID ExceptionAddress;
271 DWORD NumberParameters;
272 DWORD ExceptionInformation[EXCEPTION_MAXIMUM_PARAMETERS];
273 } EXCEPTION_RECORD, *PEXCEPTION_RECORD, *LPEXCEPTION_RECORD;
274
275 typedef struct _DRIVE_LAYOUT_INFORMATION {
276 DWORD PartitionCount;
277 DWORD Signature;
278 PARTITION_INFORMATION PartitionEntry[1];
279 } DRIVE_LAYOUT_INFORMATION;
280
281 typedef struct _KEY_EVENT_RECORD {
282 WINBOOL bKeyDown;
283 WORD wRepeatCount;
284 WORD wVirtualKeyCode;
285 WORD wVirtualScanCode;
286 union {
287 WCHAR UnicodeChar;
288 CHAR AsciiChar;
289 } uChar;
290 DWORD dwControlKeyState;
291 } KEY_EVENT_RECORD PACKED;
292
293 typedef struct _COORD {
294 SHORT X;
295 SHORT Y;
296 } COORD;
297
298 typedef struct _MOUSE_EVENT_RECORD {
299 COORD dwMousePosition;
300 DWORD dwButtonState;
301 DWORD dwControlKeyState;
302 DWORD dwEventFlags;
303 } MOUSE_EVENT_RECORD;
304
305 typedef struct _DISK_GEOMETRY {
306 LARGE_INTEGER Cylinders;
307 MEDIA_TYPE MediaType;
308 DWORD TracksPerCylinder;
309 DWORD SectorsPerTrack;
310 DWORD BytesPerSector;
311 } DISK_GEOMETRY ;
312
313 typedef struct _MEMORY_BASIC_INFORMATION {
314 PVOID BaseAddress;
315 PVOID AllocationBase;
316 DWORD AllocationProtect;
317 DWORD RegionSize;
318 DWORD State;
319 DWORD Protect;
320 DWORD Type;
321 } MEMORY_BASIC_INFORMATION;
322 typedef MEMORY_BASIC_INFORMATION *PMEMORY_BASIC_INFORMATION;
323
324 typedef struct _SYSTEMTIME {
325 WORD wYear;
326 WORD wMonth;
327 WORD wDayOfWeek;
328 WORD wDay;
329 WORD wHour;
330 WORD wMinute;
331 WORD wSecond;
332 WORD wMilliseconds;
333 } SYSTEMTIME, *LPSYSTEMTIME;
334
335 typedef struct _TIME_ZONE_INFORMATION {
336 LONG Bias;
337 WCHAR StandardName[ 32 ];
338 SYSTEMTIME StandardDate;
339 LONG StandardBias;
340 WCHAR DaylightName[ 32 ];
341 SYSTEMTIME DaylightDate;
342 LONG DaylightBias;
343 } TIME_ZONE_INFORMATION, *LPTIME_ZONE_INFORMATION;
344
345
346 #ifndef WIN32_LEAN_AND_MEAN
347
348 #ifdef __cplusplus
349 extern "C" {
350 #endif /* __cplusplus */
351
352 typedef struct _ABC {
353 int abcA;
354 UINT abcB;
355 int abcC;
356 } ABC, *LPABC;
357
358 typedef struct _ABCFLOAT {
359 FLOAT abcfA;
360 FLOAT abcfB;
361 FLOAT abcfC;
362 } ABCFLOAT, *LPABCFLOAT;
363
364 typedef struct tagACCEL {
365 BYTE fVirt;
366 WORD key;
367 WORD cmd;
368 } ACCEL, *LPACCEL;
369
370 typedef struct tagACCESSTIMEOUT {
371 UINT cbSize;
372 DWORD dwFlags;
373 DWORD iTimeOutMSec;
374 } ACCESSTIMEOUT;
375
376 typedef struct _ACL_REVISION_INFORMATION {
377 DWORD AclRevision;
378 } ACL_REVISION_INFORMATION;
379
380 typedef struct _ACL_SIZE_INFORMATION {
381 DWORD AceCount;
382 DWORD AclBytesInUse;
383 DWORD AclBytesFree;
384 } ACL_SIZE_INFORMATION;
385
386 typedef struct _ACTION_HEADER {
387 ULONG transport_id;
388 USHORT action_code;
389 USHORT reserved;
390 } ACTION_HEADER;
391
392 typedef struct _ADAPTER_STATUS {
393 UCHAR adapter_address[6];
394 UCHAR rev_major;
395 UCHAR reserved0;
396 UCHAR adapter_type;
397 UCHAR rev_minor;
398 WORD duration;
399 WORD frmr_recv;
400 WORD frmr_xmit;
401 WORD iframe_recv_err;
402 WORD xmit_aborts;
403 DWORD xmit_success;
404 DWORD recv_success;
405 WORD iframe_xmit_err;
406 WORD recv_buff_unavail;
407 WORD t1_timeouts;
408 WORD ti_timeouts;
409 DWORD reserved1;
410 WORD free_ncbs;
411 WORD max_cfg_ncbs;
412 WORD max_ncbs;
413 WORD xmit_buf_unavail;
414 WORD max_dgram_size;
415 WORD pending_sess;
416 WORD max_cfg_sess;
417 WORD max_sess;
418 WORD max_sess_pkt_size;
419 WORD name_count;
420 } ADAPTER_STATUS;
421
422 typedef struct _ADDJOB_INFO_1 {
423 LPTSTR Path;
424 DWORD JobId;
425 } ADDJOB_INFO_1;
426
427 typedef struct tagANIMATIONINFO {
428 UINT cbSize;
429 int iMinAnimate;
430 } ANIMATIONINFO, *LPANIMATIONINFO;
431
432 typedef struct _RECT {
433 LONG left;
434 LONG top;
435 LONG right;
436 LONG bottom;
437 } RECT, *LPRECT, *PRECT;
438
439 typedef struct _RECTL {
440 LONG left;
441 LONG top;
442 LONG right;
443 LONG bottom;
444 } RECTL, *PRECTL;
445
446 typedef struct _AppBarData {
447 DWORD cbSize;
448 HWND hWnd;
449 UINT uCallbackMessage;
450 UINT uEdge;
451 RECT rc;
452 LPARAM lParam;
453 } APPBARDATA, *PAPPBARDATA;
454
455 typedef struct tagBITMAP
456 {
457 LONG bmType;
458 LONG bmWidth;
459 LONG bmHeight;
460 LONG bmWidthBytes;
461 WORD bmPlanes;
462 WORD bmBitsPixel;
463 LPVOID bmBits;
464 } BITMAP, *PBITMAP, *NPBITMAP, *LPBITMAP;
465
466 typedef struct tagBITMAPCOREHEADER {
467 DWORD bcSize;
468 WORD bcWidth;
469 WORD bcHeight;
470 WORD bcPlanes;
471 WORD bcBitCount;
472 } BITMAPCOREHEADER;
473
474 typedef struct tagRGBTRIPLE {
475 BYTE rgbtBlue;
476 BYTE rgbtGreen;
477 BYTE rgbtRed;
478 } RGBTRIPLE;
479
480 typedef struct _BITMAPCOREINFO {
481 BITMAPCOREHEADER bmciHeader;
482 RGBTRIPLE bmciColors[1];
483 } BITMAPCOREINFO, *PBITMAPCOREINFO, *LPBITMAPCOREINFO;
484
485 typedef struct tagBITMAPFILEHEADER {
486 WORD bfType;
487 DWORD bfSize;
488 WORD bfReserved1;
489 WORD bfReserved2;
490 DWORD bfOffBits;
491 } BITMAPFILEHEADER __attribute__((packed));
492
493 typedef struct tagBITMAPINFOHEADER {
494 DWORD biSize;
495 LONG biWidth;
496 LONG biHeight;
497 WORD biPlanes;
498 WORD biBitCount;
499 DWORD biCompression;
500 DWORD biSizeImage;
501 LONG biXPelsPerMeter;
502 LONG biYPelsPerMeter;
503 DWORD biClrUsed;
504 DWORD biClrImportant;
505 } BITMAPINFOHEADER, *LPBITMAPINFOHEADER, *PBITMAPINFOHEADER;
506
507 typedef struct tagRGBQUAD {
508 BYTE rgbBlue;
509 BYTE rgbGreen;
510 BYTE rgbRed;
511 BYTE rgbReserved;
512 } RGBQUAD;
513
514 typedef struct tagBITMAPINFO {
515 BITMAPINFOHEADER bmiHeader;
516 RGBQUAD bmiColors[1];
517 } BITMAPINFO, *LPBITMAPINFO, *PBITMAPINFO;
518
519 typedef long FXPT2DOT30, * LPFXPT2DOT30;
520
521 typedef struct tagCIEXYZ
522 {
523 FXPT2DOT30 ciexyzX;
524 FXPT2DOT30 ciexyzY;
525 FXPT2DOT30 ciexyzZ;
526 } CIEXYZ;
527 typedef CIEXYZ * LPCIEXYZ;
528
529 typedef struct tagCIEXYZTRIPLE
530 {
531 CIEXYZ ciexyzRed;
532 CIEXYZ ciexyzGreen;
533 CIEXYZ ciexyzBlue;
534 } CIEXYZTRIPLE;
535 typedef CIEXYZTRIPLE * LPCIEXYZTRIPLE;
536
537 typedef struct {
538 DWORD bV4Size;
539 LONG bV4Width;
540 LONG bV4Height;
541 WORD bV4Planes;
542 WORD bV4BitCount;
543 DWORD bV4V4Compression;
544 DWORD bV4SizeImage;
545 LONG bV4XPelsPerMeter;
546 LONG bV4YPelsPerMeter;
547 DWORD bV4ClrUsed;
548 DWORD bV4ClrImportant;
549 DWORD bV4RedMask;
550 DWORD bV4GreenMask;
551 DWORD bV4BlueMask;
552 DWORD bV4AlphaMask;
553 DWORD bV4CSType;
554 CIEXYZTRIPLE bV4Endpoints;
555 DWORD bV4GammaRed;
556 DWORD bV4GammaGreen;
557 DWORD bV4GammaBlue;
558 } BITMAPV4HEADER, *LPBITMAPV4HEADER, *PBITMAPV4HEADER;
559
560 typedef struct _BLOB {
561 ULONG cbSize;
562 BYTE *pBlobData;
563 } BLOB;
564
565 typedef struct _SHITEMID {
566 USHORT cb;
567 BYTE abID[1];
568 } SHITEMID, * LPSHITEMID;
569 typedef const SHITEMID * LPCSHITEMID;
570
571 typedef struct _ITEMIDLIST {
572 SHITEMID mkid;
573 } ITEMIDLIST, * LPITEMIDLIST;
574 typedef const ITEMIDLIST * LPCITEMIDLIST;
575
576 typedef struct _browseinfo {
577 HWND hwndOwner;
578 LPCITEMIDLIST pidlRoot;
579 LPSTR pszDisplayName;
580 LPCSTR lpszTitle;
581 UINT ulFlags;
582 BFFCALLBACK lpfn;
583 LPARAM lParam;
584 int iImage;
585 } BROWSEINFO, *PBROWSEINFO, *LPBROWSEINFO;
586
587 typedef struct _FILETIME {
588 DWORD dwLowDateTime;
589 DWORD dwHighDateTime;
590 } FILETIME, *LPFILETIME, *PFILETIME;
591
592 typedef struct _BY_HANDLE_FILE_INFORMATION {
593 DWORD dwFileAttributes;
594 FILETIME ftCreationTime;
595 FILETIME ftLastAccessTime;
596 FILETIME ftLastWriteTime;
597 DWORD dwVolumeSerialNumber;
598 DWORD nFileSizeHigh;
599 DWORD nFileSizeLow;
600 DWORD nNumberOfLinks;
601 DWORD nFileIndexHigh;
602 DWORD nFileIndexLow;
603 } BY_HANDLE_FILE_INFORMATION, *LPBY_HANDLE_FILE_INFORMATION;
604
605 typedef struct _FIXED {
606 WORD fract;
607 short value;
608 } FIXED;
609
610 typedef struct tagPOINT {
611 LONG x;
612 LONG y;
613 } POINT, *LPPOINT, *PPOINT;
614
615 typedef struct tagPOINTFX {
616 FIXED x;
617 FIXED y;
618 } POINTFX;
619
620 typedef struct _POINTL {
621 LONG x;
622 LONG y;
623 } POINTL, *PPOINTL;
624
625 typedef struct tagPOINTS {
626 SHORT x;
627 SHORT y;
628 } POINTS;
629
630 typedef struct _tagCANDIDATEFORM {
631 DWORD dwIndex;
632 DWORD dwStyle;
633 POINT ptCurrentPos;
634 RECT rcArea;
635 } CANDIDATEFORM, *LPCANDIDATEFORM;
636
637 typedef struct _tagCANDIDATELIST {
638 DWORD dwSize;
639 DWORD dwStyle;
640 DWORD dwCount;
641 DWORD dwSelection;
642 DWORD dwPageStart;
643 DWORD dwPageSize;
644 DWORD dwOffset[1];
645 } CANDIDATELIST, *LPCANDIDATELIST;
646
647 typedef struct tagCREATESTRUCT {
648 LPVOID lpCreateParams;
649 HINSTANCE hInstance;
650 HMENU hMenu;
651 HWND hwndParent;
652 int cy;
653 int cx;
654 int y;
655 int x;
656 LONG style;
657 LPCTSTR lpszName;
658 LPCTSTR lpszClass;
659 DWORD dwExStyle;
660 } CREATESTRUCT, *LPCREATESTRUCT;
661
662 typedef struct tagCBT_CREATEWND {
663 LPCREATESTRUCT lpcs;
664 HWND hwndInsertAfter;
665 } CBT_CREATEWND;
666
667 typedef struct tagCBTACTIVATESTRUCT {
668 WINBOOL fMouse;
669 HWND hWndActive;
670 } CBTACTIVATESTRUCT;
671
672 typedef struct _CHAR_INFO {
673 union {
674 WCHAR UnicodeChar;
675 CHAR AsciiChar;
676 } Char;
677 WORD Attributes;
678 } CHAR_INFO, *PCHAR_INFO;
679
680 typedef struct _charformat {
681 UINT cbSize;
682 DWORD dwMask;
683 DWORD dwEffects;
684 LONG yHeight;
685 LONG yOffset;
686 COLORREF crTextColor;
687 BYTE bCharSet;
688 BYTE bPitchAndFamily;
689 TCHAR szFaceName[LF_FACESIZE];
690 } CHARFORMAT;
691
692 typedef struct _charrange {
693 LONG cpMin;
694 LONG cpMax;
695 } CHARRANGE;
696
697 typedef struct tagCHARSET {
698 DWORD aflBlock[3];
699 DWORD flLang;
700 } CHARSET;
701
702 typedef struct tagFONTSIGNATURE {
703 DWORD fsUsb[4];
704 DWORD fsCsb[2];
705 } FONTSIGNATURE, *LPFONTSIGNATURE;
706
707 typedef struct {
708 UINT ciCharset;
709 UINT ciACP;
710 FONTSIGNATURE fs;
711 } CHARSETINFO, *LPCHARSETINFO;
712
713 typedef struct {
714 DWORD lStructSize;
715 HWND hwndOwner;
716 HWND hInstance;
717 COLORREF rgbResult;
718 COLORREF* lpCustColors;
719 DWORD Flags;
720 LPARAM lCustData;
721 LPCCHOOKPROC lpfnHook;
722 LPCTSTR lpTemplateName;
723 } CHOOSECOLOR, *LPCHOOSECOLOR;
724
725 typedef struct tagLOGFONT {
726 LONG lfHeight;
727 LONG lfWidth;
728 LONG lfEscapement;
729 LONG lfOrientation;
730 LONG lfWeight;
731 BYTE lfItalic;
732 BYTE lfUnderline;
733 BYTE lfStrikeOut;
734 BYTE lfCharSet;
735 BYTE lfOutPrecision;
736 BYTE lfClipPrecision;
737 BYTE lfQuality;
738 BYTE lfPitchAndFamily;
739 TCHAR lfFaceName[LF_FACESIZE];
740 } LOGFONT, *LPLOGFONT, *PLOGFONT;
741
742 typedef struct {
743 DWORD lStructSize;
744 HWND hwndOwner;
745 HDC hDC;
746 LPLOGFONT lpLogFont;
747 INT iPointSize;
748 DWORD Flags;
749 DWORD rgbColors;
750 LPARAM lCustData;
751 LPCFHOOKPROC lpfnHook;
752 LPCTSTR lpTemplateName;
753 HINSTANCE hInstance;
754 LPTSTR lpszStyle;
755 WORD nFontType;
756 WORD ___MISSING_ALIGNMENT__;
757 INT nSizeMin;
758 INT nSizeMax;
759 } CHOOSEFONT, *LPCHOOSEFONT;
760
761 typedef struct _IDA {
762 UINT cidl;
763 UINT aoffset[1];
764 } CIDA, * LPIDA;
765
766 typedef struct tagCLIENTCREATESTRUCT {
767 HANDLE hWindowMenu;
768 UINT idFirstChild;
769 } CLIENTCREATESTRUCT;
770
771 typedef CLIENTCREATESTRUCT *LPCLIENTCREATESTRUCT;
772
773 typedef struct _CMInvokeCommandInfo {
774 DWORD cbSize;
775 DWORD fMask;
776 HWND hwnd;
777 LPCSTR lpVerb;
778 LPCSTR lpParameters;
779 LPCSTR lpDirectory;
780 int nShow;
781 DWORD dwHotKey;
782 HANDLE hIcon;
783 } CMINVOKECOMMANDINFO, *LPCMINVOKECOMMANDINFO;
784
785 typedef struct tagCOLORADJUSTMENT {
786 WORD caSize;
787 WORD caFlags;
788 WORD caIlluminantIndex;
789 WORD caRedGamma;
790 WORD caGreenGamma;
791 WORD caBlueGamma;
792 WORD caReferenceBlack;
793 WORD caReferenceWhite;
794 SHORT caContrast;
795 SHORT caBrightness;
796 SHORT caColorfulness;
797 SHORT caRedGreenTint;
798 } COLORADJUSTMENT, *LPCOLORADJUSTMENT;
799
800 typedef struct _COLORMAP {
801 COLORREF from;
802 COLORREF to;
803 } COLORMAP, * LPCOLORMAP;
804
805 typedef struct _DCB {
806 DWORD DCBlength;
807 DWORD BaudRate;
808 DWORD fBinary: 1;
809 DWORD fParity: 1;
810 DWORD fOutxCtsFlow:1;
811 DWORD fOutxDsrFlow:1;
812 DWORD fDtrControl:2;
813 DWORD fDsrSensitivity:1;
814 DWORD fTXContinueOnXoff:1;
815 DWORD fOutX: 1;
816 DWORD fInX: 1;
817 DWORD fErrorChar: 1;
818 DWORD fNull: 1;
819 DWORD fRtsControl:2;
820 DWORD fAbortOnError:1;
821 DWORD fDummy2:17;
822 WORD wReserved;
823 WORD XonLim;
824 WORD XoffLim;
825 BYTE ByteSize;
826 BYTE Parity;
827 BYTE StopBits;
828 char XonChar;
829 char XoffChar;
830 char ErrorChar;
831 char EofChar;
832 char EvtChar;
833 WORD wReserved1;
834 } DCB, *LPDCB;
835
836 typedef struct _COMM_CONFIG {
837 DWORD dwSize;
838 WORD wVersion;
839 WORD wReserved;
840 DCB dcb;
841 DWORD dwProviderSubType;
842 DWORD dwProviderOffset;
843 DWORD dwProviderSize;
844 WCHAR wcProviderData[1];
845 } COMMCONFIG, *LPCOMMCONFIG;
846
847 typedef struct _COMMPROP {
848 WORD wPacketLength;
849 WORD wPacketVersion;
850 DWORD dwServiceMask;
851 DWORD dwReserved1;
852 DWORD dwMaxTxQueue;
853 DWORD dwMaxRxQueue;
854 DWORD dwMaxBaud;
855 DWORD dwProvSubType;
856 DWORD dwProvCapabilities;
857 DWORD dwSettableParams;
858 DWORD dwSettableBaud;
859 WORD wSettableData;
860 WORD wSettableStopParity;
861 DWORD dwCurrentTxQueue;
862 DWORD dwCurrentRxQueue;
863 DWORD dwProvSpec1;
864 DWORD dwProvSpec2;
865 WCHAR wcProvChar[1];
866 } COMMPROP, *LPCOMMPROP;
867
868 typedef struct _COMMTIMEOUTS {
869 DWORD ReadIntervalTimeout;
870 DWORD ReadTotalTimeoutMultiplier;
871 DWORD ReadTotalTimeoutConstant;
872 DWORD WriteTotalTimeoutMultiplier;
873 DWORD WriteTotalTimeoutConstant;
874 } COMMTIMEOUTS,*LPCOMMTIMEOUTS;
875
876 typedef struct tagCOMPAREITEMSTRUCT {
877 UINT CtlType;
878 UINT CtlID;
879 HWND hwndItem;
880 UINT itemID1;
881 DWORD itemData1;
882 UINT itemID2;
883 DWORD itemData2;
884 } COMPAREITEMSTRUCT;
885
886 typedef struct {
887 COLORREF crText;
888 COLORREF crBackground;
889 DWORD dwEffects;
890 } COMPCOLOR;
891
892 typedef struct _tagCOMPOSITIONFORM {
893 DWORD dwStyle;
894 POINT ptCurrentPos;
895 RECT rcArea;
896 } COMPOSITIONFORM, *LPCOMPOSITIONFORM;
897
898 typedef struct _COMSTAT {
899 DWORD fCtsHold : 1;
900 DWORD fDsrHold : 1;
901 DWORD fRlsdHold : 1;
902 DWORD fXoffHold : 1;
903 DWORD fXoffSent : 1;
904 DWORD fEof : 1;
905 DWORD fTxim : 1;
906 DWORD fReserved : 25;
907 DWORD cbInQue;
908 DWORD cbOutQue;
909 } COMSTAT, *LPCOMSTAT;
910
911 typedef struct _CONSOLE_CURSOR_INFO {
912 DWORD dwSize;
913 WINBOOL bVisible;
914 } CONSOLE_CURSOR_INFO, *PCONSOLE_CURSOR_INFO;
915
916 typedef struct _SMALL_RECT {
917 SHORT Left;
918 SHORT Top;
919 SHORT Right;
920 SHORT Bottom;
921 } SMALL_RECT, *PSMALL_RECT;
922
923 typedef struct _CONSOLE_SCREEN_BUFFER_INFO {
924 COORD dwSize;
925 COORD dwCursorPosition;
926 WORD wAttributes;
927 SMALL_RECT srWindow;
928 COORD dwMaximumWindowSize;
929 } CONSOLE_SCREEN_BUFFER_INFO, *PCONSOLE_SCREEN_BUFFER_INFO ;
930
931 typedef struct tagCONVCONTEXT {
932 UINT cb;
933 UINT wFlags;
934 UINT wCountryID;
935 int iCodePage;
936 DWORD dwLangID;
937 DWORD dwSecurity;
938 SECURITY_QUALITY_OF_SERVICE qos;
939 } CONVCONTEXT;
940
941 typedef CONVCONTEXT *PCONVCONTEXT;
942
943 typedef struct tagCONVINFO {
944 DWORD cb;
945 DWORD hUser;
946 HCONV hConvPartner;
947 HSZ hszSvcPartner;
948 HSZ hszServiceReq;
949 HSZ hszTopic;
950 HSZ hszItem;
951 UINT wFmt;
952 UINT wType;
953 UINT wStatus;
954 UINT wConvst;
955 UINT wLastError;
956 HCONVLIST hConvList;
957 CONVCONTEXT ConvCtxt;
958 HWND hwnd;
959 HWND hwndPartner;
960 } CONVINFO;
961
962 typedef struct tagCOPYDATASTRUCT {
963 DWORD dwData;
964 DWORD cbData;
965 PVOID lpData;
966 } COPYDATASTRUCT;
967
968 typedef struct _cpinfo {
969 UINT MaxCharSize;
970 BYTE DefaultChar[MAX_DEFAULTCHAR];
971 BYTE LeadByte[MAX_LEADBYTES];
972 } CPINFO, *LPCPINFO;
973
974 typedef struct tagCPLINFO {
975 int idIcon;
976 int idName;
977 int idInfo;
978 LONG lData;
979 } CPLINFO;
980
981 typedef struct _CREATE_PROCESS_DEBUG_INFO {
982 HANDLE hFile;
983 HANDLE hProcess;
984 HANDLE hThread;
985 LPVOID lpBaseOfImage;
986 DWORD dwDebugInfoFileOffset;
987 DWORD nDebugInfoSize;
988 LPVOID lpThreadLocalBase;
989 LPTHREAD_START_ROUTINE lpStartAddress;
990 LPVOID lpImageName;
991 WORD fUnicode;
992 } CREATE_PROCESS_DEBUG_INFO;
993
994 typedef struct _CREATE_THREAD_DEBUG_INFO {
995 HANDLE hThread;
996 LPVOID lpThreadLocalBase;
997 LPTHREAD_START_ROUTINE lpStartAddress;
998 } CREATE_THREAD_DEBUG_INFO;
999
1000 /*
1001 TODO: sockets
1002 typedef struct _SOCKET_ADDRESS {
1003 LPSOCKADDR lpSockaddr ;
1004 INT iSockaddrLength ;
1005 } SOCKET_ADDRESS, *PSOCKET_ADDRESS, *LPSOCKET_ADDRESS;
1006 */
1007
1008 /*
1009 typedef struct _CSADDR_INFO {
1010 SOCKET_ADDRESS LocalAddr;
1011 SOCKET_ADDRESS RemoteAddr;
1012 INT iSocketType;
1013 INT iProtocol;
1014 } CSADDR_INFO;
1015 */
1016
1017 typedef struct _currencyfmt {
1018 UINT NumDigits;
1019 UINT LeadingZero;
1020 UINT Grouping;
1021 LPTSTR lpDecimalSep;
1022 LPTSTR lpThousandSep;
1023 UINT NegativeOrder;
1024 UINT PositiveOrder;
1025 LPTSTR lpCurrencySymbol;
1026 } CURRENCYFMT;
1027
1028 typedef struct tagCURSORSHAPE {
1029 int xHotSpot;
1030 int yHotSpot;
1031 int cx;
1032 int cy;
1033 int cbWidth;
1034 BYTE Planes;
1035 BYTE BitsPixel;
1036 } CURSORSHAPE, *LPCURSORSHAPE;
1037
1038 typedef struct tagCWPRETSTRUCT {
1039 LRESULT lResult;
1040 LPARAM lParam;
1041 WPARAM wParam;
1042 DWORD message;
1043 HWND hwnd;
1044 } CWPRETSTRUCT;
1045
1046 typedef struct tagCWPSTRUCT {
1047 LPARAM lParam;
1048 WPARAM wParam;
1049 UINT message;
1050 HWND hwnd;
1051 } CWPSTRUCT;
1052
1053 typedef struct _DATATYPES_INFO_1 {
1054 LPTSTR pName;
1055 } DATATYPES_INFO_1;
1056
1057 typedef struct {
1058 unsigned short bAppReturnCode:8,
1059 reserved:6,
1060 fBusy:1,
1061 fAck:1;
1062 } DDEACK;
1063
1064 typedef struct {
1065 unsigned short reserved:14,
1066 fDeferUpd:1,
1067 fAckReq:1;
1068 short cfFormat;
1069 } DDEADVISE;
1070
1071 typedef struct {
1072 unsigned short unused:12,
1073 fResponse:1,
1074 fRelease:1,
1075 reserved:1,
1076 fAckReq:1;
1077 short cfFormat;
1078 BYTE Value[1];
1079 } DDEDATA;
1080
1081 typedef struct {
1082 unsigned short unused:13,
1083 fRelease:1,
1084 fDeferUpd:1,
1085 fAckReq:1;
1086 short cfFormat;
1087 } DDELN;
1088
1089 typedef struct tagDDEML_MSG_HOOK_DATA {
1090 UINT uiLo;
1091 UINT uiHi;
1092 DWORD cbData;
1093 DWORD Data[8];
1094 } DDEML_MSG_HOOK_DATA;
1095
1096 typedef struct {
1097 unsigned short unused:13,
1098 fRelease:1,
1099 fReserved:2;
1100 short cfFormat;
1101 BYTE Value[1];
1102 } DDEPOKE;
1103
1104 typedef struct {
1105 unsigned short unused:12,
1106 fAck:1,
1107 fRelease:1,
1108 fReserved:1,
1109 fAckReq:1;
1110 short cfFormat;
1111 BYTE rgb[1];
1112 } DDEUP;
1113
1114 typedef struct _EXCEPTION_DEBUG_INFO {
1115 EXCEPTION_RECORD ExceptionRecord;
1116 DWORD dwFirstChance;
1117 } EXCEPTION_DEBUG_INFO;
1118
1119 typedef struct _EXIT_PROCESS_DEBUG_INFO {
1120 DWORD dwExitCode;
1121 } EXIT_PROCESS_DEBUG_INFO;
1122
1123 typedef struct _EXIT_THREAD_DEBUG_INFO {
1124 DWORD dwExitCode;
1125 } EXIT_THREAD_DEBUG_INFO;
1126
1127 typedef struct _LOAD_DLL_DEBUG_INFO {
1128 HANDLE hFile;
1129 LPVOID lpBaseOfDll;
1130 DWORD dwDebugInfoFileOffset;
1131 DWORD nDebugInfoSize;
1132 LPVOID lpImageName;
1133 WORD fUnicode;
1134 } LOAD_DLL_DEBUG_INFO;
1135
1136 typedef struct _UNLOAD_DLL_DEBUG_INFO {
1137 LPVOID lpBaseOfDll;
1138 } UNLOAD_DLL_DEBUG_INFO;
1139
1140 typedef struct _OUTPUT_DEBUG_STRING_INFO {
1141 LPSTR lpDebugStringData;
1142 WORD fUnicode;
1143 WORD nDebugStringLength;
1144 } OUTPUT_DEBUG_STRING_INFO;
1145
1146 typedef struct _RIP_INFO {
1147 DWORD dwError;
1148 DWORD dwType;
1149 } RIP_INFO;
1150
1151 typedef struct _DEBUG_EVENT {
1152 DWORD dwDebugEventCode;
1153 DWORD dwProcessId;
1154 DWORD dwThreadId;
1155 union {
1156 EXCEPTION_DEBUG_INFO Exception;
1157 CREATE_THREAD_DEBUG_INFO CreateThread;
1158 CREATE_PROCESS_DEBUG_INFO CreateProcessInfo;
1159 EXIT_THREAD_DEBUG_INFO ExitThread;
1160 EXIT_PROCESS_DEBUG_INFO ExitProcess;
1161 LOAD_DLL_DEBUG_INFO LoadDll;
1162 UNLOAD_DLL_DEBUG_INFO UnloadDll;
1163 OUTPUT_DEBUG_STRING_INFO DebugString;
1164 RIP_INFO RipInfo;
1165 } u;
1166 } DEBUG_EVENT, *LPDEBUG_EVENT;
1167
1168 typedef struct tagDEBUGHOOKINFO {
1169 DWORD idThread;
1170 DWORD idThreadInstaller;
1171 LPARAM lParam;
1172 WPARAM wParam;
1173 int code;
1174 } DEBUGHOOKINFO;
1175
1176 typedef struct tagDELETEITEMSTRUCT {
1177 UINT CtlType;
1178 UINT CtlID;
1179 UINT itemID;
1180 HWND hwndItem;
1181 UINT itemData;
1182 } DELETEITEMSTRUCT;
1183
1184 typedef struct _DEV_BROADCAST_HDR {
1185 ULONG dbch_size;
1186 ULONG dbch_devicetype;
1187 ULONG dbch_reserved;
1188 } DEV_BROADCAST_HDR;
1189 typedef DEV_BROADCAST_HDR *PDEV_BROADCAST_HDR;
1190
1191 typedef struct _DEV_BROADCAST_OEM {
1192 ULONG dbco_size;
1193 ULONG dbco_devicetype;
1194 ULONG dbco_reserved;
1195 ULONG dbco_identifier;
1196 ULONG dbco_suppfunc;
1197 } DEV_BROADCAST_OEM;
1198 typedef DEV_BROADCAST_OEM *PDEV_BROADCAST_OEM;
1199
1200 typedef struct _DEV_BROADCAST_PORT {
1201 ULONG dbcp_size;
1202 ULONG dbcp_devicetype;
1203 ULONG dbcp_reserved;
1204 char dbcp_name[1];
1205 } DEV_BROADCAST_PORT;
1206 typedef DEV_BROADCAST_PORT *PDEV_BROADCAST_PORT;
1207
1208 struct _DEV_BROADCAST_USERDEFINED {
1209 struct _DEV_BROADCAST_HDR dbud_dbh;
1210 char dbud_szName[1];
1211 BYTE dbud_rgbUserDefined[1];
1212 };
1213
1214 typedef struct _DEV_BROADCAST_VOLUME {
1215 ULONG dbcv_size;
1216 ULONG dbcv_devicetype;
1217 ULONG dbcv_reserved;
1218 ULONG dbcv_unitmask;
1219 USHORT dbcv_flags;
1220 } DEV_BROADCAST_VOLUME;
1221 typedef DEV_BROADCAST_VOLUME *PDEV_BROADCAST_VOLUME;
1222
1223 typedef struct _devicemode {
1224 BCHAR dmDeviceName[CCHDEVICENAME];
1225 WORD dmSpecVersion;
1226 WORD dmDriverVersion;
1227 WORD dmSize;
1228 WORD dmDriverExtra;
1229 DWORD dmFields;
1230 short dmOrientation;
1231 short dmPaperSize;
1232 short dmPaperLength;
1233 short dmPaperWidth;
1234 short dmScale;
1235 short dmCopies;
1236 short dmDefaultSource;
1237 short dmPrintQuality;
1238 short dmColor;
1239 short dmDuplex;
1240 short dmYResolution;
1241 short dmTTOption;
1242 short dmCollate;
1243 BCHAR dmFormName[CCHFORMNAME];
1244 WORD dmLogPixels;
1245 DWORD dmBitsPerPel;
1246 DWORD dmPelsWidth;
1247 DWORD dmPelsHeight;
1248 DWORD dmDisplayFlags;
1249 DWORD dmDisplayFrequency;
1250 DWORD dmICMMethod;
1251 DWORD dmICMIntent;
1252 DWORD dmMediaType;
1253 DWORD dmDitherType;
1254 DWORD dmICCManufacturer;
1255 DWORD dmICCModel;
1256 } DEVMODE, *LPDEVMODE;
1257
1258 typedef struct tagDEVNAMES {
1259 WORD wDriverOffset;
1260 WORD wDeviceOffset;
1261 WORD wOutputOffset;
1262 WORD wDefault;
1263 } DEVNAMES, *LPDEVNAMES;
1264
1265 typedef struct tagDIBSECTION {
1266 BITMAP dsBm;
1267 BITMAPINFOHEADER dsBmih;
1268 DWORD dsBitfields[3];
1269 HANDLE dshSection;
1270 DWORD dsOffset;
1271 } DIBSECTION;
1272
1273 typedef struct _DISK_PERFORMANCE {
1274 LARGE_INTEGER BytesRead;
1275 LARGE_INTEGER BytesWritten;
1276 LARGE_INTEGER ReadTime;
1277 LARGE_INTEGER WriteTime;
1278 DWORD ReadCount;
1279 DWORD WriteCount;
1280 DWORD QueueDepth;
1281 } DISK_PERFORMANCE ;
1282
1283 typedef struct {
1284 DWORD style;
1285 DWORD dwExtendedStyle;
1286 short x;
1287 short y;
1288 short cx;
1289 short cy;
1290 WORD id;
1291 } DLGITEMTEMPLATE PACKED;
1292
1293 typedef DLGITEMTEMPLATE *LPDLGITEMTEMPLATE;
1294 typedef DLGITEMTEMPLATE *PDLGITEMTEMPLATE;
1295
1296 typedef struct {
1297 DWORD style;
1298 DWORD dwExtendedStyle;
1299 WORD cdit;
1300 short x;
1301 short y;
1302 short cx;
1303 short cy;
1304 } DLGTEMPLATE PACKED;
1305
1306 typedef DLGTEMPLATE *LPDLGTEMPLATE;
1307 typedef const DLGTEMPLATE *LPCDLGTEMPLATE;
1308
1309 typedef struct _DOC_INFO_1 {
1310 LPTSTR pDocName;
1311 LPTSTR pOutputFile;
1312 LPTSTR pDatatype;
1313 } DOC_INFO_1;
1314
1315 typedef struct _DOC_INFO_2 {
1316 LPTSTR pDocName;
1317 LPTSTR pOutputFile;
1318 LPTSTR pDatatype;
1319 DWORD dwMode;
1320 DWORD JobId;
1321 } DOC_INFO_2;
1322
1323 typedef struct {
1324 int cbSize;
1325 LPCTSTR lpszDocName;
1326 LPCTSTR lpszOutput;
1327 LPCTSTR lpszDatatype;
1328 DWORD fwType;
1329 } DOCINFO, *PDOCINFO;
1330
1331 typedef struct {
1332 UINT uNotification;
1333 HWND hWnd;
1334 POINT ptCursor;
1335 } DRAGLISTINFO, *LPDRAGLISTINFO;
1336
1337 typedef struct tagDRAWITEMSTRUCT {
1338 UINT CtlType;
1339 UINT CtlID;
1340 UINT itemID;
1341 UINT itemAction;
1342 UINT itemState;
1343 HWND hwndItem;
1344 HDC hDC;
1345 RECT rcItem;
1346 DWORD itemData;
1347 } DRAWITEMSTRUCT, *LPDRAWITEMSTRUCT, *PDRAWITEMSTRUCT;
1348
1349 typedef struct {
1350 UINT cbSize;
1351 int iTabLength;
1352 int iLeftMargin;
1353 int iRightMargin;
1354 UINT uiLengthDrawn;
1355 } DRAWTEXTPARAMS, *LPDRAWTEXTPARAMS;
1356
1357
1358
1359 typedef struct _DRIVER_INFO_1 {
1360 LPTSTR pName;
1361 } DRIVER_INFO_1;
1362
1363 typedef struct _DRIVER_INFO_2 {
1364 DWORD cVersion;
1365 LPTSTR pName;
1366 LPTSTR pEnvironment;
1367 LPTSTR pDriverPath;
1368 LPTSTR pDataFile;
1369 LPTSTR pConfigFile;
1370 } DRIVER_INFO_2;
1371
1372 typedef struct _DRIVER_INFO_3 {
1373 DWORD cVersion;
1374 LPTSTR pName;
1375 LPTSTR pEnvironment;
1376 LPTSTR pDriverPath;
1377 LPTSTR pDataFile;
1378 LPTSTR pConfigFile;
1379 LPTSTR pHelpFile;
1380 LPTSTR pDependentFiles;
1381 LPTSTR pMonitorName;
1382 LPTSTR pDefaultDataType;
1383 } DRIVER_INFO_3;
1384
1385 typedef struct _editstream {
1386 DWORD dwCookie;
1387 DWORD dwError;
1388 EDITSTREAMCALLBACK pfnCallback;
1389 } EDITSTREAM;
1390
1391 typedef struct tagEMR
1392 {
1393 DWORD iType;
1394 DWORD nSize;
1395 } EMR, *PEMR;
1396
1397 typedef struct tagEMRANGLEARC
1398 {
1399 EMR emr;
1400 POINTL ptlCenter;
1401 DWORD nRadius;
1402 FLOAT eStartAngle;
1403 FLOAT eSweepAngle;
1404 } EMRANGLEARC, *PEMRANGLEARC;
1405
1406 typedef struct tagEMRARC
1407 {
1408 EMR emr;
1409 RECTL rclBox;
1410 POINTL ptlStart;
1411 POINTL ptlEnd;
1412 } EMRARC, *PEMRARC,
1413 EMRARCTO, *PEMRARCTO,
1414 EMRCHORD, *PEMRCHORD,
1415 EMRPIE, *PEMRPIE;
1416
1417 typedef struct _XFORM
1418 {
1419 FLOAT eM11;
1420 FLOAT eM12;
1421 FLOAT eM21;
1422 FLOAT eM22;
1423 FLOAT eDx;
1424 FLOAT eDy;
1425 } XFORM, *PXFORM, *LPXFORM;
1426
1427 typedef struct tagEMRBITBLT
1428 {
1429 EMR emr;
1430 RECTL rclBounds;
1431 LONG xDest;
1432 LONG yDest;
1433 LONG cxDest;
1434 LONG cyDest;
1435 DWORD dwRop;
1436 LONG xSrc;
1437 LONG ySrc;
1438 XFORM xformSrc;
1439 COLORREF crBkColorSrc;
1440 DWORD iUsageSrc;
1441 DWORD offBmiSrc;
1442 DWORD offBitsSrc;
1443 DWORD cbBitsSrc;
1444 } EMRBITBLT, *PEMRBITBLT;
1445
1446 typedef struct tagLOGBRUSH {
1447 UINT lbStyle;
1448 COLORREF lbColor;
1449 LONG lbHatch;
1450 } LOGBRUSH, *PLOGBRUSH;
1451
1452 typedef struct tagEMRCREATEBRUSHINDIRECT
1453 {
1454 EMR emr;
1455 DWORD ihBrush;
1456 LOGBRUSH lb;
1457 } EMRCREATEBRUSHINDIRECT, *PEMRCREATEBRUSHINDIRECT;
1458
1459 typedef LONG LCSCSTYPE;
1460 typedef LONG LCSGAMUTMATCH;
1461
1462 typedef struct tagLOGCOLORSPACE {
1463 DWORD lcsSignature;
1464 DWORD lcsVersion;
1465 DWORD lcsSize;
1466
1467 LCSCSTYPE lcsCSType;
1468 LCSGAMUTMATCH lcsIntent;
1469 CIEXYZTRIPLE lcsEndpoints;
1470 DWORD lcsGammaRed;
1471 DWORD lcsGammaGreen;
1472 DWORD lcsGammaBlue;
1473 TCHAR lcsFilename[MAX_PATH];
1474 } LOGCOLORSPACE, *LPLOGCOLORSPACE;
1475
1476 typedef struct tagEMRCREATECOLORSPACE
1477 {
1478 EMR emr;
1479 DWORD ihCS;
1480 LOGCOLORSPACE lcs;
1481 } EMRCREATECOLORSPACE, *PEMRCREATECOLORSPACE;
1482
1483 typedef struct tagEMRCREATEDIBPATTERNBRUSHPT
1484 {
1485 EMR emr;
1486 DWORD ihBrush;
1487 DWORD iUsage;
1488 DWORD offBmi;
1489 DWORD cbBmi;
1490 DWORD offBits;
1491 DWORD cbBits;
1492 } EMRCREATEDIBPATTERNBRUSHPT,
1493 PEMRCREATEDIBPATTERNBRUSHPT;
1494
1495 typedef struct tagEMRCREATEMONOBRUSH
1496 {
1497 EMR emr;
1498 DWORD ihBrush;
1499 DWORD iUsage;
1500 DWORD offBmi;
1501 DWORD cbBmi;
1502 DWORD offBits;
1503 DWORD cbBits;
1504 } EMRCREATEMONOBRUSH, *PEMRCREATEMONOBRUSH;
1505
1506 typedef struct tagPALETTEENTRY {
1507 BYTE peRed;
1508 BYTE peGreen;
1509 BYTE peBlue;
1510 BYTE peFlags;
1511 } PALETTEENTRY, *LPPALETTEENTRY, *PPALETTEENTRY;
1512
1513 typedef struct tagLOGPALETTE {
1514 WORD palVersion;
1515 WORD palNumEntries;
1516 PALETTEENTRY palPalEntry[1];
1517 } LOGPALETTE, *LPLOGPALETTE, *PLOGPALETTE;
1518
1519 typedef struct tagEMRCREATEPALETTE
1520 {
1521 EMR emr;
1522 DWORD ihPal;
1523 LOGPALETTE lgpl;
1524 } EMRCREATEPALETTE, *PEMRCREATEPALETTE;
1525
1526 typedef struct tagLOGPEN {
1527 UINT lopnStyle;
1528 POINT lopnWidth;
1529 COLORREF lopnColor;
1530 } LOGPEN, *PLOGPEN;
1531
1532 typedef struct tagEMRCREATEPEN
1533 {
1534 EMR emr;
1535 DWORD ihPen;
1536 LOGPEN lopn;
1537 } EMRCREATEPEN, *PEMRCREATEPEN;
1538
1539 typedef struct tagEMRELLIPSE
1540 {
1541 EMR emr;
1542 RECTL rclBox;
1543 } EMRELLIPSE, *PEMRELLIPSE,
1544 EMRRECTANGLE, *PEMRRECTANGLE;
1545
1546 typedef struct tagEMREOF
1547 {
1548 EMR emr;
1549 DWORD nPalEntries;
1550 DWORD offPalEntries;
1551 DWORD nSizeLast;
1552 } EMREOF, *PEMREOF;
1553
1554 typedef struct tagEMREXCLUDECLIPRECT
1555 {
1556 EMR emr;
1557 RECTL rclClip;
1558 } EMREXCLUDECLIPRECT, *PEMREXCLUDECLIPRECT,
1559 EMRINTERSECTCLIPRECT, *PEMRINTERSECTCLIPRECT;
1560
1561 typedef struct tagPANOSE {
1562 BYTE bFamilyType;
1563 BYTE bSerifStyle;
1564 BYTE bWeight;
1565 BYTE bProportion;
1566 BYTE bContrast;
1567 BYTE bStrokeVariation;
1568 BYTE bArmStyle;
1569 BYTE bLetterform;
1570 BYTE bMidline;
1571 BYTE bXHeight;
1572 } PANOSE;
1573
1574 typedef struct tagEXTLOGFONT {
1575 LOGFONT elfLogFont;
1576 BCHAR elfFullName[LF_FULLFACESIZE];
1577 BCHAR elfStyle[LF_FACESIZE];
1578 DWORD elfVersion;
1579 DWORD elfStyleSize;
1580 DWORD elfMatch;
1581 DWORD elfReserved;
1582 BYTE elfVendorId[ELF_VENDOR_SIZE];
1583 DWORD elfCulture;
1584 PANOSE elfPanose;
1585 } EXTLOGFONT;
1586
1587 typedef struct tagEMREXTCREATEFONTINDIRECTW
1588 {
1589 EMR emr;
1590 DWORD ihFont;
1591 EXTLOGFONT elfw;
1592 } EMREXTCREATEFONTINDIRECTW,
1593 PEMREXTCREATEFONTINDIRECTW;
1594
1595 typedef struct tagEXTLOGPEN {
1596 UINT elpPenStyle;
1597 UINT elpWidth;
1598 UINT elpBrushStyle;
1599 COLORREF elpColor;
1600 LONG elpHatch;
1601 DWORD elpNumEntries;
1602 DWORD elpStyleEntry[1];
1603 } EXTLOGPEN;
1604
1605 typedef struct tagEMREXTCREATEPEN
1606 {
1607 EMR emr;
1608 DWORD ihPen;
1609 DWORD offBmi;
1610 DWORD cbBmi;
1611 DWORD offBits;
1612 DWORD cbBits;
1613 EXTLOGPEN elp;
1614 } EMREXTCREATEPEN, *PEMREXTCREATEPEN;
1615
1616 typedef struct tagEMREXTFLOODFILL
1617 {
1618 EMR emr;
1619 POINTL ptlStart;
1620 COLORREF crColor;
1621 DWORD iMode;
1622 } EMREXTFLOODFILL, *PEMREXTFLOODFILL;
1623
1624 typedef struct tagEMREXTSELECTCLIPRGN
1625 {
1626 EMR emr;
1627 DWORD cbRgnData;
1628 DWORD iMode;
1629 BYTE RgnData[1];
1630 } EMREXTSELECTCLIPRGN, *PEMREXTSELECTCLIPRGN;
1631
1632 typedef struct tagEMRTEXT
1633 {
1634 POINTL ptlReference;
1635 DWORD nChars;
1636 DWORD offString;
1637 DWORD fOptions;
1638 RECTL rcl;
1639 DWORD offDx;
1640 } EMRTEXT, *PEMRTEXT;
1641
1642 typedef struct tagEMREXTTEXTOUTA
1643 {
1644 EMR emr;
1645 RECTL rclBounds;
1646 DWORD iGraphicsMode;
1647 FLOAT exScale;
1648 FLOAT eyScale;
1649 EMRTEXT emrtext;
1650 } EMREXTTEXTOUTA, *PEMREXTTEXTOUTA,
1651 EMREXTTEXTOUTW, *PEMREXTTEXTOUTW;
1652
1653 typedef struct tagEMRFILLPATH
1654 {
1655 EMR emr;
1656 RECTL rclBounds;
1657 } EMRFILLPATH, *PEMRFILLPATH,
1658 EMRSTROKEANDFILLPATH, *PEMRSTROKEANDFILLPATH,
1659 EMRSTROKEPATH, *PEMRSTROKEPATH;
1660
1661 typedef struct tagEMRFILLRGN
1662 {
1663 EMR emr;
1664 RECTL rclBounds;
1665 DWORD cbRgnData;
1666 DWORD ihBrush;
1667 BYTE RgnData[1];
1668 } EMRFILLRGN, *PEMRFILLRGN;
1669
1670 typedef struct tagEMRFORMAT {
1671 DWORD dSignature;
1672 DWORD nVersion;
1673 DWORD cbData;
1674 DWORD offData;
1675 } EMRFORMAT;
1676
1677 typedef struct tagSIZE {
1678 LONG cx;
1679 LONG cy;
1680 } SIZE, *PSIZE, *LPSIZE, SIZEL, *PSIZEL, *LPSIZEL;
1681
1682 typedef struct tagEMRFRAMERGN
1683 {
1684 EMR emr;
1685 RECTL rclBounds;
1686 DWORD cbRgnData;
1687 DWORD ihBrush;
1688 SIZEL szlStroke;
1689 BYTE RgnData[1];
1690 } EMRFRAMERGN, *PEMRFRAMERGN;
1691
1692 typedef struct tagEMRGDICOMMENT
1693 {
1694 EMR emr;
1695 DWORD cbData;
1696 BYTE Data[1];
1697 } EMRGDICOMMENT, *PEMRGDICOMMENT;
1698
1699 typedef struct tagEMRINVERTRGN
1700 {
1701 EMR emr;
1702 RECTL rclBounds;
1703 DWORD cbRgnData;
1704 BYTE RgnData[1];
1705 } EMRINVERTRGN, *PEMRINVERTRGN,
1706 EMRPAINTRGN, *PEMRPAINTRGN;
1707
1708 typedef struct tagEMRLINETO
1709 {
1710 EMR emr;
1711 POINTL ptl;
1712 } EMRLINETO, *PEMRLINETO,
1713 EMRMOVETOEX, *PEMRMOVETOEX;
1714
1715 typedef struct tagEMRMASKBLT
1716 {
1717 EMR emr;
1718 RECTL rclBounds;
1719 LONG xDest;
1720 LONG yDest;
1721 LONG cxDest;
1722 LONG cyDest;
1723 DWORD dwRop;
1724 LONG xSrc;
1725 LONG ySrc;
1726 XFORM xformSrc;
1727 COLORREF crBkColorSrc;
1728 DWORD iUsageSrc;
1729 DWORD offBmiSrc;
1730 DWORD cbBmiSrc;
1731 DWORD offBitsSrc;
1732 DWORD cbBitsSrc;
1733 LONG xMask;
1734 LONG yMask;
1735 DWORD iUsageMask;
1736 DWORD offBmiMask;
1737 DWORD cbBmiMask;
1738 DWORD offBitsMask;
1739 DWORD cbBitsMask;
1740 } EMRMASKBLT, *PEMRMASKBLT;
1741
1742 typedef struct tagEMRMODIFYWORLDTRANSFORM
1743 {
1744 EMR emr;
1745 XFORM xform;
1746 DWORD iMode;
1747 } EMRMODIFYWORLDTRANSFORM,
1748 PEMRMODIFYWORLDTRANSFORM;
1749
1750 typedef struct tagEMROFFSETCLIPRGN
1751 {
1752 EMR emr;
1753 POINTL ptlOffset;
1754 } EMROFFSETCLIPRGN, *PEMROFFSETCLIPRGN;
1755
1756 typedef struct tagEMRPLGBLT
1757 {
1758 EMR emr;
1759 RECTL rclBounds;
1760 POINTL aptlDest[3];
1761 LONG xSrc;
1762 LONG ySrc;
1763 LONG cxSrc;
1764 LONG cySrc;
1765 XFORM xformSrc;
1766 COLORREF crBkColorSrc;
1767 DWORD iUsageSrc;
1768 DWORD offBmiSrc;
1769 DWORD cbBmiSrc;
1770 DWORD offBitsSrc;
1771 DWORD cbBitsSrc;
1772 LONG xMask;
1773 LONG yMask;
1774 DWORD iUsageMask;
1775 DWORD offBmiMask;
1776 DWORD cbBmiMask;
1777 DWORD offBitsMask;
1778 DWORD cbBitsMask;
1779 } EMRPLGBLT, *PEMRPLGBLT;
1780
1781 typedef struct tagEMRPOLYDRAW
1782 {
1783 EMR emr;
1784 RECTL rclBounds;
1785 DWORD cptl;
1786 POINTL aptl[1];
1787 BYTE abTypes[1];
1788 } EMRPOLYDRAW, *PEMRPOLYDRAW;
1789
1790 typedef struct tagEMRPOLYDRAW16
1791 {
1792 EMR emr;
1793 RECTL rclBounds;
1794 DWORD cpts;
1795 POINTS apts[1];
1796 BYTE abTypes[1];
1797 } EMRPOLYDRAW16, *PEMRPOLYDRAW16;
1798
1799 typedef struct tagEMRPOLYLINE
1800 {
1801 EMR emr;
1802 RECTL rclBounds;
1803 DWORD cptl;
1804 POINTL aptl[1];
1805 } EMRPOLYLINE, *PEMRPOLYLINE,
1806 EMRPOLYBEZIER, *PEMRPOLYBEZIER,
1807 EMRPOLYGON, *PEMRPOLYGON,
1808 EMRPOLYBEZIERTO, *PEMRPOLYBEZIERTO,
1809 EMRPOLYLINETO, *PEMRPOLYLINETO;
1810
1811 typedef struct tagEMRPOLYLINE16
1812 {
1813 EMR emr;
1814 RECTL rclBounds;
1815 DWORD cpts;
1816 POINTL apts[1];
1817 } EMRPOLYLINE16, *PEMRPOLYLINE16,
1818 EMRPOLYBEZIER16, *PEMRPOLYBEZIER16,
1819 EMRPOLYGON16, *PEMRPOLYGON16,
1820 EMRPOLYBEZIERTO16, *PEMRPOLYBEZIERTO16,
1821 EMRPOLYLINETO16, *PEMRPOLYLINETO16;
1822
1823 typedef struct tagEMRPOLYPOLYLINE
1824 {
1825 EMR emr;
1826 RECTL rclBounds;
1827 DWORD nPolys;
1828 DWORD cptl;
1829 DWORD aPolyCounts[1];
1830 POINTL aptl[1];
1831 } EMRPOLYPOLYLINE, *PEMRPOLYPOLYLINE,
1832 EMRPOLYPOLYGON, *PEMRPOLYPOLYGON;
1833
1834 typedef struct tagEMRPOLYPOLYLINE16
1835 {
1836 EMR emr;
1837 RECTL rclBounds;
1838 DWORD nPolys;
1839 DWORD cpts;
1840 DWORD aPolyCounts[1];
1841 POINTS apts[1];
1842 } EMRPOLYPOLYLINE16, *PEMRPOLYPOLYLINE16,
1843 EMRPOLYPOLYGON16, *PEMRPOLYPOLYGON16;
1844
1845 typedef struct tagEMRPOLYTEXTOUTA
1846 {
1847 EMR emr;
1848 RECTL rclBounds;
1849 DWORD iGraphicsMode;
1850 FLOAT exScale;
1851 FLOAT eyScale;
1852 LONG cStrings;
1853 EMRTEXT aemrtext[1];
1854 } EMRPOLYTEXTOUTA, *PEMRPOLYTEXTOUTA,
1855 EMRPOLYTEXTOUTW, *PEMRPOLYTEXTOUTW;
1856
1857 typedef struct tagEMRRESIZEPALETTE
1858 {
1859 EMR emr;
1860 DWORD ihPal;
1861 DWORD cEntries;
1862 } EMRRESIZEPALETTE, *PEMRRESIZEPALETTE;
1863
1864 typedef struct tagEMRRESTOREDC
1865 {
1866 EMR emr;
1867 LONG iRelative;
1868 } EMRRESTOREDC, *PEMRRESTOREDC;
1869
1870 typedef struct tagEMRROUNDRECT
1871 {
1872 EMR emr;
1873 RECTL rclBox;
1874 SIZEL szlCorner;
1875 } EMRROUNDRECT, *PEMRROUNDRECT;
1876
1877 typedef struct tagEMRSCALEVIEWPORTEXTEX
1878 {
1879 EMR emr;
1880 LONG xNum;
1881 LONG xDenom;
1882 LONG yNum;
1883 LONG yDenom;
1884 } EMRSCALEVIEWPORTEXTEX, *PEMRSCALEVIEWPORTEXTEX,
1885 EMRSCALEWINDOWEXTEX, *PEMRSCALEWINDOWEXTEX;
1886
1887 typedef struct tagEMRSELECTCOLORSPACE
1888 {
1889 EMR emr;
1890 DWORD ihCS;
1891 } EMRSELECTCOLORSPACE, *PEMRSELECTCOLORSPACE,
1892 EMRDELETECOLORSPACE, *PEMRDELETECOLORSPACE;
1893 typedef struct tagEMRSELECTOBJECT
1894 {
1895 EMR emr;
1896 DWORD ihObject;
1897 } EMRSELECTOBJECT, *PEMRSELECTOBJECT,
1898 EMRDELETEOBJECT, *PEMRDELETEOBJECT;
1899
1900 typedef struct tagEMRSELECTPALETTE
1901 {
1902 EMR emr;
1903 DWORD ihPal;
1904 } EMRSELECTPALETTE, *PEMRSELECTPALETTE;
1905
1906 typedef struct tagEMRSETARCDIRECTION
1907 {
1908 EMR emr;
1909 DWORD iArcDirection;
1910 } EMRSETARCDIRECTION, *PEMRSETARCDIRECTION;
1911
1912 typedef struct tagEMRSETTEXTCOLOR
1913 {
1914 EMR emr;
1915 COLORREF crColor;
1916 } EMRSETBKCOLOR, *PEMRSETBKCOLOR,
1917 EMRSETTEXTCOLOR, *PEMRSETTEXTCOLOR;
1918
1919 typedef struct tagEMRSETCOLORADJUSTMENT
1920 {
1921 EMR emr;
1922 COLORADJUSTMENT ColorAdjustment;
1923 } EMRSETCOLORADJUSTMENT, *PEMRSETCOLORADJUSTMENT;
1924
1925 typedef struct tagEMRSETDIBITSTODEVICE
1926 {
1927 EMR emr;
1928 RECTL rclBounds;
1929 LONG xDest;
1930 LONG yDest;
1931 LONG xSrc;
1932 LONG ySrc;
1933 LONG cxSrc;
1934 LONG cySrc;
1935 DWORD offBmiSrc;
1936 DWORD cbBmiSrc;
1937 DWORD offBitsSrc;
1938 DWORD cbBitsSrc;
1939 DWORD iUsageSrc;
1940 DWORD iStartScan;
1941 DWORD cScans;
1942 } EMRSETDIBITSTODEVICE, *PEMRSETDIBITSTODEVICE;
1943
1944 typedef struct tagEMRSETMAPPERFLAGS
1945 {
1946 EMR emr;
1947 DWORD dwFlags;
1948 } EMRSETMAPPERFLAGS, *PEMRSETMAPPERFLAGS;
1949
1950 typedef struct tagEMRSETMITERLIMIT
1951 {
1952 EMR emr;
1953 FLOAT eMiterLimit;
1954 } EMRSETMITERLIMIT, *PEMRSETMITERLIMIT;
1955
1956 typedef struct tagEMRSETPALETTEENTRIES
1957 {
1958 EMR emr;
1959 DWORD ihPal;
1960 DWORD iStart;
1961 DWORD cEntries;
1962 PALETTEENTRY aPalEntries[1];
1963 } EMRSETPALETTEENTRIES, *PEMRSETPALETTEENTRIES;
1964
1965 typedef struct tagEMRSETPIXELV
1966 {
1967 EMR emr;
1968 POINTL ptlPixel;
1969 COLORREF crColor;
1970 } EMRSETPIXELV, *PEMRSETPIXELV;
1971
1972 typedef struct tagEMRSETVIEWPORTEXTEX
1973 {
1974 EMR emr;
1975 SIZEL szlExtent;
1976 } EMRSETVIEWPORTEXTEX, *PEMRSETVIEWPORTEXTEX,
1977 EMRSETWINDOWEXTEX, *PEMRSETWINDOWEXTEX;
1978
1979 typedef struct tagEMRSETVIEWPORTORGEX
1980 {
1981 EMR emr;
1982 POINTL ptlOrigin;
1983 } EMRSETVIEWPORTORGEX, *PEMRSETVIEWPORTORGEX,
1984 EMRSETWINDOWORGEX, *PEMRSETWINDOWORGEX,
1985 EMRSETBRUSHORGEX, *PEMRSETBRUSHORGEX;
1986
1987 typedef struct tagEMRSETWORLDTRANSFORM
1988 {
1989 EMR emr;
1990 XFORM xform;
1991 } EMRSETWORLDTRANSFORM, *PEMRSETWORLDTRANSFORM;
1992
1993 typedef struct tagEMRSTRETCHBLT
1994 {
1995 EMR emr;
1996 RECTL rclBounds;
1997 LONG xDest;
1998 LONG yDest;
1999 LONG cxDest;
2000 LONG cyDest;
2001 DWORD dwRop;
2002 LONG xSrc;
2003 LONG ySrc;
2004 XFORM xformSrc;
2005 COLORREF crBkColorSrc;
2006 DWORD iUsageSrc;
2007 DWORD offBmiSrc;
2008 DWORD cbBmiSrc;
2009 DWORD offBitsSrc;
2010 DWORD cbBitsSrc;
2011 LONG cxSrc;
2012 LONG cySrc;
2013 } EMRSTRETCHBLT, *PEMRSTRETCHBLT;
2014
2015 typedef struct tagEMRSTRETCHDIBITS
2016 {
2017 EMR emr;
2018 RECTL rclBounds;
2019 LONG xDest;
2020 LONG yDest;
2021 LONG xSrc;
2022 LONG ySrc;
2023 LONG cxSrc;
2024 LONG cySrc;
2025 DWORD offBmiSrc;
2026 DWORD cbBmiSrc;
2027 DWORD offBitsSrc;
2028 DWORD cbBitsSrc;
2029 DWORD iUsageSrc;
2030 DWORD dwRop;
2031 LONG cxDest;
2032 LONG cyDest;
2033 } EMRSTRETCHDIBITS, *PEMRSTRETCHDIBITS;
2034
2035 typedef struct tagABORTPATH
2036 {
2037 EMR emr;
2038 } EMRABORTPATH, *PEMRABORTPATH,
2039 EMRBEGINPATH, *PEMRBEGINPATH,
2040 EMRENDPATH, *PEMRENDPATH,
2041 EMRCLOSEFIGURE, *PEMRCLOSEFIGURE,
2042 EMRFLATTENPATH, *PEMRFLATTENPATH,
2043 EMRWIDENPATH, *PEMRWIDENPATH,
2044 EMRSETMETARGN, *PEMRSETMETARGN,
2045 EMRSAVEDC, *PEMRSAVEDC,
2046 EMRREALIZEPALETTE, *PEMRREALIZEPALETTE;
2047
2048 typedef struct tagEMRSELECTCLIPPATH
2049 {
2050 EMR emr;
2051 DWORD iMode;
2052 } EMRSELECTCLIPPATH, *PEMRSELECTCLIPPATH,
2053 EMRSETBKMODE, *PEMRSETBKMODE,
2054 EMRSETMAPMODE, *PEMRSETMAPMODE,
2055 EMRSETPOLYFILLMODE, *PEMRSETPOLYFILLMODE,
2056 EMRSETROP2, *PEMRSETROP2,
2057 EMRSETSTRETCHBLTMODE, *PEMRSETSTRETCHBLTMODE,
2058 EMRSETTEXTALIGN, *PEMRSETTEXTALIGN,
2059 EMRENABLEICM, *PEMRENABLEICM;
2060
2061 typedef struct tagNMHDR {
2062 HWND hwndFrom;
2063 UINT idFrom;
2064 UINT code;
2065 } NMHDR;
2066
2067 typedef struct _encorrecttext {
2068 NMHDR nmhdr;
2069 CHARRANGE chrg;
2070 WORD seltyp;
2071 } ENCORRECTTEXT;
2072
2073 typedef struct _endropfiles {
2074 NMHDR nmhdr;
2075 HANDLE hDrop;
2076 LONG cp;
2077 WINBOOL fProtected;
2078 } ENDROPFILES;
2079
2080 typedef struct {
2081 NMHDR nmhdr;
2082 LONG cObjectCount;
2083 LONG cch;
2084 } ENSAVECLIPBOARD;
2085
2086 typedef struct {
2087 NMHDR nmhdr;
2088 LONG iob;
2089 LONG lOper;
2090 HRESULT hr;
2091 } ENOLEOPFAILED;
2092
2093 typedef struct tagENHMETAHEADER {
2094 DWORD iType;
2095 DWORD nSize;
2096 RECTL rclBounds;
2097 RECTL rclFrame;
2098 DWORD dSignature;
2099 DWORD nVersion;
2100 DWORD nBytes;
2101 DWORD nRecords;
2102 WORD nHandles;
2103 WORD sReserved;
2104 DWORD nDescription;
2105 DWORD offDescription;
2106 DWORD nPalEntries;
2107 SIZEL szlDevice;
2108 SIZEL szlMillimeters;
2109 } ENHMETAHEADER, *LPENHMETAHEADER;
2110
2111 typedef struct tagENHMETARECORD {
2112 DWORD iType;
2113 DWORD nSize;
2114 DWORD dParm[1];
2115 } ENHMETARECORD, *PENHMETARECORD, *LPENHMETARECORD;
2116
2117 typedef struct _enprotected {
2118 NMHDR nmhdr;
2119 UINT msg;
2120 WPARAM wParam;
2121 LPARAM lParam;
2122 CHARRANGE chrg;
2123 } ENPROTECTED;
2124
2125 typedef struct _SERVICE_STATUS {
2126 DWORD dwServiceType;
2127 DWORD dwCurrentState;
2128 DWORD dwControlsAccepted;
2129 DWORD dwWin32ExitCode;
2130 DWORD dwServiceSpecificExitCode;
2131 DWORD dwCheckPoint;
2132 DWORD dwWaitHint;
2133 } SERVICE_STATUS, *LPSERVICE_STATUS;
2134
2135 typedef struct _ENUM_SERVICE_STATUSA {
2136 LPSTR lpServiceName;
2137 LPSTR lpDisplayName;
2138 SERVICE_STATUS ServiceStatus;
2139 } ENUM_SERVICE_STATUSA, *LPENUM_SERVICE_STATUSA;
2140
2141 typedef struct _ENUM_SERVICE_STATUSW {
2142 LPWSTR lpServiceName;
2143 LPWSTR lpDisplayName;
2144 SERVICE_STATUS ServiceStatus;
2145 } ENUM_SERVICE_STATUSW, *LPENUM_SERVICE_STATUSW;
2146
2147 #ifdef UNICODE
2148 #define ENUM_SERVICE_STATUS ENUM_SERVICE_STATUSW
2149 #define LPENUM_SERVICE_STATUS LPENUM_SERVICE_STATUSW
2150 #else
2151 #define ENUM_SERVICE_STATUS ENUM_SERVICE_STATUSA
2152 #define LPENUM_SERVICE_STATUS LPENUM_SERVICE_STATUSA
2153 #endif
2154
2155 typedef struct tagENUMLOGFONT {
2156 LOGFONT elfLogFont;
2157 BCHAR elfFullName[LF_FULLFACESIZE];
2158 BCHAR elfStyle[LF_FACESIZE];
2159 } ENUMLOGFONT;
2160
2161 typedef struct tagENUMLOGFONTEX {
2162 LOGFONT elfLogFont;
2163 BCHAR elfFullName[LF_FULLFACESIZE];
2164 BCHAR elfStyle[LF_FACESIZE];
2165 BCHAR elfScript[LF_FACESIZE];
2166 } ENUMLOGFONTEX;
2167
2168 typedef struct _EVENTLOGRECORD {
2169 DWORD Length;
2170 DWORD Reserved;
2171 DWORD RecordNumber;
2172 DWORD TimeGenerated;
2173 DWORD TimeWritten;
2174 DWORD EventID;
2175 WORD EventType;
2176 WORD NumStrings;
2177 WORD EventCategory;
2178 WORD ReservedFlags;
2179 DWORD ClosingRecordNumber;
2180 DWORD StringOffset;
2181 DWORD UserSidLength;
2182 DWORD UserSidOffset;
2183 DWORD DataLength;
2184 DWORD DataOffset;
2185
2186 /*
2187 Then follow:
2188
2189 TCHAR SourceName[]
2190 TCHAR Computername[]
2191 SID UserSid
2192 TCHAR Strings[]
2193 BYTE Data[]
2194 CHAR Pad[]
2195 DWORD Length;
2196 */
2197
2198 } EVENTLOGRECORD;
2199
2200 typedef struct tagEVENTMSG {
2201 UINT message;
2202 UINT paramL;
2203 UINT paramH;
2204 DWORD time;
2205 HWND hwnd;
2206 } EVENTMSG;
2207
2208 typedef struct _EXCEPTION_POINTERS {
2209 PEXCEPTION_RECORD ExceptionRecord;
2210 PCONTEXT ContextRecord;
2211 } EXCEPTION_POINTERS, *PEXCEPTION_POINTERS, *LPEXCEPTION_POINTERS;
2212
2213 typedef struct _EXT_BUTTON {
2214 WORD idCommand;
2215 WORD idsHelp;
2216 WORD fsStyle;
2217 } EXT_BUTTON, *LPEXT_BUTTON;
2218
2219 typedef struct tagFILTERKEYS {
2220 UINT cbSize;
2221 DWORD dwFlags;
2222 DWORD iWaitMSec;
2223 DWORD iDelayMSec;
2224 DWORD iRepeatMSec;
2225 DWORD iBounceMSec;
2226 } FILTERKEYS;
2227
2228 typedef struct _FIND_NAME_BUFFER {
2229 UCHAR length;
2230 UCHAR access_control;
2231 UCHAR frame_control;
2232 UCHAR destination_addr[6];
2233 UCHAR source_addr[6];
2234 UCHAR routing_info[18];
2235 } FIND_NAME_BUFFER;
2236
2237 typedef struct _FIND_NAME_HEADER {
2238 WORD node_count;
2239 UCHAR reserved;
2240 UCHAR unique_group;
2241 } FIND_NAME_HEADER;
2242
2243 typedef struct {
2244 DWORD lStructSize;
2245 HWND hwndOwner;
2246 HINSTANCE hInstance;
2247 DWORD Flags;
2248 LPTSTR lpstrFindWhat;
2249 LPTSTR lpstrReplaceWith;
2250 WORD wFindWhatLen;
2251 WORD wReplaceWithLen;
2252 LPARAM lCustData;
2253 LPFRHOOKPROC lpfnHook;
2254 LPCTSTR lpTemplateName;
2255 } FINDREPLACE, *LPFINDREPLACE;
2256
2257 typedef struct _findtext {
2258 CHARRANGE chrg;
2259 LPSTR lpstrText;
2260 } FINDTEXT;
2261
2262 typedef struct _findtextex {
2263 CHARRANGE chrg;
2264 LPSTR lpstrText;
2265 CHARRANGE chrgText;
2266 } FINDTEXTEX;
2267
2268 typedef struct _FMS_GETDRIVEINFO {
2269 DWORD dwTotalSpace;
2270 DWORD dwFreeSpace;
2271 TCHAR szPath[260];
2272 TCHAR szVolume[14];
2273 TCHAR szShare[128];
2274 } FMS_GETDRIVEINFO;
2275
2276 typedef struct _FMS_GETFILESEL {
2277 FILETIME ftTime;
2278 DWORD dwSize;
2279 BYTE bAttr;
2280 TCHAR szName[260];
2281 } FMS_GETFILESEL;
2282
2283 typedef struct _FMS_LOAD {
2284 DWORD dwSize;
2285 TCHAR szMenuName[MENU_TEXT_LEN];
2286 HMENU hMenu;
2287 UINT wMenuDelta;
2288 } FMS_LOAD;
2289
2290 typedef struct _FMS_TOOLBARLOAD {
2291 DWORD dwSize;
2292 LPEXT_BUTTON lpButtons;
2293 WORD cButtons;
2294 WORD cBitmaps;
2295 WORD idBitmap;
2296 HBITMAP hBitmap;
2297 } FMS_TOOLBARLOAD;
2298
2299 typedef struct _FOCUS_EVENT_RECORD {
2300 WINBOOL bSetFocus;
2301 } FOCUS_EVENT_RECORD;
2302
2303 typedef struct _FORM_INFO_1 {
2304 DWORD Flags;
2305 LPTSTR pName;
2306 SIZEL Size;
2307 RECTL ImageableArea;
2308 } FORM_INFO_1;
2309
2310 typedef struct _FORMAT_PARAMETERS {
2311 MEDIA_TYPE MediaType;
2312 DWORD StartCylinderNumber;
2313 DWORD EndCylinderNumber;
2314 DWORD StartHeadNumber;
2315 DWORD EndHeadNumber;
2316 } FORMAT_PARAMETERS ;
2317
2318 typedef struct _formatrange {
2319 HDC hdc;
2320 HDC hdcTarget;
2321 RECT rc;
2322 RECT rcPage;
2323 CHARRANGE chrg;
2324 } FORMATRANGE;
2325
2326 typedef struct tagGCP_RESULTS {
2327 DWORD lStructSize;
2328 LPTSTR lpOutString;
2329 UINT *lpOrder;
2330 INT *lpDx;
2331 INT *lpCaretPos;
2332 LPTSTR lpClass;
2333 UINT *lpGlyphs;
2334 UINT nGlyphs;
2335 UINT nMaxFit;
2336 } GCP_RESULTS, *LPGCP_RESULTS;
2337
2338
2339 typedef struct _GLYPHMETRICS {
2340 UINT gmBlackBoxX;
2341 UINT gmBlackBoxY;
2342 POINT gmptGlyphOrigin;
2343 short gmCellIncX;
2344 short gmCellIncY;
2345 } GLYPHMETRICS, *LPGLYPHMETRICS;
2346
2347 typedef struct tagHANDLETABLE {
2348 HGDIOBJ objectHandle[1];
2349 } HANDLETABLE, *LPHANDLETABLE;
2350
2351 typedef struct _HD_HITTESTINFO {
2352 POINT pt;
2353 UINT flags;
2354 int iItem;
2355 } HD_HITTESTINFO;
2356
2357 typedef struct _HD_ITEM {
2358 UINT mask;
2359 int cxy;
2360 LPTSTR pszText;
2361 HBITMAP hbm;
2362 int cchTextMax;
2363 int fmt;
2364 LPARAM lParam;
2365 } HD_ITEM;
2366
2367 typedef struct _WINDOWPOS {
2368 HWND hwnd;
2369 HWND hwndInsertAfter;
2370 int x;
2371 int y;
2372 int cx;
2373 int cy;
2374 UINT flags;
2375 } WINDOWPOS, *PWINDOWPOS, *LPWINDOWPOS;
2376
2377 typedef struct _HD_LAYOUT {
2378 RECT * prc;
2379 WINDOWPOS * pwpos;
2380 } HD_LAYOUT;
2381
2382 typedef struct _HD_NOTIFY {
2383 NMHDR hdr;
2384 int iItem;
2385 int iButton;
2386 HD_ITEM * pitem;
2387 } HD_NOTIFY;
2388
2389 typedef struct tagHELPINFO {
2390 UINT cbSize;
2391 int iContextType;
2392 int iCtrlId;
2393 HANDLE hItemHandle;
2394 DWORD dwContextId;
2395 POINT MousePos;
2396 } HELPINFO, *LPHELPINFO;
2397
2398 typedef struct {
2399 int wStructSize;
2400 int x;
2401 int y;
2402 int dx;
2403 int dy;
2404 int wMax;
2405 TCHAR rgchMember[2];
2406 } HELPWININFO;
2407
2408 typedef struct tagHIGHCONTRAST {
2409 UINT cbSize;
2410 DWORD dwFlags;
2411 LPTSTR lpszDefaultScheme;
2412 } HIGHCONTRAST, * LPHIGHCONTRAST;
2413
2414 typedef struct tagHSZPAIR {
2415 HSZ hszSvc;
2416 HSZ hszTopic;
2417 } HSZPAIR;
2418
2419 typedef struct _ICONINFO {
2420 WINBOOL fIcon;
2421 DWORD xHotspot;
2422 DWORD yHotspot;
2423 HBITMAP hbmMask;
2424 HBITMAP hbmColor;
2425 } ICONINFO, *PICONINFO;
2426
2427 typedef struct tagICONMETRICS {
2428 UINT cbSize;
2429 int iHorzSpacing;
2430 int iVertSpacing;
2431 int iTitleWrap;
2432 LOGFONT lfFont;
2433 } ICONMETRICS, *LPICONMETRICS;
2434
2435 typedef struct _IMAGEINFO {
2436 HBITMAP hbmImage;
2437 HBITMAP hbmMask;
2438 int Unused1;
2439 int Unused2;
2440 RECT rcImage;
2441 } IMAGEINFO;
2442
2443 typedef struct _WINDOW_BUFFER_SIZE_RECORD {
2444 COORD dwSize;
2445 } WINDOW_BUFFER_SIZE_RECORD;
2446
2447 typedef struct _MENU_EVENT_RECORD {
2448 UINT dwCommandId;
2449 } MENU_EVENT_RECORD, *PMENU_EVENT_RECORD;
2450
2451 typedef struct _INPUT_RECORD {
2452 WORD EventType;
2453 union {
2454 #ifndef __cplus_plus
2455 /* this will be the wrong size in c++ */
2456 KEY_EVENT_RECORD KeyEvent;
2457 #endif
2458 MOUSE_EVENT_RECORD MouseEvent;
2459 WINDOW_BUFFER_SIZE_RECORD WindowBufferSizeEvent;
2460 MENU_EVENT_RECORD MenuEvent;
2461 FOCUS_EVENT_RECORD FocusEvent;
2462 } Event;
2463 } INPUT_RECORD, *PINPUT_RECORD;
2464
2465 typedef struct _JOB_INFO_1 {
2466 DWORD JobId;
2467 LPTSTR pPrinterName;
2468 LPTSTR pMachineName;
2469 LPTSTR pUserName;
2470 LPTSTR pDocument;
2471 LPTSTR pDatatype;
2472 LPTSTR pStatus;
2473 DWORD Status;
2474 DWORD Priority;
2475 DWORD Position;
2476 DWORD TotalPages;
2477 DWORD PagesPrinted;
2478 SYSTEMTIME Submitted;
2479 } JOB_INFO_1;
2480
2481 #if 0
2482 typedef struct _JOB_INFO_2 {
2483 DWORD JobId;
2484 LPTSTR pPrinterName;
2485 LPTSTR pMachineName;
2486 LPTSTR pUserName;
2487 LPTSTR pDocument;
2488 LPTSTR pNotifyName;
2489 LPTSTR pDatatype;
2490 LPTSTR pPrintProcessor;
2491 LPTSTR pParameters;
2492 LPTSTR pDriverName;
2493 LPDEVMODE pDevMode;
2494 LPTSTR pStatus;
2495 PSECURITY_DESCRIPTOR pSecurityDescriptor;
2496 DWORD Status;
2497 DWORD Priority;
2498 DWORD Position;
2499 DWORD StartTime;
2500 DWORD UntilTime;
2501 DWORD TotalPages;
2502 DWORD Size;
2503 SYSTEMTIME Submitted;
2504 DWORD Time;
2505 DWORD PagesPrinted ;
2506 } JOB_INFO_2;
2507 #endif
2508
2509 typedef struct tagKERNINGPAIR {
2510 WORD wFirst;
2511 WORD wSecond;
2512 int iKernAmount;
2513 } KERNINGPAIR, *LPKERNINGPAIR;
2514
2515 typedef struct _LANA_ENUM {
2516 UCHAR length;
2517 UCHAR lana[MAX_LANA];
2518 } LANA_ENUM;
2519
2520 typedef struct _LDT_ENTRY {
2521 WORD LimitLow;
2522 WORD BaseLow;
2523 union {
2524 struct {
2525 BYTE BaseMid;
2526 BYTE Flags1;
2527 BYTE Flags2;
2528 BYTE BaseHi;
2529 } Bytes;
2530 struct {
2531 DWORD BaseMid : 8;
2532 DWORD Type : 5;
2533 DWORD Dpl : 2;
2534 DWORD Pres : 1;
2535 DWORD LimitHi : 4;
2536 DWORD Sys : 1;
2537 DWORD Reserved_0 : 1;
2538 DWORD Default_Big : 1;
2539 DWORD Granularity : 1;
2540 DWORD BaseHi : 8;
2541 } Bits;
2542 } HighWord;
2543 } LDT_ENTRY, *PLDT_ENTRY, *LPLDT_ENTRY;
2544
2545 typedef struct tagLOCALESIGNATURE {
2546 DWORD lsUsb[4];
2547 DWORD lsCsbDefault[2];
2548 DWORD lsCsbSupported[2];
2549 } LOCALESIGNATURE;
2550
2551 #if 0
2552 typedef struct _LOCALGROUP_MEMBERS_INFO_0 {
2553 PSID lgrmi0_sid;
2554 } LOCALGROUP_MEMBERS_INFO_0;
2555 #endif
2556
2557 typedef struct _LOCALGROUP_MEMBERS_INFO_3 {
2558 LPWSTR lgrmi3_domainandname;
2559 } LOCALGROUP_MEMBERS_INFO_3;
2560
2561 typedef long FXPT16DOT16, * LPFXPT16DOT16;
2562
2563
2564
2565 typedef LUID_AND_ATTRIBUTES LUID_AND_ATTRIBUTES_ARRAY[ANYSIZE_ARRAY];
2566 typedef LUID_AND_ATTRIBUTES_ARRAY *PLUID_AND_ATTRIBUTES_ARRAY;
2567
2568 typedef struct _LV_COLUMN {
2569 UINT mask;
2570 int fmt;
2571 int cx;
2572 LPTSTR pszText;
2573 int cchTextMax;
2574 int iSubItem;
2575 } LV_COLUMN;
2576
2577 typedef struct _LV_ITEM {
2578 UINT mask;
2579 int iItem;
2580 int iSubItem;
2581 UINT state;
2582 UINT stateMask;
2583 LPTSTR pszText;
2584 int cchTextMax;
2585 int iImage;
2586 LPARAM lParam;
2587 } LV_ITEM;
2588
2589 typedef struct tagLV_DISPINFO {
2590 NMHDR hdr;
2591 LV_ITEM item;
2592 } LV_DISPINFO;
2593
2594 typedef struct _LV_FINDINFO {
2595 UINT flags;
2596 LPCTSTR psz;
2597 LPARAM lParam;
2598 POINT pt;
2599 UINT vkDirection;
2600 } LV_FINDINFO;
2601
2602 typedef struct _LV_HITTESTINFO {
2603 POINT pt;
2604 UINT flags;
2605 int iItem;
2606 } LV_HITTESTINFO;
2607
2608 typedef struct tagLV_KEYDOWN {
2609 NMHDR hdr;
2610 WORD wVKey;
2611 UINT flags;
2612 } LV_KEYDOWN;
2613
2614 typedef struct _MAT2 {
2615 FIXED eM11;
2616 FIXED eM12;
2617 FIXED eM21;
2618 FIXED eM22;
2619 } MAT2, *LPMAT2;
2620
2621 typedef struct tagMDICREATESTRUCT {
2622 LPCTSTR szClass;
2623 LPCTSTR szTitle;
2624 HANDLE hOwner;
2625 int x;
2626 int y;
2627 int cx;
2628 int cy;
2629 DWORD style;
2630 LPARAM lParam;
2631 } MDICREATESTRUCT;
2632
2633 typedef MDICREATESTRUCT *LPMDICREATESTRUCT;
2634
2635 typedef struct tagMEASUREITEMSTRUCT {
2636 UINT CtlType;
2637 UINT CtlID;
2638 UINT itemID;
2639 UINT itemWidth;
2640 UINT itemHeight;
2641 DWORD itemData;
2642 } MEASUREITEMSTRUCT, *LPMEASUREITEMSTRUCT;
2643
2644 typedef struct _MEMORYSTATUS {
2645 DWORD dwLength;
2646 DWORD dwMemoryLoad;
2647 DWORD dwTotalPhys;
2648 DWORD dwAvailPhys;
2649 DWORD dwTotalPageFile;
2650 DWORD dwAvailPageFile;
2651 DWORD dwTotalVirtual;
2652 DWORD dwAvailVirtual;
2653 } MEMORYSTATUS, *LPMEMORYSTATUS;
2654
2655 typedef struct {
2656 WORD wVersion;
2657 WORD wOffset;
2658 DWORD dwHelpId;
2659 } MENUEX_TEMPLATE_HEADER;
2660
2661 typedef struct {
2662 DWORD dwType;
2663 DWORD dwState;
2664 UINT uId;
2665 BYTE bResInfo;
2666 WCHAR szText[1];
2667 DWORD dwHelpId;
2668 } MENUEX_TEMPLATE_ITEM;
2669
2670 typedef struct tagMENUITEMINFO {
2671 UINT cbSize;
2672 UINT fMask;
2673 UINT fType;
2674 UINT fState;
2675 UINT wID;
2676 HMENU hSubMenu;
2677 HBITMAP hbmpChecked;
2678 HBITMAP hbmpUnchecked;
2679 DWORD dwItemData;
2680 LPTSTR dwTypeData;
2681 UINT cch;
2682 } MENUITEMINFO, *LPMENUITEMINFO;
2683 typedef MENUITEMINFO CONST *LPCMENUITEMINFO;
2684
2685 typedef struct {
2686 WORD mtOption;
2687 WORD mtID;
2688 WCHAR mtString[1];
2689 } MENUITEMTEMPLATE;
2690
2691 typedef struct {
2692 WORD versionNumber;
2693 WORD offset;
2694 } MENUITEMTEMPLATEHEADER;
2695 typedef VOID MENUTEMPLATE, *LPMENUTEMPLATE;
2696
2697 typedef struct tagMETAFILEPICT {
2698 #if 0
2699 LONG mm;
2700 LONG xExt;
2701 LONG yExt;
2702 HMETAFILE hMF;
2703 #endif
2704 } METAFILEPICT, *PMETAFILEPICT, *LPMETAFILEPICT;
2705
2706 typedef struct tagMETAHEADER {
2707 WORD mtType;
2708 WORD mtHeaderSize;
2709 WORD mtVersion;
2710 DWORD mtSize;
2711 WORD mtNoObjects;
2712 DWORD mtMaxRecord;
2713 WORD mtNoParameters;
2714 } METAHEADER PACKED;
2715
2716 typedef struct tagMETARECORD {
2717 DWORD rdSize;
2718 WORD rdFunction;
2719 WORD rdParm[1];
2720 } METARECORD, *LPMETARECORD;
2721
2722 typedef struct tagMINIMIZEDMETRICS {
2723 UINT cbSize;
2724 int iWidth;
2725 int iHorzGap;
2726 int iVertGap;
2727 int iArrange;
2728 } MINIMIZEDMETRICS, *LPMINIMIZEDMETRICS;
2729
2730 typedef struct tagMINMAXINFO {
2731 POINT ptReserved;
2732 POINT ptMaxSize;
2733 POINT ptMaxPosition;
2734 POINT ptMinTrackSize;
2735 POINT ptMaxTrackSize;
2736 } MINMAXINFO;
2737
2738 typedef struct modemdevcaps_tag {
2739 DWORD dwActualSize;
2740 DWORD dwRequiredSize;
2741 DWORD dwDevSpecificOffset;
2742 DWORD dwDevSpecificSize;
2743
2744 DWORD dwModemProviderVersion;
2745 DWORD dwModemManufacturerOffset;
2746 DWORD dwModemManufacturerSize;
2747 DWORD dwModemModelOffset;
2748 DWORD dwModemModelSize;
2749 DWORD dwModemVersionOffset;
2750 DWORD dwModemVersionSize;
2751
2752 DWORD dwDialOptions;
2753 DWORD dwCallSetupFailTimer;
2754 DWORD dwInactivityTimeout;
2755 DWORD dwSpeakerVolume;
2756 DWORD dwSpeakerMode;
2757 DWORD dwModemOptions;
2758 DWORD dwMaxDTERate;
2759 DWORD dwMaxDCERate;
2760
2761 BYTE abVariablePortion [1];
2762 } MODEMDEVCAPS, *PMODEMDEVCAPS, *LPMODEMDEVCAPS;
2763
2764 typedef struct modemsettings_tag {
2765 DWORD dwActualSize;
2766 DWORD dwRequiredSize;
2767 DWORD dwDevSpecificOffset;
2768 DWORD dwDevSpecificSize;
2769
2770 DWORD dwCallSetupFailTimer;
2771 DWORD dwInactivityTimeout;
2772 DWORD dwSpeakerVolume;
2773 DWORD dwSpeakerMode;
2774 DWORD dwPreferredModemOptions;
2775
2776 DWORD dwNegotiatedModemOptions;
2777 DWORD dwNegotiatedDCERate;
2778
2779 BYTE abVariablePortion[1];
2780 } MODEMSETTINGS, *PMODEMSETTINGS, *LPMODEMSETTINGS;
2781
2782 typedef struct tagMONCBSTRUCT {
2783 UINT cb;
2784 DWORD dwTime;
2785 HANDLE hTask;
2786 DWORD dwRet;
2787 UINT wType;
2788 UINT wFmt;
2789 HCONV hConv;
2790 HSZ hsz1;
2791 HSZ hsz2;
2792 HDDEDATA hData;
2793 DWORD dwData1;
2794 DWORD dwData2;
2795 CONVCONTEXT cc;
2796 DWORD cbData;
2797 DWORD Data[8];
2798 } MONCBSTRUCT;
2799
2800 typedef struct tagMONCONVSTRUCT {
2801 UINT cb;
2802 WINBOOL fConnect;
2803 DWORD dwTime;
2804 HANDLE hTask;
2805 HSZ hszSvc;
2806 HSZ hszTopic;
2807 HCONV hConvClient;
2808 HCONV hConvServer;
2809 } MONCONVSTRUCT;
2810
2811 typedef struct tagMONERRSTRUCT {
2812 UINT cb;
2813 UINT wLastError;
2814 DWORD dwTime;
2815 HANDLE hTask;
2816 } MONERRSTRUCT;
2817
2818 typedef struct tagMONHSZSTRUCT {
2819 UINT cb;
2820 WINBOOL fsAction;
2821 DWORD dwTime;
2822 HSZ hsz;
2823 HANDLE hTask;
2824 TCHAR str[1];
2825 } MONHSZSTRUCT;
2826
2827 typedef struct _MONITOR_INFO_1 {
2828 LPTSTR pName;
2829 } MONITOR_INFO_1;
2830
2831 typedef struct _MONITOR_INFO_2 {
2832 LPTSTR pName;
2833 LPTSTR pEnvironment ;
2834 LPTSTR pDLLName ;
2835 } MONITOR_INFO_2;
2836
2837 typedef struct tagMONLINKSTRUCT {
2838 UINT cb;
2839 DWORD dwTime;
2840 HANDLE hTask;
2841 WINBOOL fEstablished;
2842 WINBOOL fNoData;
2843 HSZ hszSvc;
2844 HSZ hszTopic;
2845 HSZ hszItem;
2846 UINT wFmt;
2847 WINBOOL fServer;
2848 HCONV hConvServer;
2849 HCONV hConvClient;
2850 } MONLINKSTRUCT;
2851
2852 typedef struct tagMONMSGSTRUCT {
2853 UINT cb;
2854 HWND hwndTo;
2855 DWORD dwTime;
2856 HANDLE hTask;
2857 UINT wMsg;
2858 WPARAM wParam;
2859 LPARAM lParam;
2860 DDEML_MSG_HOOK_DATA dmhd;
2861 } MONMSGSTRUCT;
2862
2863 typedef struct tagMOUSEHOOKSTRUCT {
2864 POINT pt;
2865 HWND hwnd;
2866 UINT wHitTestCode;
2867 DWORD dwExtraInfo;
2868 } MOUSEHOOKSTRUCT, *PMOUSEHOOKSTRUCT, *LPMOUSEHOOKSTRUCT;
2869
2870 typedef struct _MOUSEKEYS {
2871 DWORD cbSize;
2872 DWORD dwFlags;
2873 DWORD iMaxSpeed;
2874 DWORD iTimeToMaxSpeed;
2875 DWORD iCtrlSpeed;
2876 DWORD dwReserved1;
2877 DWORD dwReserved2;
2878 } MOUSEKEYS;
2879
2880 typedef struct tagMSG {
2881 HWND hwnd;
2882 UINT message;
2883 WPARAM wParam;
2884 LPARAM lParam;
2885 DWORD time;
2886 POINT pt;
2887 } MSG, *LPMSG;
2888
2889 typedef void CALLBACK (*MSGBOXCALLBACK) (LPHELPINFO lpHelpInfo);
2890
2891 typedef struct {
2892 UINT cbSize;
2893 HWND hwndOwner;
2894 HINSTANCE hInstance;
2895 LPCSTR lpszText;
2896 LPCSTR lpszCaption;
2897 DWORD dwStyle;
2898 LPCSTR lpszIcon;
2899 DWORD dwContextHelpId;
2900 MSGBOXCALLBACK lpfnMsgBoxCallback;
2901 DWORD dwLanguageId;
2902 } MSGBOXPARAMS, *PMSGBOXPARAMS, *LPMSGBOXPARAMS;
2903
2904 typedef struct _msgfilter {
2905 NMHDR nmhdr;
2906 UINT msg;
2907 WPARAM wParam;
2908 LPARAM lParam;
2909 } MSGFILTER;
2910
2911 typedef struct tagMULTIKEYHELP {
2912 DWORD mkSize;
2913 TCHAR mkKeylist;
2914 TCHAR szKeyphrase[1];
2915 } MULTIKEYHELP;
2916
2917 typedef struct _NAME_BUFFER {
2918 UCHAR name[NCBNAMSZ];
2919 UCHAR name_num;
2920 UCHAR name_flags;
2921 } NAME_BUFFER;
2922
2923 typedef struct _NCB {
2924 UCHAR ncb_command;
2925 UCHAR ncb_retcode;
2926 UCHAR ncb_lsn;
2927 UCHAR ncb_num;
2928 PUCHAR ncb_buffer;
2929 WORD ncb_length;
2930 UCHAR ncb_callname[NCBNAMSZ];
2931 UCHAR ncb_name[NCBNAMSZ];
2932 UCHAR ncb_rto;
2933 UCHAR ncb_sto;
2934 void (*ncb_post) (struct _NCB *);
2935 UCHAR ncb_lana_num;
2936 UCHAR ncb_cmd_cplt;
2937 UCHAR ncb_reserve[10];
2938 HANDLE ncb_event;
2939 } NCB;
2940
2941 typedef struct _NCCALCSIZE_PARAMS {
2942 RECT rgrc[3];
2943 PWINDOWPOS lppos;
2944 } NCCALCSIZE_PARAMS;
2945
2946 typedef struct _NDDESHAREINFO {
2947 LONG lRevision;
2948 LPTSTR lpszShareName;
2949 LONG lShareType;
2950 LPTSTR lpszAppTopicList;
2951 LONG fSharedFlag;
2952 LONG fService;
2953 LONG fStartAppFlag;
2954 LONG nCmdShow;
2955 LONG qModifyId[2];
2956 LONG cNumItems;
2957 LPTSTR lpszItemList;
2958 }NDDESHAREINFO;
2959
2960 typedef struct _NETRESOURCE {
2961 DWORD dwScope;
2962 DWORD dwType;
2963 DWORD dwDisplayType;
2964 DWORD dwUsage;
2965 LPTSTR lpLocalName;
2966 LPTSTR lpRemoteName;
2967 LPTSTR lpComment;
2968 LPTSTR lpProvider;
2969 } NETRESOURCE, *LPNETRESOURCE;
2970
2971 typedef struct tagNEWCPLINFO {
2972 DWORD dwSize;
2973 DWORD dwFlags;
2974 DWORD dwHelpContext;
2975 LONG lData;
2976 HICON hIcon;
2977 TCHAR szName[32];
2978 TCHAR szInfo[64];
2979 TCHAR szHelpFile[128];
2980 } NEWCPLINFO;
2981
2982 typedef struct tagNEWTEXTMETRIC {
2983 LONG tmHeight;
2984 LONG tmAscent;
2985 LONG tmDescent;
2986 LONG tmInternalLeading;
2987 LONG tmExternalLeading;
2988 LONG tmAveCharWidth;
2989 LONG tmMaxCharWidth;
2990 LONG tmWeight;
2991 LONG tmOverhang;
2992 LONG tmDigitizedAspectX;
2993 LONG tmDigitizedAspectY;
2994 BCHAR tmFirstChar;
2995 BCHAR tmLastChar;
2996 BCHAR tmDefaultChar;
2997 BCHAR tmBreakChar;
2998 BYTE tmItalic;
2999 BYTE tmUnderlined;
3000 BYTE tmStruckOut;
3001 BYTE tmPitchAndFamily;
3002 BYTE tmCharSet;
3003 DWORD ntmFlags;
3004 UINT ntmSizeEM;
3005 UINT ntmCellHeight;
3006 UINT ntmAvgWidth;
3007 } NEWTEXTMETRIC;
3008
3009
3010 typedef struct tagNEWTEXTMETRICEX {
3011 NEWTEXTMETRIC ntmentm;
3012 FONTSIGNATURE ntmeFontSignature;
3013 } NEWTEXTMETRICEX;
3014
3015 typedef struct tagNM_LISTVIEW {
3016 NMHDR hdr;
3017 int iItem;
3018 int iSubItem;
3019 UINT uNewState;
3020 UINT uOldState;
3021 UINT uChanged;
3022 POINT ptAction;
3023 LPARAM lParam;
3024 } NM_LISTVIEW;
3025
3026 typedef struct _TREEITEM *HTREEITEM;
3027
3028 typedef struct _TV_ITEM {
3029 UINT mask;
3030 HTREEITEM hItem;
3031 UINT state;
3032 UINT stateMask;
3033 LPTSTR pszText;
3034 int cchTextMax;
3035 int iImage;
3036 int iSelectedImage;
3037 int cChildren;
3038 LPARAM lParam;
3039 } TV_ITEM, *LPTV_ITEM;
3040
3041 typedef struct _NM_TREEVIEW {
3042 NMHDR hdr;
3043 UINT action;
3044 TV_ITEM itemOld;
3045 TV_ITEM itemNew;
3046 POINT ptDrag;
3047 } NM_TREEVIEW;
3048 typedef NM_TREEVIEW *LPNM_TREEVIEW;
3049
3050 typedef struct _NM_UPDOWN {
3051 NMHDR hdr;
3052 int iPos;
3053 int iDelta;
3054 } NM_UPDOWNW;
3055
3056 typedef struct tagNONCLIENTMETRICS {
3057 UINT cbSize;
3058 int iBorderWidth;
3059 int iScrollWidth;
3060 int iScrollHeight;
3061 int iCaptionWidth;
3062 int iCaptionHeight;
3063 LOGFONT lfCaptionFont;
3064 int iSmCaptionWidth;
3065 int iSmCaptionHeight;
3066 LOGFONT lfSmCaptionFont;
3067 int iMenuWidth;
3068 int iMenuHeight;
3069 LOGFONT lfMenuFont;
3070 LOGFONT lfStatusFont;
3071 LOGFONT lfMessageFont;
3072 } NONCLIENTMETRICS, * LPNONCLIENTMETRICS;
3073
3074 typedef struct _SERVICE_ADDRESS {
3075 DWORD dwAddressType;
3076 DWORD dwAddressFlags;
3077 DWORD dwAddressLength;
3078 DWORD dwPrincipalLength;
3079 BYTE *lpAddress;
3080 BYTE *lpPrincipal;
3081 } SERVICE_ADDRESS;
3082
3083 typedef struct _SERVICE_ADDRESSES {
3084 DWORD dwAddressCount;
3085 SERVICE_ADDRESS Addresses[1];
3086 } SERVICE_ADDRESSES, *LPSERVICE_ADDRESSES;
3087
3088 typedef struct _GUID
3089 {
3090 unsigned long Data1;
3091 unsigned short Data2;
3092 unsigned short Data3;
3093 unsigned char Data4[8];
3094 } GUID, *LPGUID;
3095 typedef GUID CLSID, *LPCLSID;
3096
3097 typedef struct _SERVICE_INFO {
3098 LPGUID lpServiceType;
3099 LPTSTR lpServiceName;
3100 LPTSTR lpComment;
3101 LPTSTR lpLocale;
3102 DWORD dwDisplayHint;
3103 DWORD dwVersion;
3104 DWORD dwTime;
3105 LPTSTR lpMachineName;
3106 LPSERVICE_ADDRESSES lpServiceAddress;
3107 BLOB ServiceSpecificInfo;
3108 } SERVICE_INFO;
3109
3110 typedef struct _NS_SERVICE_INFO {
3111 DWORD dwNameSpace;
3112 SERVICE_INFO ServiceInfo;
3113 } NS_SERVICE_INFO;
3114
3115 typedef struct _numberfmt {
3116 UINT NumDigits;
3117 UINT LeadingZero;
3118 UINT Grouping;
3119 LPTSTR lpDecimalSep;
3120 LPTSTR lpThousandSep;
3121 UINT NegativeOrder;
3122 } NUMBERFMT;
3123
3124 typedef struct _OFSTRUCT {
3125 BYTE cBytes;
3126 BYTE fFixedDisk;
3127 WORD nErrCode;
3128 WORD Reserved1;
3129 WORD Reserved2;
3130 CHAR szPathName[OFS_MAXPATHNAME];
3131 } OFSTRUCT, *LPOFSTRUCT;
3132
3133 typedef struct tagOFN {
3134 DWORD lStructSize;
3135 HWND hwndOwner;
3136 HINSTANCE hInstance;
3137 LPCTSTR lpstrFilter;
3138 LPTSTR lpstrCustomFilter;
3139 DWORD nMaxCustFilter;
3140 DWORD nFilterIndex;
3141 LPTSTR lpstrFile;
3142 DWORD nMaxFile;
3143 LPTSTR lpstrFileTitle;
3144 DWORD nMaxFileTitle;
3145 LPCTSTR lpstrInitialDir;
3146 LPCTSTR lpstrTitle;
3147 DWORD Flags;
3148 WORD nFileOffset;
3149 WORD nFileExtension;
3150 LPCTSTR lpstrDefExt;
3151 DWORD lCustData;
3152 LPOFNHOOKPROC lpfnHook;
3153 LPCTSTR lpTemplateName;
3154 } OPENFILENAME, *LPOPENFILENAME;
3155
3156 typedef struct _OFNOTIFY {
3157 NMHDR hdr;
3158 LPOPENFILENAME lpOFN;
3159 LPTSTR pszFile;
3160 } OFNOTIFY, *LPOFNOTIFY;
3161
3162 typedef struct _OSVERSIONINFO {
3163 DWORD dwOSVersionInfoSize;
3164 DWORD dwMajorVersion;
3165 DWORD dwMinorVersion;
3166 DWORD dwBuildNumber;
3167 DWORD dwPlatformId;
3168 TCHAR szCSDVersion[ 128 ];
3169 } OSVERSIONINFO, *POSVERSIONINFO, *LPOSVERSIONINFO;
3170
3171 typedef struct tagTEXTMETRIC {
3172 LONG tmHeight;
3173 LONG tmAscent;
3174 LONG tmDescent;
3175 LONG tmInternalLeading;
3176 LONG tmExternalLeading;
3177 LONG tmAveCharWidth;
3178 LONG tmMaxCharWidth;
3179 LONG tmWeight;
3180 LONG tmOverhang;
3181 LONG tmDigitizedAspectX;
3182 LONG tmDigitizedAspectY;
3183 BCHAR tmFirstChar;
3184 BCHAR tmLastChar;
3185 BCHAR tmDefaultChar;
3186 BCHAR tmBreakChar;
3187 BYTE tmItalic;
3188 BYTE tmUnderlined;
3189 BYTE tmStruckOut;
3190 BYTE tmPitchAndFamily;
3191 BYTE tmCharSet;
3192 } TEXTMETRIC, *LPTEXTMETRIC;
3193
3194 typedef struct _OUTLINETEXTMETRIC {
3195 UINT otmSize;
3196 TEXTMETRIC otmTextMetrics;
3197 BYTE otmFiller;
3198 PANOSE otmPanoseNumber;
3199 UINT otmfsSelection;
3200 UINT otmfsType;
3201 int otmsCharSlopeRise;
3202 int otmsCharSlopeRun;
3203 int otmItalicAngle;
3204 UINT otmEMSquare;
3205 int otmAscent;
3206 int otmDescent;
3207 UINT otmLineGap;
3208 UINT otmsCapEmHeight;
3209 UINT otmsXHeight;
3210 RECT otmrcFontBox;
3211 int otmMacAscent;
3212 int otmMacDescent;
3213 UINT otmMacLineGap;
3214 UINT otmusMinimumPPEM;
3215 POINT otmptSubscriptSize;
3216 POINT otmptSubscriptOffset;
3217 POINT otmptSuperscriptSize;
3218 POINT otmptSuperscriptOffset;
3219 UINT otmsStrikeoutSize;
3220 int otmsStrikeoutPosition;
3221 int otmsUnderscoreSize;
3222 int otmsUnderscorePosition;
3223 PSTR otmpFamilyName;
3224 PSTR otmpFaceName;
3225 PSTR otmpStyleName;
3226 PSTR otmpFullName;
3227 } OUTLINETEXTMETRIC, *LPOUTLINETEXTMETRIC;
3228
3229 typedef struct _OVERLAPPED {
3230 DWORD Internal;
3231 DWORD InternalHigh;
3232 DWORD Offset;
3233 DWORD OffsetHigh;
3234 HANDLE hEvent;
3235 } OVERLAPPED, *LPOVERLAPPED;
3236
3237 typedef struct tagPSD {
3238 DWORD lStructSize;
3239 HWND hwndOwner;
3240 HGLOBAL hDevMode;
3241 HGLOBAL hDevNames;
3242 DWORD Flags;
3243 POINT ptPaperSize;
3244 RECT rtMinMargin;
3245 RECT rtMargin;
3246 HINSTANCE hInstance;
3247 LPARAM lCustData;
3248 LPPAGESETUPHOOK lpfnPageSetupHook;
3249 LPPAGEPAINTHOOK lpfnPagePaintHook;
3250 LPCTSTR lpPageSetupTemplateName;
3251 HGLOBAL hPageSetupTemplate;
3252 } PAGESETUPDLG, *LPPAGESETUPDLG;
3253
3254 typedef struct tagPAINTSTRUCT {
3255 HDC hdc;
3256 WINBOOL fErase;
3257 RECT rcPaint;
3258 WINBOOL fRestore;
3259 WINBOOL fIncUpdate;
3260 BYTE rgbReserved[32];
3261 } PAINTSTRUCT, *LPPAINTSTRUCT;
3262
3263 typedef struct _paraformat {
3264 UINT cbSize;
3265 DWORD dwMask;
3266 WORD wNumbering;
3267 WORD wReserved;
3268 LONG dxStartIndent;
3269 LONG dxRightIndent;
3270 LONG dxOffset;
3271 WORD wAlignment;
3272 SHORT cTabCount;
3273 LONG rgxTabs[MAX_TAB_STOPS];
3274 } PARAFORMAT;
3275
3276 typedef struct _PERF_COUNTER_BLOCK {
3277 DWORD ByteLength;
3278 } PERF_COUNTER_BLOCK;
3279
3280 typedef struct _PERF_COUNTER_DEFINITION {
3281 DWORD ByteLength;
3282 DWORD CounterNameTitleIndex;
3283 LPWSTR CounterNameTitle;
3284 DWORD CounterHelpTitleIndex;
3285 LPWSTR CounterHelpTitle;
3286 DWORD DefaultScale;
3287 DWORD DetailLevel;
3288 DWORD CounterType;
3289 DWORD CounterSize;
3290 DWORD CounterOffset;
3291 } PERF_COUNTER_DEFINITION;
3292
3293 typedef struct _PERF_DATA_BLOCK {
3294 WCHAR Signature[4];
3295 DWORD LittleEndian;
3296 DWORD Version;
3297 DWORD Revision;
3298 DWORD TotalByteLength;
3299 DWORD HeaderLength;
3300 DWORD NumObjectTypes;
3301 DWORD DefaultObject;
3302 SYSTEMTIME SystemTime;
3303 LARGE_INTEGER PerfTime;
3304 LARGE_INTEGER PerfFreq;
3305 LARGE_INTEGER PerfTime100nSec;
3306 DWORD SystemNameLength;
3307 DWORD SystemNameOffset;
3308 } PERF_DATA_BLOCK;
3309
3310 typedef struct _PERF_INSTANCE_DEFINITION {
3311 DWORD ByteLength;
3312 DWORD ParentObjectTitleIndex;
3313 DWORD ParentObjectInstance;
3314 DWORD UniqueID;
3315 DWORD NameOffset;
3316 DWORD NameLength;
3317 } PERF_INSTANCE_DEFINITION;
3318
3319 typedef struct _PERF_OBJECT_TYPE {
3320 DWORD TotalByteLength;
3321 DWORD DefinitionLength;
3322 DWORD HeaderLength;
3323 DWORD ObjectNameTitleIndex;
3324 LPWSTR ObjectNameTitle;
3325 DWORD ObjectHelpTitleIndex;
3326 LPWSTR ObjectHelpTitle;
3327 DWORD DetailLevel;
3328 DWORD NumCounters;
3329 DWORD DefaultCounter;
3330 DWORD NumInstances;
3331 DWORD CodePage;
3332 LARGE_INTEGER PerfTime;
3333 LARGE_INTEGER PerfFreq;
3334 } PERF_OBJECT_TYPE;
3335
3336 typedef struct _POLYTEXT {
3337 int x;
3338 int y;
3339 UINT n;
3340 LPCTSTR lpstr;
3341 UINT uiFlags;
3342 RECT rcl;
3343 int *pdx;
3344 } POLYTEXT, *LPPOLYTEXT;
3345
3346 typedef struct _PORT_INFO_1 {
3347 LPTSTR pName;
3348 } PORT_INFO_1;
3349
3350 typedef struct _PORT_INFO_2 {
3351 LPSTR pPortName;
3352 LPSTR pMonitorName;
3353 LPSTR pDescription;
3354 DWORD fPortType;
3355 DWORD Reserved;
3356 } PORT_INFO_2;
3357
3358 typedef struct _PREVENT_MEDIA_REMOVAL {
3359 BOOLEAN PreventMediaRemoval;
3360 } PREVENT_MEDIA_REMOVAL ;
3361
3362 typedef struct tagPD {
3363 DWORD lStructSize;
3364 HWND hwndOwner;
3365 HANDLE hDevMode;
3366 HANDLE hDevNames;
3367 HDC hDC;
3368 DWORD Flags;
3369 WORD nFromPage;
3370 WORD nToPage;
3371 WORD nMinPage;
3372 WORD nMaxPage;
3373 WORD nCopies;
3374 HINSTANCE hInstance;
3375 DWORD lCustData;
3376 LPPRINTHOOKPROC lpfnPrintHook;
3377 LPSETUPHOOKPROC lpfnSetupHook;
3378 LPCTSTR lpPrintTemplateName;
3379 LPCTSTR lpSetupTemplateName;
3380 HANDLE hPrintTemplate;
3381 HANDLE hSetupTemplate;
3382 } PRINTDLG PACKED, *LPPRINTDLG PACKED;
3383
3384 typedef struct _PRINTER_DEFAULTS {
3385 LPTSTR pDatatype;
3386 LPDEVMODE pDevMode;
3387 ACCESS_MASK DesiredAccess;
3388 } PRINTER_DEFAULTS;
3389
3390 typedef struct _PRINTER_INFO_1 {
3391 DWORD Flags;
3392 LPTSTR pDescription;
3393 LPTSTR pName;
3394 LPTSTR pComment;
3395 } PRINTER_INFO_1, *PPRINTER_INFO_1, *LPPRINTER_INFO_1;
3396
3397 #if 0
3398 typedef struct _PRINTER_INFO_2 {
3399 LPTSTR pServerName;
3400 LPTSTR pPrinterName;
3401 LPTSTR pShareName;
3402 LPTSTR pPortName;
3403 LPTSTR pDriverName;
3404 LPTSTR pComment;
3405 LPTSTR pLocation;
3406 LPDEVMODE pDevMode;
3407 LPTSTR pSepFile;
3408 LPTSTR pPrintProcessor;
3409 LPTSTR pDatatype;
3410 LPTSTR pParameters;
3411 PSECURITY_DESCRIPTOR pSecurityDescriptor;
3412 DWORD Attributes;
3413 DWORD Priority;
3414 DWORD DefaultPriority;
3415 DWORD StartTime;
3416 DWORD UntilTime;
3417 DWORD Status;
3418 DWORD cJobs;
3419 DWORD AveragePPM;
3420 } PRINTER_INFO_2;
3421
3422
3423 typedef struct _PRINTER_INFO_3 {
3424 PSECURITY_DESCRIPTOR pSecurityDescriptor;
3425 } PRINTER_INFO_3;
3426 #endif
3427
3428 typedef struct _PRINTER_INFO_4 {
3429 LPTSTR pPrinterName;
3430 LPTSTR pServerName;
3431 DWORD Attributes;
3432 } PRINTER_INFO_4;
3433
3434 typedef struct _PRINTER_INFO_5 {
3435 LPTSTR pPrinterName;
3436 LPTSTR pPortName;
3437 DWORD Attributes;
3438 DWORD DeviceNotSelectedTimeout;
3439 DWORD TransmissionRetryTimeout;
3440 } PRINTER_INFO_5;
3441
3442 typedef struct _PRINTER_NOTIFY_INFO_DATA {
3443 WORD Type;
3444 WORD Field;
3445 DWORD Reserved;
3446 DWORD Id;
3447 union {
3448 DWORD adwData[2];
3449 struct {
3450 DWORD cbBuf;
3451 LPVOID pBuf;
3452 } Data;
3453 } NotifyData;
3454 } PRINTER_NOTIFY_INFO_DATA;
3455
3456 typedef struct _PRINTER_NOTIFY_INFO {
3457 DWORD Version;
3458 DWORD Flags;
3459 DWORD Count;
3460 PRINTER_NOTIFY_INFO_DATA aData[1];
3461 } PRINTER_NOTIFY_INFO;
3462
3463 typedef struct _PRINTER_NOTIFY_OPTIONS_TYPE {
3464 WORD Type;
3465 WORD Reserved0;
3466 DWORD Reserved1;
3467 DWORD Reserved2;
3468 DWORD Count;
3469 PWORD pFields;
3470 } PRINTER_NOTIFY_OPTIONS_TYPE, *PPRINTER_NOTIFY_OPTIONS_TYPE;
3471
3472 typedef struct _PRINTER_NOTIFY_OPTIONS {
3473 DWORD Version;
3474 DWORD Flags;
3475 DWORD Count;
3476 PPRINTER_NOTIFY_OPTIONS_TYPE pTypes;
3477 } PRINTER_NOTIFY_OPTIONS;
3478
3479 typedef struct _PRINTPROCESSOR_INFO_1 {
3480 LPTSTR pName;
3481 } PRINTPROCESSOR_INFO_1;
3482
3483
3484 typedef struct _PROCESS_HEAP_ENTRY {
3485 PVOID lpData;
3486 DWORD cbData;
3487 BYTE cbOverhead;
3488 BYTE iRegionIndex;
3489 WORD wFlags;
3490 DWORD dwCommittedSize;
3491 DWORD dwUnCommittedSize;
3492 LPVOID lpFirstBlock;
3493 LPVOID lpLastBlock;
3494 HANDLE hMem;
3495 } PROCESS_HEAPENTRY, *LPPROCESS_HEAP_ENTRY;
3496
3497 typedef struct _PROCESS_INFORMATION {
3498 HANDLE hProcess;
3499 HANDLE hThread;
3500 DWORD dwProcessId;
3501 DWORD dwThreadId;
3502 } PROCESS_INFORMATION, *LPPROCESS_INFORMATION;
3503
3504 typedef UINT CALLBACK (*LPFNPSPCALLBACK) (HWND, UINT, LPVOID);
3505
3506 typedef struct _PROPSHEETPAGE {
3507 DWORD dwSize;
3508 DWORD dwFlags;
3509 HINSTANCE hInstance;
3510 union {
3511 LPCTSTR pszTemplate;
3512 LPCDLGTEMPLATE pResource;
3513 } u1;
3514 union {
3515 HICON hIcon;
3516 LPCTSTR pszIcon;
3517 } u2;
3518 LPCTSTR pszTitle;
3519 DLGPROC pfnDlgProc;
3520 LPARAM lParam;
3521 LPFNPSPCALLBACK pfnCallback;
3522 UINT * pcRefParent;
3523 } PROPSHEETPAGE, *LPPROPSHEETPAGE;
3524 typedef const PROPSHEETPAGE *LPCPROPSHEETPAGE;
3525
3526 typedef struct _PSP *HPROPSHEETPAGE;
3527 typedef struct _PROPSHEETHEADER {
3528 DWORD dwSize;
3529 DWORD dwFlags;
3530 HWND hwndParent;
3531 HINSTANCE hInstance;
3532 union {
3533 HICON hIcon;
3534 LPCTSTR pszIcon;
3535 } u1;
3536 LPCTSTR pszCaption;
3537 UINT nPages;
3538 union {
3539 UINT nStartPage;
3540 LPCTSTR pStartPage;
3541 } u2;
3542 union {
3543 LPCPROPSHEETPAGE ppsp;
3544 HPROPSHEETPAGE *phpage;
3545 } u3;
3546 PFNPROPSHEETCALLBACK pfnCallback;
3547 } PROPSHEETHEADER, *LPPROPSHEETHEADER;
3548 typedef const PROPSHEETHEADER *LPCPROPSHEETHEADER;
3549
3550 /* PropertySheet callbacks */
3551 typedef WINBOOL CALLBACK (*LPFNADDPROPSHEETPAGE) (HPROPSHEETPAGE, LPARAM);
3552 typedef WINBOOL CALLBACK (*LPFNADDPROPSHEETPAGES) (LPVOID,
3553 LPFNADDPROPSHEETPAGE,
3554 LPARAM);
3555
3556 typedef struct _PROTOCOL_INFO {
3557 DWORD dwServiceFlags;
3558 INT iAddressFamily;
3559 INT iMaxSockAddr;
3560 INT iMinSockAddr;
3561 INT iSocketType;
3562 INT iProtocol;
3563 DWORD dwMessageSize;
3564 LPTSTR lpProtocol;
3565 } PROTOCOL_INFO;
3566
3567 typedef struct _PROVIDOR_INFO_1 {
3568 LPTSTR pName;
3569 LPTSTR pEnvironment ;
3570 LPTSTR pDLLName ;
3571 } PROVIDOR_INFO_1;
3572
3573 typedef struct _PSHNOTIFY {
3574 NMHDR hdr;
3575 LPARAM lParam;
3576 } PSHNOTIFY, *LPPSHNOTIFY;
3577
3578 typedef struct _punctuation {
3579 UINT iSize;
3580 LPSTR szPunctuation;
3581 } PUNCTUATION;
3582
3583 typedef struct _QUERY_SERVICE_CONFIGA {
3584 DWORD dwServiceType;
3585 DWORD dwStartType;
3586 DWORD dwErrorControl;
3587 LPSTR lpBinaryPathName;
3588 LPSTR lpLoadOrderGroup;
3589 DWORD dwTagId;
3590 LPSTR lpDependencies;
3591 LPSTR lpServiceStartName;
3592 LPSTR lpDisplayName;
3593 } QUERY_SERVICE_CONFIGA, *LPQUERY_SERVICE_CONFIGA;
3594
3595 typedef struct _QUERY_SERVICE_CONFIGW {
3596 DWORD dwServiceType;
3597 DWORD dwStartType;
3598 DWORD dwErrorControl;
3599 LPWSTR lpBinaryPathName;
3600 LPWSTR lpLoadOrderGroup;
3601 DWORD dwTagId;
3602 LPWSTR lpDependencies;
3603 LPWSTR lpServiceStartName;
3604 LPWSTR lpDisplayName;
3605 } QUERY_SERVICE_CONFIGW, *LPQUERY_SERVICE_CONFIGW;
3606
3607 #ifdef UNICODE
3608 #define QUERY_SERVICE_CONFIG QUERY_SERVICE_CONFIGW
3609 #define LPQUERY_SERVICE_CONFIG LPQUERY_SERVICE_CONFIGW
3610 #else
3611 #define QUERY_SERVICE_CONFIG QUERY_SERVICE_CONFIGA
3612 #define LPQUERY_SERVICE_CONFIG LPQUERY_SERVICE_CONFIGA
3613 #endif
3614
3615 typedef struct _QUERY_SERVICE_LOCK_STATUSA {
3616 DWORD fIsLocked;
3617 LPSTR lpLockOwner;
3618 DWORD dwLockDuration;
3619 } QUERY_SERVICE_LOCK_STATUSA, *LPQUERY_SERVICE_LOCK_STATUSA;
3620
3621 typedef struct _QUERY_SERVICE_LOCK_STATUSW {
3622 DWORD fIsLocked;
3623 LPWSTR lpLockOwner;
3624 DWORD dwLockDuration;
3625 } QUERY_SERVICE_LOCK_STATUSW, *LPQUERY_SERVICE_LOCK_STATUSW;
3626
3627 #ifdef UNICODE
3628 #define QUERY_SERVICE_LOCK_STATUS QUERY_SERVICE_LOCK_STATUSW
3629 #define LPQUERY_SERVICE_LOCK_STATUS LPQUERY_SERVICE_LOCK_STATUSW
3630 #else
3631 #define QUERY_SERVICE_LOCK_STATUS QUERY_SERVICE_LOCK_STATUSA
3632 #define LPQUERY_SERVICE_LOCK_STATUS LPQUERY_SERVICE_LOCK_STATUSA
3633 #endif
3634
3635 typedef struct _RASAMB {
3636 DWORD dwSize;
3637 DWORD dwError;
3638 TCHAR szNetBiosError[ NETBIOS_NAME_LEN + 1 ];
3639 BYTE bLana;
3640 } RASAMB;
3641
3642 typedef struct _RASCONN {
3643 DWORD dwSize;
3644 HRASCONN hrasconn;
3645 TCHAR szEntryName[RAS_MaxEntryName + 1];
3646
3647 CHAR szDeviceType[ RAS_MaxDeviceType + 1 ];
3648 CHAR szDeviceName[ RAS_MaxDeviceName + 1 ];
3649 } RASCONN ;
3650
3651 typedef struct _RASCONNSTATUS {
3652 DWORD dwSize;
3653 RASCONNSTATE rasconnstate;
3654 DWORD dwError;
3655 TCHAR szDeviceType[RAS_MaxDeviceType + 1];
3656 TCHAR szDeviceName[RAS_MaxDeviceName + 1];
3657 } RASCONNSTATUS;
3658
3659 typedef struct _RASDIALEXTENSIONS {
3660 DWORD dwSize;
3661 DWORD dwfOptions;
3662 HWND hwndParent;
3663 DWORD reserved;
3664 } RASDIALEXTENSIONS;
3665
3666 typedef struct _RASDIALPARAMS {
3667 DWORD dwSize;
3668 TCHAR szEntryName[RAS_MaxEntryName + 1];
3669 TCHAR szPhoneNumber[RAS_MaxPhoneNumber + 1];
3670 TCHAR szCallbackNumber[RAS_MaxCallbackNumber + 1];
3671 TCHAR szUserName[UNLEN + 1];
3672 TCHAR szPassword[PWLEN + 1];
3673 TCHAR szDomain[DNLEN + 1] ;
3674 } RASDIALPARAMS;
3675
3676 typedef struct _RASENTRYNAME {
3677 DWORD dwSize;
3678 TCHAR szEntryName[RAS_MaxEntryName + 1];
3679 }RASENTRYNAME;
3680
3681 typedef struct _RASPPPIP {
3682 DWORD dwSize;
3683 DWORD dwError;
3684 TCHAR szIpAddress[ RAS_MaxIpAddress + 1 ];
3685 } RASPPPIP;
3686
3687 typedef struct _RASPPPIPX {
3688 DWORD dwSize;
3689 DWORD dwError;
3690 TCHAR szIpxAddress[ RAS_MaxIpxAddress + 1 ];
3691 } RASPPPIPX;
3692
3693 typedef struct _RASPPPNBF {
3694 DWORD dwSize;
3695 DWORD dwError;
3696 DWORD dwNetBiosError;
3697 TCHAR szNetBiosError[ NETBIOS_NAME_LEN + 1 ];
3698 TCHAR szWorkstationName[ NETBIOS_NAME_LEN + 1 ];
3699 BYTE bLana;
3700 } RASPPPNBF;
3701
3702 typedef struct _RASTERIZER_STATUS {
3703 short nSize;
3704 short wFlags;
3705 short nLanguageID;
3706 } RASTERIZER_STATUS, *LPRASTERIZER_STATUS;
3707
3708 typedef struct _REASSIGN_BLOCKS {
3709 WORD Reserved;
3710 WORD Count;
3711 DWORD BlockNumber[1];
3712 } REASSIGN_BLOCKS ;
3713
3714 typedef struct _REMOTE_NAME_INFO {
3715 LPTSTR lpUniversalName;
3716 LPTSTR lpConnectionName;
3717 LPTSTR lpRemainingPath;
3718 } REMOTE_NAME_INFO;
3719
3720 /*
3721 TODO: OLE
3722 typedef struct _reobject {
3723 DWORD cbStruct;
3724 LONG cp;
3725 CLSID clsid;
3726 LPOLEOBJECT poleobj;
3727 LPSTORAGE pstg;
3728 LPOLECLIENTSITE polesite;
3729 SIZEL sizel;
3730 DWORD dvaspect;
3731 DWORD dwFlags;
3732 DWORD dwUser;
3733 } REOBJECT;
3734 */
3735
3736 typedef struct _repastespecial {
3737 DWORD dwAspect;
3738 DWORD dwParam;
3739 } REPASTESPECIAL;
3740
3741 typedef struct _reqresize {
3742 NMHDR nmhdr;
3743 RECT rc;
3744 } REQRESIZE;
3745
3746 typedef struct _RGNDATAHEADER {
3747 DWORD dwSize;
3748 DWORD iType;
3749 DWORD nCount;
3750 DWORD nRgnSize;
3751 RECT rcBound;
3752 } RGNDATAHEADER;
3753
3754 typedef struct _RGNDATA {
3755 RGNDATAHEADER rdh;
3756 char Buffer[1];
3757 } RGNDATA, *PRGNDATA, *LPRGNDATA;
3758
3759 typedef struct tagSCROLLINFO {
3760 UINT cbSize;
3761 UINT fMask;
3762 int nMin;
3763 int nMax;
3764 UINT nPage;
3765 int nPos;
3766 int nTrackPos;
3767 } SCROLLINFO, *LPSCROLLINFO;
3768 typedef SCROLLINFO const *LPCSCROLLINFO;
3769
3770 typedef struct _SECURITY_ATTRIBUTES {
3771 DWORD nLength;
3772 LPVOID lpSecurityDescriptor;
3773 WINBOOL bInheritHandle;
3774 } SECURITY_ATTRIBUTES, *LPSECURITY_ATTRIBUTES;
3775
3776 typedef DWORD SECURITY_INFORMATION, *PSECURITY_INFORMATION;
3777
3778 typedef struct _selchange {
3779 NMHDR nmhdr;
3780 CHARRANGE chrg;
3781 WORD seltyp;
3782 } SELCHANGE;
3783
3784 typedef struct tagSERIALKEYS {
3785 DWORD cbSize;
3786 DWORD dwFlags;
3787 LPSTR lpszActivePort;
3788 LPSTR lpszPort;
3789 DWORD iBaudRate;
3790 DWORD iPortState;
3791 } SERIALKEYS, * LPSERIALKEYS;
3792
3793 typedef struct _SERVICE_TABLE_ENTRYA {
3794 LPSTR lpServiceName;
3795 LPSERVICE_MAIN_FUNCTION lpServiceProc;
3796 } SERVICE_TABLE_ENTRYA, *LPSERVICE_TABLE_ENTRYA;
3797
3798 typedef struct _SERVICE_TABLE_ENTRYW {
3799 LPWSTR lpServiceName;
3800 LPSERVICE_MAIN_FUNCTION lpServiceProc;
3801 } SERVICE_TABLE_ENTRYW, *LPSERVICE_TABLE_ENTRYW;
3802
3803 #ifdef UNICODE
3804 #define SERVICE_TABLE_ENTRY SERVICE_TABLE_ENTRYW
3805 #define LPSERVICE_TABLE_ENTRY LPSERVICE_TABLE_ENTRYW
3806 #else
3807 #define SERVICE_TABLE_ENTRY SERVICE_TABLE_ENTRYA
3808 #define LPSERVICE_TABLE_ENTRY LPSERVICE_TABLE_ENTRYA
3809 #endif
3810
3811
3812 typedef struct _SERVICE_TYPE_VALUE_ABS {
3813 DWORD dwNameSpace;
3814 DWORD dwValueType;
3815 DWORD dwValueSize;
3816 LPTSTR lpValueName;
3817 PVOID lpValue;
3818 } SERVICE_TYPE_VALUE_ABS;
3819
3820 typedef struct _SERVICE_TYPE_INFO_ABS {
3821 LPTSTR lpTypeName;
3822 DWORD dwValueCount;
3823 SERVICE_TYPE_VALUE_ABS Values[1];
3824 } SERVICE_TYPE_INFO_ABS;
3825
3826 typedef struct _SESSION_BUFFER {
3827 UCHAR lsn;
3828 UCHAR state;
3829 UCHAR local_name[NCBNAMSZ];
3830 UCHAR remote_name[NCBNAMSZ];
3831 UCHAR rcvs_outstanding;
3832 UCHAR sends_outstanding;
3833 } SESSION_BUFFER;
3834
3835 typedef struct _SESSION_HEADER {
3836 UCHAR sess_name;
3837 UCHAR num_sess;
3838 UCHAR rcv_dg_outstanding;
3839 UCHAR rcv_any_outstanding;
3840 } SESSION_HEADER;
3841
3842 typedef struct _SET_PARTITION_INFORMATION {
3843 BYTE PartitionType;
3844 } SET_PARTITION_INFORMATION ;
3845
3846 typedef enum tagSHCONTF {
3847 SHCONTF_FOLDERS = 32,
3848 SHCONTF_NONFOLDERS = 64,
3849 SHCONTF_INCLUDEHIDDEN = 128,
3850 } SHCONTF;
3851
3852 typedef struct _SHFILEINFO {
3853 HICON hIcon;
3854 int iIcon;
3855 DWORD dwAttributes;
3856 char szDisplayName[MAX_PATH];
3857 char szTypeName[80];
3858 } SHFILEINFO;
3859
3860 typedef WORD FILEOP_FLAGS;
3861 typedef struct _SHFILEOPSTRUCT {
3862 HWND hwnd;
3863 UINT wFunc;
3864 LPCSTR pFrom;
3865 LPCSTR pTo;
3866 FILEOP_FLAGS fFlags;
3867 WINBOOL fAnyOperationsAborted;
3868 LPVOID hNameMappings;
3869 LPCSTR lpszProgressTitle;
3870 } SHFILEOPSTRUCT, *LPSHFILEOPSTRUCT;
3871
3872 typedef enum tagSHGDN {
3873 SHGDN_NORMAL = 0,
3874 SHGDN_INFOLDER = 1,
3875 SHGDN_FORPARSING = 0x8000,
3876 } SHGNO;
3877
3878 typedef struct _SHNAMEMAPPING {
3879 LPSTR pszOldPath;
3880 LPSTR pszNewPath;
3881 int cchOldPath;
3882 int cchNewPath;
3883 } SHNAMEMAPPING, *LPSHNAMEMAPPING;
3884
3885 typedef struct tagSOUNDSENTRY {
3886 UINT cbSize;
3887 DWORD dwFlags;
3888 DWORD iFSTextEffect;
3889 DWORD iFSTextEffectMSec;
3890 DWORD iFSTextEffectColorBits;
3891 DWORD iFSGrafEffect;
3892 DWORD iFSGrafEffectMSec;
3893 DWORD iFSGrafEffectColor;
3894 DWORD iWindowsEffect;
3895 DWORD iWindowsEffectMSec;
3896 LPTSTR lpszWindowsEffectDLL;
3897 DWORD iWindowsEffectOrdinal;
3898 } SOUNDSENTRY, *LPSOUNDSENTRY;
3899
3900 typedef struct _STARTUPINFOA {
3901 DWORD cb;
3902 LPSTR lpReserved;
3903 LPSTR lpDesktop;
3904 LPSTR lpTitle;
3905 DWORD dwX;
3906 DWORD dwY;
3907 DWORD dwXSize;
3908 DWORD dwYSize;
3909 DWORD dwXCountChars;
3910 DWORD dwYCountChars;
3911 DWORD dwFillAttribute;
3912 DWORD dwFlags;
3913 WORD wShowWindow;
3914 WORD cbReserved2;
3915 LPBYTE lpReserved2;
3916 HANDLE hStdInput;
3917 HANDLE hStdOutput;
3918 HANDLE hStdError;
3919 } STARTUPINFOA, *LPSTARTUPINFOA;
3920
3921 typedef struct _STARTUPINFOW {
3922 DWORD cb;
3923 LPWSTR lpReserved;
3924 LPWSTR lpDesktop;
3925 LPWSTR lpTitle;
3926 DWORD dwX;
3927 DWORD dwY;
3928 DWORD dwXSize;
3929 DWORD dwYSize;
3930 DWORD dwXCountChars;
3931 DWORD dwYCountChars;
3932 DWORD dwFillAttribute;
3933 DWORD dwFlags;
3934 WORD wShowWindow;
3935 WORD cbReserved2;
3936 LPBYTE lpReserved2;
3937 HANDLE hStdInput;
3938 HANDLE hStdOutput;
3939 HANDLE hStdError;
3940 } STARTUPINFOW, *LPSTARTUPINFOW;
3941
3942 #ifdef UNICODE
3943 typedef STARTUPINFOW STARTUPINFO;
3944 typedef LPSTARTUPINFOW LPSTARTUPINFO;
3945 #else
3946 typedef STARTUPINFOA STARTUPINFO;
3947 typedef LPSTARTUPINFOA LPSTARTUPINFO;
3948 #endif /* UNICODE */
3949
3950 typedef struct tagSTICKYKEYS {
3951 DWORD cbSize;
3952 DWORD dwFlags;
3953 } STICKYKEYS, *LPSTICKYKEYS;
3954
3955 typedef struct _STRRET {
3956 UINT uType;
3957 union
3958 {
3959 LPWSTR pOleStr;
3960 UINT uOffset;
3961 char cStr[MAX_PATH];
3962 } DUMMYUNIONNAME;
3963 } STRRET, *LPSTRRET;
3964
3965 typedef struct _tagSTYLEBUF {
3966 DWORD dwStyle;
3967 CHAR szDescription[32];
3968 } STYLEBUF, *LPSTYLEBUF;
3969
3970 typedef struct tagSTYLESTRUCT {
3971 DWORD styleOld;
3972 DWORD styleNew;
3973 } STYLESTRUCT, * LPSTYLESTRUCT;
3974
3975 typedef struct _SYSTEM_AUDIT_ACE {
3976 ACE_HEADER Header;
3977 ACCESS_MASK Mask;
3978 DWORD SidStart;
3979 } SYSTEM_AUDIT_ACE;
3980
3981 typedef struct _SYSTEM_INFO
3982 {
3983 union
3984 {
3985 DWORD dwOemId;
3986 struct
3987 {
3988 WORD wProcessorArchitecture;
3989 WORD wReserved;
3990 }
3991 s;
3992 }
3993 u;
3994 DWORD dwPageSize;
3995 LPVOID lpMinimumApplicationAddress;
3996 LPVOID lpMaximumApplicationAddress;
3997 DWORD dwActiveProcessorMask;
3998 DWORD dwNumberOfProcessors;
3999 DWORD dwProcessorType;
4000 DWORD dwAllocationGranularity;
4001 WORD wProcessorLevel;
4002 WORD wProcessorRevision;
4003 } SYSTEM_INFO, *LPSYSTEM_INFO;
4004
4005 typedef struct _SYSTEM_POWER_STATUS {
4006 BYTE ACLineStatus;
4007 BYTE BatteryFlag;
4008 BYTE BatteryLifePercent;
4009 BYTE Reserved1;
4010 DWORD BatteryLifeTime;
4011 DWORD BatteryFullLifeTime;
4012 } SYSTEM_POWER_STATUS;
4013 typedef SYSTEM_POWER_STATUS *LPSYSTEM_POWER_STATUS;
4014
4015 typedef struct _TAPE_ERASE {
4016 ULONG Type;
4017 } TAPE_ERASE;
4018
4019 typedef struct _TAPE_GET_DRIVE_PARAMETERS {
4020 BOOLEAN ECC;
4021 BOOLEAN Compression;
4022 BOOLEAN DataPadding;
4023 BOOLEAN ReportSetmarks;
4024 ULONG DefaultBlockSize;
4025 ULONG MaximumBlockSize;
4026 ULONG MinimumBlockSize;
4027 ULONG MaximumPartitionCount;
4028 ULONG FeaturesLow;
4029 ULONG FeaturesHigh;
4030 ULONG EOTWarningZoneSize;
4031 } TAPE_GET_DRIVE_PARAMETERS;
4032
4033 typedef struct _TAPE_GET_MEDIA_PARAMETERS {
4034 LARGE_INTEGER Capacity;
4035 LARGE_INTEGER Remaining;
4036 DWORD BlockSize;
4037 DWORD PartitionCount;
4038 BOOLEAN WriteProtected;
4039 } TAPE_GET_MEDIA_PARAMETERS;
4040
4041 typedef struct _TAPE_GET_POSITION {
4042 ULONG Type;
4043 ULONG Partition;
4044 ULONG OffsetLow;
4045 ULONG OffsetHigh;
4046 } TAPE_GET_POSITION;
4047
4048 typedef struct _TAPE_PREPARE {
4049 ULONG Operation;
4050 } TAPE_PREPARE;
4051
4052 typedef struct _TAPE_SET_DRIVE_PARAMETERS {
4053 BOOLEAN ECC;
4054 BOOLEAN Compression;
4055 BOOLEAN DataPadding;
4056 BOOLEAN ReportSetmarks;
4057 ULONG EOTWarningZoneSize;
4058 } TAPE_SET_DRIVE_PARAMETERS;
4059
4060 typedef struct _TAPE_SET_MEDIA_PARAMETERS {
4061 ULONG BlockSize;
4062 } TAPE_SET_MEDIA_PARAMETERS;
4063
4064 typedef struct _TAPE_SET_POSITION {
4065 ULONG Method;
4066 ULONG Partition;
4067 ULONG OffsetLow;
4068 ULONG OffsetHigh;
4069 } TAPE_SET_POSITION;
4070
4071 typedef struct _TAPE_WRITE_MARKS {
4072 ULONG Type;
4073 ULONG Count;
4074 } TAPE_WRITE_MARKS;
4075
4076 typedef struct {
4077 HINSTANCE hInst;
4078 UINT nID;
4079 } TBADDBITMAP, *LPTBADDBITMAP;
4080
4081 typedef struct _TBBUTTON {
4082 int iBitmap;
4083 int idCommand;
4084 BYTE fsState;
4085 BYTE fsStyle;
4086 DWORD dwData;
4087 int iString;
4088 } TBBUTTON, * PTBBUTTON, * LPTBBUTTON;
4089 typedef const TBBUTTON * LPCTBBUTTON;
4090
4091 typedef struct {
4092 NMHDR hdr;
4093 int iItem;
4094 TBBUTTON tbButton;
4095 int cchText;
4096 LPTSTR pszText;
4097 } TBNOTIFY, *LPTBNOTIFY;
4098
4099 typedef struct {
4100 HKEY hkr;
4101 LPCTSTR pszSubKey;
4102 LPCTSTR pszValueName;
4103 } TBSAVEPARAMS;
4104
4105 typedef struct _TC_HITTESTINFO {
4106 POINT pt;
4107 UINT flags;
4108 } TC_HITTESTINFO;
4109
4110 typedef struct _TC_ITEM {
4111 UINT mask;
4112 UINT lpReserved1;
4113 UINT lpReserved2;
4114 LPTSTR pszText;
4115 int cchTextMax;
4116 int iImage;
4117 LPARAM lParam;
4118 } TC_ITEM;
4119
4120 typedef struct _TC_ITEMHEADER {
4121 UINT mask;
4122 UINT lpReserved1;
4123 UINT lpReserved2;
4124 LPTSTR pszText;
4125 int cchTextMax;
4126 int iImage;
4127 } TC_ITEMHEADER;
4128
4129 typedef struct _TC_KEYDOWN {
4130 NMHDR hdr;
4131 WORD wVKey;
4132 UINT flags;
4133 } TC_KEYDOWN;
4134
4135 typedef struct _textrange {
4136 CHARRANGE chrg;
4137 LPSTR lpstrText;
4138 } TEXTRANGE;
4139
4140 typedef struct tagTOGGLEKEYS {
4141 DWORD cbSize;
4142 DWORD dwFlags;
4143 } TOGGLEKEYS;
4144
4145 typedef struct _TOKEN_CONTROL {
4146 LUID TokenId;
4147 LUID AuthenticationId;
4148 LUID ModifiedId;
4149 TOKEN_SOURCE TokenSource;
4150 } TOKEN_CONTROL, *PTOKEN_CONTROL ;
4151
4152 typedef struct {
4153 UINT cbSize;
4154 UINT uFlags;
4155 HWND hwnd;
4156 UINT uId;
4157 RECT rect;
4158 HINSTANCE hinst;
4159 LPTSTR lpszText;
4160 } TOOLINFO, *PTOOLINFO, *LPTOOLINFO;
4161
4162 typedef struct {
4163 NMHDR hdr;
4164 LPTSTR lpszText;
4165 char szText[80];
4166 HINSTANCE hinst;
4167 UINT uFlags;
4168 } TOOLTIPTEXT, *LPTOOLTIPTEXT;
4169
4170 typedef struct tagTPMPARAMS {
4171 UINT cbSize;
4172 RECT rcExclude;
4173 } TPMPARAMS, *LPTPMPARAMS;
4174
4175 typedef struct _TRANSMIT_FILE_BUFFERS {
4176 PVOID Head;
4177 DWORD HeadLength;
4178 PVOID Tail;
4179 DWORD TailLength;
4180 } TRANSMIT_FILE_BUFFERS;
4181
4182 typedef struct _TT_HITTESTINFO {
4183 HWND hwnd;
4184 POINT pt;
4185 TOOLINFO ti;
4186 } TTHITTESTINFO, * LPHITTESTINFO;
4187
4188 typedef struct tagTTPOLYCURVE {
4189 WORD wType;
4190 WORD cpfx;
4191 POINTFX apfx[1];
4192 } TTPOLYCURVE, * LPTTPOLYCURVE;
4193
4194 typedef struct _TTPOLYGONHEADER {
4195 DWORD cb;
4196 DWORD dwType;
4197 POINTFX pfxStart;
4198 } TTPOLYGONHEADER, * LPTTPOLYGONHEADER;
4199
4200 typedef struct _TV_DISPINFO {
4201 NMHDR hdr;
4202 TV_ITEM item;
4203 } TV_DISPINFO;
4204
4205 typedef struct _TVHITTESTINFO {
4206 POINT pt;
4207 UINT flags;
4208 HTREEITEM hItem;
4209 } TV_HITTESTINFO, *LPTV_HITTESTINFO;
4210
4211 typedef struct _TV_INSERTSTRUCT {
4212 HTREEITEM hParent;
4213 HTREEITEM hInsertAfter;
4214 TV_ITEM item;
4215 } TV_INSERTSTRUCT, *LPTV_INSERTSTRUCT;
4216
4217 typedef struct _TV_KEYDOWN {
4218 NMHDR hdr;
4219 WORD wVKey;
4220 UINT flags;
4221 } TV_KEYDOWN;
4222
4223 typedef struct _TV_SORTCB {
4224 HTREEITEM hParent;
4225 PFNTVCOMPARE lpfnCompare;
4226 LPARAM lParam;
4227 } TV_SORTCB, *LPTV_SORTCB;
4228
4229 typedef struct {
4230 UINT nSec;
4231 UINT nInc;
4232 } UDACCEL;
4233
4234 typedef struct _UNIVERSAL_NAME_INFO {
4235 LPTSTR lpUniversalName;
4236 } UNIVERSAL_NAME_INFO;
4237
4238 typedef struct tagUSEROBJECTFLAGS {
4239 WINBOOL fInherit;
4240 WINBOOL fReserved;
4241 DWORD dwFlags;
4242 } USEROBJECTFLAGS;
4243
4244 typedef struct _VERIFY_INFORMATION {
4245 LARGE_INTEGER StartingOffset;
4246 DWORD Length;
4247 } VERIFY_INFORMATION ;
4248
4249 typedef struct _VS_FIXEDFILEINFO {
4250 DWORD dwSignature;
4251 DWORD dwStrucVersion;
4252 DWORD dwFileVersionMS;
4253 DWORD dwFileVersionLS;
4254 DWORD dwProductVersionMS;
4255 DWORD dwProductVersionLS;
4256 DWORD dwFileFlagsMask;
4257 DWORD dwFileFlags;
4258 DWORD dwFileOS;
4259 DWORD dwFileType;
4260 DWORD dwFileSubtype;
4261 DWORD dwFileDateMS;
4262 DWORD dwFileDateLS;
4263 } VS_FIXEDFILEINFO;
4264
4265 typedef struct _WIN32_FIND_DATA {
4266 DWORD dwFileAttributes;
4267 FILETIME ftCreationTime;
4268 FILETIME ftLastAccessTime;
4269 FILETIME ftLastWriteTime;
4270 DWORD nFileSizeHigh;
4271 DWORD nFileSizeLow;
4272 DWORD dwReserved0;
4273 DWORD dwReserved1;
4274 TCHAR cFileName[ MAX_PATH ];
4275 TCHAR cAlternateFileName[ 14 ];
4276 } WIN32_FIND_DATA, *LPWIN32_FIND_DATA, *PWIN32_FIND_DATA;
4277
4278 typedef struct _WIN32_STREAM_ID {
4279 DWORD dwStreamId;
4280 DWORD dwStreamAttributes;
4281 LARGE_INTEGER Size;
4282 DWORD dwStreamNameSize;
4283 WCHAR *cStreamName ;
4284 } WIN32_STREAM_ID;
4285
4286 typedef struct _WINDOWPLACEMENT {
4287 UINT length;
4288 UINT flags;
4289 UINT showCmd;
4290 POINT ptMinPosition;
4291 POINT ptMaxPosition;
4292 RECT rcNormalPosition;
4293 } WINDOWPLACEMENT;
4294
4295 typedef struct _WNDCLASS {
4296 UINT style;
4297 WNDPROC lpfnWndProc;
4298 int cbClsExtra;
4299 int cbWndExtra;
4300 HANDLE hInstance;
4301 HICON hIcon;
4302 HCURSOR hCursor;
4303 HBRUSH hbrBackground;
4304 LPCTSTR lpszMenuName;
4305 LPCTSTR lpszClassName;
4306 } WNDCLASS, *LPWNDCLASS;
4307
4308 typedef struct _WNDCLASSEX {
4309 UINT cbSize;
4310 UINT style;
4311 WNDPROC lpfnWndProc;
4312 int cbClsExtra;
4313 int cbWndExtra;
4314 HANDLE hInstance;
4315 HICON hIcon;
4316 HCURSOR hCursor;
4317 HBRUSH hbrBackground;
4318 LPCTSTR lpszMenuName;
4319 LPCTSTR lpszClassName;
4320 HICON hIconSm;
4321 } WNDCLASSEX, *LPWNDCLASSEX;
4322
4323 typedef struct _CONNECTDLGSTRUCT {
4324 DWORD cbStructure;
4325 HWND hwndOwner;
4326 LPNETRESOURCE lpConnRes;
4327 DWORD dwFlags;
4328 DWORD dwDevNum;
4329 } CONNECTDLGSTRUCT, *LPCONNECTDLGSTRUCT;
4330
4331 typedef struct _DISCDLGSTRUCT {
4332 DWORD cbStructure;
4333 HWND hwndOwner;
4334 LPTSTR lpLocalName;
4335 LPTSTR lpRemoteName;
4336 DWORD dwFlags;
4337 } DISCDLGSTRUCT, *LPDISCDLGSTRUCT;
4338
4339 typedef struct _NETINFOSTRUCT{
4340 DWORD cbStructure;
4341 DWORD dwProviderVersion;
4342 DWORD dwStatus;
4343 DWORD dwCharacteristics;
4344 DWORD dwHandle;
4345 WORD wNetType;
4346 DWORD dwPrinters;
4347 DWORD dwDrives;
4348 } NETINFOSTRUCT, *LPNETINFOSTRUCT;
4349
4350 typedef struct _NETCONNECTINFOSTRUCT{
4351 DWORD cbStructure;
4352 DWORD dwFlags;
4353 DWORD dwSpeed;
4354 DWORD dwDelay;
4355 DWORD dwOptDataSize;
4356 } NETCONNECTINFOSTRUCT, *LPNETCONNECTINFOSTRUCT;
4357
4358 typedef int CALLBACK (*ENUMMETAFILEPROC) (HDC, HANDLETABLE,
4359 METARECORD, int, LPARAM);
4360 typedef int CALLBACK (*ENHMETAFILEPROC) (HDC, HANDLETABLE,
4361 ENHMETARECORD, int, LPARAM);
4362
4363 typedef int CALLBACK (*ENUMFONTSPROC) (LPLOGFONT, LPTEXTMETRIC, DWORD, LPARAM);
4364 typedef int CALLBACK (*FONTENUMPROC) (ENUMLOGFONT *, NEWTEXTMETRIC *,
4365 int, LPARAM);
4366 typedef int CALLBACK (*FONTENUMEXPROC) (ENUMLOGFONTEX *, NEWTEXTMETRICEX *,
4367 int, LPARAM);
4368
4369 typedef VOID CALLBACK (*LPOVERLAPPED_COMPLETION_ROUTINE) (DWORD, DWORD,
4370 LPOVERLAPPED);
4371
4372 /*
4373 Structures for the extensions to OpenGL
4374 */
4375 typedef struct _POINTFLOAT
4376 {
4377 FLOAT x;
4378 FLOAT y;
4379 } POINTFLOAT, *PPOINTFLOAT;
4380
4381 typedef struct _GLYPHMETRICSFLOAT
4382 {
4383 FLOAT gmfBlackBoxX;
4384 FLOAT gmfBlackBoxY;
4385 POINTFLOAT gmfptGlyphOrigin;
4386 FLOAT gmfCellIncX;
4387 FLOAT gmfCellIncY;
4388 } GLYPHMETRICSFLOAT, *PGLYPHMETRICSFLOAT, *LPGLYPHMETRICSFLOAT;
4389
4390 typedef struct tagLAYERPLANEDESCRIPTOR
4391 {
4392 WORD nSize;
4393 WORD nVersion;
4394 DWORD dwFlags;
4395 BYTE iPixelType;
4396 BYTE cColorBits;
4397 BYTE cRedBits;
4398 BYTE cRedShift;
4399 BYTE cGreenBits;
4400 BYTE cGreenShift;
4401 BYTE cBlueBits;
4402 BYTE cBlueShift;
4403 BYTE cAlphaBits;
4404 BYTE cAlphaShift;
4405 BYTE cAccumBits;
4406 BYTE cAccumRedBits;
4407 BYTE cAccumGreenBits;
4408 BYTE cAccumBlueBits;
4409 BYTE cAccumAlphaBits;
4410 BYTE cDepthBits;
4411 BYTE cStencilBits;
4412 BYTE cAuxBuffers;
4413 BYTE iLayerPlane;
4414 BYTE bReserved;
4415 COLORREF crTransparent;
4416 } LAYERPLANEDESCRIPTOR, *PLAYERPLANEDESCRIPTOR, *LPLAYERPLANEDESCRIPTOR;
4417
4418 typedef struct tagPIXELFORMATDESCRIPTOR
4419 {
4420 WORD nSize;
4421 WORD nVersion;
4422 DWORD dwFlags;
4423 BYTE iPixelType;
4424 BYTE cColorBits;
4425 BYTE cRedBits;
4426 BYTE cRedShift;
4427 BYTE cGreenBits;
4428 BYTE cGreenShift;
4429 BYTE cBlueBits;
4430 BYTE cBlueShift;
4431 BYTE cAlphaBits;
4432 BYTE cAlphaShift;
4433 BYTE cAccumBits;
4434 BYTE cAccumRedBits;
4435 BYTE cAccumGreenBits;
4436 BYTE cAccumBlueBits;
4437 BYTE cAccumAlphaBits;
4438 BYTE cDepthBits;
4439 BYTE cStencilBits;
4440 BYTE cAuxBuffers;
4441 BYTE iLayerType;
4442 BYTE bReserved;
4443 DWORD dwLayerMask;
4444 DWORD dwVisibleMask;
4445 DWORD dwDamageMask;
4446 } PIXELFORMATDESCRIPTOR, *PPIXELFORMATDESCRIPTOR, *LPPIXELFORMATDESCRIPTOR;
4447
4448 typedef struct
4449 {
4450 LPWSTR usri2_name;
4451 LPWSTR usri2_password;
4452 DWORD usri2_password_age;
4453 DWORD usri2_priv;
4454 LPWSTR usri2_home_dir;
4455 LPWSTR usri2_comment;
4456 DWORD usri2_flags;
4457 LPWSTR usri2_script_path;
4458 DWORD usri2_auth_flags;
4459 LPWSTR usri2_full_name;
4460 LPWSTR usri2_usr_comment;
4461 LPWSTR usri2_parms;
4462 LPWSTR usri2_workstations;
4463 DWORD usri2_last_logon;
4464 DWORD usri2_last_logoff;
4465 DWORD usri2_acct_expires;
4466 DWORD usri2_max_storage;
4467 DWORD usri2_units_per_week;
4468 PBYTE usri2_logon_hours;
4469 DWORD usri2_bad_pw_count;
4470 DWORD usri2_num_logons;
4471 LPWSTR usri2_logon_server;
4472 DWORD usri2_country_code;
4473 DWORD usri2_code_page;
4474 } USER_INFO_2, *PUSER_INFO_2, *LPUSER_INFO_2;
4475
4476 typedef struct
4477 {
4478 LPWSTR usri0_name;
4479 } USER_INFO_0, *PUSER_INFO_0, *LPUSER_INFO_0;
4480
4481 typedef struct
4482 {
4483 LPWSTR usri3_name;
4484 LPWSTR usri3_password;
4485 DWORD usri3_password_age;
4486 DWORD usri3_priv;
4487 LPWSTR usri3_home_dir;
4488 LPWSTR usri3_comment;
4489 DWORD usri3_flags;
4490 LPWSTR usri3_script_path;
4491 DWORD usri3_auth_flags;
4492 LPWSTR usri3_full_name;
4493 LPWSTR usri3_usr_comment;
4494 LPWSTR usri3_parms;
4495 LPWSTR usri3_workstations;
4496 DWORD usri3_last_logon;
4497 DWORD usri3_last_logoff;
4498 DWORD usri3_acct_expires;
4499 DWORD usri3_max_storage;
4500 DWORD usri3_units_per_week;
4501 PBYTE usri3_logon_hours;
4502 DWORD usri3_bad_pw_count;
4503 DWORD usri3_num_logons;
4504 LPWSTR usri3_logon_server;
4505 DWORD usri3_country_code;
4506 DWORD usri3_code_page;
4507 DWORD usri3_user_id;
4508 DWORD usri3_primary_group_id;
4509 LPWSTR usri3_profile;
4510 LPWSTR usri3_home_dir_drive;
4511 DWORD usri3_password_expired;
4512 } USER_INFO_3, *PUSER_INFO_3, *LPUSER_INFO_3;
4513
4514 typedef struct
4515 {
4516 LPWSTR grpi2_name;
4517 LPWSTR grpi2_comment;
4518 DWORD grpi2_group_id;
4519 DWORD grpi2_attributes;
4520 } GROUP_INFO_2, *PGROUP_INFO_2;
4521
4522 typedef struct
4523 {
4524 LPWSTR lgrpi0_name;
4525 } LOCALGROUP_INFO_0, *PLOCALGROUP_INFO_0, *LPLOCALGROUP_INFO_0;
4526
4527 /* PE executable header. */
4528
4529 #ifndef WIN32_NO_PEHDR
4530
4531 typedef struct
4532 {
4533 WORD e_magic; /* Magic number, 0x5a4d */
4534 WORD e_cblp; /* Bytes on last page of file, 0x90 */
4535 WORD e_cp; /* Pages in file, 0x3 */
4536 WORD e_crlc; /* Relocations, 0x0 */
4537 WORD e_cparhdr; /* Size of header in paragraphs, 0x4 */
4538 WORD e_minalloc; /* Minimum extra paragraphs needed, 0x0 */
4539 WORD e_maxalloc; /* Maximum extra paragraphs needed, 0xFFFF */
4540 WORD e_ss; /* Initial (relative) SS value, 0x0 */
4541 WORD e_sp; /* Initial SP value, 0xb8 */
4542 WORD e_csum; /* Checksum, 0x0 */
4543 WORD e_ip; /* Initial IP value, 0x0 */
4544 WORD e_cs; /* Initial (relative) CS value, 0x0 */
4545 WORD e_lfarlc; /* File address of relocation table, 0x40 */
4546 WORD e_ovno; /* Overlay number, 0x0 */
4547 WORD e_res[4]; /* Reserved words, all 0x0 */
4548 WORD e_oemid; /* OEM identifier (for e_oeminfo), 0x0 */
4549 WORD e_oeminfo; /* OEM information; e_oemid specific, 0x0 */
4550 WORD e_res2[10]; /* Reserved words, all 0x0 */
4551 LONG e_lfanew; /* File address of new exe header, 0x80 */
4552 /* We leave out the next two fields, since they aren't in the
4553 Windows header file. */
4554 /* DWORD dos_message[16]; * text which always follows dos header */
4555 /* DWORD nt_signature; * required NT signature, 0x4550 */
4556 } IMAGE_DOS_HEADER, *PIMAGE_DOS_HEADER;
4557
4558 #endif /* WIN32_NO_PEHDR */
4559
4560 #ifdef __cplusplus
4561 }
4562 #endif /* __cplusplus */
4563
4564 #endif /* WIN32_LEAN_AND_MEAN */
4565
4566 #endif /* _GNU_H_WINDOWS32_STRUCTURES */
4567