Main Page | Modules | Class Hierarchy | Class List | Directories | File List | Class Members | File Members | Related Pages

winuser.h

00001 #ifndef _WINUSER_
00002 #define _WINUSER_
00003 
00004 #ifndef RC_INVOKED
00005 #include <stdarg.h>
00006 #endif
00007 
00008 #ifdef __cplusplus
00009 extern "C" {
00010 #endif
00011 
00012 #include "pshpack1.h"
00013 
00014 /* flags for HIGHCONTRAST dwFlags field */
00015 #define HCF_HIGHCONTRASTON  0x00000001
00016 #define HCF_AVAILABLE       0x00000002
00017 #define HCF_HOTKEYACTIVE    0x00000004
00018 #define HCF_CONFIRMHOTKEY   0x00000008
00019 #define HCF_HOTKEYSOUND     0x00000010
00020 #define HCF_INDICATOR       0x00000020
00021 #define HCF_HOTKEYAVAILABLE 0x00000040
00022 
00023 typedef struct tagHIGHCONTRASTA
00024 {
00025     UINT  cbSize;
00026     DWORD   dwFlags;
00027     LPSTR   lpszDefaultScheme;
00028 } HIGHCONTRASTA, *LPHIGHCONTRASTA;
00029 
00030 typedef struct tagHIGHCONTRASTW
00031 {
00032     UINT  cbSize;
00033     DWORD   dwFlags;
00034     LPWSTR  lpszDefaultScheme;
00035 } HIGHCONTRASTW, *LPHIGHCONTRASTW;
00036 
00037 DECL_WINELIB_TYPE_AW(HIGHCONTRAST)
00038 DECL_WINELIB_TYPE_AW(LPHIGHCONTRAST)
00039 
00040 typedef struct
00041 {
00042     UINT  message;
00043     UINT  paramL;
00044     UINT  paramH;
00045     DWORD   time;
00046     HWND  hwnd;
00047 } EVENTMSG, *LPEVENTMSG;
00048 
00049 
00050     /* Mouse hook structure */
00051 
00052 typedef struct
00053 {
00054     POINT pt;
00055     HWND  hwnd;
00056     UINT  wHitTestCode;
00057     DWORD   dwExtraInfo;
00058 } MOUSEHOOKSTRUCT, *PMOUSEHOOKSTRUCT, *LPMOUSEHOOKSTRUCT;
00059 
00060 
00061     /* Hardware hook structure */
00062 
00063 typedef struct
00064 {
00065     HWND    hWnd;
00066     UINT    wMessage;
00067     WPARAM  wParam;
00068     LPARAM    lParam;
00069 } HARDWAREHOOKSTRUCT, *LPHARDWAREHOOKSTRUCT;
00070 
00071 
00072   /* Debug hook structure */
00073 
00074 typedef struct
00075 {
00076     DWORD       idThread;
00077     DWORD       idThreadInstaller;
00078     LPARAM      lParam;
00079     WPARAM    wParam;
00080     INT       code;
00081 } DEBUGHOOKINFO, *LPDEBUGHOOKINFO;
00082 
00083 #define HKL_PREV   0
00084 #define HKL_NEXT   1
00085 
00086 #define KLF_ACTIVATE       0x00000001
00087 #define KLF_SUBSTITUTE_OK  0x00000002
00088 #define KLF_UNLOADPREVIOUS 0x00000004
00089 #define KLF_REORDER        0x00000008
00090 #define KLF_REPLACELANG    0x00000010
00091 #define KLF_NOTELLSHELL    0x00000080
00092 
00093 #define KL_NAMELENGTH      9
00094 
00095   /***** Dialogs *****/
00096 #ifdef FSHIFT
00097 /* Gcc on Solaris has a version of this that we don't care about.  */
00098 #undef FSHIFT
00099 #endif
00100 
00101 #define FVIRTKEY        TRUE          /* Assumed to be == TRUE */
00102 #define FNOINVERT       0x02
00103 #define FSHIFT          0x04
00104 #define FCONTROL        0x08
00105 #define FALT            0x10
00106 
00107 
00108 typedef struct tagANIMATIONINFO
00109 {
00110        UINT          cbSize;
00111        INT           iMinAnimate;
00112 } ANIMATIONINFO, *LPANIMATIONINFO;
00113 
00114 typedef struct tagNMHDR
00115 {
00116     HWND  hwndFrom;
00117     UINT  idFrom;
00118     UINT  code;
00119 } NMHDR, *LPNMHDR;
00120 
00121 typedef struct
00122 {
00123         UINT    cbSize;
00124         INT     iTabLength;
00125         INT     iLeftMargin;
00126         INT     iRightMargin;
00127         UINT    uiLengthDrawn;
00128 } DRAWTEXTPARAMS,*LPDRAWTEXTPARAMS;
00129 
00130 #define WM_USER             0x0400
00131 
00132 #define DT_EDITCONTROL      0x00002000
00133 #define DT_PATH_ELLIPSIS    0x00004000
00134 #define DT_END_ELLIPSIS     0x00008000
00135 #define DT_MODIFYSTRING     0x00010000
00136 #define DT_RTLREADING       0x00020000
00137 #define DT_WORD_ELLIPSIS    0x00040000
00138 
00139 typedef struct
00140 {
00141    LPARAM   lParam;
00142    WPARAM16 wParam;
00143    UINT16   message;
00144    HWND16   hwnd;
00145 } CWPSTRUCT16, *LPCWPSTRUCT16;
00146 
00147 typedef struct
00148 {
00149   LPARAM        lParam;
00150   WPARAM      wParam;
00151   UINT        message;
00152   HWND        hwnd;
00153 } CWPSTRUCT, *LPCWPSTRUCT;
00154 
00155 
00156 
00157 typedef struct
00158 {
00159   LRESULT       lResult;
00160   LPARAM        lParam;
00161   WPARAM16      wParam;
00162   DWORD         message;
00163   HWND16        hwnd;
00164 } CWPRETSTRUCT16, *LPCWPRETSTRUCT16;
00165 
00166 typedef struct
00167 {
00168   LRESULT       lResult;
00169   LPARAM        lParam;
00170   WPARAM      wParam;
00171   DWORD         message;
00172   HWND        hwnd;
00173 } CWPRETSTRUCT, *LPCWPRETSTRUCT;
00174 
00175 typedef struct
00176 {
00177     UINT   length;
00178     UINT   flags;
00179     UINT   showCmd;
00180     POINT  ptMinPosition WINE_PACKED;
00181     POINT  ptMaxPosition WINE_PACKED;
00182     RECT   rcNormalPosition WINE_PACKED;
00183 } WINDOWPLACEMENT, *LPWINDOWPLACEMENT;
00184 
00185 
00186   /* WINDOWPLACEMENT flags */
00187 #define WPF_SETMINPOSITION      0x0001
00188 #define WPF_RESTORETOMAXIMIZED  0x0002
00189 
00190 /***** Dialogs *****/
00191 
00192   /* cbWndExtra bytes for dialog class */
00193 #define DLGWINDOWEXTRA      30
00194 
00195 /* Button control styles */
00196 #define BS_PUSHBUTTON          0x00000000L
00197 #define BS_DEFPUSHBUTTON       0x00000001L
00198 #define BS_CHECKBOX            0x00000002L
00199 #define BS_AUTOCHECKBOX        0x00000003L
00200 #define BS_RADIOBUTTON         0x00000004L
00201 #define BS_3STATE              0x00000005L
00202 #define BS_AUTO3STATE          0x00000006L
00203 #define BS_GROUPBOX            0x00000007L
00204 #define BS_USERBUTTON          0x00000008L
00205 #define BS_AUTORADIOBUTTON     0x00000009L
00206 #define BS_OWNERDRAW           0x0000000BL
00207 #define BS_LEFTTEXT            0x00000020L
00208 
00209 #define BS_TEXT                0x00000000L
00210 #define BS_ICON                0x00000040L
00211 #define BS_BITMAP              0x00000080L
00212 #define BS_LEFT                0x00000100L
00213 #define BS_RIGHT               0x00000200L
00214 #define BS_CENTER              0x00000300L
00215 #define BS_TOP                 0x00000400L
00216 #define BS_BOTTOM              0x00000800L
00217 #define BS_VCENTER             0x00000C00L
00218 #define BS_PUSHLIKE            0x00001000L
00219 #define BS_MULTILINE           0x00002000L
00220 #define BS_NOTIFY              0x00004000L
00221 #define BS_FLAT                0x00008000L
00222 
00223   /* Dialog styles */
00224 #define DS_ABSALIGN             0x0001
00225 #define DS_SYSMODAL             0x0002
00226 #define DS_3DLOOK               0x0004  /* win95 */
00227 #define DS_FIXEDSYS             0x0008  /* win95 */
00228 #define DS_NOFAILCREATE         0x0010  /* win95 */
00229 #define DS_LOCALEDIT            0x0020
00230 #define DS_SETFONT              0x0040
00231 #define DS_MODALFRAME           0x0080
00232 #define DS_NOIDLEMSG            0x0100
00233 #define DS_SETFOREGROUND        0x0200  /* win95 */
00234 #define DS_CONTROL              0x0400  /* win95 */
00235 #define DS_CENTER               0x0800  /* win95 */
00236 #define DS_CENTERMOUSE          0x1000  /* win95 */
00237 #define DS_CONTEXTHELP          0x2000  /* win95 */
00238 
00239 
00240   /* Dialog messages */
00241 #define DM_GETDEFID         (WM_USER+0)
00242 #define DM_SETDEFID         (WM_USER+1)
00243 
00244 #define DC_HASDEFID         0x534b
00245 
00246 /* Owner draw control types */
00247 #define ODT_MENU        1
00248 #define ODT_LISTBOX     2
00249 #define ODT_COMBOBOX    3
00250 #define ODT_BUTTON      4
00251 #define ODT_STATIC      5
00252 
00253 /* Owner draw actions */
00254 #define ODA_DRAWENTIRE  0x0001
00255 #define ODA_SELECT      0x0002
00256 #define ODA_FOCUS       0x0004
00257 
00258 /* Owner draw state */
00259 #define ODS_SELECTED    0x0001
00260 #define ODS_GRAYED      0x0002
00261 #define ODS_DISABLED    0x0004
00262 #define ODS_CHECKED     0x0008
00263 #define ODS_FOCUS       0x0010
00264 #define ODS_COMBOBOXEDIT 0x1000
00265 #define ODS_HOTLIGHT    0x0040
00266 #define ODS_INACTIVE    0x0080
00267 
00268 /* Edit control styles */
00269 #define ES_LEFT         0x00000000
00270 #define ES_CENTER       0x00000001
00271 #define ES_RIGHT        0x00000002
00272 #define ES_MULTILINE    0x00000004
00273 #define ES_UPPERCASE    0x00000008
00274 #define ES_LOWERCASE    0x00000010
00275 #define ES_PASSWORD     0x00000020
00276 #define ES_AUTOVSCROLL  0x00000040
00277 #define ES_AUTOHSCROLL  0x00000080
00278 #define ES_NOHIDESEL    0x00000100
00279 #define ES_OEMCONVERT   0x00000400
00280 #define ES_READONLY     0x00000800
00281 #define ES_WANTRETURN   0x00001000
00282 #define ES_NUMBER       0x00002000
00283 
00284 /* OEM Resource Ordinal Numbers */
00285 #define OBM_CLOSED          32731
00286 #define OBM_RADIOCHECK      32732
00287 #define OBM_TRTYPE          32733
00288 #define OBM_LFARROWI        32734
00289 #define OBM_RGARROWI        32735
00290 #define OBM_DNARROWI        32736
00291 #define OBM_UPARROWI        32737
00292 #define OBM_COMBO           32738
00293 #define OBM_MNARROW         32739
00294 #define OBM_LFARROWD        32740
00295 #define OBM_RGARROWD        32741
00296 #define OBM_DNARROWD        32742
00297 #define OBM_UPARROWD        32743
00298 #define OBM_RESTORED        32744
00299 #define OBM_ZOOMD           32745
00300 #define OBM_REDUCED         32746
00301 #define OBM_RESTORE         32747
00302 #define OBM_ZOOM            32748
00303 #define OBM_REDUCE          32749
00304 #define OBM_LFARROW         32750
00305 #define OBM_RGARROW         32751
00306 #define OBM_DNARROW         32752
00307 #define OBM_UPARROW         32753
00308 #define OBM_CLOSE           32754
00309 #define OBM_OLD_RESTORE     32755
00310 #define OBM_OLD_ZOOM        32756
00311 #define OBM_OLD_REDUCE      32757
00312 #define OBM_BTNCORNERS      32758
00313 #define OBM_CHECKBOXES      32759
00314 #define OBM_CHECK           32760
00315 #define OBM_BTSIZE          32761
00316 #define OBM_OLD_LFARROW     32762
00317 #define OBM_OLD_RGARROW     32763
00318 #define OBM_OLD_DNARROW     32764
00319 #define OBM_OLD_UPARROW     32765
00320 #define OBM_SIZE            32766
00321 #define OBM_OLD_CLOSE       32767
00322 
00323 #define OCR_BUMMER          100
00324 #define OCR_DRAGOBJECT      101
00325 
00326 #define OCR_NORMAL          32512
00327 #define OCR_IBEAM           32513
00328 #define OCR_WAIT            32514
00329 #define OCR_CROSS           32515
00330 #define OCR_UP              32516
00331 #define OCR_SIZE            32640
00332 #define OCR_ICON            32641
00333 #define OCR_SIZENWSE        32642
00334 #define OCR_SIZENESW        32643
00335 #define OCR_SIZEWE          32644
00336 #define OCR_SIZENS          32645
00337 #define OCR_SIZEALL         32646
00338 #define OCR_ICOCUR          32647
00339 #define OCR_NO              32648
00340 #define OCR_APPSTARTING     32650
00341 #define OCR_HELP            32651  /* only defined in wine */
00342 
00343 #define OIC_SAMPLE          32512
00344 #define OIC_HAND            32513
00345 #define OIC_QUES            32514
00346 #define OIC_BANG            32515
00347 #define OIC_NOTE            32516
00348 #define OIC_PORTRAIT        32517
00349 #define OIC_LANDSCAPE       32518
00350 #define OIC_WINEICON        32519
00351 #define OIC_FOLDER          32520
00352 #define OIC_FOLDER2         32521
00353 #define OIC_FLOPPY          32522
00354 #define OIC_CDROM           32523
00355 #define OIC_HDISK           32524
00356 #define OIC_NETWORK         32525
00357 
00358 #define COLOR_SCROLLBAR             0
00359 #define COLOR_BACKGROUND            1
00360 #define COLOR_ACTIVECAPTION         2
00361 #define COLOR_INACTIVECAPTION       3
00362 #define COLOR_MENU                  4
00363 #define COLOR_WINDOW                5
00364 #define COLOR_WINDOWFRAME           6
00365 #define COLOR_MENUTEXT              7
00366 #define COLOR_WINDOWTEXT            8
00367 #define COLOR_CAPTIONTEXT           9
00368 #define COLOR_ACTIVEBORDER         10
00369 #define COLOR_INACTIVEBORDER       11
00370 #define COLOR_APPWORKSPACE         12
00371 #define COLOR_HIGHLIGHT            13
00372 #define COLOR_HIGHLIGHTTEXT        14
00373 #define COLOR_BTNFACE              15
00374 #define COLOR_BTNSHADOW            16
00375 #define COLOR_GRAYTEXT             17
00376 #define COLOR_BTNTEXT              18
00377 #define COLOR_INACTIVECAPTIONTEXT  19
00378 #define COLOR_BTNHIGHLIGHT         20
00379 /* win95 colors */
00380 #define COLOR_3DDKSHADOW           21
00381 #define COLOR_3DLIGHT              22
00382 #define COLOR_INFOTEXT             23
00383 #define COLOR_INFOBK               24
00384 #define COLOR_DESKTOP              COLOR_BACKGROUND
00385 #define COLOR_3DFACE               COLOR_BTNFACE
00386 #define COLOR_3DSHADOW             COLOR_BTNSHADOW
00387 #define COLOR_3DHIGHLIGHT          COLOR_BTNHIGHLIGHT
00388 #define COLOR_3DHILIGHT            COLOR_BTNHIGHLIGHT
00389 #define COLOR_BTNHILIGHT           COLOR_BTNHIGHLIGHT
00390 /* win98 colors */
00391 #define COLOR_ALTERNATEBTNFACE         25  /* undocumented, constant's name unknown */
00392 #define COLOR_HOTLIGHT                 26
00393 #define COLOR_GRADIENTACTIVECAPTION    27
00394 #define COLOR_GRADIENTINACTIVECAPTION  28
00395 
00396   /* WM_CTLCOLOR values */
00397 #define CTLCOLOR_MSGBOX             0
00398 #define CTLCOLOR_EDIT               1
00399 #define CTLCOLOR_LISTBOX            2
00400 #define CTLCOLOR_BTN                3
00401 #define CTLCOLOR_DLG                4
00402 #define CTLCOLOR_SCROLLBAR          5
00403 #define CTLCOLOR_STATIC             6
00404 
00405 /* Edit control messages */
00406 #define EM_GETSEL                0x00b0
00407 #define EM_SETSEL                0x00b1
00408 #define EM_GETRECT               0x00b2
00409 #define EM_SETRECT               0x00b3
00410 #define EM_SETRECTNP             0x00b4
00411 #define EM_SCROLL                0x00b5
00412 #define EM_LINESCROLL            0x00b6
00413 #define EM_SCROLLCARET           0x00b7
00414 #define EM_GETMODIFY             0x00b8
00415 #define EM_SETMODIFY             0x00b9
00416 #define EM_GETLINECOUNT          0x00ba
00417 #define EM_LINEINDEX             0x00bb
00418 #define EM_SETHANDLE             0x00bc
00419 #define EM_GETHANDLE             0x00bd
00420 #define EM_GETTHUMB              0x00be
00421 /* FIXME : missing from specs 0x00bf and 0x00c0 */
00422 #define EM_LINELENGTH            0x00c1
00423 #define EM_REPLACESEL            0x00c2
00424 /* FIXME : missing from specs 0x00c3 */
00425 #define EM_GETLINE               0x00c4
00426 #define EM_LIMITTEXT             0x00c5
00427 #define EM_CANUNDO               0x00c6
00428 #define EM_UNDO                  0x00c7
00429 #define EM_FMTLINES              0x00c8
00430 #define EM_LINEFROMCHAR          0x00c9
00431 /* FIXME : missing from specs 0x00ca */
00432 #define EM_SETTABSTOPS           0x00cb
00433 #define EM_SETPASSWORDCHAR       0x00cc
00434 #define EM_EMPTYUNDOBUFFER       0x00cd
00435 #define EM_GETFIRSTVISIBLELINE   0x00ce
00436 #define EM_SETREADONLY           0x00cf
00437 #define EM_SETWORDBREAKPROC      0x00d0
00438 #define EM_GETWORDBREAKPROC      0x00d1
00439 #define EM_GETPASSWORDCHAR       0x00d2
00440 #define EM_SETMARGINS            0x00d3
00441 #define EM_GETMARGINS            0x00d4
00442 #define EM_GETLIMITTEXT          0x00d5
00443 #define EM_POSFROMCHAR           0x00d6
00444 #define EM_CHARFROMPOS           0x00d7
00445 /* a name change since win95 */
00446 #define EM_SETLIMITTEXT          EM_LIMITTEXT
00447 
00448 /* EDITWORDBREAKPROC code values */
00449 #define WB_LEFT         0
00450 #define WB_RIGHT        1
00451 #define WB_ISDELIMITER  2
00452 
00453 /* Edit control notification codes */
00454 #define EN_SETFOCUS     0x0100
00455 #define EN_KILLFOCUS    0x0200
00456 #define EN_CHANGE       0x0300
00457 #define EN_UPDATE       0x0400
00458 #define EN_ERRSPACE     0x0500
00459 #define EN_MAXTEXT      0x0501
00460 #define EN_HSCROLL      0x0601
00461 #define EN_VSCROLL      0x0602
00462 
00463 /* New since win95 : EM_SETMARGIN parameters */
00464 #define EC_LEFTMARGIN   0x0001
00465 #define EC_RIGHTMARGIN  0x0002
00466 #define EC_USEFONTINFO  0xffff
00467 
00468 
00469 /* Messages */
00470 
00471   /* WM_GETDLGCODE values */
00472 
00473 
00474 #define WM_NULL                 0x0000
00475 #define WM_CREATE               0x0001
00476 #define WM_DESTROY              0x0002
00477 #define WM_MOVE                 0x0003
00478 #define WM_SIZEWAIT             0x0004
00479 #define WM_SIZE                 0x0005
00480 #define WM_ACTIVATE             0x0006
00481 #define WM_SETFOCUS             0x0007
00482 #define WM_KILLFOCUS            0x0008
00483 #define WM_SETVISIBLE           0x0009
00484 #define WM_ENABLE               0x000a
00485 #define WM_SETREDRAW            0x000b
00486 #define WM_SETTEXT              0x000c
00487 #define WM_GETTEXT              0x000d
00488 #define WM_GETTEXTLENGTH        0x000e
00489 #define WM_PAINT                0x000f
00490 #define WM_CLOSE                0x0010
00491 #define WM_QUERYENDSESSION      0x0011
00492 #define WM_QUIT                 0x0012
00493 #define WM_QUERYOPEN            0x0013
00494 #define WM_ERASEBKGND           0x0014
00495 #define WM_SYSCOLORCHANGE       0x0015
00496 #define WM_ENDSESSION           0x0016
00497 #define WM_SYSTEMERROR          0x0017
00498 #define WM_SHOWWINDOW           0x0018
00499 #define WM_CTLCOLOR             0x0019
00500 #define WM_WININICHANGE         0x001a
00501 #define WM_SETTINGCHANGE        WM_WININICHANGE
00502 #define WM_DEVMODECHANGE        0x001b
00503 #define WM_ACTIVATEAPP          0x001c
00504 #define WM_FONTCHANGE           0x001d
00505 #define WM_TIMECHANGE           0x001e
00506 #define WM_CANCELMODE           0x001f
00507 #define WM_SETCURSOR            0x0020
00508 #define WM_MOUSEACTIVATE        0x0021
00509 #define WM_CHILDACTIVATE        0x0022
00510 #define WM_QUEUESYNC            0x0023
00511 #define WM_GETMINMAXINFO        0x0024
00512 
00513 #define WM_PAINTICON            0x0026
00514 #define WM_ICONERASEBKGND       0x0027
00515 #define WM_NEXTDLGCTL           0x0028
00516 #define WM_ALTTABACTIVE         0x0029
00517 #define WM_SPOOLERSTATUS        0x002a
00518 #define WM_DRAWITEM             0x002b
00519 #define WM_MEASUREITEM          0x002c
00520 #define WM_DELETEITEM           0x002d
00521 #define WM_VKEYTOITEM           0x002e
00522 #define WM_CHARTOITEM           0x002f
00523 #define WM_SETFONT              0x0030
00524 #define WM_GETFONT              0x0031
00525 #define WM_SETHOTKEY            0x0032
00526 #define WM_GETHOTKEY            0x0033
00527 #define WM_FILESYSCHANGE        0x0034
00528 #define WM_ISACTIVEICON         0x0035
00529 #define WM_QUERYPARKICON        0x0036
00530 #define WM_QUERYDRAGICON        0x0037
00531 #define WM_QUERYSAVESTATE       0x0038
00532 #define WM_COMPAREITEM          0x0039
00533 #define WM_TESTING              0x003a
00534 
00535 #define WM_OTHERWINDOWCREATED   0x003c
00536 #define WM_OTHERWINDOWDESTROYED 0x003d
00537 #define WM_ACTIVATESHELLWINDOW  0x003e
00538 
00539 #define WM_COMPACTING           0x0041
00540 
00541 #define WM_COMMNOTIFY           0x0044
00542 #define WM_WINDOWPOSCHANGING    0x0046
00543 #define WM_WINDOWPOSCHANGED     0x0047
00544 #define WM_POWER                0x0048
00545 
00546   /* Win32 4.0 messages */
00547 #define WM_COPYDATA             0x004a
00548 #define WM_CANCELJOURNAL        0x004b
00549 #define WM_NOTIFY               0x004e
00550 #define WM_HELP                 0x0053
00551 #define WM_NOTIFYFORMAT         0x0055
00552 
00553 #define WM_CONTEXTMENU          0x007b
00554 #define WM_STYLECHANGING        0x007c
00555 #define WM_STYLECHANGED         0x007d
00556 #define WM_DISPLAYCHANGE        0x007e
00557 #define WM_GETICON              0x007f
00558 #define WM_SETICON              0x0080
00559 
00560   /* Non-client system messages */
00561 #define WM_NCCREATE         0x0081
00562 #define WM_NCDESTROY        0x0082
00563 #define WM_NCCALCSIZE       0x0083
00564 #define WM_NCHITTEST        0x0084
00565 #define WM_NCPAINT          0x0085
00566 #define WM_NCACTIVATE       0x0086
00567 
00568 #define WM_GETDLGCODE       0x0087
00569 #define WM_SYNCPAINT        0x0088
00570 #define WM_SYNCTASK         0x0089
00571 
00572   /* Non-client mouse messages */
00573 #define WM_NCMOUSEMOVE      0x00a0
00574 #define WM_NCLBUTTONDOWN    0x00a1
00575 #define WM_NCLBUTTONUP      0x00a2
00576 #define WM_NCLBUTTONDBLCLK  0x00a3
00577 #define WM_NCRBUTTONDOWN    0x00a4
00578 #define WM_NCRBUTTONUP      0x00a5
00579 #define WM_NCRBUTTONDBLCLK  0x00a6
00580 #define WM_NCMBUTTONDOWN    0x00a7
00581 #define WM_NCMBUTTONUP      0x00a8
00582 #define WM_NCMBUTTONDBLCLK  0x00a9
00583 
00584   /* Keyboard messages */
00585 #define WM_KEYDOWN          0x0100
00586 #define WM_KEYUP            0x0101
00587 #define WM_CHAR             0x0102
00588 #define WM_DEADCHAR         0x0103
00589 #define WM_SYSKEYDOWN       0x0104
00590 #define WM_SYSKEYUP         0x0105
00591 #define WM_SYSCHAR          0x0106
00592 #define WM_SYSDEADCHAR      0x0107
00593 #define WM_KEYFIRST         WM_KEYDOWN
00594 #define WM_KEYLAST          0x0108
00595 
00596 /* Win32 4.0 messages for IME */
00597 #define WM_IME_STARTCOMPOSITION     0x010d
00598 #define WM_IME_ENDCOMPOSITION       0x010e
00599 #define WM_IME_COMPOSITION          0x010f
00600 #define WM_IME_KEYLAST              0x010f
00601 
00602 #define WM_INITDIALOG       0x0110 
00603 #define WM_COMMAND          0x0111
00604 #define WM_SYSCOMMAND       0x0112
00605 #define WM_TIMER            0x0113
00606 #define WM_SYSTIMER         0x0118
00607 
00608   /* scroll messages */
00609 #define WM_HSCROLL          0x0114
00610 #define WM_VSCROLL          0x0115
00611 
00612 /* Menu messages */
00613 #define WM_INITMENU         0x0116
00614 #define WM_INITMENUPOPUP    0x0117
00615 
00616 #define WM_MENUSELECT       0x011F
00617 #define WM_MENUCHAR         0x0120
00618 #define WM_ENTERIDLE        0x0121
00619 
00620 #define WM_LBTRACKPOINT     0x0131
00621 
00622   /* Win32 CTLCOLOR messages */
00623 #define WM_CTLCOLORMSGBOX    0x0132
00624 #define WM_CTLCOLOREDIT      0x0133
00625 #define WM_CTLCOLORLISTBOX   0x0134
00626 #define WM_CTLCOLORBTN       0x0135
00627 #define WM_CTLCOLORDLG       0x0136
00628 #define WM_CTLCOLORSCROLLBAR 0x0137
00629 #define WM_CTLCOLORSTATIC    0x0138
00630 
00631   /* Mouse messages */
00632 #define WM_MOUSEMOVE        0x0200
00633 #define WM_LBUTTONDOWN      0x0201
00634 #define WM_LBUTTONUP        0x0202
00635 #define WM_LBUTTONDBLCLK    0x0203
00636 #define WM_RBUTTONDOWN      0x0204
00637 #define WM_RBUTTONUP        0x0205
00638 #define WM_RBUTTONDBLCLK    0x0206
00639 #define WM_MBUTTONDOWN      0x0207
00640 #define WM_MBUTTONUP        0x0208
00641 #define WM_MBUTTONDBLCLK    0x0209
00642 #define WM_MOUSEWHEEL       0x020A
00643 #define WM_MOUSEFIRST       WM_MOUSEMOVE
00644 
00645 
00646 #define WM_MOUSELAST        WM_MOUSEWHEEL
00647  
00648 #define WHEEL_DELTA      120
00649 #define WHEEL_PAGESCROLL  (UINT_MAX)
00650 #define WM_PARENTNOTIFY     0x0210
00651 #define WM_ENTERMENULOOP    0x0211
00652 #define WM_EXITMENULOOP     0x0212
00653 #define WM_NEXTMENU         0x0213
00654 
00655   /* Win32 4.0 messages */
00656 #define WM_SIZING           0x0214
00657 #define WM_CAPTURECHANGED   0x0215
00658 #define WM_MOVING           0x0216
00659 
00660   /* MDI messages */
00661 #define WM_MDICREATE        0x0220
00662 #define WM_MDIDESTROY       0x0221
00663 #define WM_MDIACTIVATE      0x0222
00664 #define WM_MDIRESTORE       0x0223
00665 #define WM_MDINEXT          0x0224
00666 #define WM_MDIMAXIMIZE      0x0225
00667 #define WM_MDITILE          0x0226
00668 #define WM_MDICASCADE       0x0227
00669 #define WM_MDIICONARRANGE   0x0228
00670 #define WM_MDIGETACTIVE     0x0229
00671 #define WM_MDIREFRESHMENU   0x0234
00672 
00673   /* D&D messages */
00674 #define WM_DROPOBJECT       0x022A
00675 #define WM_QUERYDROPOBJECT  0x022B
00676 #define WM_BEGINDRAG        0x022C
00677 #define WM_DRAGLOOP         0x022D
00678 #define WM_DRAGSELECT       0x022E
00679 #define WM_DRAGMOVE         0x022F
00680 #define WM_MDISETMENU       0x0230
00681 
00682 #define WM_ENTERSIZEMOVE    0x0231
00683 #define WM_EXITSIZEMOVE     0x0232
00684 #define WM_DROPFILES        0x0233
00685 
00686 
00687 /* Win32 4.0 messages for IME */
00688 #define WM_IME_SETCONTEXT           0x0281
00689 #define WM_IME_NOTIFY               0x0282
00690 #define WM_IME_CONTROL              0x0283
00691 #define WM_IME_COMPOSITIONFULL      0x0284
00692 #define WM_IME_SELECT               0x0285
00693 #define WM_IME_CHAR                 0x0286
00694 /* Win32 5.0 messages for IME */
00695 #define WM_IME_REQUEST              0x0288
00696 
00697 /* Win32 4.0 messages for IME */
00698 #define WM_IME_KEYDOWN              0x0290
00699 #define WM_IME_KEYUP                0x0291
00700 
00701 /* Clipboard command messages */
00702 #define WM_CUT               0x0300
00703 #define WM_COPY              0x0301
00704 #define WM_PASTE             0x0302
00705 #define WM_CLEAR             0x0303
00706 #define WM_UNDO              0x0304
00707 
00708 /* Clipboard owner messages */
00709 #define WM_RENDERFORMAT      0x0305
00710 #define WM_RENDERALLFORMATS  0x0306
00711 #define WM_DESTROYCLIPBOARD  0x0307
00712 
00713 /* Clipboard viewer messages */
00714 #define WM_DRAWCLIPBOARD     0x0308
00715 #define WM_PAINTCLIPBOARD    0x0309
00716 #define WM_VSCROLLCLIPBOARD  0x030A
00717 #define WM_SIZECLIPBOARD     0x030B
00718 #define WM_ASKCBFORMATNAME   0x030C
00719 #define WM_CHANGECBCHAIN     0x030D
00720 #define WM_HSCROLLCLIPBOARD  0x030E
00721 
00722 #define WM_QUERYNEWPALETTE   0x030F
00723 #define WM_PALETTEISCHANGING 0x0310
00724 #define WM_PALETTECHANGED    0x0311
00725 #define WM_HOTKEY            0x0312
00726 
00727 #define WM_PRINT             0x0317
00728 #define WM_PRINTCLIENT       0x0318
00729 
00730   /* FIXME: This does not belong to any libwine interface header */
00731   /* MFC messages [360-38f] */
00732 
00733 #define WM_QUERYAFXWNDPROC  0x0360
00734 #define WM_SIZEPARENT       0x0361
00735 #define WM_SETMESSAGESTRING 0x0362
00736 #define WM_IDLEUPDATECMDUI  0x0363 
00737 #define WM_INITIALUPDATE    0x0364
00738 #define WM_COMMANDHELP      0x0365
00739 #define WM_HELPHITTEST      0x0366
00740 #define WM_EXITHELPMODE     0x0367
00741 #define WM_RECALCPARENT     0x0368
00742 #define WM_SIZECHILD        0x0369
00743 #define WM_KICKIDLE         0x036A 
00744 #define WM_QUERYCENTERWND   0x036B
00745 #define WM_DISABLEMODAL     0x036C
00746 #define WM_FLOATSTATUS      0x036D 
00747 #define WM_ACTIVATETOPLEVEL 0x036E 
00748 #define WM_QUERY3DCONTROLS  0x036F 
00749 #define WM_SOCKET_NOTIFY    0x0373
00750 #define WM_SOCKET_DEAD      0x0374
00751 #define WM_POPMESSAGESTRING 0x0375
00752 #define WM_OCC_LOADFROMSTREAM           0x0376
00753 #define WM_OCC_LOADFROMSTORAGE          0x0377
00754 #define WM_OCC_INITNEW                  0x0378
00755 #define WM_OCC_LOADFROMSTREAM_EX        0x037A
00756 #define WM_OCC_LOADFROMSTORAGE_EX       0x037B
00757 #define WM_QUEUE_SENTINEL   0x0379
00758 
00759 #define WM_PENWINFIRST      0x0380
00760 #define WM_PENWINLAST       0x038F
00761 
00762 /* end of MFC messages */
00763 
00764 /* FIXME: The following two lines do not belong to any libwine interface header */
00765 #define WM_COALESCE_FIRST    0x0390
00766 #define WM_COALESCE_LAST     0x039F
00767 
00768 #define WM_APP               0x8000
00769 
00770 
00771 #define DLGC_WANTARROWS      0x0001
00772 #define DLGC_WANTTAB         0x0002
00773 #define DLGC_WANTALLKEYS     0x0004
00774 #define DLGC_WANTMESSAGE     0x0004
00775 #define DLGC_HASSETSEL       0x0008
00776 #define DLGC_DEFPUSHBUTTON   0x0010
00777 #define DLGC_UNDEFPUSHBUTTON 0x0020
00778 #define DLGC_RADIOBUTTON     0x0040
00779 #define DLGC_WANTCHARS       0x0080
00780 #define DLGC_STATIC          0x0100
00781 #define DLGC_BUTTON          0x2000
00782 
00783 /* Standard dialog button IDs */
00784 #define IDOK                1
00785 #define IDCANCEL            2
00786 #define IDABORT             3
00787 #define IDRETRY             4
00788 #define IDIGNORE            5
00789 #define IDYES               6
00790 #define IDNO                7
00791 #define IDCLOSE             8
00792 #define IDHELP              9      
00793 
00794 /****** Window classes ******/
00795 
00796 typedef struct tagCREATESTRUCTA
00797 {
00798     LPVOID      lpCreateParams;
00799     HINSTANCE hInstance;
00800     HMENU     hMenu;
00801     HWND      hwndParent;
00802     INT       cy;
00803     INT       cx;
00804     INT       y;
00805     INT       x;
00806     LONG        style;
00807     LPCSTR      lpszName;
00808     LPCSTR      lpszClass;
00809     DWORD       dwExStyle;
00810 } CREATESTRUCTA, *LPCREATESTRUCTA;
00811 
00812 typedef struct
00813 {
00814     LPVOID      lpCreateParams;
00815     HINSTANCE hInstance;
00816     HMENU     hMenu;
00817     HWND      hwndParent;
00818     INT       cy;
00819     INT       cx;
00820     INT       y;
00821     INT       x;
00822     LONG        style;
00823     LPCWSTR     lpszName;
00824     LPCWSTR     lpszClass;
00825     DWORD       dwExStyle;
00826 } CREATESTRUCTW, *LPCREATESTRUCTW;
00827 
00828 DECL_WINELIB_TYPE_AW(CREATESTRUCT)
00829 DECL_WINELIB_TYPE_AW(LPCREATESTRUCT)
00830 
00831 typedef struct
00832 {
00833     HDC   hdc;
00834     WIN_BOOL  fErase;
00835     RECT  rcPaint;
00836     WIN_BOOL  fRestore;
00837     WIN_BOOL  fIncUpdate;
00838     BYTE    rgbReserved[32];
00839 } PAINTSTRUCT, *PPAINTSTRUCT, *LPPAINTSTRUCT;
00840 
00841 typedef struct 
00842 {
00843     HMENU   hWindowMenu;
00844     UINT    idFirstChild;
00845 } CLIENTCREATESTRUCT, *LPCLIENTCREATESTRUCT;
00846 
00847 
00848 typedef struct
00849 {
00850     LPCSTR       szClass;
00851     LPCSTR       szTitle;
00852     HINSTANCE  hOwner;
00853     INT        x;
00854     INT        y;
00855     INT        cx;
00856     INT        cy;
00857     DWORD        style;
00858     LPARAM       lParam;
00859 } MDICREATESTRUCTA, *LPMDICREATESTRUCTA;
00860 
00861 typedef struct
00862 {
00863     LPCWSTR      szClass;
00864     LPCWSTR      szTitle;
00865     HINSTANCE  hOwner;
00866     INT        x;
00867     INT        y;
00868     INT        cx;
00869     INT        cy;
00870     DWORD        style;
00871     LPARAM       lParam;
00872 } MDICREATESTRUCTW, *LPMDICREATESTRUCTW;
00873 
00874 DECL_WINELIB_TYPE_AW(MDICREATESTRUCT)
00875 DECL_WINELIB_TYPE_AW(LPMDICREATESTRUCT)
00876 
00877 #define MDITILE_VERTICAL     0x0000   
00878 #define MDITILE_HORIZONTAL   0x0001
00879 #define MDITILE_SKIPDISABLED 0x0002
00880 
00881 #define MDIS_ALLCHILDSTYLES  0x0001
00882 
00883 typedef struct {
00884     DWORD   styleOld;
00885     DWORD   styleNew;
00886 } STYLESTRUCT, *LPSTYLESTRUCT;
00887 
00888   /* Offsets for GetWindowLong() and GetWindowWord() */
00889 #define GWL_USERDATA        (-21)
00890 #define GWL_EXSTYLE         (-20)
00891 #define GWL_STYLE           (-16)
00892 #define GWW_ID              (-12)
00893 #define GWL_ID              GWW_ID
00894 #define GWW_HWNDPARENT      (-8)
00895 #define GWL_HWNDPARENT      GWW_HWNDPARENT
00896 #define GWW_HINSTANCE       (-6)
00897 #define GWL_HINSTANCE       GWW_HINSTANCE
00898 #define GWL_WNDPROC         (-4)
00899 #define DWL_MSGRESULT       0
00900 #define DWL_DLGPROC         4
00901 #define DWL_USER            8
00902 
00903   /* GetWindow() constants */
00904 #define GW_HWNDFIRST    0
00905 #define GW_HWNDLAST     1
00906 #define GW_HWNDNEXT     2
00907 #define GW_HWNDPREV     3
00908 #define GW_OWNER        4
00909 #define GW_CHILD        5
00910 
00911   /* WM_GETMINMAXINFO struct */
00912 typedef struct
00913 {
00914     POINT   ptReserved;
00915     POINT   ptMaxSize;
00916     POINT   ptMaxPosition;
00917     POINT   ptMinTrackSize;
00918     POINT   ptMaxTrackSize;
00919 } MINMAXINFO, *PMINMAXINFO, *LPMINMAXINFO;
00920 
00921 
00922   /* RedrawWindow() flags */
00923 #define RDW_INVALIDATE       0x0001
00924 #define RDW_INTERNALPAINT    0x0002
00925 #define RDW_ERASE            0x0004
00926 #define RDW_VALIDATE         0x0008
00927 #define RDW_NOINTERNALPAINT  0x0010
00928 #define RDW_NOERASE          0x0020
00929 #define RDW_NOCHILDREN       0x0040
00930 #define RDW_ALLCHILDREN      0x0080
00931 #define RDW_UPDATENOW        0x0100
00932 #define RDW_ERASENOW         0x0200
00933 #define RDW_FRAME            0x0400
00934 #define RDW_NOFRAME          0x0800
00935 
00936 /* debug flags */
00937 #define DBGFILL_ALLOC  0xfd
00938 #define DBGFILL_FREE   0xfb
00939 #define DBGFILL_BUFFER 0xf9
00940 #define DBGFILL_STACK  0xf7
00941 
00942   /* WM_WINDOWPOSCHANGING/CHANGED struct */
00943 typedef struct tagWINDOWPOS
00944 {
00945     HWND  hwnd;
00946     HWND  hwndInsertAfter;
00947     INT   x;
00948     INT   y;
00949     INT   cx;
00950     INT   cy;
00951     UINT  flags;
00952 } WINDOWPOS, *PWINDOWPOS, *LPWINDOWPOS;
00953 
00954 
00955   /* WM_MOUSEACTIVATE return values */
00956 #define MA_ACTIVATE             1
00957 #define MA_ACTIVATEANDEAT       2
00958 #define MA_NOACTIVATE           3
00959 #define MA_NOACTIVATEANDEAT     4
00960 
00961   /* WM_ACTIVATE wParam values */
00962 #define WA_INACTIVE             0
00963 #define WA_ACTIVE               1
00964 #define WA_CLICKACTIVE          2
00965 
00966 /* WM_GETICON/WM_SETICON params values */
00967 #define ICON_SMALL              0
00968 #define ICON_BIG                1
00969 
00970   /* WM_NCCALCSIZE parameter structure */
00971 typedef struct
00972 {
00973     RECT       rgrc[3];
00974     WINDOWPOS *lppos;
00975 } NCCALCSIZE_PARAMS, *LPNCCALCSIZE_PARAMS;
00976 
00977 
00978   /* WM_NCCALCSIZE return flags */
00979 #define WVR_ALIGNTOP        0x0010
00980 #define WVR_ALIGNLEFT       0x0020
00981 #define WVR_ALIGNBOTTOM     0x0040
00982 #define WVR_ALIGNRIGHT      0x0080
00983 #define WVR_HREDRAW         0x0100
00984 #define WVR_VREDRAW         0x0200
00985 #define WVR_REDRAW          (WVR_HREDRAW | WVR_VREDRAW)
00986 #define WVR_VALIDRECTS      0x0400
00987 
00988   /* WM_NCHITTEST return codes */
00989 #define HTERROR             (-2)
00990 #define HTTRANSPARENT       (-1)
00991 #define HTNOWHERE           0
00992 #define HTCLIENT            1
00993 #define HTCAPTION           2
00994 #define HTSYSMENU           3
00995 #define HTSIZE              4
00996 #define HTMENU              5
00997 #define HTHSCROLL           6
00998 #define HTVSCROLL           7
00999 #define HTMINBUTTON         8
01000 #define HTMAXBUTTON         9
01001 #define HTLEFT              10
01002 #define HTRIGHT             11
01003 #define HTTOP               12
01004 #define HTTOPLEFT           13
01005 #define HTTOPRIGHT          14
01006 #define HTBOTTOM            15
01007 #define HTBOTTOMLEFT        16
01008 #define HTBOTTOMRIGHT       17
01009 #define HTBORDER            18
01010 #define HTGROWBOX           HTSIZE
01011 #define HTREDUCE            HTMINBUTTON
01012 #define HTZOOM              HTMAXBUTTON
01013 #define HTOBJECT            19
01014 #define HTCLOSE             20
01015 #define HTHELP              21
01016 #define HTSIZEFIRST         HTLEFT
01017 #define HTSIZELAST          HTBOTTOMRIGHT
01018 
01019   /* WM_SYSCOMMAND parameters */
01020 #ifdef SC_SIZE /* at least HP-UX: already defined in /usr/include/sys/signal.h */
01021 #undef SC_SIZE
01022 #endif
01023 #define SC_SIZE         0xf000
01024 #define SC_MOVE         0xf010
01025 #define SC_MINIMIZE     0xf020
01026 #define SC_MAXIMIZE     0xf030
01027 #define SC_NEXTWINDOW   0xf040
01028 #define SC_PREVWINDOW   0xf050
01029 #define SC_CLOSE        0xf060
01030 #define SC_VSCROLL      0xf070
01031 #define SC_HSCROLL      0xf080
01032 #define SC_MOUSEMENU    0xf090
01033 #define SC_KEYMENU      0xf100
01034 #define SC_ARRANGE      0xf110
01035 #define SC_RESTORE      0xf120
01036 #define SC_TASKLIST     0xf130
01037 #define SC_SCREENSAVE   0xf140
01038 #define SC_HOTKEY       0xf150
01039 
01040 #define CS_VREDRAW          0x0001
01041 #define CS_HREDRAW          0x0002
01042 #define CS_KEYCVTWINDOW     0x0004
01043 #define CS_DBLCLKS          0x0008
01044 #define CS_OWNDC            0x0020
01045 #define CS_CLASSDC          0x0040
01046 #define CS_PARENTDC         0x0080
01047 #define CS_NOKEYCVT         0x0100
01048 #define CS_NOCLOSE          0x0200
01049 #define CS_SAVEBITS         0x0800
01050 #define CS_BYTEALIGNCLIENT  0x1000
01051 #define CS_BYTEALIGNWINDOW  0x2000
01052 #define CS_GLOBALCLASS      0x4000
01053 #define CS_IME              0x00010000
01054 
01055 #define PRF_CHECKVISIBLE    0x00000001L
01056 #define PRF_NONCLIENT       0x00000002L
01057 #define PRF_CLIENT          0x00000004L
01058 #define PRF_ERASEBKGND      0x00000008L
01059 #define PRF_CHILDREN        0x00000010L
01060 #define PRF_OWNED           0x00000020L
01061  
01062   /* Offsets for GetClassLong() and GetClassWord() */
01063 #define GCL_MENUNAME        (-8)
01064 #define GCW_HBRBACKGROUND   (-10)
01065 #define GCL_HBRBACKGROUND   GCW_HBRBACKGROUND
01066 #define GCW_HCURSOR         (-12)
01067 #define GCL_HCURSOR         GCW_HCURSOR
01068 #define GCW_HICON           (-14)
01069 #define GCL_HICON           GCW_HICON
01070 #define GCW_HMODULE         (-16)
01071 #define GCL_HMODULE         GCW_HMODULE
01072 #define GCW_CBWNDEXTRA      (-18)
01073 #define GCL_CBWNDEXTRA      GCW_CBWNDEXTRA
01074 #define GCW_CBCLSEXTRA      (-20)
01075 #define GCL_CBCLSEXTRA      GCW_CBCLSEXTRA
01076 #define GCL_WNDPROC         (-24)
01077 #define GCW_STYLE           (-26)
01078 #define GCL_STYLE           GCW_STYLE
01079 #define GCW_ATOM            (-32)
01080 #define GCW_HICONSM         (-34)
01081 #define GCL_HICONSM         GCW_HICONSM
01082 
01083 
01084 /***** Window hooks *****/
01085 
01086   /* Hook values */
01087 #define WH_MIN              (-1)
01088 #define WH_MSGFILTER        (-1)
01089 #define WH_JOURNALRECORD    0
01090 #define WH_JOURNALPLAYBACK  1
01091 #define WH_KEYBOARD         2
01092 #define WH_GETMESSAGE       3
01093 #define WH_CALLWNDPROC      4
01094 #define WH_CBT              5
01095 #define WH_SYSMSGFILTER     6
01096 #define WH_MOUSE            7
01097 #define WH_HARDWARE         8
01098 #define WH_DEBUG            9
01099 #define WH_SHELL            10
01100 #define WH_FOREGROUNDIDLE   11
01101 #define WH_CALLWNDPROCRET   12
01102 #define WH_MAX              12
01103 
01104 #define WH_MINHOOK          WH_MIN
01105 #define WH_MAXHOOK          WH_MAX
01106 #define WH_NB_HOOKS         (WH_MAXHOOK-WH_MINHOOK+1)
01107 
01108   /* Hook action codes */
01109 #define HC_ACTION           0
01110 #define HC_GETNEXT          1
01111 #define HC_SKIP             2
01112 #define HC_NOREMOVE         3
01113 #define HC_NOREM            HC_NOREMOVE
01114 #define HC_SYSMODALON       4
01115 #define HC_SYSMODALOFF      5
01116 
01117   /* CallMsgFilter() values */
01118 #define MSGF_DIALOGBOX      0
01119 #define MSGF_MESSAGEBOX     1
01120 #define MSGF_MENU           2
01121 #define MSGF_MOVE           3
01122 #define MSGF_SIZE           4
01123 #define MSGF_SCROLLBAR      5
01124 #define MSGF_NEXTWINDOW     6
01125 #define MSGF_MAINLOOP       8
01126 #define MSGF_USER        4096
01127 
01128 typedef struct
01129 {
01130     UINT      style;
01131     WNDPROC   lpfnWndProc;
01132     INT       cbClsExtra;
01133     INT       cbWndExtra;
01134     HINSTANCE hInstance;
01135     HICON     hIcon;
01136     HCURSOR   hCursor;
01137     HBRUSH    hbrBackground;
01138     LPCSTR      lpszMenuName;
01139     LPCSTR      lpszClassName;
01140 } WNDCLASSA, *LPWNDCLASSA;
01141 
01142 typedef struct
01143 {
01144     UINT      style;
01145     WNDPROC   lpfnWndProc;
01146     INT       cbClsExtra;
01147     INT       cbWndExtra;
01148     HINSTANCE hInstance;
01149     HICON     hIcon;
01150     HCURSOR   hCursor;
01151     HBRUSH    hbrBackground;
01152     LPCWSTR     lpszMenuName;
01153     LPCWSTR     lpszClassName;
01154 } WNDCLASSW, *LPWNDCLASSW;
01155 
01156 DECL_WINELIB_TYPE_AW(WNDCLASS)
01157 DECL_WINELIB_TYPE_AW(LPWNDCLASS)
01158 
01159 typedef struct {
01160     DWORD dwData;
01161     DWORD cbData;
01162     LPVOID lpData;
01163 } COPYDATASTRUCT, *PCOPYDATASTRUCT, *LPCOPYDATASTRUCT;
01164 
01165 typedef struct {
01166     HMENU hmenuIn;
01167     HMENU hmenuNext;
01168     HWND  hwndNext;
01169 } MDINEXTMENU, *PMDINEXTMENU, *LPMDINEXTMENU;
01170 
01171 /* WinHelp internal structure */
01172 typedef struct {
01173         WORD size;
01174         WORD command;
01175         LONG data;
01176         LONG reserved;
01177         WORD ofsFilename;
01178         WORD ofsData;
01179 } WINHELP,*LPWINHELP;
01180 
01181 typedef struct
01182 {
01183     UINT16  mkSize;
01184     BYTE    mkKeyList;
01185     BYTE    szKeyphrase[1];
01186 } MULTIKEYHELP, *LPMULTIKEYHELP;
01187 
01188 typedef struct {
01189         WORD wStructSize;
01190         WORD x;
01191         WORD y;
01192         WORD dx;
01193         WORD dy;
01194         WORD wMax;
01195         char rgchMember[2];
01196 } HELPWININFO, *LPHELPWININFO;
01197 
01198 #define HELP_CONTEXT        0x0001
01199 #define HELP_QUIT           0x0002
01200 #define HELP_INDEX          0x0003
01201 #define HELP_CONTENTS       0x0003
01202 #define HELP_HELPONHELP     0x0004
01203 #define HELP_SETINDEX       0x0005
01204 #define HELP_SETCONTENTS    0x0005
01205 #define HELP_CONTEXTPOPUP   0x0008
01206 #define HELP_FORCEFILE      0x0009
01207 #define HELP_KEY            0x0101
01208 #define HELP_COMMAND        0x0102
01209 #define HELP_PARTIALKEY     0x0105
01210 #define HELP_MULTIKEY       0x0201
01211 #define HELP_SETWINPOS      0x0203
01212 #define HELP_CONTEXTMENU    0x000a
01213 #define HELP_FINDER         0x000b
01214 #define HELP_WM_HELP        0x000c
01215 #define HELP_SETPOPUP_POS   0x000d
01216 
01217 #define HELP_TCARD          0x8000
01218 #define HELP_TCARD_DATA     0x0010
01219 #define HELP_TCARD_OTHER_CALLER 0x0011
01220 
01221 
01222      /* ChangeDisplaySettings return codes */
01223 
01224 #define DISP_CHANGE_SUCCESSFUL 0
01225 #define DISP_CHANGE_RESTART    1
01226 #define DISP_CHANGE_FAILED     (-1)
01227 #define DISP_CHANGE_BADMODE    (-2)
01228 #define DISP_CHANGE_NOTUPDATED (-3)
01229 #define DISP_CHANGE_BADFLAGS   (-4)
01230 #define DISP_CHANGE_BADPARAM   (-5)
01231 
01232 /* ChangeDisplaySettings.dwFlags */
01233 #define CDS_UPDATEREGISTRY      0x00000001
01234 #define CDS_TEST                0x00000002
01235 #define CDS_FULLSCREEN          0x00000004
01236 #define CDS_GLOBAL              0x00000008
01237 #define CDS_SET_PRIMARY         0x00000010
01238 #define CDS_RESET               0x40000000
01239 #define CDS_SETRECT             0x20000000
01240 #define CDS_NORESET             0x10000000
01241 
01242 /* flags to FormatMessage */
01243 #define FORMAT_MESSAGE_ALLOCATE_BUFFER  0x00000100
01244 #define FORMAT_MESSAGE_IGNORE_INSERTS   0x00000200
01245 #define FORMAT_MESSAGE_FROM_STRING      0x00000400
01246 #define FORMAT_MESSAGE_FROM_HMODULE     0x00000800
01247 #define FORMAT_MESSAGE_FROM_SYSTEM      0x00001000
01248 #define FORMAT_MESSAGE_ARGUMENT_ARRAY   0x00002000
01249 #define FORMAT_MESSAGE_MAX_WIDTH_MASK   0x000000FF
01250 
01251 typedef struct
01252 {
01253     UINT      cbSize;
01254     UINT      style;
01255     WNDPROC   lpfnWndProc;
01256     INT       cbClsExtra;
01257     INT       cbWndExtra;
01258     HINSTANCE hInstance;
01259     HICON     hIcon;
01260     HCURSOR   hCursor;
01261     HBRUSH    hbrBackground;
01262     LPCSTR      lpszMenuName;
01263     LPCSTR      lpszClassName;
01264     HICON     hIconSm;
01265 } WNDCLASSEXA, *LPWNDCLASSEXA;
01266 
01267 typedef struct
01268 {
01269     UINT      cbSize;
01270     UINT      style;
01271     WNDPROC   lpfnWndProc;
01272     INT       cbClsExtra;
01273     INT       cbWndExtra;
01274     HINSTANCE hInstance;
01275     HICON     hIcon;
01276     HCURSOR   hCursor;
01277     HBRUSH    hbrBackground;
01278     LPCWSTR     lpszMenuName;
01279     LPCWSTR     lpszClassName;
01280     HICON     hIconSm;
01281 } WNDCLASSEXW, *LPWNDCLASSEXW;
01282 
01283 DECL_WINELIB_TYPE_AW(WNDCLASSEX)
01284 DECL_WINELIB_TYPE_AW(LPWNDCLASSEX)
01285 
01286 typedef struct tagMSG
01287 {
01288     HWND    hwnd;
01289     UINT    message;
01290     WPARAM  wParam;
01291     LPARAM    lParam;
01292     DWORD     time;
01293     POINT   pt;
01294 } MSG, *LPMSG;
01295 
01296 #define POINTSTOPOINT(pt, pts)                          \
01297         { (pt).x = (LONG)(SHORT)LOWORD(*(LONG*)&pts);   \
01298           (pt).y = (LONG)(SHORT)HIWORD(*(LONG*)&pts); }          
01299 
01300 #define POINTTOPOINTS(pt)      (MAKELONG((short)((pt).x), (short)((pt).y)))
01301 
01302 
01303 /* Cursors / Icons */
01304 
01305 typedef struct {
01306         WIN_BOOL        fIcon;
01307         DWORD           xHotspot;
01308         DWORD           yHotspot;
01309         HBITMAP hbmMask;
01310         HBITMAP hbmColor;
01311 } ICONINFO,*LPICONINFO;
01312 
01313 
01314 /* this is the 6 byte accel struct used in Win32 when presented to the user */
01315 typedef struct
01316 {
01317     BYTE   fVirt;
01318     BYTE   pad0;
01319     WORD   key;
01320     WORD   cmd;
01321 } ACCEL, *LPACCEL;
01322 
01323 /* this is the 8 byte accel struct used in Win32 resources (internal only) */
01324 typedef struct
01325 {
01326     BYTE   fVirt;
01327     BYTE   pad0;
01328     WORD   key;
01329     WORD   cmd;
01330     WORD   pad1;
01331 } PE_ACCEL, *LPPE_ACCEL;
01332 
01333 
01334 /* Flags for TrackPopupMenu */
01335 #define TPM_LEFTBUTTON    0x0000
01336 #define TPM_RIGHTBUTTON   0x0002
01337 #define TPM_LEFTALIGN     0x0000
01338 #define TPM_CENTERALIGN   0x0004
01339 #define TPM_RIGHTALIGN    0x0008
01340 #define TPM_TOPALIGN      0x0000
01341 #define TPM_VCENTERALIGN  0x0010
01342 #define TPM_BOTTOMALIGN   0x0020
01343 #define TPM_HORIZONTAL    0x0000
01344 #define TPM_VERTICAL      0x0040
01345 #define TPM_NONOTIFY      0x0080
01346 #define TPM_RETURNCMD     0x0100
01347 
01348 typedef struct 
01349 {
01350     UINT   cbSize;
01351     RECT   rcExclude;
01352 } TPMPARAMS, *LPTPMPARAMS;
01353 
01354 /* FIXME: not sure this one is correct */
01355 typedef struct {
01356   UINT    cbSize;
01357   UINT    fMask;
01358   UINT    fType;
01359   UINT    fState;
01360   UINT    wID;
01361   HMENU   hSubMenu;
01362   HBITMAP hbmpChecked;
01363   HBITMAP hbmpUnchecked;
01364   DWORD   dwItemData;
01365   LPSTR   dwTypeData;
01366   UINT    cch;
01367   HBITMAP hbmpItem;
01368 } MENUITEMINFOA, *LPMENUITEMINFOA;
01369 
01370 typedef struct {
01371   UINT    cbSize;
01372   UINT    fMask;
01373   UINT    fType;
01374   UINT    fState;
01375   UINT    wID;
01376   HMENU   hSubMenu;
01377   HBITMAP hbmpChecked;
01378   HBITMAP hbmpUnchecked;
01379   DWORD     dwItemData;
01380   LPWSTR    dwTypeData;
01381   UINT    cch;
01382   HBITMAP hbmpItem;
01383 } MENUITEMINFOW, *LPMENUITEMINFOW;
01384 
01385 DECL_WINELIB_TYPE_AW(MENUITEMINFO)
01386 DECL_WINELIB_TYPE_AW(LPMENUITEMINFO)
01387 
01388 typedef struct {
01389   DWORD   cbSize;
01390   DWORD   fMask;
01391   DWORD   dwStyle;
01392   UINT    cyMax;
01393   HBRUSH  hbrBack;
01394   DWORD   dwContextHelpID;
01395   DWORD   dwMenuData;
01396 } MENUINFO, *LPMENUINFO;
01397 
01398 typedef MENUINFO const * LPCMENUINFO;
01399 
01400 #define MIM_MAXHEIGHT           0x00000001
01401 #define MIM_BACKGROUND          0x00000002
01402 #define MIM_HELPID              0x00000004
01403 #define MIM_MENUDATA            0x00000008
01404 #define MIM_STYLE               0x00000010
01405 #define MIM_APPLYTOSUBMENUS     0x80000000
01406 
01407 typedef struct {
01408   WORD versionNumber;
01409   WORD offset;
01410 } MENUITEMTEMPLATEHEADER, *PMENUITEMTEMPLATEHEADER;
01411 
01412 
01413 typedef struct {
01414   WORD mtOption;
01415   WORD mtID;
01416   WCHAR mtString[1];
01417 } MENUITEMTEMPLATE, *PMENUITEMTEMPLATE;
01418 
01419 
01420 typedef VOID   MENUTEMPLATE;
01421 typedef PVOID *LPMENUTEMPLATE;
01422 
01423 /* Field specifiers for MENUITEMINFO[AW] type.  */
01424 #define MIIM_STATE       0x00000001
01425 #define MIIM_ID          0x00000002
01426 #define MIIM_SUBMENU     0x00000004
01427 #define MIIM_CHECKMARKS  0x00000008
01428 #define MIIM_TYPE        0x00000010
01429 #define MIIM_DATA        0x00000020
01430 #define MIIM_STRING      0x00000040
01431 #define MIIM_BITMAP      0x00000080
01432 #define MIIM_FTYPE       0x00000100
01433 
01434 #define HBMMENU_CALLBACK        ((HBITMAP) -1)
01435 #define HBMMENU_SYSTEM          ((HBITMAP)  1)
01436 #define HBMMENU_MBAR_RESTORE    ((HBITMAP)  2)
01437 #define HBMMENU_MBAR_MINIMIZE   ((HBITMAP)  3)
01438 #define HBMMENU_MBAR_CLOSE      ((HBITMAP)  5)
01439 #define HBMMENU_MBAR_CLOSE_D    ((HBITMAP)  6)
01440 #define HBMMENU_MBAR_MINIMIZE_D ((HBITMAP)  7)
01441 #define HBMMENU_POPUP_CLOSE     ((HBITMAP)  8)
01442 #define HBMMENU_POPUP_RESTORE   ((HBITMAP)  9)
01443 #define HBMMENU_POPUP_MAXIMIZE  ((HBITMAP) 10)
01444 #define HBMMENU_POPUP_MINIMIZE  ((HBITMAP) 11)
01445 
01446 /* DrawState defines ... */
01447 typedef WIN_BOOL CALLBACK (*DRAWSTATEPROC)(HDC,LPARAM,WPARAM,INT,INT);
01448 
01449 /* WM_H/VSCROLL commands */
01450 #define SB_LINEUP           0
01451 #define SB_LINELEFT         0
01452 #define SB_LINEDOWN         1
01453 #define SB_LINERIGHT        1
01454 #define SB_PAGEUP           2
01455 #define SB_PAGELEFT         2
01456 #define SB_PAGEDOWN         3
01457 #define SB_PAGERIGHT        3
01458 #define SB_THUMBPOSITION    4
01459 #define SB_THUMBTRACK       5
01460 #define SB_TOP              6
01461 #define SB_LEFT             6
01462 #define SB_BOTTOM           7
01463 #define SB_RIGHT            7
01464 #define SB_ENDSCROLL        8
01465 
01466 /* Scroll bar selection constants */
01467 #define SB_HORZ             0
01468 #define SB_VERT             1
01469 #define SB_CTL              2
01470 #define SB_BOTH             3
01471 
01472 /* Scrollbar styles */
01473 #define SBS_HORZ                    0x0000L
01474 #define SBS_VERT                    0x0001L
01475 #define SBS_TOPALIGN                0x0002L
01476 #define SBS_LEFTALIGN               0x0002L
01477 #define SBS_BOTTOMALIGN             0x0004L
01478 #define SBS_RIGHTALIGN              0x0004L
01479 #define SBS_SIZEBOXTOPLEFTALIGN     0x0002L
01480 #define SBS_SIZEBOXBOTTOMRIGHTALIGN 0x0004L
01481 #define SBS_SIZEBOX                 0x0008L
01482 #define SBS_SIZEGRIP                0x0010L
01483 
01484 /* EnableScrollBar() flags */
01485 #define ESB_ENABLE_BOTH     0x0000
01486 #define ESB_DISABLE_BOTH    0x0003
01487 
01488 #define ESB_DISABLE_LEFT    0x0001
01489 #define ESB_DISABLE_RIGHT   0x0002
01490 
01491 #define ESB_DISABLE_UP      0x0001
01492 #define ESB_DISABLE_DOWN    0x0002
01493 
01494 #define ESB_DISABLE_LTUP    ESB_DISABLE_LEFT
01495 #define ESB_DISABLE_RTDN    ESB_DISABLE_RIGHT
01496 
01497 /* Win32 button control messages */
01498 #define BM_GETCHECK          0x00f0
01499 #define BM_SETCHECK          0x00f1
01500 #define BM_GETSTATE          0x00f2
01501 #define BM_SETSTATE          0x00f3
01502 #define BM_SETSTYLE          0x00f4
01503 #define BM_CLICK             0x00f5
01504 #define BM_GETIMAGE          0x00f6
01505 #define BM_SETIMAGE          0x00f7
01506 /* Winelib button control messages */
01507 
01508 /* Button notification codes */
01509 #define BN_CLICKED             0
01510 #define BN_PAINT               1
01511 #define BN_HILITE              2
01512 #define BN_UNHILITE            3
01513 #define BN_DISABLE             4
01514 #define BN_DOUBLECLICKED       5
01515 
01516 /* Button states */
01517 #define BST_UNCHECKED        0x0000
01518 #define BST_CHECKED          0x0001
01519 #define BST_INDETERMINATE    0x0002
01520 #define BST_PUSHED           0x0004
01521 #define BST_FOCUS            0x0008      
01522 
01523 /* Static Control Styles */
01524 #define SS_LEFT             0x00000000L
01525 #define SS_CENTER           0x00000001L
01526 #define SS_RIGHT            0x00000002L
01527 #define SS_ICON             0x00000003L
01528 #define SS_BLACKRECT        0x00000004L
01529 #define SS_GRAYRECT         0x00000005L
01530 #define SS_WHITERECT        0x00000006L
01531 #define SS_BLACKFRAME       0x00000007L
01532 #define SS_GRAYFRAME        0x00000008L
01533 #define SS_WHITEFRAME       0x00000009L
01534 
01535 #define SS_SIMPLE           0x0000000BL
01536 #define SS_LEFTNOWORDWRAP   0x0000000CL
01537 
01538 #define SS_OWNERDRAW        0x0000000DL
01539 #define SS_BITMAP           0x0000000EL
01540 #define SS_ENHMETAFILE      0x0000000FL
01541 
01542 #define SS_ETCHEDHORZ       0x00000010L
01543 #define SS_ETCHEDVERT       0x00000011L
01544 #define SS_ETCHEDFRAME      0x00000012L
01545 #define SS_TYPEMASK         0x0000001FL
01546 
01547 #define SS_NOPREFIX         0x00000080L
01548 #define SS_NOTIFY           0x00000100L
01549 #define SS_CENTERIMAGE      0x00000200L
01550 #define SS_RIGHTJUST        0x00000400L
01551 #define SS_REALSIZEIMAGE    0x00000800L
01552 #define SS_SUNKEN           0x00001000L
01553 
01554 /* Static Control Messages */
01555 #define STM_SETICON       0x0170
01556 #define STM_GETICON       0x0171
01557 #define STM_SETIMAGE        0x0172
01558 #define STM_GETIMAGE        0x0173
01559 
01560 /* Scrollbar messages */
01561 #define SBM_SETPOS             0x00e0
01562 #define SBM_GETPOS             0x00e1
01563 #define SBM_SETRANGE           0x00e2
01564 #define SBM_GETRANGE           0x00e3
01565 #define SBM_ENABLE_ARROWS      0x00e4
01566 #define SBM_SETRANGEREDRAW     0x00e6
01567 #define SBM_SETSCROLLINFO      0x00e9
01568 #define SBM_GETSCROLLINFO      0x00ea
01569 
01570 /* Scrollbar info */
01571 typedef struct
01572 {
01573     UINT    cbSize;
01574     UINT    fMask;
01575     INT     nMin;
01576     INT     nMax;
01577     UINT    nPage;
01578     INT     nPos;
01579     INT     nTrackPos;
01580 } SCROLLINFO, *LPSCROLLINFO;
01581  
01582 /* GetScrollInfo() flags */ 
01583 #define SIF_RANGE           0x0001
01584 #define SIF_PAGE            0x0002
01585 #define SIF_POS             0x0004
01586 #define SIF_DISABLENOSCROLL 0x0008
01587 #define SIF_TRACKPOS        0x0010
01588 #define SIF_ALL             (SIF_RANGE | SIF_PAGE | SIF_POS | SIF_TRACKPOS)
01589 
01590 /* Listbox styles */
01591 #define LBS_NOTIFY               0x0001
01592 #define LBS_SORT                 0x0002
01593 #define LBS_NOREDRAW             0x0004
01594 #define LBS_MULTIPLESEL          0x0008
01595 #define LBS_OWNERDRAWFIXED       0x0010
01596 #define LBS_OWNERDRAWVARIABLE    0x0020
01597 #define LBS_HASSTRINGS           0x0040
01598 #define LBS_USETABSTOPS          0x0080
01599 #define LBS_NOINTEGRALHEIGHT     0x0100
01600 #define LBS_MULTICOLUMN          0x0200
01601 #define LBS_WANTKEYBOARDINPUT    0x0400
01602 #define LBS_EXTENDEDSEL          0x0800
01603 #define LBS_DISABLENOSCROLL      0x1000
01604 #define LBS_NODATA               0x2000
01605 #define LBS_NOSEL                0x4000
01606 #define LBS_STANDARD  (LBS_NOTIFY | LBS_SORT | WS_VSCROLL | WS_BORDER)
01607 
01608 /* Listbox messages */
01609 #define LB_ADDSTRING           0x0180
01610 #define LB_INSERTSTRING        0x0181
01611 #define LB_DELETESTRING        0x0182
01612 #define LB_SELITEMRANGEEX      0x0183
01613 #define LB_RESETCONTENT        0x0184
01614 #define LB_SETSEL              0x0185
01615 #define LB_SETCURSEL           0x0186
01616 #define LB_GETSEL              0x0187
01617 #define LB_GETCURSEL           0x0188
01618 #define LB_GETTEXT             0x0189
01619 #define LB_GETTEXTLEN          0x018a
01620 #define LB_GETCOUNT            0x018b
01621 #define LB_SELECTSTRING        0x018c
01622 #define LB_DIR                 0x018d
01623 #define LB_GETTOPINDEX         0x018e
01624 #define LB_FINDSTRING          0x018f
01625 #define LB_GETSELCOUNT         0x0190
01626 #define LB_GETSELITEMS         0x0191
01627 #define LB_SETTABSTOPS         0x0192
01628 #define LB_GETHORIZONTALEXTENT 0x0193
01629 #define LB_SETHORIZONTALEXTENT 0x0194
01630 #define LB_SETCOLUMNWIDTH      0x0195
01631 #define LB_ADDFILE             0x0196
01632 #define LB_SETTOPINDEX         0x0197
01633 #define LB_GETITEMRECT         0x0198
01634 #define LB_GETITEMDATA         0x0199
01635 #define LB_SETITEMDATA         0x019a
01636 #define LB_SELITEMRANGE        0x019b
01637 #define LB_SETANCHORINDEX      0x019c
01638 #define LB_GETANCHORINDEX      0x019d
01639 #define LB_SETCARETINDEX       0x019e
01640 #define LB_GETCARETINDEX       0x019f
01641 #define LB_SETITEMHEIGHT       0x01a0
01642 #define LB_GETITEMHEIGHT       0x01a1
01643 #define LB_FINDSTRINGEXACT     0x01a2
01644 #define LB_CARETON             0x01a3
01645 #define LB_CARETOFF            0x01a4
01646 #define LB_SETLOCALE           0x01a5
01647 #define LB_GETLOCALE           0x01a6
01648 #define LB_SETCOUNT            0x01a7
01649 #define LB_INITSTORAGE         0x01a8
01650 #define LB_ITEMFROMPOINT       0x01a9
01651 
01652 /* Listbox notification codes */
01653 #define LBN_ERRSPACE        (-2)
01654 #define LBN_SELCHANGE       1
01655 #define LBN_DBLCLK          2
01656 #define LBN_SELCANCEL       3
01657 #define LBN_SETFOCUS        4
01658 #define LBN_KILLFOCUS       5
01659 
01660 /* Listbox message return values */
01661 #define LB_OKAY             0
01662 #define LB_ERR              (-1)
01663 #define LB_ERRSPACE         (-2)
01664 
01665 #define LB_CTLCODE          0L
01666 
01667 /* Combo box styles */
01668 #define CBS_SIMPLE            0x0001L
01669 #define CBS_DROPDOWN          0x0002L
01670 #define CBS_DROPDOWNLIST      0x0003L
01671 #define CBS_OWNERDRAWFIXED    0x0010L
01672 #define CBS_OWNERDRAWVARIABLE 0x0020L
01673 #define CBS_AUTOHSCROLL       0x0040L
01674 #define CBS_OEMCONVERT        0x0080L
01675 #define CBS_SORT              0x0100L
01676 #define CBS_HASSTRINGS        0x0200L
01677 #define CBS_NOINTEGRALHEIGHT  0x0400L
01678 #define CBS_DISABLENOSCROLL   0x0800L
01679 
01680 #define CBS_UPPERCASE         0x2000L
01681 #define CBS_LOWERCASE         0x4000L
01682 
01683 
01684 /* Combo box messages */
01685 #define CB_GETEDITSEL            0x0140
01686 #define CB_LIMITTEXT             0x0141
01687 #define CB_SETEDITSEL            0x0142
01688 #define CB_ADDSTRING             0x0143
01689 #define CB_DELETESTRING          0x0144
01690 #define CB_DIR                   0x0145
01691 #define CB_GETCOUNT              0x0146
01692 #define CB_GETCURSEL             0x0147
01693 #define CB_GETLBTEXT             0x0148
01694 #define CB_GETLBTEXTLEN          0x0149
01695 #define CB_INSERTSTRING          0x014a
01696 #define CB_RESETCONTENT          0x014b
01697 #define CB_FINDSTRING            0x014c
01698 #define CB_SELECTSTRING          0x014d
01699 #define CB_SETCURSEL             0x014e
01700 #define CB_SHOWDROPDOWN          0x014f
01701 #define CB_GETITEMDATA           0x0150
01702 #define CB_SETITEMDATA           0x0151
01703 #define CB_GETDROPPEDCONTROLRECT 0x0152
01704 #define CB_SETITEMHEIGHT         0x0153
01705 #define CB_GETITEMHEIGHT         0x0154
01706 #define CB_SETEXTENDEDUI         0x0155
01707 #define CB_GETEXTENDEDUI         0x0156
01708 #define CB_GETDROPPEDSTATE       0x0157
01709 #define CB_FINDSTRINGEXACT       0x0158
01710 #define CB_SETLOCALE             0x0159
01711 #define CB_GETLOCALE             0x015a
01712 #define CB_GETTOPINDEX           0x015b
01713 #define CB_SETTOPINDEX           0x015c
01714 #define CB_GETHORIZONTALEXTENT   0x015d
01715 #define CB_SETHORIZONTALEXTENT   0x015e
01716 #define CB_GETDROPPEDWIDTH       0x015f
01717 #define CB_SETDROPPEDWIDTH       0x0160
01718 #define CB_INITSTORAGE           0x0161
01719 
01720 /* Combo box notification codes */
01721 #define CBN_ERRSPACE        (-1)
01722 #define CBN_SELCHANGE       1
01723 #define CBN_DBLCLK          2
01724 #define CBN_SETFOCUS        3
01725 #define CBN_KILLFOCUS       4
01726 #define CBN_EDITCHANGE      5
01727 #define CBN_EDITUPDATE      6
01728 #define CBN_DROPDOWN        7
01729 #define CBN_CLOSEUP         8
01730 #define CBN_SELENDOK        9
01731 #define CBN_SELENDCANCEL    10
01732 
01733 /* Combo box message return values */
01734 #define CB_OKAY             0
01735 #define CB_ERR              (-1)
01736 #define CB_ERRSPACE         (-2)
01737 
01738 #define MB_OK                   0x00000000
01739 #define MB_OKCANCEL             0x00000001
01740 #define MB_ABORTRETRYIGNORE     0x00000002
01741 #define MB_YESNOCANCEL          0x00000003
01742 #define MB_YESNO                0x00000004
01743 #define MB_RETRYCANCEL          0x00000005
01744 #define MB_TYPEMASK             0x0000000F
01745 
01746 #define MB_ICONHAND             0x00000010
01747 #define MB_ICONQUESTION         0x00000020
01748 #define MB_ICONEXCLAMATION      0x00000030
01749 #define MB_ICONASTERISK         0x00000040
01750 #define MB_USERICON             0x00000080
01751 #define MB_ICONMASK             0x000000F0
01752 
01753 #define MB_ICONINFORMATION      MB_ICONASTERISK
01754 #define MB_ICONSTOP             MB_ICONHAND
01755 #define MB_ICONWARNING          MB_ICONEXCLAMATION
01756 #define MB_ICONERROR            MB_ICONHAND
01757 
01758 #define MB_DEFBUTTON1           0x00000000
01759 #define MB_DEFBUTTON2           0x00000100
01760 #define MB_DEFBUTTON3           0x00000200
01761 #define MB_DEFBUTTON4           0x00000300
01762 #define MB_DEFMASK              0x00000F00
01763 
01764 #define MB_APPLMODAL            0x00000000
01765 #define MB_SYSTEMMODAL          0x00001000
01766 #define MB_TASKMODAL            0x00002000
01767 #define MB_MODEMASK             0x00003000
01768 
01769 #define MB_HELP                 0x00004000
01770 #define MB_NOFOCUS              0x00008000
01771 #define MB_MISCMASK             0x0000C000
01772 
01773 #define MB_SETFOREGROUND        0x00010000
01774 #define MB_DEFAULT_DESKTOP_ONLY 0x00020000
01775 #define MB_SERVICE_NOTIFICATION 0x00040000
01776 #define MB_TOPMOST              0x00040000
01777 #define MB_RIGHT                0x00080000
01778 #define MB_RTLREADING           0x00100000
01779 
01780 #define HELPINFO_WINDOW         0x0001
01781 #define HELPINFO_MENUITEM       0x0002
01782 
01783 /* Structure pointed to by lParam of WM_HELP */
01784 typedef struct                  
01785 {
01786     UINT        cbSize;         /* Size in bytes of this struct  */
01787     INT iContextType;   /* Either HELPINFO_WINDOW or HELPINFO_MENUITEM */
01788     INT iCtrlId;        /* Control Id or a Menu item Id. */
01789     HANDLE      hItemHandle;    /* hWnd of control or hMenu.     */
01790     DWORD       dwContextId;    /* Context Id associated with this item */
01791     POINT       MousePos;       /* Mouse Position in screen co-ordinates */
01792 }  HELPINFO,*LPHELPINFO;
01793 
01794 typedef void CALLBACK (*MSGBOXCALLBACK)(LPHELPINFO lpHelpInfo);
01795 
01796 typedef struct
01797 {
01798     UINT        cbSize;
01799     HWND        hwndOwner;
01800     HINSTANCE   hInstance;
01801     LPCSTR      lpszText;
01802     LPCSTR      lpszCaption;
01803     DWORD       dwStyle;
01804     LPCSTR      lpszIcon;
01805     DWORD       dwContextHelpId;
01806     MSGBOXCALLBACK      lpfnMsgBoxCallback;
01807     DWORD       dwLanguageId;
01808 } MSGBOXPARAMSA,*LPMSGBOXPARAMSA;
01809 
01810 typedef struct
01811 {
01812     UINT        cbSize;
01813     HWND        hwndOwner;
01814     HINSTANCE   hInstance;
01815     LPCWSTR     lpszText;
01816     LPCWSTR     lpszCaption;
01817     DWORD       dwStyle;
01818     LPCWSTR     lpszIcon;
01819     DWORD       dwContextHelpId;
01820     MSGBOXCALLBACK      lpfnMsgBoxCallback;
01821     DWORD       dwLanguageId;
01822 } MSGBOXPARAMSW,*LPMSGBOXPARAMSW;
01823 
01824 DECL_WINELIB_TYPE_AW(MSGBOXPARAMS)
01825 DECL_WINELIB_TYPE_AW(LPMSGBOXPARAMS)
01826 
01827 typedef struct _numberfmt32a {
01828     UINT NumDigits;
01829     UINT LeadingZero;
01830     UINT Grouping;
01831     LPCSTR lpDecimalSep;
01832     LPCSTR lpThousandSep;
01833     UINT NegativeOrder;
01834 } NUMBERFMTA;
01835 
01836 typedef struct _numberfmt32w {
01837     UINT NumDigits;
01838     UINT LeadingZero;
01839     UINT Grouping;
01840     LPCWSTR lpDecimalSep;
01841     LPCWSTR lpThousandSep;
01842     UINT NegativeOrder;
01843 } NUMBERFMTW;
01844 
01845 typedef struct _currencyfmt32a
01846 {   
01847         UINT      NumDigits;   
01848         UINT      LeadingZero; 
01849         UINT      Grouping;   
01850         LPCSTR    lpDecimalSep;   
01851         LPCSTR    lpThousandSep; 
01852         UINT      NegativeOrder;   
01853         UINT      PositiveOrder; 
01854         LPCSTR    lpCurrencySymbol;
01855 } CURRENCYFMTA; 
01856 
01857 typedef struct _currencyfmt32w
01858 {   
01859         UINT      NumDigits;   
01860         UINT      LeadingZero; 
01861         UINT      Grouping;   
01862         LPCWSTR   lpDecimalSep;   
01863         LPCWSTR   lpThousandSep; 
01864         UINT      NegativeOrder;   
01865         UINT      PositiveOrder; 
01866         LPCWSTR   lpCurrencySymbol;
01867 } CURRENCYFMTW; 
01868 
01869 #define MONITOR_DEFAULTTONULL       0x00000000
01870 #define MONITOR_DEFAULTTOPRIMARY    0x00000001
01871 #define MONITOR_DEFAULTTONEAREST    0x00000002
01872 
01873 #define MONITORINFOF_PRIMARY        0x00000001
01874 
01875 typedef struct tagMONITORINFO
01876 {
01877     DWORD   cbSize;
01878     RECT  rcMonitor;
01879     RECT  rcWork;
01880     DWORD   dwFlags;
01881 } MONITORINFO, *LPMONITORINFO;
01882 
01883 
01884 typedef WIN_BOOL  CALLBACK (*MONITORENUMPROC)(HMONITOR,HDC,LPRECT,LPARAM);
01885 
01886 /* FIXME: use this instead of LPCVOID for CreateDialogIndirectParam
01887    and DialogBoxIndirectParam */
01888 typedef struct tagDLGTEMPLATE
01889 {
01890     DWORD style;
01891     DWORD dwExtendedStyle;
01892     WORD cdit;
01893     short x;
01894     short y;
01895     short cx;
01896     short cy;
01897 } DLGTEMPLATE;
01898 
01899 typedef DLGTEMPLATE *LPDLGTEMPLATEA;
01900 typedef DLGTEMPLATE *LPDLGTEMPLATEW;
01901 #define LPDLGTEMPLATE WINELIB_NAME_AW(LPDLGTEMPLATE)
01902 typedef const DLGTEMPLATE *LPCDLGTEMPLATEA;
01903 typedef const DLGTEMPLATE *LPCDLGTEMPLATEW;
01904 #define LPCDLGTEMPLATE WINELIB_NAME_AW(LPCDLGTEMPLATE)
01905 
01906 typedef struct tagDLGITEMTEMPLATE
01907 {
01908     DWORD style;
01909     DWORD dwExtendedStyle;
01910     short x;
01911     short y;
01912     short cx;
01913     short cy;
01914     WORD id;
01915 } DLGITEMTEMPLATE;
01916 
01917 typedef DLGITEMTEMPLATE *LPDLGITEMTEMPLATEA;
01918 typedef DLGITEMTEMPLATE *LPDLGITEMTEMPLATEW;
01919 #define LPDLGITEMTEMPLATE WINELIB_NAME_AW(LPDLGITEMTEMPLATE)
01920 typedef const DLGITEMTEMPLATE *LPCDLGITEMTEMPLATEA;
01921 typedef const DLGITEMTEMPLATE *LPCDLGITEMTEMPLATEW;
01922 #define LPCDLGITEMTEMPLATE WINELIB_NAME_AW(LPCDLGITEMTEMPLATE)
01923 
01924 
01925   /* CBT hook values */
01926 #define HCBT_MOVESIZE       0
01927 #define HCBT_MINMAX         1
01928 #define HCBT_QS             2
01929 #define HCBT_CREATEWND      3
01930 #define HCBT_DESTROYWND     4
01931 #define HCBT_ACTIVATE       5
01932 #define HCBT_CLICKSKIPPED   6
01933 #define HCBT_KEYSKIPPED     7
01934 #define HCBT_SYSCOMMAND     8
01935 #define HCBT_SETFOCUS       9
01936 
01937   /* CBT hook structures */
01938 
01939 typedef struct
01940 {
01941     CREATESTRUCTA *lpcs;
01942     HWND           hwndInsertAfter;
01943 } CBT_CREATEWNDA, *LPCBT_CREATEWNDA;
01944 
01945 typedef struct
01946 {
01947     CREATESTRUCTW *lpcs;
01948     HWND           hwndInsertAfter;
01949 } CBT_CREATEWNDW, *LPCBT_CREATEWNDW;
01950 
01951 DECL_WINELIB_TYPE_AW(CBT_CREATEWND)
01952 DECL_WINELIB_TYPE_AW(LPCBT_CREATEWND)
01953 
01954 typedef struct
01955 {
01956     WIN_BOOL    fMouse;
01957     HWND    hWndActive;
01958 } CBTACTIVATESTRUCT, *LPCBTACTIVATESTRUCT;
01959 
01960 
01961 /* modifiers for RegisterHotKey */
01962 #define MOD_ALT         0x0001
01963 #define MOD_CONTROL     0x0002
01964 #define MOD_SHIFT       0x0004
01965 #define MOD_WIN         0x0008
01966 
01967 /* ids for RegisterHotKey */
01968 #define IDHOT_SNAPWINDOW        (-1)    /* SHIFT-PRINTSCRN  */
01969 #define IDHOT_SNAPDESKTOP       (-2)    /* PRINTSCRN        */
01970 
01971   /* keybd_event flags */
01972 #define KEYEVENTF_EXTENDEDKEY        0x0001
01973 #define KEYEVENTF_KEYUP              0x0002
01974 #define KEYEVENTF_WINE_FORCEEXTENDED 0x8000
01975 
01976   /* mouse_event flags */
01977 #define MOUSEEVENTF_MOVE        0x0001
01978 #define MOUSEEVENTF_LEFTDOWN    0x0002
01979 #define MOUSEEVENTF_LEFTUP      0x0004
01980 #define MOUSEEVENTF_RIGHTDOWN   0x0008
01981 #define MOUSEEVENTF_RIGHTUP     0x0010
01982 #define MOUSEEVENTF_MIDDLEDOWN  0x0020
01983 #define MOUSEEVENTF_MIDDLEUP    0x0040
01984 #define MOUSEEVENTF_WHEEL       0x0800
01985 #define MOUSEEVENTF_ABSOLUTE    0x8000
01986 
01987 /* ExitWindows() flags */
01988 #define EW_RESTARTWINDOWS   0x0042
01989 #define EW_REBOOTSYSTEM     0x0043
01990 #define EW_EXITANDEXECAPP   0x0044
01991 
01992 /* ExitWindowsEx() flags */
01993 #define EWX_LOGOFF           0
01994 #define EWX_SHUTDOWN         1
01995 #define EWX_REBOOT           2
01996 #define EWX_FORCE            4
01997 #define EWX_POWEROFF         8
01998 
01999 /* SetLastErrorEx types */
02000 #define SLE_ERROR       0x00000001
02001 #define SLE_MINORERROR  0x00000002
02002 #define SLE_WARNING     0x00000003
02003 
02004 /* Predefined resources */
02005 #define IDI_APPLICATIONA MAKEINTRESOURCEA(32512)
02006 #define IDI_APPLICATIONW MAKEINTRESOURCEW(32512)
02007 #define IDI_APPLICATION    WINELIB_NAME_AW(IDI_APPLICATION)
02008 #define IDI_HANDA        MAKEINTRESOURCEA(32513)
02009 #define IDI_HANDW        MAKEINTRESOURCEW(32513)
02010 #define IDI_HAND           WINELIB_NAME_AW(IDI_HAND)
02011 #define IDI_QUESTIONA    MAKEINTRESOURCEA(32514)
02012 #define IDI_QUESTIONW    MAKEINTRESOURCEW(32514)
02013 #define IDI_QUESTION       WINELIB_NAME_AW(IDI_QUESTION)
02014 #define IDI_EXCLAMATIONA MAKEINTRESOURCEA(32515)
02015 #define IDI_EXCLAMATIONW MAKEINTRESOURCEW(32515)
02016 #define IDI_EXCLAMATION    WINELIB_NAME_AW(IDI_EXCLAMATION)
02017 #define IDI_ASTERISKA    MAKEINTRESOURCEA(32516)
02018 #define IDI_ASTERISKW    MAKEINTRESOURCEW(32516)
02019 #define IDI_ASTERISK       WINELIB_NAME_AW(IDI_ASTERISK)
02020 
02021 #define IDC_BUMMERA      MAKEINTRESOURCEA(100)
02022 #define IDC_BUMMERW      MAKEINTRESOURCEW(100)
02023 #define IDC_BUMMER         WINELIB_NAME_AW(IDC_BUMMER)
02024 #define IDC_ARROWA       MAKEINTRESOURCEA(32512)
02025 #define IDC_ARROWW       MAKEINTRESOURCEW(32512)
02026 #define IDC_ARROW          WINELIB_NAME_AW(IDC_ARROW)
02027 #define IDC_IBEAMA       MAKEINTRESOURCEA(32513)
02028 #define IDC_IBEAMW       MAKEINTRESOURCEW(32513)
02029 #define IDC_IBEAM          WINELIB_NAME_AW(IDC_IBEAM)
02030 #define IDC_WAITA        MAKEINTRESOURCEA(32514)
02031 #define IDC_WAITW        MAKEINTRESOURCEW(32514)
02032 #define IDC_WAIT           WINELIB_NAME_AW(IDC_WAIT)
02033 #define IDC_CROSSA       MAKEINTRESOURCEA(32515)
02034 #define IDC_CROSSW       MAKEINTRESOURCEW(32515)
02035 #define IDC_CROSS          WINELIB_NAME_AW(IDC_CROSS)
02036 #define IDC_UPARROWA     MAKEINTRESOURCEA(32516)
02037 #define IDC_UPARROWW     MAKEINTRESOURCEW(32516)
02038 #define IDC_UPARROW        WINELIB_NAME_AW(IDC_UPARROW)
02039 #define IDC_SIZEA        MAKEINTRESOURCEA(32640)
02040 #define IDC_SIZEW        MAKEINTRESOURCEW(32640)
02041 #define IDC_SIZE           WINELIB_NAME_AW(IDC_SIZE)
02042 #define IDC_ICONA        MAKEINTRESOURCEA(32641)
02043 #define IDC_ICONW        MAKEINTRESOURCEW(32641)
02044 #define IDC_ICON           WINELIB_NAME_AW(IDC_ICON)
02045 #define IDC_SIZENWSEA    MAKEINTRESOURCEA(32642)
02046 #define IDC_SIZENWSEW    MAKEINTRESOURCEW(32642)
02047 #define IDC_SIZENWSE       WINELIB_NAME_AW(IDC_SIZENWSE)
02048 #define IDC_SIZENESWA    MAKEINTRESOURCEA(32643)
02049 #define IDC_SIZENESWW    MAKEINTRESOURCEW(32643)
02050 #define IDC_SIZENESW       WINELIB_NAME_AW(IDC_SIZENESW)
02051 #define IDC_SIZEWEA      MAKEINTRESOURCEA(32644)
02052 #define IDC_SIZEWEW      MAKEINTRESOURCEW(32644)
02053 #define IDC_SIZEWE         WINELIB_NAME_AW(IDC_SIZEWE)
02054 #define IDC_SIZENSA      MAKEINTRESOURCEA(32645)
02055 #define IDC_SIZENSW      MAKEINTRESOURCEW(32645)
02056 #define IDC_SIZENS         WINELIB_NAME_AW(IDC_SIZENS)
02057 #define IDC_SIZEALLA     MAKEINTRESOURCEA(32646)
02058 #define IDC_SIZEALLW     MAKEINTRESOURCEW(32646)
02059 #define IDC_SIZEALL        WINELIB_NAME_AW(IDC_SIZEALL)
02060 #define IDC_NOA          MAKEINTRESOURCEA(32648)
02061 #define IDC_NOW          MAKEINTRESOURCEW(32648)
02062 #define IDC_NO             WINELIB_NAME_AW(IDC_NO)
02063 #define IDC_APPSTARTINGA MAKEINTRESOURCEA(32650)
02064 #define IDC_APPSTARTINGW MAKEINTRESOURCEW(32650)
02065 #define IDC_APPSTARTING    WINELIB_NAME_AW(IDC_APPSTARTING)
02066 #define IDC_HELPA        MAKEINTRESOURCEA(32651)
02067 #define IDC_HELPW        MAKEINTRESOURCEW(32651)
02068 #define IDC_HELP           WINELIB_NAME_AW(IDC_HELP)
02069 
02070 #define MNC_IGNORE 0
02071 #define MNC_CLOSE 1
02072 #define MNC_EXECUTE 2
02073 #define MNC_SELECT 3 
02074 
02075 /* SystemParametersInfo */
02076 /* defines below are for all win versions */
02077 #define SPI_GETBEEP               1
02078 #define SPI_SETBEEP               2
02079 #define SPI_GETMOUSE              3
02080 #define SPI_SETMOUSE              4
02081 #define SPI_GETBORDER             5
02082 #define SPI_SETBORDER             6
02083 #define SPI_GETKEYBOARDSPEED      10
02084 #define SPI_SETKEYBOARDSPEED      11
02085 #define SPI_LANGDRIVER            12
02086 #define SPI_ICONHORIZONTALSPACING 13
02087 #define SPI_GETSCREENSAVETIMEOUT  14
02088 #define SPI_SETSCREENSAVETIMEOUT  15
02089 #define SPI_GETSCREENSAVEACTIVE   16
02090 #define SPI_SETSCREENSAVEACTIVE   17
02091 #define SPI_GETGRIDGRANULARITY    18
02092 #define SPI_SETGRIDGRANULARITY    19
02093 #define SPI_SETDESKWALLPAPER      20
02094 #define SPI_SETDESKPATTERN        21
02095 #define SPI_GETKEYBOARDDELAY      22
02096 #define SPI_SETKEYBOARDDELAY      23
02097 #define SPI_ICONVERTICALSPACING   24
02098 #define SPI_GETICONTITLEWRAP      25
02099 #define SPI_SETICONTITLEWRAP      26
02100 #define SPI_GETMENUDROPALIGNMENT  27
02101 #define SPI_SETMENUDROPALIGNMENT  28
02102 #define SPI_SETDOUBLECLKWIDTH     29
02103 #define SPI_SETDOUBLECLKHEIGHT    30
02104 #define SPI_GETICONTITLELOGFONT   31
02105 #define SPI_SETDOUBLECLICKTIME    32
02106 #define SPI_SETMOUSEBUTTONSWAP    33
02107 #define SPI_SETICONTITLELOGFONT   34
02108 #define SPI_GETFASTTASKSWITCH     35
02109 #define SPI_SETFASTTASKSWITCH     36
02110 #define SPI_SETDRAGFULLWINDOWS    37
02111 #define SPI_GETDRAGFULLWINDOWS    38
02112 
02113 #define SPI_GETFILTERKEYS         50
02114 #define SPI_SETFILTERKEYS         51
02115 #define SPI_GETTOGGLEKEYS         52
02116 #define SPI_SETTOGGLEKEYS         53
02117 #define SPI_GETMOUSEKEYS          54
02118 #define SPI_SETMOUSEKEYS          55
02119 #define SPI_GETSHOWSOUNDS         56
02120 #define SPI_SETSHOWSOUNDS         57
02121 #define SPI_GETSTICKYKEYS         58
02122 #define SPI_SETSTICKYKEYS         59
02123 #define SPI_GETACCESSTIMEOUT      60
02124 #define SPI_SETACCESSTIMEOUT      61
02125 
02126 #define SPI_GETSOUNDSENTRY        64
02127 #define SPI_SETSOUNDSENTRY        65
02128 
02129 /* defines below are for all win versions WINVER >= 0x0400 */
02130 #define SPI_SETDRAGFULLWINDOWS    37
02131 #define SPI_GETDRAGFULLWINDOWS    38
02132 #define SPI_GETNONCLIENTMETRICS   41
02133 #define SPI_SETNONCLIENTMETRICS   42
02134 #define SPI_GETMINIMIZEDMETRICS   43
02135 #define SPI_SETMINIMIZEDMETRICS   44
02136 #define SPI_GETICONMETRICS        45
02137 #define SPI_SETICONMETRICS        46
02138 #define SPI_SETWORKAREA           47
02139 #define SPI_GETWORKAREA           48
02140 #define SPI_SETPENWINDOWS         49
02141 
02142 #define SPI_GETSERIALKEYS         62
02143 #define SPI_SETSERIALKEYS         63
02144 #define SPI_GETHIGHCONTRAST       66
02145 #define SPI_SETHIGHCONTRAST       67
02146 #define SPI_GETKEYBOARDPREF       68
02147 #define SPI_SETKEYBOARDPREF       69
02148 #define SPI_GETSCREENREADER       70
02149 #define SPI_SETSCREENREADER       71
02150 #define SPI_GETANIMATION          72
02151 #define SPI_SETANIMATION          73
02152 #define SPI_GETFONTSMOOTHING      74
02153 #define SPI_SETFONTSMOOTHING      75
02154 #define SPI_SETDRAGWIDTH          76
02155 #define SPI_SETDRAGHEIGHT         77
02156 #define SPI_SETHANDHELD           78
02157 #define SPI_GETLOWPOWERTIMEOUT    79
02158 #define SPI_GETPOWEROFFTIMEOUT    80
02159 #define SPI_SETLOWPOWERTIMEOUT    81
02160 #define SPI_SETPOWEROFFTIMEOUT    82
02161 #define SPI_GETLOWPOWERACTIVE     83
02162 #define SPI_GETPOWEROFFACTIVE     84
02163 #define SPI_SETLOWPOWERACTIVE     85
02164 #define SPI_SETPOWEROFFACTIVE     86
02165 #define SPI_SETCURSORS            87
02166 #define SPI_SETICONS              88
02167 #define SPI_GETDEFAULTINPUTLANG   89
02168 #define SPI_SETDEFAULTINPUTLANG   90
02169 #define SPI_SETLANGTOGGLE         91
02170 #define SPI_GETWINDOWSEXTENSION   92
02171 #define SPI_SETMOUSETRAILS        93
02172 #define SPI_GETMOUSETRAILS        94
02173 #define SPI_SETSCREENSAVERRUNNING 97
02174 #define SPI_SCREENSAVERRUNNING    SPI_SETSCREENSAVERRUNNING
02175 
02176 /* defines below are for all win versions (_WIN32_WINNT >= 0x0400) ||
02177  *                                        (_WIN32_WINDOWS > 0x0400) */
02178 #define SPI_GETMOUSEHOVERWIDTH    98
02179 #define SPI_SETMOUSEHOVERWIDTH    99
02180 #define SPI_GETMOUSEHOVERHEIGHT   100
02181 #define SPI_SETMOUSEHOVERHEIGHT   101
02182 #define SPI_GETMOUSEHOVERTIME     102
02183 #define SPI_SETMOUSEHOVERTIME     103
02184 #define SPI_GETWHEELSCROLLLINES   104
02185 #define SPI_SETWHEELSCROLLLINES   105
02186 
02187 #define SPI_GETSHOWIMEUI          110
02188 #define SPI_SETSHOWIMEUI          111
02189 
02190 /* defines below are for all win versions WINVER >= 0x0500 */
02191 #define SPI_GETMOUSESPEED         112
02192 #define SPI_SETMOUSESPEED         113
02193 #define SPI_GETSCREENSAVERRUNNING 114
02194 
02195 #define SPI_GETACTIVEWINDOWTRACKING    0x1000
02196 #define SPI_SETACTIVEWINDOWTRACKING    0x1001
02197 #define SPI_GETMENUANIMATION           0x1002
02198 #define SPI_SETMENUANIMATION           0x1003
02199 #define SPI_GETCOMBOBOXANIMATION       0x1004
02200 #define SPI_SETCOMBOBOXANIMATION       0x1005
02201 #define SPI_GETLISTBOXSMOOTHSCROLLING  0x1006
02202 #define SPI_SETLISTBOXSMOOTHSCROLLING  0x1007
02203 #define SPI_GETGRADIENTCAPTIONS        0x1008
02204 #define SPI_SETGRADIENTCAPTIONS        0x1009
02205 #define SPI_GETMENUUNDERLINES          0x100A
02206 #define SPI_SETMENUUNDERLINES          0x100B
02207 #define SPI_GETACTIVEWNDTRKZORDER      0x100C
02208 #define SPI_SETACTIVEWNDTRKZORDER      0x100D
02209 #define SPI_GETHOTTRACKING             0x100E
02210 #define SPI_SETHOTTRACKING             0x100F
02211 #define SPI_GETFOREGROUNDLOCKTIMEOUT   0x2000
02212 #define SPI_SETFOREGROUNDLOCKTIMEOUT   0x2001
02213 #define SPI_GETACTIVEWNDTRKTIMEOUT     0x2002
02214 #define SPI_SETACTIVEWNDTRKTIMEOUT     0x2003
02215 #define SPI_GETFOREGROUNDFLASHCOUNT    0x2004
02216 #define SPI_SETFOREGROUNDFLASHCOUNT    0x2005
02217 
02218 /* SystemParametersInfo flags */
02219 
02220 #define SPIF_UPDATEINIFILE              1
02221 #define SPIF_SENDWININICHANGE           2
02222 #define SPIF_SENDCHANGE                 SPIF_SENDWININICHANGE
02223 
02224 
02225 
02226 
02227 /* Window Styles */
02228 #define WS_OVERLAPPED    0x00000000L
02229 #define WS_POPUP         0x80000000L
02230 #define WS_CHILD         0x40000000L
02231 #define WS_MINIMIZE      0x20000000L
02232 #define WS_VISIBLE       0x10000000L
02233 #define WS_DISABLED      0x08000000L
02234 #define WS_CLIPSIBLINGS  0x04000000L
02235 #define WS_CLIPCHILDREN  0x02000000L
02236 #define WS_MAXIMIZE      0x01000000L
02237 #define WS_CAPTION       0x00C00000L
02238 #define WS_BORDER        0x00800000L
02239 #define WS_DLGFRAME      0x00400000L
02240 #define WS_VSCROLL       0x00200000L
02241 #define WS_HSCROLL       0x00100000L
02242 #define WS_SYSMENU       0x00080000L
02243 #define WS_THICKFRAME    0x00040000L
02244 #define WS_GROUP         0x00020000L
02245 #define WS_TABSTOP       0x00010000L
02246 #define WS_MINIMIZEBOX   0x00020000L
02247 #define WS_MAXIMIZEBOX   0x00010000L
02248 #define WS_TILED         WS_OVERLAPPED
02249 #define WS_ICONIC        WS_MINIMIZE
02250 #define WS_SIZEBOX       WS_THICKFRAME
02251 #define WS_OVERLAPPEDWINDOW (WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME| WS_MINIMIZEBOX | WS_MAXIMIZEBOX)
02252 #define WS_POPUPWINDOW (WS_POPUP | WS_BORDER | WS_SYSMENU)
02253 #define WS_CHILDWINDOW (WS_CHILD)
02254 #define WS_TILEDWINDOW (WS_OVERLAPPEDWINDOW)
02255 
02256 /* Window extended styles */
02257 #define WS_EX_DLGMODALFRAME    0x00000001L
02258 #define WS_EX_DRAGDETECT       0x00000002L
02259 #define WS_EX_NOPARENTNOTIFY   0x00000004L
02260 #define WS_EX_TOPMOST          0x00000008L
02261 #define WS_EX_ACCEPTFILES      0x00000010L
02262 #define WS_EX_TRANSPARENT      0x00000020L
02263 
02264 /* New Win95/WinNT4 styles */
02265 #define WS_EX_MDICHILD         0x00000040L
02266 #define WS_EX_TOOLWINDOW       0x00000080L
02267 #define WS_EX_WINDOWEDGE       0x00000100L
02268 #define WS_EX_CLIENTEDGE       0x00000200L
02269 #define WS_EX_CONTEXTHELP      0x00000400L
02270 #define WS_EX_RIGHT            0x00001000L
02271 #define WS_EX_LEFT             0x00000000L
02272 #define WS_EX_RTLREADING       0x00002000L
02273 #define WS_EX_LTRREADING       0x00000000L
02274 #define WS_EX_LEFTSCROLLBAR    0x00004000L
02275 #define WS_EX_RIGHTSCROLLBAR   0x00000000L
02276 #define WS_EX_CONTROLPARENT    0x00010000L
02277 #define WS_EX_STATICEDGE       0x00020000L
02278 #define WS_EX_APPWINDOW        0x00040000L
02279 
02280 #define WS_EX_OVERLAPPEDWINDOW (WS_EX_WINDOWEDGE|WS_EX_CLIENTEDGE)
02281 #define WS_EX_PALETTEWINDOW    (WS_EX_WINDOWEDGE|WS_EX_TOOLWINDOW|WS_EX_TOPMOST)
02282 
02283 /* WINE internal... */
02284 #define WS_EX_TRAYWINDOW        0x80000000L
02285 
02286 /* Window scrolling */
02287 #define SW_SCROLLCHILDREN      0x0001
02288 #define SW_INVALIDATE          0x0002
02289 #define SW_ERASE               0x0004
02290 
02291 /* CreateWindow() coordinates */
02292 #define CW_USEDEFAULT ((INT)0x80000000)
02293 
02294 /* ChildWindowFromPointEx Flags */
02295 #define CWP_ALL                0x0000
02296 #define CWP_SKIPINVISIBLE      0x0001
02297 #define CWP_SKIPDISABLED       0x0002
02298 #define CWP_SKIPTRANSPARENT    0x0004
02299 
02300   /* PeekMessage() options */
02301 #define PM_NOREMOVE     0x0000
02302 #define PM_REMOVE       0x0001
02303 #define PM_NOYIELD      0x0002
02304 
02305 /* WM_SHOWWINDOW wParam codes */
02306 #define SW_PARENTCLOSING    1
02307 #define SW_OTHERMAXIMIZED   2
02308 #define SW_PARENTOPENING    3
02309 #define SW_OTHERRESTORED    4
02310 
02311   /* ShowWindow() codes */
02312 #define SW_HIDE             0
02313 #define SW_SHOWNORMAL       1
02314 #define SW_NORMAL           1
02315 #define SW_SHOWMINIMIZED    2
02316 #define SW_SHOWMAXIMIZED    3
02317 #define SW_MAXIMIZE         3
02318 #define SW_SHOWNOACTIVATE   4
02319 #define SW_SHOW             5
02320 #define SW_MINIMIZE         6
02321 #define SW_SHOWMINNOACTIVE  7
02322 #define SW_SHOWNA           8
02323 #define SW_RESTORE          9
02324 #define SW_SHOWDEFAULT      10
02325 #define SW_MAX              10
02326 #define SW_NORMALNA         0xCC        /* undoc. flag in MinMaximize */
02327 
02328   /* WM_SIZE message wParam values */
02329 #define SIZE_RESTORED        0
02330 #define SIZE_MINIMIZED       1
02331 #define SIZE_MAXIMIZED       2
02332 #define SIZE_MAXSHOW         3
02333 #define SIZE_MAXHIDE         4
02334 #define SIZENORMAL           SIZE_RESTORED
02335 #define SIZEICONIC           SIZE_MINIMIZED
02336 #define SIZEFULLSCREEN       SIZE_MAXIMIZED
02337 #define SIZEZOOMSHOW         SIZE_MAXSHOW
02338 #define SIZEZOOMHIDE         SIZE_MAXHIDE
02339 
02340 /* SetWindowPos() and WINDOWPOS flags */
02341 #define SWP_NOSIZE          0x0001
02342 #define SWP_NOMOVE          0x0002
02343 #define SWP_NOZORDER        0x0004
02344 #define SWP_NOREDRAW        0x0008
02345 #define SWP_NOACTIVATE      0x0010
02346 #define SWP_FRAMECHANGED    0x0020  /* The frame changed: send WM_NCCALCSIZE */
02347 #define SWP_SHOWWINDOW      0x0040
02348 #define SWP_HIDEWINDOW      0x0080
02349 #define SWP_NOCOPYBITS      0x0100
02350 #define SWP_NOOWNERZORDER   0x0200  /* Don't do owner Z ordering */
02351 
02352 #define SWP_DRAWFRAME       SWP_FRAMECHANGED
02353 #define SWP_NOREPOSITION    SWP_NOOWNERZORDER
02354 
02355 #define SWP_NOSENDCHANGING  0x0400
02356 #define SWP_DEFERERASE      0x2000
02357 #define SWP_ASYNCWINDOWPOS  0x4000
02358 
02359 #define HWND_DESKTOP        ((HWND)0)
02360 #define HWND_BROADCAST      ((HWND)0xffff)
02361 
02362 /* SetWindowPos() hwndInsertAfter field values */
02363 #define HWND_TOP            ((HWND)0)
02364 #define HWND_BOTTOM         ((HWND)1)
02365 #define HWND_TOPMOST        ((HWND)-1)
02366 #define HWND_NOTOPMOST      ((HWND)-2)
02367 
02368 #define MF_INSERT          0x0000
02369 #define MF_CHANGE          0x0080
02370 #define MF_APPEND          0x0100
02371 #define MF_DELETE          0x0200
02372 #define MF_REMOVE          0x1000
02373 #define MF_END             0x0080
02374 
02375 #define MF_ENABLED         0x0000
02376 #define MF_GRAYED          0x0001
02377 #define MF_DISABLED        0x0002
02378 #define MF_STRING          0x0000
02379 #define MF_BITMAP          0x0004
02380 #define MF_UNCHECKED       0x0000
02381 #define MF_CHECKED         0x0008
02382 #define MF_POPUP           0x0010
02383 #define MF_MENUBARBREAK    0x0020
02384 #define MF_MENUBREAK       0x0040
02385 #define MF_UNHILITE        0x0000
02386 #define MF_HILITE          0x0080
02387 #define MF_OWNERDRAW       0x0100
02388 #define MF_USECHECKBITMAPS 0x0200
02389 #define MF_BYCOMMAND       0x0000
02390 #define MF_BYPOSITION      0x0400
02391 #define MF_SEPARATOR       0x0800
02392 #define MF_DEFAULT         0x1000
02393 #define MF_SYSMENU         0x2000
02394 #define MF_HELP            0x4000
02395 #define MF_RIGHTJUSTIFY    0x4000
02396 #define MF_MOUSESELECT     0x8000
02397 
02398 /* Flags for extended menu item types.  */
02399 #define MFT_STRING         MF_STRING
02400 #define MFT_BITMAP         MF_BITMAP
02401 #define MFT_MENUBARBREAK   MF_MENUBARBREAK
02402 #define MFT_MENUBREAK      MF_MENUBREAK
02403 #define MFT_OWNERDRAW      MF_OWNERDRAW
02404 #define MFT_RADIOCHECK     0x00000200L
02405 #define MFT_SEPARATOR      MF_SEPARATOR
02406 #define MFT_RIGHTORDER     0x00002000L
02407 #define MFT_RIGHTJUSTIFY   MF_RIGHTJUSTIFY
02408 
02409 /* Flags for extended menu item states.  */
02410 #define MFS_GRAYED          0x00000003L
02411 #define MFS_DISABLED        MFS_GRAYED
02412 #define MFS_CHECKED         MF_CHECKED
02413 #define MFS_HILITE          MF_HILITE
02414 #define MFS_ENABLED         MF_ENABLED
02415 #define MFS_UNCHECKED       MF_UNCHECKED
02416 #define MFS_UNHILITE        MF_UNHILITE
02417 #define MFS_DEFAULT         MF_DEFAULT
02418 #define MFS_MASK            0x0000108BL
02419 #define MFS_HOTTRACKDRAWN   0x10000000L
02420 #define MFS_CACHEDBMP       0x20000000L
02421 #define MFS_BOTTOMGAPDROP   0x40000000L
02422 #define MFS_TOPGAPDROP      0x80000000L
02423 #define MFS_GAPDROP         0xC0000000L
02424 
02425 /* for GetMenuDefaultItem */
02426 #define GMDI_USEDISABLED    0x0001L
02427 #define GMDI_GOINTOPOPUPS   0x0002L
02428 
02429 #define DT_TOP 0
02430 #define DT_LEFT 0
02431 #define DT_CENTER 1
02432 #define DT_RIGHT 2
02433 #define DT_VCENTER 4
02434 #define DT_BOTTOM 8
02435 #define DT_WORDBREAK 16
02436 #define DT_SINGLELINE 32
02437 #define DT_EXPANDTABS 64
02438 #define DT_TABSTOP 128
02439 #define DT_NOCLIP 256
02440 #define DT_EXTERNALLEADING 512
02441 #define DT_CALCRECT 1024
02442 #define DT_NOPREFIX 2048
02443 #define DT_INTERNAL 4096
02444 
02445 /* DrawCaption()/DrawCaptionTemp() flags */
02446 #define DC_ACTIVE               0x0001
02447 #define DC_SMALLCAP             0x0002
02448 #define DC_ICON                 0x0004
02449 #define DC_TEXT                 0x0008
02450 #define DC_INBUTTON             0x0010
02451 
02452 /* DrawEdge() flags */
02453 #define BDR_RAISEDOUTER    0x0001
02454 #define BDR_SUNKENOUTER    0x0002
02455 #define BDR_RAISEDINNER    0x0004
02456 #define BDR_SUNKENINNER    0x0008
02457 
02458 #define BDR_OUTER          0x0003
02459 #define BDR_INNER          0x000c
02460 #define BDR_RAISED         0x0005
02461 #define BDR_SUNKEN         0x000a
02462 
02463 #define EDGE_RAISED        (BDR_RAISEDOUTER | BDR_RAISEDINNER)
02464 #define EDGE_SUNKEN        (BDR_SUNKENOUTER | BDR_SUNKENINNER)
02465 #define EDGE_ETCHED        (BDR_SUNKENOUTER | BDR_RAISEDINNER)
02466 #define EDGE_BUMP          (BDR_RAISEDOUTER | BDR_SUNKENINNER)
02467 
02468 /* border flags */
02469 #define BF_LEFT            0x0001
02470 #define BF_TOP             0x0002
02471 #define BF_RIGHT           0x0004
02472 #define BF_BOTTOM          0x0008
02473 #define BF_DIAGONAL        0x0010
02474 #define BF_MIDDLE          0x0800  /* Fill in the middle */
02475 #define BF_SOFT            0x1000  /* For softer buttons */
02476 #define BF_ADJUST          0x2000  /* Calculate the space left over */
02477 #define BF_FLAT            0x4000  /* For flat rather than 3D borders */
02478 #define BF_MONO            0x8000  /* For monochrome borders */
02479 #define BF_TOPLEFT         (BF_TOP | BF_LEFT)
02480 #define BF_TOPRIGHT        (BF_TOP | BF_RIGHT)
02481 #define BF_BOTTOMLEFT      (BF_BOTTOM | BF_LEFT)
02482 #define BF_BOTTOMRIGHT     (BF_BOTTOM | BF_RIGHT)
02483 #define BF_RECT            (BF_LEFT | BF_TOP | BF_RIGHT | BF_BOTTOM)
02484 #define BF_DIAGONAL_ENDTOPRIGHT     (BF_DIAGONAL | BF_TOP | BF_RIGHT)
02485 #define BF_DIAGONAL_ENDTOPLEFT      (BF_DIAGONAL | BF_TOP | BF_LEFT)
02486 #define BF_DIAGONAL_ENDBOTTOMLEFT   (BF_DIAGONAL | BF_BOTTOM | BF_LEFT)
02487 #define BF_DIAGONAL_ENDBOTTOMRIGHT  (BF_DIAGONAL | BF_BOTTOM | BF_RIGHT)
02488 
02489 /* DrawFrameControl() uType's */
02490 
02491 #define DFC_CAPTION             1
02492 #define DFC_MENU                2
02493 #define DFC_SCROLL              3
02494 #define DFC_BUTTON              4
02495 
02496 /* uState's */
02497 
02498 #define DFCS_CAPTIONCLOSE       0x0000
02499 #define DFCS_CAPTIONMIN         0x0001
02500 #define DFCS_CAPTIONMAX         0x0002
02501 #define DFCS_CAPTIONRESTORE     0x0003
02502 #define DFCS_CAPTIONHELP        0x0004          /* Windows 95 only */
02503 
02504 #define DFCS_MENUARROW          0x0000
02505 #define DFCS_MENUCHECK          0x0001
02506 #define DFCS_MENUBULLET         0x0002
02507 #define DFCS_MENUARROWRIGHT     0x0004
02508 
02509 #define DFCS_SCROLLUP            0x0000
02510 #define DFCS_SCROLLDOWN          0x0001
02511 #define DFCS_SCROLLLEFT          0x0002
02512 #define DFCS_SCROLLRIGHT         0x0003
02513 #define DFCS_SCROLLCOMBOBOX      0x0005
02514 #define DFCS_SCROLLSIZEGRIP      0x0008
02515 #define DFCS_SCROLLSIZEGRIPRIGHT 0x0010
02516 
02517 #define DFCS_BUTTONCHECK        0x0000
02518 #define DFCS_BUTTONRADIOIMAGE   0x0001
02519 #define DFCS_BUTTONRADIOMASK    0x0002          /* to draw nonsquare button */
02520 #define DFCS_BUTTONRADIO        0x0004
02521 #define DFCS_BUTTON3STATE       0x0008
02522 #define DFCS_BUTTONPUSH         0x0010
02523 
02524 /* additional state of the control */
02525 
02526 #define DFCS_INACTIVE           0x0100
02527 #define DFCS_PUSHED             0x0200
02528 #define DFCS_CHECKED            0x0400
02529 #define DFCS_ADJUSTRECT         0x2000          /* exclude surrounding edge */
02530 #define DFCS_FLAT               0x4000
02531 #define DFCS_MONO               0x8000
02532 
02533 /* Image type */
02534 #define DST_COMPLEX     0x0000
02535 #define DST_TEXT        0x0001
02536 #define DST_PREFIXTEXT  0x0002
02537 #define DST_ICON        0x0003
02538 #define DST_BITMAP      0x0004
02539 
02540 /* State type */
02541 #define DSS_NORMAL      0x0000
02542 #define DSS_UNION       0x0010  /* Gray string appearance */
02543 #define DSS_DISABLED    0x0020
02544 #define DSS_DEFAULT     0x0040  /* Make it bold */
02545 #define DSS_MONO        0x0080
02546 #define DSS_RIGHT       0x8000
02547 
02548 typedef struct
02549 {
02550     UINT      CtlType;
02551     UINT      CtlID;
02552     UINT      itemID;
02553     UINT      itemAction;
02554     UINT      itemState;
02555     HWND      hwndItem;
02556     HDC       hDC;
02557     RECT      rcItem WINE_PACKED;
02558     DWORD       itemData WINE_PACKED;
02559 } DRAWITEMSTRUCT, *PDRAWITEMSTRUCT, *LPDRAWITEMSTRUCT;
02560 
02561 
02562 typedef struct
02563 {
02564     UINT      CtlType;
02565     UINT      CtlID;
02566     UINT      itemID;
02567     UINT      itemWidth;
02568     UINT      itemHeight;
02569     DWORD       itemData;
02570 } MEASUREITEMSTRUCT, *PMEASUREITEMSTRUCT, *LPMEASUREITEMSTRUCT;
02571 
02572 
02573 typedef struct
02574 {
02575     UINT     CtlType;
02576     UINT     CtlID;
02577     UINT     itemID;
02578     HWND     hwndItem;
02579     DWORD      itemData;
02580 } DELETEITEMSTRUCT, *LPDELETEITEMSTRUCT;
02581 
02582 
02583 typedef struct
02584 {
02585     UINT      CtlType;
02586     UINT      CtlID;
02587     HWND      hwndItem;
02588     UINT      itemID1;
02589     DWORD       itemData1;
02590     UINT      itemID2;
02591     DWORD       itemData2;
02592     DWORD       dwLocaleId;
02593 } COMPAREITEMSTRUCT, *PCOMPAREITEMSTRUCT, *LPCOMPAREITEMSTRUCT;
02594 
02595 
02596 /* WM_KEYUP/DOWN/CHAR HIWORD(lParam) flags */
02597 #define KF_EXTENDED         0x0100
02598 #define KF_DLGMODE          0x0800
02599 #define KF_MENUMODE         0x1000
02600 #define KF_ALTDOWN          0x2000
02601 #define KF_REPEAT           0x4000
02602 #define KF_UP               0x8000
02603 
02604 /* Virtual key codes */
02605 #define VK_LBUTTON          0x01
02606 #define VK_RBUTTON          0x02
02607 #define VK_CANCEL           0x03
02608 #define VK_MBUTTON          0x04
02609 /*                          0x05-0x07  Undefined */
02610 #define VK_BACK             0x08
02611 #define VK_TAB              0x09
02612 /*                          0x0A-0x0B  Undefined */
02613 #define VK_CLEAR            0x0C
02614 #define VK_RETURN           0x0D
02615 /*                          0x0E-0x0F  Undefined */
02616 #define VK_SHIFT            0x10
02617 #define VK_CONTROL          0x11
02618 #define VK_MENU             0x12
02619 #define VK_PAUSE            0x13
02620 #define VK_CAPITAL          0x14
02621 /*                          0x15-0x19  Reserved for Kanji systems */
02622 /*                          0x1A       Undefined */
02623 #define VK_ESCAPE           0x1B
02624 /*                          0x1C-0x1F  Reserved for Kanji systems */
02625 #define VK_SPACE            0x20
02626 #define VK_PRIOR            0x21
02627 #define VK_NEXT             0x22
02628 #define VK_END              0x23
02629 #define VK_HOME             0x24
02630 #define VK_LEFT             0x25
02631 #define VK_UP               0x26
02632 #define VK_RIGHT            0x27
02633 #define VK_DOWN             0x28
02634 #define VK_SELECT           0x29
02635 #define VK_PRINT            0x2A /* OEM specific in Windows 3.1 SDK */
02636 #define VK_EXECUTE          0x2B
02637 #define VK_SNAPSHOT         0x2C
02638 #define VK_INSERT           0x2D
02639 #define VK_DELETE           0x2E
02640 #define VK_HELP             0x2F
02641 #define VK_0                0x30
02642 #define VK_1                0x31
02643 #define VK_2                0x32
02644 #define VK_3                0x33
02645 #define VK_4                0x34
02646 #define VK_5                0x35
02647 #define VK_6                0x36
02648 #define VK_7                0x37
02649 #define VK_8                0x38
02650 #define VK_9                0x39
02651 /*                          0x3A-0x40  Undefined */
02652 #define VK_A                0x41
02653 #define VK_B                0x42
02654 #define VK_C                0x43
02655 #define VK_D                0x44
02656 #define VK_E                0x45
02657 #define VK_F                0x46
02658 #define VK_G                0x47
02659 #define VK_H                0x48
02660 #define VK_I                0x49
02661 #define VK_J                0x4A
02662 #define VK_K                0x4B
02663 #define VK_L                0x4C
02664 #define VK_M                0x4D
02665 #define VK_N                0x4E
02666 #define VK_O                0x4F
02667 #define VK_P                0x50
02668 #define VK_Q                0x51
02669 #define VK_R                0x52
02670 #define VK_S                0x53
02671 #define VK_T                0x54
02672 #define VK_U                0x55
02673 #define VK_V                0x56
02674 #define VK_W                0x57
02675 #define VK_X                0x58
02676 #define VK_Y                0x59
02677 #define VK_Z                0x5A
02678 
02679 #define VK_LWIN             0x5B
02680 #define VK_RWIN             0x5C
02681 #define VK_APPS             0x5D
02682 /*                          0x5E-0x5F Unassigned */
02683 #define VK_NUMPAD0          0x60
02684 #define VK_NUMPAD1          0x61
02685 #define VK_NUMPAD2          0x62
02686 #define VK_NUMPAD3          0x63
02687 #define VK_NUMPAD4          0x64
02688 #define VK_NUMPAD5          0x65
02689 #define VK_NUMPAD6          0x66
02690 #define VK_NUMPAD7          0x67
02691 #define VK_NUMPAD8          0x68
02692 #define VK_NUMPAD9          0x69
02693 #define VK_MULTIPLY         0x6A
02694 #define VK_ADD              0x6B
02695 #define VK_SEPARATOR        0x6C
02696 #define VK_SUBTRACT         0x6D
02697 #define VK_DECIMAL          0x6E
02698 #define VK_DIVIDE           0x6F
02699 #define VK_F1               0x70
02700 #define VK_F2               0x71
02701 #define VK_F3               0x72
02702 #define VK_F4               0x73
02703 #define VK_F5               0x74
02704 #define VK_F6               0x75
02705 #define VK_F7               0x76
02706 #define VK_F8               0x77
02707 #define VK_F9               0x78
02708 #define VK_F10              0x79
02709 #define VK_F11              0x7A
02710 #define VK_F12              0x7B
02711 #define VK_F13              0x7C
02712 #define VK_F14              0x7D
02713 #define VK_F15              0x7E
02714 #define VK_F16              0x7F
02715 #define VK_F17              0x80
02716 #define VK_F18              0x81
02717 #define VK_F19              0x82
02718 #define VK_F20              0x83
02719 #define VK_F21              0x84
02720 #define VK_F22              0x85
02721 #define VK_F23              0x86
02722 #define VK_F24              0x87
02723 /*                          0x88-0x8F  Unassigned */
02724 #define VK_NUMLOCK          0x90
02725 #define VK_SCROLL           0x91
02726 /*                          0x92-0x9F  Unassigned */
02727 /*
02728  * differencing between right and left shift/control/alt key.
02729  * Used only by GetAsyncKeyState() and GetKeyState().
02730  */
02731 #define VK_LSHIFT           0xA0
02732 #define VK_RSHIFT           0xA1
02733 #define VK_LCONTROL         0xA2
02734 #define VK_RCONTROL         0xA3
02735 #define VK_LMENU            0xA4
02736 #define VK_RMENU            0xA5
02737 /*                          0xA6-0xB9  Unassigned */
02738 #define VK_OEM_1            0xBA
02739 #define VK_OEM_PLUS         0xBB
02740 #define VK_OEM_COMMA        0xBC
02741 #define VK_OEM_MINUS        0xBD
02742 #define VK_OEM_PERIOD       0xBE
02743 #define VK_OEM_2            0xBF
02744 #define VK_OEM_3            0xC0
02745 /*                          0xC1-0xDA  Unassigned */
02746 #define VK_OEM_4            0xDB
02747 #define VK_OEM_5            0xDC
02748 #define VK_OEM_6            0xDD
02749 #define VK_OEM_7            0xDE
02750 /*                          0xDF-0xE4  OEM specific */
02751 
02752 #define VK_PROCESSKEY       0xE5
02753 
02754 /*                          0xE6       OEM specific */
02755 /*                          0xE7-0xE8  Unassigned */
02756 /*                          0xE9-0xF5  OEM specific */
02757 
02758 #define VK_ATTN             0xF6
02759 #define VK_CRSEL            0xF7
02760 #define VK_EXSEL            0xF8
02761 #define VK_EREOF            0xF9
02762 #define VK_PLAY             0xFA
02763 #define VK_ZOOM             0xFB
02764 #define VK_NONAME           0xFC
02765 #define VK_PA1              0xFD
02766 #define VK_OEM_CLEAR        0xFE
02767   
02768   /* Key status flags for mouse events */
02769 #define MK_LBUTTON          0x0001
02770 #define MK_RBUTTON          0x0002
02771 #define MK_SHIFT            0x0004
02772 #define MK_CONTROL          0x0008
02773 #define MK_MBUTTON          0x0010
02774 
02775   /* Queue status flags */
02776 #define QS_KEY          0x0001
02777 #define QS_MOUSEMOVE    0x0002
02778 #define QS_MOUSEBUTTON  0x0004
02779 #define QS_MOUSE        (QS_MOUSEMOVE | QS_MOUSEBUTTON)
02780 #define QS_POSTMESSAGE  0x0008
02781 #define QS_TIMER        0x0010
02782 #define QS_PAINT        0x0020
02783 #define QS_SENDMESSAGE  0x0040
02784 #define QS_HOTKEY       0x0080
02785 #define QS_INPUT        (QS_MOUSE | QS_KEY)
02786 #define QS_ALLEVENTS    (QS_INPUT | QS_POSTMESSAGE | QS_TIMER | QS_PAINT | QS_HOTKEY)
02787 #define QS_ALLINPUT     (QS_ALLEVENTS | QS_SENDMESSAGE)
02788 
02789 #define DDL_READWRITE   0x0000
02790 #define DDL_READONLY    0x0001
02791 #define DDL_HIDDEN      0x0002
02792 #define DDL_SYSTEM      0x0004
02793 #define DDL_DIRECTORY   0x0010
02794 #define DDL_ARCHIVE     0x0020
02795 
02796 #define DDL_POSTMSGS    0x2000
02797 #define DDL_DRIVES      0x4000
02798 #define DDL_EXCLUSIVE   0x8000
02799 
02800   /* Shell hook values */
02801 #define HSHELL_WINDOWCREATED       1
02802 #define HSHELL_WINDOWDESTROYED     2
02803 #define HSHELL_ACTIVATESHELLWINDOW 3
02804 
02805 /* Predefined Clipboard Formats */
02806 #define CF_TEXT              1
02807 #define CF_BITMAP            2
02808 #define CF_METAFILEPICT      3
02809 #define CF_SYLK              4
02810 #define CF_DIF               5
02811 #define CF_TIFF              6
02812 #define CF_OEMTEXT           7
02813 #define CF_DIB               8
02814 #define CF_PALETTE           9
02815 #define CF_PENDATA          10
02816 #define CF_RIFF             11
02817 #define CF_WAVE             12
02818 #define CF_ENHMETAFILE      14
02819 #define CF_HDROP            15
02820 #define CF_LOCALE           16
02821 #define CF_MAX              17
02822 
02823 #define CF_OWNERDISPLAY     0x0080
02824 #define CF_DSPTEXT          0x0081
02825 #define CF_DSPBITMAP        0x0082
02826 #define CF_DSPMETAFILEPICT  0x0083
02827 
02828 /* "Private" formats don't get GlobalFree()'d */
02829 #define CF_PRIVATEFIRST     0x0200
02830 #define CF_PRIVATELAST      0x02FF
02831 
02832 /* "GDIOBJ" formats do get DeleteObject()'d */
02833 #define CF_GDIOBJFIRST      0x0300
02834 #define CF_GDIOBJLAST       0x03FF
02835 
02836 
02837 /* DragObject stuff */
02838 
02839 typedef struct
02840 {
02841     HWND16     hWnd;
02842     HANDLE16   hScope;
02843     WORD       wFlags;
02844     HANDLE16   hList;
02845     HANDLE16   hOfStruct;
02846     POINT16 pt WINE_PACKED;
02847     LONG       l WINE_PACKED;
02848 } DRAGINFO, *LPDRAGINFO;
02849 
02850 #define DRAGOBJ_PROGRAM         0x0001
02851 #define DRAGOBJ_DATA            0x0002
02852 #define DRAGOBJ_DIRECTORY       0x0004
02853 #define DRAGOBJ_MULTIPLE        0x0008
02854 #define DRAGOBJ_EXTERNAL        0x8000
02855 
02856 #define DRAG_PRINT              0x544E5250
02857 #define DRAG_FILE               0x454C4946
02858 
02859 /* types of LoadImage */
02860 #define IMAGE_BITMAP    0
02861 #define IMAGE_ICON      1
02862 #define IMAGE_CURSOR    2
02863 #define IMAGE_ENHMETAFILE       3
02864 
02865 /* loadflags to LoadImage */
02866 #define LR_DEFAULTCOLOR         0x0000
02867 #define LR_MONOCHROME           0x0001
02868 #define LR_COLOR                0x0002
02869 #define LR_COPYRETURNORG        0x0004
02870 #define LR_COPYDELETEORG        0x0008
02871 #define LR_LOADFROMFILE         0x0010
02872 #define LR_LOADTRANSPARENT      0x0020
02873 #define LR_DEFAULTSIZE          0x0040
02874 #define LR_VGA_COLOR            0x0080
02875 #define LR_LOADMAP3DCOLORS      0x1000
02876 #define LR_CREATEDIBSECTION     0x2000
02877 #define LR_COPYFROMRESOURCE     0x4000
02878 #define LR_SHARED               0x8000
02879 
02880 /* Flags for DrawIconEx.  */
02881 #define DI_MASK                 1
02882 #define DI_IMAGE                2
02883 #define DI_NORMAL               (DI_MASK | DI_IMAGE)
02884 #define DI_COMPAT               4
02885 #define DI_DEFAULTSIZE          8
02886 
02887   /* misc messages */
02888 #define WM_CPL_LAUNCH       (WM_USER + 1000)
02889 #define WM_CPL_LAUNCHED     (WM_USER + 1001)
02890 
02891 /* WM_NOTIFYFORMAT commands and return values */
02892 #define NFR_ANSI            1
02893 #define NFR_UNICODE         2
02894 #define NF_QUERY            3
02895 #define NF_REQUERY          4
02896 
02897 #include "poppack.h"
02898 #define     EnumTaskWindows(handle,proc,lparam) \
02899             EnumThreadWindows(handle,proc,lparam)
02900 #define     OemToAnsiA OemToCharA
02901 #define     OemToAnsiW OemToCharW
02902 #define     OemToAnsi WINELIB_NAME_AW(OemToAnsi)
02903 #define     OemToAnsiBuffA OemToCharBuffA
02904 #define     OemToAnsiBuffW OemToCharBuffW
02905 #define     OemToAnsiBuff WINELIB_NAME_AW(OemToAnsiBuff)
02906 #define     AnsiToOemA CharToOemA
02907 #define     AnsiToOemW CharToOemW
02908 #define     AnsiToOem WINELIB_NAME_AW(AnsiToOem)
02909 #define     AnsiToOemBuffA CharToOemBuffA
02910 #define     AnsiToOemBuffW CharToOemBuffW
02911 #define     AnsiToOemBuff WINELIB_NAME_AW(AnsiToOemBuff)
02912 /* NOTE: This is SYSTEM.3, not USER.182, which is also named KillSystemTimer */
02913 WORD        WINAPI SYSTEM_KillSystemTimer( WORD );
02914 
02915 /* Extra functions that don't exist in the Windows API */
02916 
02917 HPEN      WINAPI GetSysColorPen(INT);
02918 INT       WINAPI LoadMessageA(HMODULE,UINT,WORD,LPSTR,INT);
02919 INT       WINAPI LoadMessageW(HMODULE,UINT,WORD,LPWSTR,INT);
02920 
02921 VOID        WINAPI ScreenSwitchEnable16(WORD);
02922 
02923 #define WC_DIALOG    (LPSTR)((DWORD)((WORD)( 0x8002)))
02924 
02925 #ifdef __cplusplus
02926 }
02927 #endif
02928 
02929 #endif /* _WINUSER_ */

Generated on Tue Dec 20 10:14:23 2005 for vlc-0.8.4a by  doxygen 1.4.2