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