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