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