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