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