Implemented and fixed several ACL and SD functions.
[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 int wStructSize;
2098 int x;
2099 int y;
2100 int dx;
2101 int dy;
2102 int wMax;
2103 TCHAR rgchMember[2];
2104 } HELPWININFO;
2105
2106 typedef struct tagHIGHCONTRAST {
2107 UINT cbSize;
2108 DWORD dwFlags;
2109 LPTSTR lpszDefaultScheme;
2110 } HIGHCONTRAST, * LPHIGHCONTRAST;
2111
2112 typedef struct tagHSZPAIR {
2113 HSZ hszSvc;
2114 HSZ hszTopic;
2115 } HSZPAIR;
2116
2117 typedef struct _ICONINFO {
2118 WINBOOL fIcon;
2119 DWORD xHotspot;
2120 DWORD yHotspot;
2121 HBITMAP hbmMask;
2122 HBITMAP hbmColor;
2123 } ICONINFO, *PICONINFO;
2124
2125 typedef struct tagICONMETRICS {
2126 UINT cbSize;
2127 int iHorzSpacing;
2128 int iVertSpacing;
2129 int iTitleWrap;
2130 LOGFONT lfFont;
2131 } ICONMETRICS, *LPICONMETRICS;
2132
2133 typedef struct _IMAGEINFO {
2134 HBITMAP hbmImage;
2135 HBITMAP hbmMask;
2136 int Unused1;
2137 int Unused2;
2138 RECT rcImage;
2139 } IMAGEINFO;
2140
2141 typedef struct _JOB_INFO_1 {
2142 DWORD JobId;
2143 LPTSTR pPrinterName;
2144 LPTSTR pMachineName;
2145 LPTSTR pUserName;
2146 LPTSTR pDocument;
2147 LPTSTR pDatatype;
2148 LPTSTR pStatus;
2149 DWORD Status;
2150 DWORD Priority;
2151 DWORD Position;
2152 DWORD TotalPages;
2153 DWORD PagesPrinted;
2154 SYSTEMTIME Submitted;
2155 } JOB_INFO_1;
2156
2157 #if 0
2158 typedef struct _JOB_INFO_2 {
2159 DWORD JobId;
2160 LPTSTR pPrinterName;
2161 LPTSTR pMachineName;
2162 LPTSTR pUserName;
2163 LPTSTR pDocument;
2164 LPTSTR pNotifyName;
2165 LPTSTR pDatatype;
2166 LPTSTR pPrintProcessor;
2167 LPTSTR pParameters;
2168 LPTSTR pDriverName;
2169 LPDEVMODE pDevMode;
2170 LPTSTR pStatus;
2171 PSECURITY_DESCRIPTOR pSecurityDescriptor;
2172 DWORD Status;
2173 DWORD Priority;
2174 DWORD Position;
2175 DWORD StartTime;
2176 DWORD UntilTime;
2177 DWORD TotalPages;
2178 DWORD Size;
2179 SYSTEMTIME Submitted;
2180 DWORD Time;
2181 DWORD PagesPrinted ;
2182 } JOB_INFO_2;
2183 #endif
2184
2185 typedef struct tagKERNINGPAIR {
2186 WORD wFirst;
2187 WORD wSecond;
2188 int iKernAmount;
2189 } KERNINGPAIR, *LPKERNINGPAIR;
2190
2191 typedef struct _LANA_ENUM {
2192 UCHAR length;
2193 UCHAR lana[MAX_LANA];
2194 } LANA_ENUM;
2195
2196 typedef struct _LDT_ENTRY {
2197 WORD LimitLow;
2198 WORD BaseLow;
2199 union {
2200 struct {
2201 BYTE BaseMid;
2202 BYTE Flags1;
2203 BYTE Flags2;
2204 BYTE BaseHi;
2205 } Bytes;
2206 struct {
2207 DWORD BaseMid : 8;
2208 DWORD Type : 5;
2209 DWORD Dpl : 2;
2210 DWORD Pres : 1;
2211 DWORD LimitHi : 4;
2212 DWORD Sys : 1;
2213 DWORD Reserved_0 : 1;
2214 DWORD Default_Big : 1;
2215 DWORD Granularity : 1;
2216 DWORD BaseHi : 8;
2217 } Bits;
2218 } HighWord;
2219 } LDT_ENTRY, *PLDT_ENTRY, *LPLDT_ENTRY;
2220
2221 typedef struct tagLOCALESIGNATURE {
2222 DWORD lsUsb[4];
2223 DWORD lsCsbDefault[2];
2224 DWORD lsCsbSupported[2];
2225 } LOCALESIGNATURE;
2226
2227 #if 0
2228 typedef struct _LOCALGROUP_MEMBERS_INFO_0 {
2229 PSID lgrmi0_sid;
2230 } LOCALGROUP_MEMBERS_INFO_0;
2231 #endif
2232
2233 typedef struct _LOCALGROUP_MEMBERS_INFO_3 {
2234 LPWSTR lgrmi3_domainandname;
2235 } LOCALGROUP_MEMBERS_INFO_3;
2236
2237 typedef long FXPT16DOT16, * LPFXPT16DOT16;
2238
2239
2240
2241 typedef LUID_AND_ATTRIBUTES LUID_AND_ATTRIBUTES_ARRAY[ANYSIZE_ARRAY];
2242 typedef LUID_AND_ATTRIBUTES_ARRAY *PLUID_AND_ATTRIBUTES_ARRAY;
2243
2244 typedef struct _LV_COLUMN {
2245 UINT mask;
2246 int fmt;
2247 int cx;
2248 LPTSTR pszText;
2249 int cchTextMax;
2250 int iSubItem;
2251 } LV_COLUMN;
2252
2253 typedef struct _LV_ITEM {
2254 UINT mask;
2255 int iItem;
2256 int iSubItem;
2257 UINT state;
2258 UINT stateMask;
2259 LPTSTR pszText;
2260 int cchTextMax;
2261 int iImage;
2262 LPARAM lParam;
2263 } LV_ITEM;
2264
2265 typedef struct tagLV_DISPINFO {
2266 NMHDR hdr;
2267 LV_ITEM item;
2268 } LV_DISPINFO;
2269
2270 typedef struct _LV_FINDINFO {
2271 UINT flags;
2272 LPCTSTR psz;
2273 LPARAM lParam;
2274 POINT pt;
2275 UINT vkDirection;
2276 } LV_FINDINFO;
2277
2278 typedef struct _LV_HITTESTINFO {
2279 POINT pt;
2280 UINT flags;
2281 int iItem;
2282 } LV_HITTESTINFO;
2283
2284 typedef struct tagLV_KEYDOWN {
2285 NMHDR hdr;
2286 WORD wVKey;
2287 UINT flags;
2288 } LV_KEYDOWN;
2289
2290 typedef struct _MAT2 {
2291 FIXED eM11;
2292 FIXED eM12;
2293 FIXED eM21;
2294 FIXED eM22;
2295 } MAT2, *LPMAT2;
2296
2297 typedef struct tagMDICREATESTRUCT {
2298 LPCTSTR szClass;
2299 LPCTSTR szTitle;
2300 HANDLE hOwner;
2301 int x;
2302 int y;
2303 int cx;
2304 int cy;
2305 DWORD style;
2306 LPARAM lParam;
2307 } MDICREATESTRUCT;
2308
2309 typedef MDICREATESTRUCT *LPMDICREATESTRUCT;
2310
2311 typedef struct tagMEASUREITEMSTRUCT {
2312 UINT CtlType;
2313 UINT CtlID;
2314 UINT itemID;
2315 UINT itemWidth;
2316 UINT itemHeight;
2317 DWORD itemData;
2318 } MEASUREITEMSTRUCT, *LPMEASUREITEMSTRUCT;
2319
2320 typedef struct _MEMORYSTATUS {
2321 DWORD dwLength;
2322 DWORD dwMemoryLoad;
2323 DWORD dwTotalPhys;
2324 DWORD dwAvailPhys;
2325 DWORD dwTotalPageFile;
2326 DWORD dwAvailPageFile;
2327 DWORD dwTotalVirtual;
2328 DWORD dwAvailVirtual;
2329 } MEMORYSTATUS, *LPMEMORYSTATUS;
2330
2331 typedef struct {
2332 WORD wVersion;
2333 WORD wOffset;
2334 DWORD dwHelpId;
2335 } MENUEX_TEMPLATE_HEADER;
2336
2337 typedef struct {
2338 DWORD dwType;
2339 DWORD dwState;
2340 UINT uId;
2341 BYTE bResInfo;
2342 WCHAR szText[1];
2343 DWORD dwHelpId;
2344 } MENUEX_TEMPLATE_ITEM;
2345
2346 typedef struct tagMENUITEMINFO {
2347 UINT cbSize;
2348 UINT fMask;
2349 UINT fType;
2350 UINT fState;
2351 UINT wID;
2352 HMENU hSubMenu;
2353 HBITMAP hbmpChecked;
2354 HBITMAP hbmpUnchecked;
2355 DWORD dwItemData;
2356 LPTSTR dwTypeData;
2357 UINT cch;
2358 } MENUITEMINFO, *LPMENUITEMINFO;
2359 typedef MENUITEMINFO CONST *LPCMENUITEMINFO;
2360
2361 typedef struct {
2362 WORD mtOption;
2363 WORD mtID;
2364 WCHAR mtString[1];
2365 } MENUITEMTEMPLATE;
2366
2367 typedef struct {
2368 WORD versionNumber;
2369 WORD offset;
2370 } MENUITEMTEMPLATEHEADER;
2371 typedef VOID MENUTEMPLATE, *LPMENUTEMPLATE;
2372
2373 typedef struct tagMETAFILEPICT {
2374 #if 0
2375 LONG mm;
2376 LONG xExt;
2377 LONG yExt;
2378 HMETAFILE hMF;
2379 #endif
2380 } METAFILEPICT, *PMETAFILEPICT, *LPMETAFILEPICT;
2381
2382 typedef struct tagMETAHEADER {
2383 WORD mtType;
2384 WORD mtHeaderSize;
2385 WORD mtVersion;
2386 DWORD mtSize;
2387 WORD mtNoObjects;
2388 DWORD mtMaxRecord;
2389 WORD mtNoParameters;
2390 } METAHEADER PACKED;
2391
2392 typedef struct tagMETARECORD {
2393 DWORD rdSize;
2394 WORD rdFunction;
2395 WORD rdParm[1];
2396 } METARECORD, *LPMETARECORD;
2397
2398 typedef struct tagMINIMIZEDMETRICS {
2399 UINT cbSize;
2400 int iWidth;
2401 int iHorzGap;
2402 int iVertGap;
2403 int iArrange;
2404 } MINIMIZEDMETRICS, *LPMINIMIZEDMETRICS;
2405
2406 typedef struct tagMINMAXINFO {
2407 POINT ptReserved;
2408 POINT ptMaxSize;
2409 POINT ptMaxPosition;
2410 POINT ptMinTrackSize;
2411 POINT ptMaxTrackSize;
2412 } MINMAXINFO;
2413
2414 typedef struct modemdevcaps_tag {
2415 DWORD dwActualSize;
2416 DWORD dwRequiredSize;
2417 DWORD dwDevSpecificOffset;
2418 DWORD dwDevSpecificSize;
2419
2420 DWORD dwModemProviderVersion;
2421 DWORD dwModemManufacturerOffset;
2422 DWORD dwModemManufacturerSize;
2423 DWORD dwModemModelOffset;
2424 DWORD dwModemModelSize;
2425 DWORD dwModemVersionOffset;
2426 DWORD dwModemVersionSize;
2427
2428 DWORD dwDialOptions;
2429 DWORD dwCallSetupFailTimer;
2430 DWORD dwInactivityTimeout;
2431 DWORD dwSpeakerVolume;
2432 DWORD dwSpeakerMode;
2433 DWORD dwModemOptions;
2434 DWORD dwMaxDTERate;
2435 DWORD dwMaxDCERate;
2436
2437 BYTE abVariablePortion [1];
2438 } MODEMDEVCAPS, *PMODEMDEVCAPS, *LPMODEMDEVCAPS;
2439
2440 typedef struct modemsettings_tag {
2441 DWORD dwActualSize;
2442 DWORD dwRequiredSize;
2443 DWORD dwDevSpecificOffset;
2444 DWORD dwDevSpecificSize;
2445
2446 DWORD dwCallSetupFailTimer;
2447 DWORD dwInactivityTimeout;
2448 DWORD dwSpeakerVolume;
2449 DWORD dwSpeakerMode;
2450 DWORD dwPreferredModemOptions;
2451
2452 DWORD dwNegotiatedModemOptions;
2453 DWORD dwNegotiatedDCERate;
2454
2455 BYTE abVariablePortion[1];
2456 } MODEMSETTINGS, *PMODEMSETTINGS, *LPMODEMSETTINGS;
2457
2458 typedef struct tagMONCBSTRUCT {
2459 UINT cb;
2460 DWORD dwTime;
2461 HANDLE hTask;
2462 DWORD dwRet;
2463 UINT wType;
2464 UINT wFmt;
2465 HCONV hConv;
2466 HSZ hsz1;
2467 HSZ hsz2;
2468 HDDEDATA hData;
2469 DWORD dwData1;
2470 DWORD dwData2;
2471 CONVCONTEXT cc;
2472 DWORD cbData;
2473 DWORD Data[8];
2474 } MONCBSTRUCT;
2475
2476 typedef struct tagMONCONVSTRUCT {
2477 UINT cb;
2478 WINBOOL fConnect;
2479 DWORD dwTime;
2480 HANDLE hTask;
2481 HSZ hszSvc;
2482 HSZ hszTopic;
2483 HCONV hConvClient;
2484 HCONV hConvServer;
2485 } MONCONVSTRUCT;
2486
2487 typedef struct tagMONERRSTRUCT {
2488 UINT cb;
2489 UINT wLastError;
2490 DWORD dwTime;
2491 HANDLE hTask;
2492 } MONERRSTRUCT;
2493
2494 typedef struct tagMONHSZSTRUCT {
2495 UINT cb;
2496 WINBOOL fsAction;
2497 DWORD dwTime;
2498 HSZ hsz;
2499 HANDLE hTask;
2500 TCHAR str[1];
2501 } MONHSZSTRUCT;
2502
2503 typedef struct _MONITOR_INFO_1 {
2504 LPTSTR pName;
2505 } MONITOR_INFO_1;
2506
2507 typedef struct _MONITOR_INFO_2 {
2508 LPTSTR pName;
2509 LPTSTR pEnvironment ;
2510 LPTSTR pDLLName ;
2511 } MONITOR_INFO_2;
2512
2513 typedef struct tagMONLINKSTRUCT {
2514 UINT cb;
2515 DWORD dwTime;
2516 HANDLE hTask;
2517 WINBOOL fEstablished;
2518 WINBOOL fNoData;
2519 HSZ hszSvc;
2520 HSZ hszTopic;
2521 HSZ hszItem;
2522 UINT wFmt;
2523 WINBOOL fServer;
2524 HCONV hConvServer;
2525 HCONV hConvClient;
2526 } MONLINKSTRUCT;
2527
2528 typedef struct tagMONMSGSTRUCT {
2529 UINT cb;
2530 HWND hwndTo;
2531 DWORD dwTime;
2532 HANDLE hTask;
2533 UINT wMsg;
2534 WPARAM wParam;
2535 LPARAM lParam;
2536 DDEML_MSG_HOOK_DATA dmhd;
2537 } MONMSGSTRUCT;
2538
2539 typedef struct tagMOUSEHOOKSTRUCT {
2540 POINT pt;
2541 HWND hwnd;
2542 UINT wHitTestCode;
2543 DWORD dwExtraInfo;
2544 } MOUSEHOOKSTRUCT, *PMOUSEHOOKSTRUCT, *LPMOUSEHOOKSTRUCT;
2545
2546 typedef struct _MOUSEKEYS {
2547 DWORD cbSize;
2548 DWORD dwFlags;
2549 DWORD iMaxSpeed;
2550 DWORD iTimeToMaxSpeed;
2551 DWORD iCtrlSpeed;
2552 DWORD dwReserved1;
2553 DWORD dwReserved2;
2554 } MOUSEKEYS;
2555
2556 typedef struct tagMSG {
2557 HWND hwnd;
2558 UINT message;
2559 WPARAM wParam;
2560 LPARAM lParam;
2561 DWORD time;
2562 POINT pt;
2563 } MSG, *LPMSG;
2564
2565 typedef void CALLBACK (*MSGBOXCALLBACK) (LPHELPINFO lpHelpInfo);
2566
2567 typedef struct {
2568 UINT cbSize;
2569 HWND hwndOwner;
2570 HINSTANCE hInstance;
2571 LPCSTR lpszText;
2572 LPCSTR lpszCaption;
2573 DWORD dwStyle;
2574 LPCSTR lpszIcon;
2575 DWORD dwContextHelpId;
2576 MSGBOXCALLBACK lpfnMsgBoxCallback;
2577 DWORD dwLanguageId;
2578 } MSGBOXPARAMS, *PMSGBOXPARAMS, *LPMSGBOXPARAMS;
2579
2580 typedef struct _msgfilter {
2581 NMHDR nmhdr;
2582 UINT msg;
2583 WPARAM wParam;
2584 LPARAM lParam;
2585 } MSGFILTER;
2586
2587 typedef struct tagMULTIKEYHELP {
2588 DWORD mkSize;
2589 TCHAR mkKeylist;
2590 TCHAR szKeyphrase[1];
2591 } MULTIKEYHELP;
2592
2593 typedef struct _NAME_BUFFER {
2594 UCHAR name[NCBNAMSZ];
2595 UCHAR name_num;
2596 UCHAR name_flags;
2597 } NAME_BUFFER;
2598
2599 typedef struct _NCB {
2600 UCHAR ncb_command;
2601 UCHAR ncb_retcode;
2602 UCHAR ncb_lsn;
2603 UCHAR ncb_num;
2604 PUCHAR ncb_buffer;
2605 WORD ncb_length;
2606 UCHAR ncb_callname[NCBNAMSZ];
2607 UCHAR ncb_name[NCBNAMSZ];
2608 UCHAR ncb_rto;
2609 UCHAR ncb_sto;
2610 void (*ncb_post) (struct _NCB *);
2611 UCHAR ncb_lana_num;
2612 UCHAR ncb_cmd_cplt;
2613 UCHAR ncb_reserve[10];
2614 HANDLE ncb_event;
2615 } NCB;
2616
2617 typedef struct _NCCALCSIZE_PARAMS {
2618 RECT rgrc[3];
2619 PWINDOWPOS lppos;
2620 } NCCALCSIZE_PARAMS;
2621
2622 typedef struct _NDDESHAREINFO {
2623 LONG lRevision;
2624 LPTSTR lpszShareName;
2625 LONG lShareType;
2626 LPTSTR lpszAppTopicList;
2627 LONG fSharedFlag;
2628 LONG fService;
2629 LONG fStartAppFlag;
2630 LONG nCmdShow;
2631 LONG qModifyId[2];
2632 LONG cNumItems;
2633 LPTSTR lpszItemList;
2634 }NDDESHAREINFO;
2635
2636 typedef struct _NETRESOURCE {
2637 DWORD dwScope;
2638 DWORD dwType;
2639 DWORD dwDisplayType;
2640 DWORD dwUsage;
2641 LPTSTR lpLocalName;
2642 LPTSTR lpRemoteName;
2643 LPTSTR lpComment;
2644 LPTSTR lpProvider;
2645 } NETRESOURCE, *LPNETRESOURCE;
2646
2647 typedef struct tagNEWCPLINFO {
2648 DWORD dwSize;
2649 DWORD dwFlags;
2650 DWORD dwHelpContext;
2651 LONG lData;
2652 HICON hIcon;
2653 TCHAR szName[32];
2654 TCHAR szInfo[64];
2655 TCHAR szHelpFile[128];
2656 } NEWCPLINFO;
2657
2658 typedef struct tagNEWTEXTMETRIC {
2659 LONG tmHeight;
2660 LONG tmAscent;
2661 LONG tmDescent;
2662 LONG tmInternalLeading;
2663 LONG tmExternalLeading;
2664 LONG tmAveCharWidth;
2665 LONG tmMaxCharWidth;
2666 LONG tmWeight;
2667 LONG tmOverhang;
2668 LONG tmDigitizedAspectX;
2669 LONG tmDigitizedAspectY;
2670 BCHAR tmFirstChar;
2671 BCHAR tmLastChar;
2672 BCHAR tmDefaultChar;
2673 BCHAR tmBreakChar;
2674 BYTE tmItalic;
2675 BYTE tmUnderlined;
2676 BYTE tmStruckOut;
2677 BYTE tmPitchAndFamily;
2678 BYTE tmCharSet;
2679 DWORD ntmFlags;
2680 UINT ntmSizeEM;
2681 UINT ntmCellHeight;
2682 UINT ntmAvgWidth;
2683 } NEWTEXTMETRIC;
2684
2685
2686 typedef struct tagNEWTEXTMETRICEX {
2687 NEWTEXTMETRIC ntmentm;
2688 FONTSIGNATURE ntmeFontSignature;
2689 } NEWTEXTMETRICEX;
2690
2691 typedef struct tagNM_LISTVIEW {
2692 NMHDR hdr;
2693 int iItem;
2694 int iSubItem;
2695 UINT uNewState;
2696 UINT uOldState;
2697 UINT uChanged;
2698 POINT ptAction;
2699 LPARAM lParam;
2700 } NM_LISTVIEW;
2701
2702 typedef struct _TREEITEM *HTREEITEM;
2703
2704 typedef struct _TV_ITEM {
2705 UINT mask;
2706 HTREEITEM hItem;
2707 UINT state;
2708 UINT stateMask;
2709 LPTSTR pszText;
2710 int cchTextMax;
2711 int iImage;
2712 int iSelectedImage;
2713 int cChildren;
2714 LPARAM lParam;
2715 } TV_ITEM, *LPTV_ITEM;
2716
2717 typedef struct _NM_TREEVIEW {
2718 NMHDR hdr;
2719 UINT action;
2720 TV_ITEM itemOld;
2721 TV_ITEM itemNew;
2722 POINT ptDrag;
2723 } NM_TREEVIEW;
2724 typedef NM_TREEVIEW *LPNM_TREEVIEW;
2725
2726 typedef struct _NM_UPDOWN {
2727 NMHDR hdr;
2728 int iPos;
2729 int iDelta;
2730 } NM_UPDOWNW;
2731
2732 typedef struct tagNONCLIENTMETRICS {
2733 UINT cbSize;
2734 int iBorderWidth;
2735 int iScrollWidth;
2736 int iScrollHeight;
2737 int iCaptionWidth;
2738 int iCaptionHeight;
2739 LOGFONT lfCaptionFont;
2740 int iSmCaptionWidth;
2741 int iSmCaptionHeight;
2742 LOGFONT lfSmCaptionFont;
2743 int iMenuWidth;
2744 int iMenuHeight;
2745 LOGFONT lfMenuFont;
2746 LOGFONT lfStatusFont;
2747 LOGFONT lfMessageFont;
2748 } NONCLIENTMETRICS, * LPNONCLIENTMETRICS;
2749
2750 typedef struct _SERVICE_ADDRESS {
2751 DWORD dwAddressType;
2752 DWORD dwAddressFlags;
2753 DWORD dwAddressLength;
2754 DWORD dwPrincipalLength;
2755 BYTE *lpAddress;
2756 BYTE *lpPrincipal;
2757 } SERVICE_ADDRESS;
2758
2759 typedef struct _SERVICE_ADDRESSES {
2760 DWORD dwAddressCount;
2761 SERVICE_ADDRESS Addresses[1];
2762 } SERVICE_ADDRESSES, *LPSERVICE_ADDRESSES;
2763
2764 #ifndef GUID_DEFINED
2765 #define GUID_DEFINED
2766 typedef struct _GUID
2767 {
2768 unsigned long Data1;
2769 unsigned short Data2;
2770 unsigned short Data3;
2771 unsigned char Data4[8];
2772 } GUID, *LPGUID;
2773 typedef GUID CLSID, *LPCLSID;
2774 #endif
2775
2776 typedef struct _SERVICE_INFO {
2777 LPGUID lpServiceType;
2778 LPTSTR lpServiceName;
2779 LPTSTR lpComment;
2780 LPTSTR lpLocale;
2781 DWORD dwDisplayHint;
2782 DWORD dwVersion;
2783 DWORD dwTime;
2784 LPTSTR lpMachineName;
2785 LPSERVICE_ADDRESSES lpServiceAddress;
2786 BLOB ServiceSpecificInfo;
2787 } SERVICE_INFO;
2788
2789 typedef struct _NS_SERVICE_INFO {
2790 DWORD dwNameSpace;
2791 SERVICE_INFO ServiceInfo;
2792 } NS_SERVICE_INFO;
2793
2794 typedef struct _numberfmt {
2795 UINT NumDigits;
2796 UINT LeadingZero;
2797 UINT Grouping;
2798 LPTSTR lpDecimalSep;
2799 LPTSTR lpThousandSep;
2800 UINT NegativeOrder;
2801 } NUMBERFMT;
2802
2803 typedef struct _OFSTRUCT {
2804 BYTE cBytes;
2805 BYTE fFixedDisk;
2806 WORD nErrCode;
2807 WORD Reserved1;
2808 WORD Reserved2;
2809 CHAR szPathName[OFS_MAXPATHNAME];
2810 } OFSTRUCT, *LPOFSTRUCT;
2811
2812 typedef struct tagOFN {
2813 DWORD lStructSize;
2814 HWND hwndOwner;
2815 HINSTANCE hInstance;
2816 LPCTSTR lpstrFilter;
2817 LPTSTR lpstrCustomFilter;
2818 DWORD nMaxCustFilter;
2819 DWORD nFilterIndex;
2820 LPTSTR lpstrFile;
2821 DWORD nMaxFile;
2822 LPTSTR lpstrFileTitle;
2823 DWORD nMaxFileTitle;
2824 LPCTSTR lpstrInitialDir;
2825 LPCTSTR lpstrTitle;
2826 DWORD Flags;
2827 WORD nFileOffset;
2828 WORD nFileExtension;
2829 LPCTSTR lpstrDefExt;
2830 DWORD lCustData;
2831 LPOFNHOOKPROC lpfnHook;
2832 LPCTSTR lpTemplateName;
2833 } OPENFILENAME, *LPOPENFILENAME;
2834
2835 typedef struct _OFNOTIFY {
2836 NMHDR hdr;
2837 LPOPENFILENAME lpOFN;
2838 LPTSTR pszFile;
2839 } OFNOTIFY, *LPOFNOTIFY;
2840
2841 typedef struct _OSVERSIONINFO {
2842 DWORD dwOSVersionInfoSize;
2843 DWORD dwMajorVersion;
2844 DWORD dwMinorVersion;
2845 DWORD dwBuildNumber;
2846 DWORD dwPlatformId;
2847 TCHAR szCSDVersion[ 128 ];
2848 } OSVERSIONINFO, *POSVERSIONINFO, *LPOSVERSIONINFO;
2849
2850 typedef struct tagTEXTMETRIC {
2851 LONG tmHeight;
2852 LONG tmAscent;
2853 LONG tmDescent;
2854 LONG tmInternalLeading;
2855 LONG tmExternalLeading;
2856 LONG tmAveCharWidth;
2857 LONG tmMaxCharWidth;
2858 LONG tmWeight;
2859 LONG tmOverhang;
2860 LONG tmDigitizedAspectX;
2861 LONG tmDigitizedAspectY;
2862 BCHAR tmFirstChar;
2863 BCHAR tmLastChar;
2864 BCHAR tmDefaultChar;
2865 BCHAR tmBreakChar;
2866 BYTE tmItalic;
2867 BYTE tmUnderlined;
2868 BYTE tmStruckOut;
2869 BYTE tmPitchAndFamily;
2870 BYTE tmCharSet;
2871 } TEXTMETRIC, *LPTEXTMETRIC;
2872
2873 typedef struct _OUTLINETEXTMETRIC {
2874 UINT otmSize;
2875 TEXTMETRIC otmTextMetrics;
2876 BYTE otmFiller;
2877 PANOSE otmPanoseNumber;
2878 UINT otmfsSelection;
2879 UINT otmfsType;
2880 int otmsCharSlopeRise;
2881 int otmsCharSlopeRun;
2882 int otmItalicAngle;
2883 UINT otmEMSquare;
2884 int otmAscent;
2885 int otmDescent;
2886 UINT otmLineGap;
2887 UINT otmsCapEmHeight;
2888 UINT otmsXHeight;
2889 RECT otmrcFontBox;
2890 int otmMacAscent;
2891 int otmMacDescent;
2892 UINT otmMacLineGap;
2893 UINT otmusMinimumPPEM;
2894 POINT otmptSubscriptSize;
2895 POINT otmptSubscriptOffset;
2896 POINT otmptSuperscriptSize;
2897 POINT otmptSuperscriptOffset;
2898 UINT otmsStrikeoutSize;
2899 int otmsStrikeoutPosition;
2900 int otmsUnderscoreSize;
2901 int otmsUnderscorePosition;
2902 PSTR otmpFamilyName;
2903 PSTR otmpFaceName;
2904 PSTR otmpStyleName;
2905 PSTR otmpFullName;
2906 } OUTLINETEXTMETRIC, *LPOUTLINETEXTMETRIC;
2907
2908 typedef struct _OVERLAPPED {
2909 DWORD Internal;
2910 DWORD InternalHigh;
2911 DWORD Offset;
2912 DWORD OffsetHigh;
2913 HANDLE hEvent;
2914 } OVERLAPPED, *LPOVERLAPPED;
2915
2916 typedef struct tagPSD {
2917 DWORD lStructSize;
2918 HWND hwndOwner;
2919 HGLOBAL hDevMode;
2920 HGLOBAL hDevNames;
2921 DWORD Flags;
2922 POINT ptPaperSize;
2923 RECT rtMinMargin;
2924 RECT rtMargin;
2925 HINSTANCE hInstance;
2926 LPARAM lCustData;
2927 LPPAGESETUPHOOK lpfnPageSetupHook;
2928 LPPAGEPAINTHOOK lpfnPagePaintHook;
2929 LPCTSTR lpPageSetupTemplateName;
2930 HGLOBAL hPageSetupTemplate;
2931 } PAGESETUPDLG, *LPPAGESETUPDLG;
2932
2933 typedef struct tagPAINTSTRUCT {
2934 HDC hdc;
2935 WINBOOL fErase;
2936 RECT rcPaint;
2937 WINBOOL fRestore;
2938 WINBOOL fIncUpdate;
2939 BYTE rgbReserved[32];
2940 } PAINTSTRUCT, *LPPAINTSTRUCT;
2941
2942 typedef struct _paraformat {
2943 UINT cbSize;
2944 DWORD dwMask;
2945 WORD wNumbering;
2946 WORD wReserved;
2947 LONG dxStartIndent;
2948 LONG dxRightIndent;
2949 LONG dxOffset;
2950 WORD wAlignment;
2951 SHORT cTabCount;
2952 LONG rgxTabs[MAX_TAB_STOPS];
2953 } PARAFORMAT;
2954
2955 typedef struct _PERF_COUNTER_BLOCK {
2956 DWORD ByteLength;
2957 } PERF_COUNTER_BLOCK;
2958
2959 typedef struct _PERF_COUNTER_DEFINITION {
2960 DWORD ByteLength;
2961 DWORD CounterNameTitleIndex;
2962 LPWSTR CounterNameTitle;
2963 DWORD CounterHelpTitleIndex;
2964 LPWSTR CounterHelpTitle;
2965 DWORD DefaultScale;
2966 DWORD DetailLevel;
2967 DWORD CounterType;
2968 DWORD CounterSize;
2969 DWORD CounterOffset;
2970 } PERF_COUNTER_DEFINITION;
2971
2972 typedef struct _PERF_DATA_BLOCK {
2973 WCHAR Signature[4];
2974 DWORD LittleEndian;
2975 DWORD Version;
2976 DWORD Revision;
2977 DWORD TotalByteLength;
2978 DWORD HeaderLength;
2979 DWORD NumObjectTypes;
2980 DWORD DefaultObject;
2981 SYSTEMTIME SystemTime;
2982 LARGE_INTEGER PerfTime;
2983 LARGE_INTEGER PerfFreq;
2984 LARGE_INTEGER PerfTime100nSec;
2985 DWORD SystemNameLength;
2986 DWORD SystemNameOffset;
2987 } PERF_DATA_BLOCK;
2988
2989 typedef struct _PERF_INSTANCE_DEFINITION {
2990 DWORD ByteLength;
2991 DWORD ParentObjectTitleIndex;
2992 DWORD ParentObjectInstance;
2993 DWORD UniqueID;
2994 DWORD NameOffset;
2995 DWORD NameLength;
2996 } PERF_INSTANCE_DEFINITION;
2997
2998 typedef struct _PERF_OBJECT_TYPE {
2999 DWORD TotalByteLength;
3000 DWORD DefinitionLength;
3001 DWORD HeaderLength;
3002 DWORD ObjectNameTitleIndex;
3003 LPWSTR ObjectNameTitle;
3004 DWORD ObjectHelpTitleIndex;
3005 LPWSTR ObjectHelpTitle;
3006 DWORD DetailLevel;
3007 DWORD NumCounters;
3008 DWORD DefaultCounter;
3009 DWORD NumInstances;
3010 DWORD CodePage;
3011 LARGE_INTEGER PerfTime;
3012 LARGE_INTEGER PerfFreq;
3013 } PERF_OBJECT_TYPE;
3014
3015 typedef struct _POLYTEXT {
3016 int x;
3017 int y;
3018 UINT n;
3019 LPCTSTR lpstr;
3020 UINT uiFlags;
3021 RECT rcl;
3022 int *pdx;
3023 } POLYTEXT, *LPPOLYTEXT;
3024
3025 typedef struct _PORT_INFO_1 {
3026 LPTSTR pName;
3027 } PORT_INFO_1;
3028
3029 typedef struct _PORT_INFO_2 {
3030 LPSTR pPortName;
3031 LPSTR pMonitorName;
3032 LPSTR pDescription;
3033 DWORD fPortType;
3034 DWORD Reserved;
3035 } PORT_INFO_2;
3036
3037 typedef struct _PREVENT_MEDIA_REMOVAL {
3038 BOOLEAN PreventMediaRemoval;
3039 } PREVENT_MEDIA_REMOVAL ;
3040
3041 typedef struct tagPD {
3042 DWORD lStructSize;
3043 HWND hwndOwner;
3044 HANDLE hDevMode;
3045 HANDLE hDevNames;
3046 HDC hDC;
3047 DWORD Flags;
3048 WORD nFromPage;
3049 WORD nToPage;
3050 WORD nMinPage;
3051 WORD nMaxPage;
3052 WORD nCopies;
3053 HINSTANCE hInstance;
3054 DWORD lCustData;
3055 LPPRINTHOOKPROC lpfnPrintHook;
3056 LPSETUPHOOKPROC lpfnSetupHook;
3057 LPCTSTR lpPrintTemplateName;
3058 LPCTSTR lpSetupTemplateName;
3059 HANDLE hPrintTemplate;
3060 HANDLE hSetupTemplate;
3061 } PRINTDLG PACKED, *LPPRINTDLG PACKED;
3062
3063 typedef struct _PRINTER_DEFAULTSA
3064 {
3065 LPTSTR pDatatype;
3066 LPDEVMODEA pDevMode;
3067 ACCESS_MASK DesiredAccess;
3068 } PRINTER_DEFAULTSA, *PPRINTER_DEFAULTSA, *LPPRINTER_DEFAULTSA;
3069
3070 typedef struct _PRINTER_DEFAULTSW
3071 {
3072 LPTSTR pDatatype;
3073 LPDEVMODEA pDevMode;
3074 ACCESS_MASK DesiredAccess;
3075 } PRINTER_DEFAULTSW, *PPRINTER_DEFAULTSW, *LPPRINTER_DEFAULTSW;
3076
3077 typedef struct _PRINTER_INFO_1 {
3078 DWORD Flags;
3079 LPTSTR pDescription;
3080 LPTSTR pName;
3081 LPTSTR pComment;
3082 } PRINTER_INFO_1, *PPRINTER_INFO_1, *LPPRINTER_INFO_1;
3083
3084 #if 0
3085 typedef struct _PRINTER_INFO_2 {
3086 LPTSTR pServerName;
3087 LPTSTR pPrinterName;
3088 LPTSTR pShareName;
3089 LPTSTR pPortName;
3090 LPTSTR pDriverName;
3091 LPTSTR pComment;
3092 LPTSTR pLocation;
3093 LPDEVMODE pDevMode;
3094 LPTSTR pSepFile;
3095 LPTSTR pPrintProcessor;
3096 LPTSTR pDatatype;
3097 LPTSTR pParameters;
3098 PSECURITY_DESCRIPTOR pSecurityDescriptor;
3099 DWORD Attributes;
3100 DWORD Priority;
3101 DWORD DefaultPriority;
3102 DWORD StartTime;
3103 DWORD UntilTime;
3104 DWORD Status;
3105 DWORD cJobs;
3106 DWORD AveragePPM;
3107 } PRINTER_INFO_2;
3108
3109
3110 typedef struct _PRINTER_INFO_3 {
3111 PSECURITY_DESCRIPTOR pSecurityDescriptor;
3112 } PRINTER_INFO_3;
3113 #endif
3114
3115 typedef struct _PRINTER_INFO_4 {
3116 LPTSTR pPrinterName;
3117 LPTSTR pServerName;
3118 DWORD Attributes;
3119 } PRINTER_INFO_4;
3120
3121 typedef struct _PRINTER_INFO_5 {
3122 LPTSTR pPrinterName;
3123 LPTSTR pPortName;
3124 DWORD Attributes;
3125 DWORD DeviceNotSelectedTimeout;
3126 DWORD TransmissionRetryTimeout;
3127 } PRINTER_INFO_5;
3128
3129 typedef struct _PRINTER_NOTIFY_INFO_DATA {
3130 WORD Type;
3131 WORD Field;
3132 DWORD Reserved;
3133 DWORD Id;
3134 union {
3135 DWORD adwData[2];
3136 struct {
3137 DWORD cbBuf;
3138 LPVOID pBuf;
3139 } Data;
3140 } NotifyData;
3141 } PRINTER_NOTIFY_INFO_DATA;
3142
3143 typedef struct _PRINTER_NOTIFY_INFO {
3144 DWORD Version;
3145 DWORD Flags;
3146 DWORD Count;
3147 PRINTER_NOTIFY_INFO_DATA aData[1];
3148 } PRINTER_NOTIFY_INFO;
3149
3150 typedef struct _PRINTER_NOTIFY_OPTIONS_TYPE {
3151 WORD Type;
3152 WORD Reserved0;
3153 DWORD Reserved1;
3154 DWORD Reserved2;
3155 DWORD Count;
3156 PWORD pFields;
3157 } PRINTER_NOTIFY_OPTIONS_TYPE, *PPRINTER_NOTIFY_OPTIONS_TYPE;
3158
3159 typedef struct _PRINTER_NOTIFY_OPTIONS {
3160 DWORD Version;
3161 DWORD Flags;
3162 DWORD Count;
3163 PPRINTER_NOTIFY_OPTIONS_TYPE pTypes;
3164 } PRINTER_NOTIFY_OPTIONS;
3165
3166 typedef struct _PRINTPROCESSOR_INFO_1 {
3167 LPTSTR pName;
3168 } PRINTPROCESSOR_INFO_1;
3169
3170
3171 typedef struct _PROCESS_HEAP_ENTRY {
3172 PVOID lpData;
3173 DWORD cbData;
3174 BYTE cbOverhead;
3175 BYTE iRegionIndex;
3176 WORD wFlags;
3177 DWORD dwCommittedSize;
3178 DWORD dwUnCommittedSize;
3179 LPVOID lpFirstBlock;
3180 LPVOID lpLastBlock;
3181 HANDLE hMem;
3182 } PROCESS_HEAPENTRY, *LPPROCESS_HEAP_ENTRY;
3183
3184 typedef struct _PROCESS_INFORMATION {
3185 HANDLE hProcess;
3186 HANDLE hThread;
3187 DWORD dwProcessId;
3188 DWORD dwThreadId;
3189 } PROCESS_INFORMATION, *LPPROCESS_INFORMATION;
3190
3191 typedef UINT CALLBACK (*LPFNPSPCALLBACK) (HWND, UINT, LPVOID);
3192
3193 typedef struct _PROPSHEETPAGE {
3194 DWORD dwSize;
3195 DWORD dwFlags;
3196 HINSTANCE hInstance;
3197 union {
3198 LPCTSTR pszTemplate;
3199 LPCDLGTEMPLATE pResource;
3200 } u1;
3201 union {
3202 HICON hIcon;
3203 LPCTSTR pszIcon;
3204 } u2;
3205 LPCTSTR pszTitle;
3206 DLGPROC pfnDlgProc;
3207 LPARAM lParam;
3208 LPFNPSPCALLBACK pfnCallback;
3209 UINT * pcRefParent;
3210 } PROPSHEETPAGE, *LPPROPSHEETPAGE;
3211 typedef const PROPSHEETPAGE *LPCPROPSHEETPAGE;
3212
3213 typedef struct _PSP *HPROPSHEETPAGE;
3214 typedef struct _PROPSHEETHEADER {
3215 DWORD dwSize;
3216 DWORD dwFlags;
3217 HWND hwndParent;
3218 HINSTANCE hInstance;
3219 union {
3220 HICON hIcon;
3221 LPCTSTR pszIcon;
3222 } u1;
3223 LPCTSTR pszCaption;
3224 UINT nPages;
3225 union {
3226 UINT nStartPage;
3227 LPCTSTR pStartPage;
3228 } u2;
3229 union {
3230 LPCPROPSHEETPAGE ppsp;
3231 HPROPSHEETPAGE *phpage;
3232 } u3;
3233 PFNPROPSHEETCALLBACK pfnCallback;
3234 } PROPSHEETHEADER, *LPPROPSHEETHEADER;
3235 typedef const PROPSHEETHEADER *LPCPROPSHEETHEADER;
3236
3237 /* PropertySheet callbacks */
3238 typedef WINBOOL CALLBACK (*LPFNADDPROPSHEETPAGE) (HPROPSHEETPAGE, LPARAM);
3239 typedef WINBOOL CALLBACK (*LPFNADDPROPSHEETPAGES) (LPVOID,
3240 LPFNADDPROPSHEETPAGE,
3241 LPARAM);
3242
3243 typedef struct _PROTOCOL_INFO {
3244 DWORD dwServiceFlags;
3245 INT iAddressFamily;
3246 INT iMaxSockAddr;
3247 INT iMinSockAddr;
3248 INT iSocketType;
3249 INT iProtocol;
3250 DWORD dwMessageSize;
3251 LPTSTR lpProtocol;
3252 } PROTOCOL_INFO;
3253
3254 typedef struct _PROVIDOR_INFO_1 {
3255 LPTSTR pName;
3256 LPTSTR pEnvironment ;
3257 LPTSTR pDLLName ;
3258 } PROVIDOR_INFO_1;
3259
3260 typedef struct _PSHNOTIFY {
3261 NMHDR hdr;
3262 LPARAM lParam;
3263 } PSHNOTIFY, *LPPSHNOTIFY;
3264
3265 typedef struct _punctuation {
3266 UINT iSize;
3267 LPSTR szPunctuation;
3268 } PUNCTUATION;
3269
3270 typedef struct _QUERY_SERVICE_CONFIGA {
3271 DWORD dwServiceType;
3272 DWORD dwStartType;
3273 DWORD dwErrorControl;
3274 LPSTR lpBinaryPathName;
3275 LPSTR lpLoadOrderGroup;
3276 DWORD dwTagId;
3277 LPSTR lpDependencies;
3278 LPSTR lpServiceStartName;
3279 LPSTR lpDisplayName;
3280 } QUERY_SERVICE_CONFIGA, *LPQUERY_SERVICE_CONFIGA;
3281
3282 typedef struct _QUERY_SERVICE_CONFIGW {
3283 DWORD dwServiceType;
3284 DWORD dwStartType;
3285 DWORD dwErrorControl;
3286 LPWSTR lpBinaryPathName;
3287 LPWSTR lpLoadOrderGroup;
3288 DWORD dwTagId;
3289 LPWSTR lpDependencies;
3290 LPWSTR lpServiceStartName;
3291 LPWSTR lpDisplayName;
3292 } QUERY_SERVICE_CONFIGW, *LPQUERY_SERVICE_CONFIGW;
3293
3294 #ifdef UNICODE
3295 #define QUERY_SERVICE_CONFIG QUERY_SERVICE_CONFIGW
3296 #define LPQUERY_SERVICE_CONFIG LPQUERY_SERVICE_CONFIGW
3297 #else
3298 #define QUERY_SERVICE_CONFIG QUERY_SERVICE_CONFIGA
3299 #define LPQUERY_SERVICE_CONFIG LPQUERY_SERVICE_CONFIGA
3300 #endif
3301
3302 typedef struct _QUERY_SERVICE_LOCK_STATUSA {
3303 DWORD fIsLocked;
3304 LPSTR lpLockOwner;
3305 DWORD dwLockDuration;
3306 } QUERY_SERVICE_LOCK_STATUSA, *LPQUERY_SERVICE_LOCK_STATUSA;
3307
3308 typedef struct _QUERY_SERVICE_LOCK_STATUSW {
3309 DWORD fIsLocked;
3310 LPWSTR lpLockOwner;
3311 DWORD dwLockDuration;
3312 } QUERY_SERVICE_LOCK_STATUSW, *LPQUERY_SERVICE_LOCK_STATUSW;
3313
3314 #ifdef UNICODE
3315 #define QUERY_SERVICE_LOCK_STATUS QUERY_SERVICE_LOCK_STATUSW
3316 #define LPQUERY_SERVICE_LOCK_STATUS LPQUERY_SERVICE_LOCK_STATUSW
3317 #else
3318 #define QUERY_SERVICE_LOCK_STATUS QUERY_SERVICE_LOCK_STATUSA
3319 #define LPQUERY_SERVICE_LOCK_STATUS LPQUERY_SERVICE_LOCK_STATUSA
3320 #endif
3321
3322 typedef struct _RASAMB {
3323 DWORD dwSize;
3324 DWORD dwError;
3325 TCHAR szNetBiosError[ NETBIOS_NAME_LEN + 1 ];
3326 BYTE bLana;
3327 } RASAMB;
3328
3329 typedef struct _RASCONN {
3330 DWORD dwSize;
3331 HRASCONN hrasconn;
3332 TCHAR szEntryName[RAS_MaxEntryName + 1];
3333
3334 CHAR szDeviceType[ RAS_MaxDeviceType + 1 ];
3335 CHAR szDeviceName[ RAS_MaxDeviceName + 1 ];
3336 } RASCONN ;
3337
3338 typedef struct _RASCONNSTATUS {
3339 DWORD dwSize;
3340 RASCONNSTATE rasconnstate;
3341 DWORD dwError;
3342 TCHAR szDeviceType[RAS_MaxDeviceType + 1];
3343 TCHAR szDeviceName[RAS_MaxDeviceName + 1];
3344 } RASCONNSTATUS;
3345
3346 typedef struct _RASDIALEXTENSIONS {
3347 DWORD dwSize;
3348 DWORD dwfOptions;
3349 HWND hwndParent;
3350 DWORD reserved;
3351 } RASDIALEXTENSIONS;
3352
3353 typedef struct _RASDIALPARAMS {
3354 DWORD dwSize;
3355 TCHAR szEntryName[RAS_MaxEntryName + 1];
3356 TCHAR szPhoneNumber[RAS_MaxPhoneNumber + 1];
3357 TCHAR szCallbackNumber[RAS_MaxCallbackNumber + 1];
3358 TCHAR szUserName[UNLEN + 1];
3359 TCHAR szPassword[PWLEN + 1];
3360 TCHAR szDomain[DNLEN + 1] ;
3361 } RASDIALPARAMS;
3362
3363 typedef struct _RASENTRYNAME {
3364 DWORD dwSize;
3365 TCHAR szEntryName[RAS_MaxEntryName + 1];
3366 }RASENTRYNAME;
3367
3368 typedef struct _RASPPPIP {
3369 DWORD dwSize;
3370 DWORD dwError;
3371 TCHAR szIpAddress[ RAS_MaxIpAddress + 1 ];
3372 } RASPPPIP;
3373
3374 typedef struct _RASPPPIPX {
3375 DWORD dwSize;
3376 DWORD dwError;
3377 TCHAR szIpxAddress[ RAS_MaxIpxAddress + 1 ];
3378 } RASPPPIPX;
3379
3380 typedef struct _RASPPPNBF {
3381 DWORD dwSize;
3382 DWORD dwError;
3383 DWORD dwNetBiosError;
3384 TCHAR szNetBiosError[ NETBIOS_NAME_LEN + 1 ];
3385 TCHAR szWorkstationName[ NETBIOS_NAME_LEN + 1 ];
3386 BYTE bLana;
3387 } RASPPPNBF;
3388
3389 typedef struct _RASTERIZER_STATUS {
3390 short nSize;
3391 short wFlags;
3392 short nLanguageID;
3393 } RASTERIZER_STATUS, *LPRASTERIZER_STATUS;
3394
3395 typedef struct _REASSIGN_BLOCKS {
3396 WORD Reserved;
3397 WORD Count;
3398 DWORD BlockNumber[1];
3399 } REASSIGN_BLOCKS ;
3400
3401 typedef struct _REMOTE_NAME_INFO {
3402 LPTSTR lpUniversalName;
3403 LPTSTR lpConnectionName;
3404 LPTSTR lpRemainingPath;
3405 } REMOTE_NAME_INFO;
3406
3407 /*
3408 TODO: OLE
3409 typedef struct _reobject {
3410 DWORD cbStruct;
3411 LONG cp;
3412 CLSID clsid;
3413 LPOLEOBJECT poleobj;
3414 LPSTORAGE pstg;
3415 LPOLECLIENTSITE polesite;
3416 SIZEL sizel;
3417 DWORD dvaspect;
3418 DWORD dwFlags;
3419 DWORD dwUser;
3420 } REOBJECT;
3421 */
3422
3423 typedef struct _repastespecial {
3424 DWORD dwAspect;
3425 DWORD dwParam;
3426 } REPASTESPECIAL;
3427
3428 typedef struct _reqresize {
3429 NMHDR nmhdr;
3430 RECT rc;
3431 } REQRESIZE;
3432
3433 typedef struct _RGNDATAHEADER {
3434 DWORD dwSize;
3435 DWORD iType;
3436 DWORD nCount;
3437 DWORD nRgnSize;
3438 RECT rcBound;
3439 } RGNDATAHEADER;
3440
3441 typedef struct _RGNDATA {
3442 RGNDATAHEADER rdh;
3443 char Buffer[1];
3444 } RGNDATA, *PRGNDATA, *LPRGNDATA;
3445
3446 typedef struct tagSCROLLINFO {
3447 UINT cbSize;
3448 UINT fMask;
3449 int nMin;
3450 int nMax;
3451 UINT nPage;
3452 int nPos;
3453 int nTrackPos;
3454 } SCROLLINFO, *LPSCROLLINFO;
3455 typedef SCROLLINFO const *LPCSCROLLINFO;
3456
3457
3458 typedef struct _selchange {
3459 NMHDR nmhdr;
3460 CHARRANGE chrg;
3461 WORD seltyp;
3462 } SELCHANGE;
3463
3464 typedef struct tagSERIALKEYS {
3465 DWORD cbSize;
3466 DWORD dwFlags;
3467 LPSTR lpszActivePort;
3468 LPSTR lpszPort;
3469 DWORD iBaudRate;
3470 DWORD iPortState;
3471 } SERIALKEYS, * LPSERIALKEYS;
3472
3473 typedef struct _SERVICE_TABLE_ENTRYA {
3474 LPSTR lpServiceName;
3475 LPSERVICE_MAIN_FUNCTION lpServiceProc;
3476 } SERVICE_TABLE_ENTRYA, *LPSERVICE_TABLE_ENTRYA;
3477
3478 typedef struct _SERVICE_TABLE_ENTRYW {
3479 LPWSTR lpServiceName;
3480 LPSERVICE_MAIN_FUNCTION lpServiceProc;
3481 } SERVICE_TABLE_ENTRYW, *LPSERVICE_TABLE_ENTRYW;
3482
3483 #ifdef UNICODE
3484 #define SERVICE_TABLE_ENTRY SERVICE_TABLE_ENTRYW
3485 #define LPSERVICE_TABLE_ENTRY LPSERVICE_TABLE_ENTRYW
3486 #else
3487 #define SERVICE_TABLE_ENTRY SERVICE_TABLE_ENTRYA
3488 #define LPSERVICE_TABLE_ENTRY LPSERVICE_TABLE_ENTRYA
3489 #endif
3490
3491
3492 typedef struct _SERVICE_TYPE_VALUE_ABS {
3493 DWORD dwNameSpace;
3494 DWORD dwValueType;
3495 DWORD dwValueSize;
3496 LPTSTR lpValueName;
3497 PVOID lpValue;
3498 } SERVICE_TYPE_VALUE_ABS;
3499
3500 typedef struct _SERVICE_TYPE_INFO_ABS {
3501 LPTSTR lpTypeName;
3502 DWORD dwValueCount;
3503 SERVICE_TYPE_VALUE_ABS Values[1];
3504 } SERVICE_TYPE_INFO_ABS;
3505
3506 typedef struct _SESSION_BUFFER {
3507 UCHAR lsn;
3508 UCHAR state;
3509 UCHAR local_name[NCBNAMSZ];
3510 UCHAR remote_name[NCBNAMSZ];
3511 UCHAR rcvs_outstanding;
3512 UCHAR sends_outstanding;
3513 } SESSION_BUFFER;
3514
3515 typedef struct _SESSION_HEADER {
3516 UCHAR sess_name;
3517 UCHAR num_sess;
3518 UCHAR rcv_dg_outstanding;
3519 UCHAR rcv_any_outstanding;
3520 } SESSION_HEADER;
3521
3522 typedef enum tagSHCONTF {
3523 SHCONTF_FOLDERS = 32,
3524 SHCONTF_NONFOLDERS = 64,
3525 SHCONTF_INCLUDEHIDDEN = 128,
3526 } SHCONTF;
3527
3528 typedef struct _SHFILEINFO {
3529 HICON hIcon;
3530 int iIcon;
3531 DWORD dwAttributes;
3532 char szDisplayName[MAX_PATH];
3533 char szTypeName[80];
3534 } SHFILEINFO;
3535
3536 typedef WORD FILEOP_FLAGS;
3537 typedef struct _SHFILEOPSTRUCT {
3538 HWND hwnd;
3539 UINT wFunc;
3540 LPCSTR pFrom;
3541 LPCSTR pTo;
3542 FILEOP_FLAGS fFlags;
3543 WINBOOL fAnyOperationsAborted;
3544 LPVOID hNameMappings;
3545 LPCSTR lpszProgressTitle;
3546 } SHFILEOPSTRUCT, *LPSHFILEOPSTRUCT;
3547
3548 typedef enum tagSHGDN {
3549 SHGDN_NORMAL = 0,
3550 SHGDN_INFOLDER = 1,
3551 SHGDN_FORPARSING = 0x8000,
3552 } SHGNO;
3553
3554 typedef struct _SHNAMEMAPPING {
3555 LPSTR pszOldPath;
3556 LPSTR pszNewPath;
3557 int cchOldPath;
3558 int cchNewPath;
3559 } SHNAMEMAPPING, *LPSHNAMEMAPPING;
3560
3561 typedef struct tagSOUNDSENTRY {
3562 UINT cbSize;
3563 DWORD dwFlags;
3564 DWORD iFSTextEffect;
3565 DWORD iFSTextEffectMSec;
3566 DWORD iFSTextEffectColorBits;
3567 DWORD iFSGrafEffect;
3568 DWORD iFSGrafEffectMSec;
3569 DWORD iFSGrafEffectColor;
3570 DWORD iWindowsEffect;
3571 DWORD iWindowsEffectMSec;
3572 LPTSTR lpszWindowsEffectDLL;
3573 DWORD iWindowsEffectOrdinal;
3574 } SOUNDSENTRY, *LPSOUNDSENTRY;
3575
3576 typedef struct _STARTUPINFOA {
3577 DWORD cb;
3578 LPSTR lpReserved;
3579 LPSTR lpDesktop;
3580 LPSTR lpTitle;
3581 DWORD dwX;
3582 DWORD dwY;
3583 DWORD dwXSize;
3584 DWORD dwYSize;
3585 DWORD dwXCountChars;
3586 DWORD dwYCountChars;
3587 DWORD dwFillAttribute;
3588 DWORD dwFlags;
3589 WORD wShowWindow;
3590 WORD cbReserved2;
3591 LPBYTE lpReserved2;
3592 HANDLE hStdInput;
3593 HANDLE hStdOutput;
3594 HANDLE hStdError;
3595 } STARTUPINFOA, *LPSTARTUPINFOA;
3596
3597 typedef struct _STARTUPINFOW {
3598 DWORD cb;
3599 LPWSTR lpReserved;
3600 LPWSTR lpDesktop;
3601 LPWSTR lpTitle;
3602 DWORD dwX;
3603 DWORD dwY;
3604 DWORD dwXSize;
3605 DWORD dwYSize;
3606 DWORD dwXCountChars;
3607 DWORD dwYCountChars;
3608 DWORD dwFillAttribute;
3609 DWORD dwFlags;
3610 WORD wShowWindow;
3611 WORD cbReserved2;
3612 LPBYTE lpReserved2;
3613 HANDLE hStdInput;
3614 HANDLE hStdOutput;
3615 HANDLE hStdError;
3616 } STARTUPINFOW, *LPSTARTUPINFOW;
3617
3618 #ifdef UNICODE
3619 typedef STARTUPINFOW STARTUPINFO;
3620 typedef LPSTARTUPINFOW LPSTARTUPINFO;
3621 #else
3622 typedef STARTUPINFOA STARTUPINFO;
3623 typedef LPSTARTUPINFOA LPSTARTUPINFO;
3624 #endif /* UNICODE */
3625
3626 typedef struct tagSTICKYKEYS {
3627 DWORD cbSize;
3628 DWORD dwFlags;
3629 } STICKYKEYS, *LPSTICKYKEYS;
3630
3631 typedef struct _STRRET {
3632 UINT uType;
3633 union
3634 {
3635 LPWSTR pOleStr;
3636 UINT uOffset;
3637 char cStr[MAX_PATH];
3638 } DUMMYUNIONNAME;
3639 } STRRET, *LPSTRRET;
3640
3641 typedef struct _tagSTYLEBUF {
3642 DWORD dwStyle;
3643 CHAR szDescription[32];
3644 } STYLEBUF, *LPSTYLEBUF;
3645
3646 typedef struct tagSTYLESTRUCT {
3647 DWORD styleOld;
3648 DWORD styleNew;
3649 } STYLESTRUCT, * LPSTYLESTRUCT;
3650
3651 typedef struct _SYSTEM_AUDIT_ACE {
3652 ACE_HEADER Header;
3653 ACCESS_MASK Mask;
3654 DWORD SidStart;
3655 } SYSTEM_AUDIT_ACE;
3656
3657 typedef struct _SYSTEM_INFO
3658 {
3659 union
3660 {
3661 DWORD dwOemId;
3662 struct
3663 {
3664 WORD wProcessorArchitecture;
3665 WORD wReserved;
3666 }
3667 s;
3668 }
3669 u;
3670 DWORD dwPageSize;
3671 LPVOID lpMinimumApplicationAddress;
3672 LPVOID lpMaximumApplicationAddress;
3673 DWORD dwActiveProcessorMask;
3674 DWORD dwNumberOfProcessors;
3675 DWORD dwProcessorType;
3676 DWORD dwAllocationGranularity;
3677 WORD wProcessorLevel;
3678 WORD wProcessorRevision;
3679 } SYSTEM_INFO, *LPSYSTEM_INFO;
3680
3681 typedef struct _SYSTEM_POWER_STATUS {
3682 BYTE ACLineStatus;
3683 BYTE BatteryFlag;
3684 BYTE BatteryLifePercent;
3685 BYTE Reserved1;
3686 DWORD BatteryLifeTime;
3687 DWORD BatteryFullLifeTime;
3688 } SYSTEM_POWER_STATUS;
3689 typedef SYSTEM_POWER_STATUS *LPSYSTEM_POWER_STATUS;
3690
3691 typedef struct _TAPE_ERASE {
3692 ULONG Type;
3693 } TAPE_ERASE;
3694
3695 typedef struct _TAPE_GET_DRIVE_PARAMETERS {
3696 BOOLEAN ECC;
3697 BOOLEAN Compression;
3698 BOOLEAN DataPadding;
3699 BOOLEAN ReportSetmarks;
3700 ULONG DefaultBlockSize;
3701 ULONG MaximumBlockSize;
3702 ULONG MinimumBlockSize;
3703 ULONG MaximumPartitionCount;
3704 ULONG FeaturesLow;
3705 ULONG FeaturesHigh;
3706 ULONG EOTWarningZoneSize;
3707 } TAPE_GET_DRIVE_PARAMETERS;
3708
3709 typedef struct _TAPE_GET_MEDIA_PARAMETERS {
3710 LARGE_INTEGER Capacity;
3711 LARGE_INTEGER Remaining;
3712 DWORD BlockSize;
3713 DWORD PartitionCount;
3714 BOOLEAN WriteProtected;
3715 } TAPE_GET_MEDIA_PARAMETERS;
3716
3717 typedef struct _TAPE_GET_POSITION {
3718 ULONG Type;
3719 ULONG Partition;
3720 ULONG OffsetLow;
3721 ULONG OffsetHigh;
3722 } TAPE_GET_POSITION;
3723
3724 typedef struct _TAPE_PREPARE {
3725 ULONG Operation;
3726 } TAPE_PREPARE;
3727
3728 typedef struct _TAPE_SET_DRIVE_PARAMETERS {
3729 BOOLEAN ECC;
3730 BOOLEAN Compression;
3731 BOOLEAN DataPadding;
3732 BOOLEAN ReportSetmarks;
3733 ULONG EOTWarningZoneSize;
3734 } TAPE_SET_DRIVE_PARAMETERS;
3735
3736 typedef struct _TAPE_SET_MEDIA_PARAMETERS {
3737 ULONG BlockSize;
3738 } TAPE_SET_MEDIA_PARAMETERS;
3739
3740 typedef struct _TAPE_SET_POSITION {
3741 ULONG Method;
3742 ULONG Partition;
3743 ULONG OffsetLow;
3744 ULONG OffsetHigh;
3745 } TAPE_SET_POSITION;
3746
3747 typedef struct _TAPE_WRITE_MARKS {
3748 ULONG Type;
3749 ULONG Count;
3750 } TAPE_WRITE_MARKS;
3751
3752 typedef struct {
3753 HINSTANCE hInst;
3754 UINT nID;
3755 } TBADDBITMAP, *LPTBADDBITMAP;
3756
3757 typedef struct _TBBUTTON {
3758 int iBitmap;
3759 int idCommand;
3760 BYTE fsState;
3761 BYTE fsStyle;
3762 DWORD dwData;
3763 int iString;
3764 } TBBUTTON, * PTBBUTTON, * LPTBBUTTON;
3765 typedef const TBBUTTON * LPCTBBUTTON;
3766
3767 typedef struct {
3768 NMHDR hdr;
3769 int iItem;
3770 TBBUTTON tbButton;
3771 int cchText;
3772 LPTSTR pszText;
3773 } TBNOTIFY, *LPTBNOTIFY;
3774
3775 typedef struct {
3776 HKEY hkr;
3777 LPCTSTR pszSubKey;
3778 LPCTSTR pszValueName;
3779 } TBSAVEPARAMS;
3780
3781 typedef struct _TC_HITTESTINFO {
3782 POINT pt;
3783 UINT flags;
3784 } TC_HITTESTINFO;
3785
3786 typedef struct _TC_ITEM {
3787 UINT mask;
3788 UINT lpReserved1;
3789 UINT lpReserved2;
3790 LPTSTR pszText;
3791 int cchTextMax;
3792 int iImage;
3793 LPARAM lParam;
3794 } TC_ITEM;
3795
3796 typedef struct _TC_ITEMHEADER {
3797 UINT mask;
3798 UINT lpReserved1;
3799 UINT lpReserved2;
3800 LPTSTR pszText;
3801 int cchTextMax;
3802 int iImage;
3803 } TC_ITEMHEADER;
3804
3805 typedef struct _TC_KEYDOWN {
3806 NMHDR hdr;
3807 WORD wVKey;
3808 UINT flags;
3809 } TC_KEYDOWN;
3810
3811 typedef struct _textrange {
3812 CHARRANGE chrg;
3813 LPSTR lpstrText;
3814 } TEXTRANGE;
3815
3816 typedef struct tagTOGGLEKEYS {
3817 DWORD cbSize;
3818 DWORD dwFlags;
3819 } TOGGLEKEYS;
3820
3821 typedef struct {
3822 UINT cbSize;
3823 UINT uFlags;
3824 HWND hwnd;
3825 UINT uId;
3826 RECT rect;
3827 HINSTANCE hinst;
3828 LPTSTR lpszText;
3829 } TOOLINFO, *PTOOLINFO, *LPTOOLINFO;
3830
3831 typedef struct {
3832 NMHDR hdr;
3833 LPTSTR lpszText;
3834 char szText[80];
3835 HINSTANCE hinst;
3836 UINT uFlags;
3837 } TOOLTIPTEXT, *LPTOOLTIPTEXT;
3838
3839 typedef struct tagTPMPARAMS {
3840 UINT cbSize;
3841 RECT rcExclude;
3842 } TPMPARAMS, *LPTPMPARAMS;
3843
3844 typedef struct _TRANSMIT_FILE_BUFFERS {
3845 PVOID Head;
3846 DWORD HeadLength;
3847 PVOID Tail;
3848 DWORD TailLength;
3849 } TRANSMIT_FILE_BUFFERS;
3850
3851 typedef struct _TT_HITTESTINFO {
3852 HWND hwnd;
3853 POINT pt;
3854 TOOLINFO ti;
3855 } TTHITTESTINFO, * LPHITTESTINFO;
3856
3857 typedef struct tagTTPOLYCURVE {
3858 WORD wType;
3859 WORD cpfx;
3860 POINTFX apfx[1];
3861 } TTPOLYCURVE, * LPTTPOLYCURVE;
3862
3863 typedef struct _TTPOLYGONHEADER {
3864 DWORD cb;
3865 DWORD dwType;
3866 POINTFX pfxStart;
3867 } TTPOLYGONHEADER, * LPTTPOLYGONHEADER;
3868
3869 typedef struct _TV_DISPINFO {
3870 NMHDR hdr;
3871 TV_ITEM item;
3872 } TV_DISPINFO;
3873
3874 typedef struct _TVHITTESTINFO {
3875 POINT pt;
3876 UINT flags;
3877 HTREEITEM hItem;
3878 } TV_HITTESTINFO, *LPTV_HITTESTINFO;
3879
3880 typedef struct _TV_INSERTSTRUCT {
3881 HTREEITEM hParent;
3882 HTREEITEM hInsertAfter;
3883 TV_ITEM item;
3884 } TV_INSERTSTRUCT, *LPTV_INSERTSTRUCT;
3885
3886 typedef struct _TV_KEYDOWN {
3887 NMHDR hdr;
3888 WORD wVKey;
3889 UINT flags;
3890 } TV_KEYDOWN;
3891
3892 typedef struct _TV_SORTCB {
3893 HTREEITEM hParent;
3894 PFNTVCOMPARE lpfnCompare;
3895 LPARAM lParam;
3896 } TV_SORTCB, *LPTV_SORTCB;
3897
3898 typedef struct {
3899 UINT nSec;
3900 UINT nInc;
3901 } UDACCEL;
3902
3903 typedef struct _UNIVERSAL_NAME_INFO {
3904 LPTSTR lpUniversalName;
3905 } UNIVERSAL_NAME_INFO;
3906
3907 typedef struct tagUSEROBJECTFLAGS {
3908 WINBOOL fInherit;
3909 WINBOOL fReserved;
3910 DWORD dwFlags;
3911 } USEROBJECTFLAGS;
3912
3913 typedef struct _VERIFY_INFORMATION {
3914 LARGE_INTEGER StartingOffset;
3915 DWORD Length;
3916 } VERIFY_INFORMATION ;
3917
3918 typedef struct _VS_FIXEDFILEINFO {
3919 DWORD dwSignature;
3920 DWORD dwStrucVersion;
3921 DWORD dwFileVersionMS;
3922 DWORD dwFileVersionLS;
3923 DWORD dwProductVersionMS;
3924 DWORD dwProductVersionLS;
3925 DWORD dwFileFlagsMask;
3926 DWORD dwFileFlags;
3927 DWORD dwFileOS;
3928 DWORD dwFileType;
3929 DWORD dwFileSubtype;
3930 DWORD dwFileDateMS;
3931 DWORD dwFileDateLS;
3932 } VS_FIXEDFILEINFO;
3933
3934 typedef struct _WIN32_FIND_DATAA {
3935 DWORD dwFileAttributes;
3936 FILETIME ftCreationTime;
3937 FILETIME ftLastAccessTime;
3938 FILETIME ftLastWriteTime;
3939 DWORD nFileSizeHigh;
3940 DWORD nFileSizeLow;
3941 DWORD dwReserved0;
3942 DWORD dwReserved1;
3943 CHAR cFileName[ MAX_PATH ];
3944 CHAR cAlternateFileName[ 14 ];
3945 } WIN32_FIND_DATAA, *LPWIN32_FIND_DATAA, *PWIN32_FIND_DATAA;
3946
3947 typedef struct _WIN32_FIND_DATAW {
3948 DWORD dwFileAttributes;
3949 FILETIME ftCreationTime;
3950 FILETIME ftLastAccessTime;
3951 FILETIME ftLastWriteTime;
3952 DWORD nFileSizeHigh;
3953 DWORD nFileSizeLow;
3954 DWORD dwReserved0;
3955 DWORD dwReserved1;
3956 WCHAR cFileName[ MAX_PATH ];
3957 WCHAR cAlternateFileName[ 14 ];
3958 } WIN32_FIND_DATAW, *LPWIN32_FIND_DATAW, *PWIN32_FIND_DATAW;
3959
3960 #ifdef UNICODE
3961 #define WIN32_FIND_DATA WIN32_FIND_DATAW
3962 #define PWIN32_FIND_DATA PWIN32_FIND_DATAW
3963 #define LPWIN32_FIND_DATA LPWIN32_FIND_DATAW
3964 #else
3965 #define WIN32_FIND_DATA WIN32_FIND_DATAA
3966 #define PWIN32_FIND_DATA PWIN32_FIND_DATAA
3967 #define LPWIN32_FIND_DATA LPWIN32_FIND_DATAA
3968 #endif
3969
3970 typedef struct _WIN32_STREAM_ID {
3971 DWORD dwStreamId;
3972 DWORD dwStreamAttributes;
3973 LARGE_INTEGER Size;
3974 DWORD dwStreamNameSize;
3975 WCHAR *cStreamName;
3976 } WIN32_STREAM_ID;
3977
3978 typedef struct _WINDOWPLACEMENT {
3979 UINT length;
3980 UINT flags;
3981 UINT showCmd;
3982 POINT ptMinPosition;
3983 POINT ptMaxPosition;
3984 RECT rcNormalPosition;
3985 } WINDOWPLACEMENT;
3986
3987 typedef struct _WNDCLASS {
3988 UINT style;
3989 WNDPROC lpfnWndProc;
3990 int cbClsExtra;
3991 int cbWndExtra;
3992 HANDLE hInstance;
3993 HICON hIcon;
3994 HCURSOR hCursor;
3995 HBRUSH hbrBackground;
3996 LPCTSTR lpszMenuName;
3997 LPCTSTR lpszClassName;
3998 } WNDCLASS, *LPWNDCLASS;
3999
4000 typedef struct _WNDCLASSEX {
4001 UINT cbSize;
4002 UINT style;
4003 WNDPROC lpfnWndProc;
4004 int cbClsExtra;
4005 int cbWndExtra;
4006 HANDLE hInstance;
4007 HICON hIcon;
4008 HCURSOR hCursor;
4009 HBRUSH hbrBackground;
4010 LPCTSTR lpszMenuName;
4011 LPCTSTR lpszClassName;
4012 HICON hIconSm;
4013 } WNDCLASSEX, *LPWNDCLASSEX;
4014
4015 typedef struct _CONNECTDLGSTRUCT {
4016 DWORD cbStructure;
4017 HWND hwndOwner;
4018 LPNETRESOURCE lpConnRes;
4019 DWORD dwFlags;
4020 DWORD dwDevNum;
4021 } CONNECTDLGSTRUCT, *LPCONNECTDLGSTRUCT;
4022
4023 typedef struct _DISCDLGSTRUCT {
4024 DWORD cbStructure;
4025 HWND hwndOwner;
4026 LPTSTR lpLocalName;
4027 LPTSTR lpRemoteName;
4028 DWORD dwFlags;
4029 } DISCDLGSTRUCT, *LPDISCDLGSTRUCT;
4030
4031 typedef struct _NETINFOSTRUCT{
4032 DWORD cbStructure;
4033 DWORD dwProviderVersion;
4034 DWORD dwStatus;
4035 DWORD dwCharacteristics;
4036 DWORD dwHandle;
4037 WORD wNetType;
4038 DWORD dwPrinters;
4039 DWORD dwDrives;
4040 } NETINFOSTRUCT, *LPNETINFOSTRUCT;
4041
4042 typedef struct _NETCONNECTINFOSTRUCT{
4043 DWORD cbStructure;
4044 DWORD dwFlags;
4045 DWORD dwSpeed;
4046 DWORD dwDelay;
4047 DWORD dwOptDataSize;
4048 } NETCONNECTINFOSTRUCT, *LPNETCONNECTINFOSTRUCT;
4049
4050 typedef int CALLBACK (*ENUMMETAFILEPROC) (HDC, HANDLETABLE,
4051 METARECORD, int, LPARAM);
4052 typedef int CALLBACK (*ENHMETAFILEPROC) (HDC, HANDLETABLE,
4053 ENHMETARECORD, int, LPARAM);
4054
4055 typedef int CALLBACK (*ENUMFONTSPROC) (LPLOGFONT, LPTEXTMETRIC, DWORD, LPARAM);
4056 typedef int CALLBACK (*FONTENUMPROC) (ENUMLOGFONT *, NEWTEXTMETRIC *,
4057 int, LPARAM);
4058 typedef int CALLBACK (*FONTENUMEXPROC) (ENUMLOGFONTEX *, NEWTEXTMETRICEX *,
4059 int, LPARAM);
4060
4061 typedef VOID CALLBACK (*LPOVERLAPPED_COMPLETION_ROUTINE) (DWORD, DWORD,
4062 LPOVERLAPPED);
4063
4064 /*
4065 Structures for the extensions to OpenGL
4066 */
4067 typedef struct _POINTFLOAT
4068 {
4069 FLOAT x;
4070 FLOAT y;
4071 } POINTFLOAT, *PPOINTFLOAT;
4072
4073 typedef struct _GLYPHMETRICSFLOAT
4074 {
4075 FLOAT gmfBlackBoxX;
4076 FLOAT gmfBlackBoxY;
4077 POINTFLOAT gmfptGlyphOrigin;
4078 FLOAT gmfCellIncX;
4079 FLOAT gmfCellIncY;
4080 } GLYPHMETRICSFLOAT, *PGLYPHMETRICSFLOAT, *LPGLYPHMETRICSFLOAT;
4081
4082 typedef struct tagLAYERPLANEDESCRIPTOR
4083 {
4084 WORD nSize;
4085 WORD nVersion;
4086 DWORD dwFlags;
4087 BYTE iPixelType;
4088 BYTE cColorBits;
4089 BYTE cRedBits;
4090 BYTE cRedShift;
4091 BYTE cGreenBits;
4092 BYTE cGreenShift;
4093 BYTE cBlueBits;
4094 BYTE cBlueShift;
4095 BYTE cAlphaBits;
4096 BYTE cAlphaShift;
4097 BYTE cAccumBits;
4098 BYTE cAccumRedBits;
4099 BYTE cAccumGreenBits;
4100 BYTE cAccumBlueBits;
4101 BYTE cAccumAlphaBits;
4102 BYTE cDepthBits;
4103 BYTE cStencilBits;
4104 BYTE cAuxBuffers;
4105 BYTE iLayerPlane;
4106 BYTE bReserved;
4107 COLORREF crTransparent;
4108 } LAYERPLANEDESCRIPTOR, *PLAYERPLANEDESCRIPTOR, *LPLAYERPLANEDESCRIPTOR;
4109
4110 typedef struct tagPIXELFORMATDESCRIPTOR
4111 {
4112 WORD nSize;
4113 WORD nVersion;
4114 DWORD dwFlags;
4115 BYTE iPixelType;
4116 BYTE cColorBits;
4117 BYTE cRedBits;
4118 BYTE cRedShift;
4119 BYTE cGreenBits;
4120 BYTE cGreenShift;
4121 BYTE cBlueBits;
4122 BYTE cBlueShift;
4123 BYTE cAlphaBits;
4124 BYTE cAlphaShift;
4125 BYTE cAccumBits;
4126 BYTE cAccumRedBits;
4127 BYTE cAccumGreenBits;
4128 BYTE cAccumBlueBits;
4129 BYTE cAccumAlphaBits;
4130 BYTE cDepthBits;
4131 BYTE cStencilBits;
4132 BYTE cAuxBuffers;
4133 BYTE iLayerType;
4134 BYTE bReserved;
4135 DWORD dwLayerMask;
4136 DWORD dwVisibleMask;
4137 DWORD dwDamageMask;
4138 } PIXELFORMATDESCRIPTOR, *PPIXELFORMATDESCRIPTOR, *LPPIXELFORMATDESCRIPTOR;
4139
4140 typedef struct
4141 {
4142 LPWSTR usri2_name;
4143 LPWSTR usri2_password;
4144 DWORD usri2_password_age;
4145 DWORD usri2_priv;
4146 LPWSTR usri2_home_dir;
4147 LPWSTR usri2_comment;
4148 DWORD usri2_flags;
4149 LPWSTR usri2_script_path;
4150 DWORD usri2_auth_flags;
4151 LPWSTR usri2_full_name;
4152 LPWSTR usri2_usr_comment;
4153 LPWSTR usri2_parms;
4154 LPWSTR usri2_workstations;
4155 DWORD usri2_last_logon;
4156 DWORD usri2_last_logoff;
4157 DWORD usri2_acct_expires;
4158 DWORD usri2_max_storage;
4159 DWORD usri2_units_per_week;
4160 PBYTE usri2_logon_hours;
4161 DWORD usri2_bad_pw_count;
4162 DWORD usri2_num_logons;
4163 LPWSTR usri2_logon_server;
4164 DWORD usri2_country_code;
4165 DWORD usri2_code_page;
4166 } USER_INFO_2, *PUSER_INFO_2, *LPUSER_INFO_2;
4167
4168 typedef struct
4169 {
4170 LPWSTR usri0_name;
4171 } USER_INFO_0, *PUSER_INFO_0, *LPUSER_INFO_0;
4172
4173 typedef struct
4174 {
4175 LPWSTR usri3_name;
4176 LPWSTR usri3_password;
4177 DWORD usri3_password_age;
4178 DWORD usri3_priv;
4179 LPWSTR usri3_home_dir;
4180 LPWSTR usri3_comment;
4181 DWORD usri3_flags;
4182 LPWSTR usri3_script_path;
4183 DWORD usri3_auth_flags;
4184 LPWSTR usri3_full_name;
4185 LPWSTR usri3_usr_comment;
4186 LPWSTR usri3_parms;
4187 LPWSTR usri3_workstations;
4188 DWORD usri3_last_logon;
4189 DWORD usri3_last_logoff;
4190 DWORD usri3_acct_expires;
4191 DWORD usri3_max_storage;
4192 DWORD usri3_units_per_week;
4193 PBYTE usri3_logon_hours;
4194 DWORD usri3_bad_pw_count;
4195 DWORD usri3_num_logons;
4196 LPWSTR usri3_logon_server;
4197 DWORD usri3_country_code;
4198 DWORD usri3_code_page;
4199 DWORD usri3_user_id;
4200 DWORD usri3_primary_group_id;
4201 LPWSTR usri3_profile;
4202 LPWSTR usri3_home_dir_drive;
4203 DWORD usri3_password_expired;
4204 } USER_INFO_3, *PUSER_INFO_3, *LPUSER_INFO_3;
4205
4206 typedef struct
4207 {
4208 LPWSTR grpi2_name;
4209 LPWSTR grpi2_comment;
4210 DWORD grpi2_group_id;
4211 DWORD grpi2_attributes;
4212 } GROUP_INFO_2, *PGROUP_INFO_2;
4213
4214 typedef struct
4215 {
4216 LPWSTR lgrpi0_name;
4217 } LOCALGROUP_INFO_0, *PLOCALGROUP_INFO_0, *LPLOCALGROUP_INFO_0;
4218
4219 /* PE executable header. */
4220 /* Windows.h now includes pe.h to avoid conflicts! */
4221
4222 typedef struct _DISPLAY_DEVICE {
4223 DWORD cb;
4224 WCHAR DeviceName[32];
4225 WCHAR DeviceString[128];
4226 DWORD StateFlags;
4227 WCHAR DeviceID[128];
4228 WCHAR DeviceKey[128];
4229 } DISPLAY_DEVICE, *PDISPLAY_DEVICE;
4230
4231 typedef HANDLE HMONITOR;
4232 typedef HANDLE HDEVNOTIFY;
4233
4234 typedef BOOL CALLBACK (*MonitorEnumProc)(
4235 HMONITOR hMonitor,
4236 HDC hdcMonitor,
4237 LPRECT lprcMonitor,
4238 LPARAM dwData);
4239
4240 typedef MonitorEnumProc MONITORENUMPROC;
4241
4242 typedef struct {
4243 UINT cbSize;
4244 HWND hwnd;
4245 DWORD dwFlags;
4246 UINT uCount;
4247 DWORD dwTimeout;
4248 } FLASHWINFO, *PFLASHWINFO;
4249
4250 typedef struct tagALTTABINFO {
4251 DWORD cbSize;
4252 int cItems;
4253 int cColumns;
4254 int cRows;
4255 int iColFocus;
4256 int iRowFocus;
4257 int cxItem;
4258 int cyItem;
4259 POINT ptStart;
4260 } ALTTABINFO, *PALTTABINFO, *LPALTTABINFO;
4261
4262 typedef struct tagCOMBOBOXINFO {
4263 DWORD cbSize;
4264 RECT rcItem;
4265 RECT rcButton;
4266 DWORD stateButton;
4267 HWND hwndCombo;
4268 HWND hwndItem;
4269 HWND hwndList;
4270 } COMBOBOXINFO, *PCOMBOBOXINFO, *LPCOMBOBOXINFO;
4271
4272 typedef struct tagCURSORINFO {
4273 DWORD cbSize;
4274 DWORD flags;
4275 HCURSOR hCursor;
4276 POINT ptScreenPos;
4277 } CURSORINFO, *PCURSORINFO, *LPCURSORINFO;
4278
4279 typedef struct tagGUITHREADINFO {
4280 DWORD cbSize;
4281 DWORD flags;
4282 HWND hwndActive;
4283 HWND hwndFocus;
4284 HWND hwndCapture;
4285 HWND hwndMenuOwner;
4286 HWND hwndMoveSize;
4287 HWND hwndCaret;
4288 RECT rcCaret;
4289 } GUITHREADINFO, *PGUITHREADINFO, *LPGUITHREADINFO;
4290
4291 typedef struct tagLASTINPUTINFO {
4292 UINT cbSize;
4293 DWORD dwTime;
4294 } LASTINPUTINFO, *PLASTINPUTINFO;
4295
4296 typedef struct tagMENUBARINFO {
4297 DWORD cbSize;
4298 RECT rcBar;
4299 HMENU hMenu;
4300 HWND hwndMenu;
4301 BOOL fBarFocused:1;
4302 BOOL fFocused:1;
4303 } MENUBARINFO, *PMENUBARINFO;
4304
4305 typedef struct tagMENUINFO {
4306 DWORD cbSize;
4307 DWORD fMask;
4308 DWORD dwStyle;
4309 UINT cyMax;
4310 HBRUSH hbrBack;
4311 DWORD dwContextHelpID;
4312 ULONG_PTR dwMenuData;
4313 } MENUINFO, FAR *LPMENUINFO;
4314 typedef MENUINFO CONST FAR *LPCMENUINFO;
4315
4316 typedef struct tagMONITORINFO {
4317 DWORD cbSize;
4318 RECT rcMonitor;
4319 RECT rcWork;
4320 DWORD dwFlags;
4321 } MONITORINFO, *LPMONITORINFO;
4322
4323 typedef struct tagMOUSEMOVEPOINT {
4324 int x;
4325 int y;
4326 DWORD time;
4327 ULONG_PTR dwExtraInfo;
4328 } MOUSEMOVEPOINT, *PMOUSEMOVEPOINT, *LPMOUSEMOVEPOINT;
4329
4330 #define CCHILDREN_SCROLLBAR 5
4331
4332 typedef struct tagSCROLLBARINFO {
4333 DWORD cbSize;
4334 RECT rcScrollBar;
4335 int dxyLineButton;
4336 int xyThumbTop;
4337 int xyThumbBottom;
4338 int reserved;
4339 DWORD rgstate[CCHILDREN_SCROLLBAR+1];
4340 } SCROLLBARINFO, *PSCROLLBARINFO, *LPSCROLLBARINFO;
4341
4342 #define CCHILDREN_TITLEBAR 5
4343
4344 typedef struct tagTITLEBARINFO {
4345 DWORD cbSize;
4346 RECT rcTitleBar;
4347 DWORD rgstate[CCHILDREN_TITLEBAR+1];
4348 } TITLEBARINFO, *PTITLEBARINFO, *LPTITLEBARINFO;
4349
4350 typedef struct {
4351 HWND hwnd;
4352 LPCTSTR szWindowName;
4353 UINT32 fToBeClosed;
4354 UINT32 fToBeTerminated;
4355 } WINDOWINFO, *PWINDOWINFO, *LPWINDOWINFO;
4356
4357 typedef struct tagMOUSEINPUT {
4358 LONG dx;
4359 LONG dy;
4360 DWORD mouseData;
4361 DWORD dwFlags;
4362 DWORD time;
4363 ULONG_PTR dwExtraInfo;
4364 } MOUSEINPUT, *PMOUSEINPUT;
4365
4366 typedef struct tagKEYBDINPUT {
4367 WORD wVk;
4368 WORD wScan;
4369 DWORD dwFlags;
4370 DWORD time;
4371 ULONG_PTR dwExtraInfo;
4372 } KEYBDINPUT, *PKEYBDINPUT;
4373
4374 typedef struct tagHARDWAREINPUT {
4375 DWORD uMsg;
4376 WORD wParamL;
4377 WORD wParamH;
4378 } HARDWAREINPUT, *PHARDWAREINPUT;
4379
4380 typedef struct tagINPUT {
4381 DWORD type;
4382 union
4383 {
4384 MOUSEINPUT mi;
4385 KEYBDINPUT ki;
4386 HARDWAREINPUT hi;
4387 } u;
4388 } INPUT, *PINPUT, FAR* LPINPUT;
4389
4390 typedef struct tagTRACKMOUSEEVENT {
4391 DWORD cbSize;
4392 DWORD dwFlags;
4393 HWND hwndTrack;
4394 DWORD dwHoverTime;
4395 } TRACKMOUSEEVENT, *LPTRACKMOUSEEVENT;
4396
4397 typedef struct _BLENDFUNCTION {
4398 BYTE BlendOp;
4399 BYTE BlendFlags;
4400 BYTE SourceConstantAlpha;
4401 BYTE AlphaFormat;
4402 }BLENDFUNCTION, *PBLENDFUNCTION, *LPBLENDFUNCTION;
4403
4404 typedef enum _GET_FILEEX_INFO_LEVELS {
4405 GetFileExInfoStandard
4406 } GET_FILEEX_INFO_LEVELS;
4407
4408 typedef struct _WIN32_FILE_ATTRIBUTES_DATA {
4409 DWORD dwFileAttributes;
4410 FILETIME ftCreationTime;
4411 FILETIME ftLastAccessTime;
4412 FILETIME ftLastWriteTime;
4413 DWORD nFileSizeHigh;
4414 DWORD nFileSizeLow;
4415 } WIN32_FILE_ATTRIBUTE_DATA, *LPWIN32_FILE_ATTRIBUTE_DATA;
4416
4417 #ifdef __cplusplus
4418 }
4419 #endif /* __cplusplus */
4420
4421 #endif /* WIN32_LEAN_AND_MEAN */
4422
4423 #endif /* _GNU_H_WINDOWS32_STRUCTURES */
4424
4425