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