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