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