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