winuser.h
上传用户:kjfoods
上传日期:2020-07-06
资源大小:29949k
文件大小:85k
源码类别:

midi

开发平台:

Unix_Linux

  1. #ifndef _WINUSER_
  2. #define _WINUSER_
  3. #ifndef RC_INVOKED
  4. #include <stdarg.h>
  5. #endif
  6. #ifdef __cplusplus
  7. extern "C" {
  8. #endif
  9. #include "pshpack1.h"
  10. /* flags for HIGHCONTRAST dwFlags field */
  11. #define HCF_HIGHCONTRASTON  0x00000001
  12. #define HCF_AVAILABLE       0x00000002
  13. #define HCF_HOTKEYACTIVE    0x00000004
  14. #define HCF_CONFIRMHOTKEY   0x00000008
  15. #define HCF_HOTKEYSOUND     0x00000010
  16. #define HCF_INDICATOR       0x00000020
  17. #define HCF_HOTKEYAVAILABLE 0x00000040
  18. typedef struct tagHIGHCONTRASTA
  19. {
  20.     UINT  cbSize;
  21.     DWORD   dwFlags;
  22.     LPSTR   lpszDefaultScheme;
  23. } HIGHCONTRASTA, *LPHIGHCONTRASTA;
  24. typedef struct tagHIGHCONTRASTW
  25. {
  26.     UINT  cbSize;
  27.     DWORD   dwFlags;
  28.     LPWSTR  lpszDefaultScheme;
  29. } HIGHCONTRASTW, *LPHIGHCONTRASTW;
  30. DECL_WINELIB_TYPE_AW(HIGHCONTRAST)
  31. DECL_WINELIB_TYPE_AW(LPHIGHCONTRAST)
  32. typedef struct
  33. {
  34.     UINT  message;
  35.     UINT  paramL;
  36.     UINT  paramH;
  37.     DWORD   time;
  38.     HWND  hwnd;
  39. } EVENTMSG, *LPEVENTMSG;
  40.     /* Mouse hook structure */
  41. typedef struct
  42. {
  43.     POINT pt;
  44.     HWND  hwnd;
  45.     UINT  wHitTestCode;
  46.     DWORD   dwExtraInfo;
  47. } MOUSEHOOKSTRUCT, *PMOUSEHOOKSTRUCT, *LPMOUSEHOOKSTRUCT;
  48.     /* Hardware hook structure */
  49. typedef struct
  50. {
  51.     HWND    hWnd;
  52.     UINT    wMessage;
  53.     WPARAM  wParam;
  54.     LPARAM    lParam;
  55. } HARDWAREHOOKSTRUCT, *LPHARDWAREHOOKSTRUCT;
  56.   /* Debug hook structure */
  57. typedef struct
  58. {
  59.     DWORD       idThread;
  60.     DWORD       idThreadInstaller;
  61.     LPARAM      lParam;
  62.     WPARAM    wParam;
  63.     INT       code;
  64. } DEBUGHOOKINFO, *LPDEBUGHOOKINFO;
  65. #define HKL_PREV   0
  66. #define HKL_NEXT   1
  67. #define KLF_ACTIVATE       0x00000001
  68. #define KLF_SUBSTITUTE_OK  0x00000002
  69. #define KLF_UNLOADPREVIOUS 0x00000004
  70. #define KLF_REORDER        0x00000008
  71. #define KLF_REPLACELANG    0x00000010
  72. #define KLF_NOTELLSHELL    0x00000080
  73. #define KL_NAMELENGTH      9
  74.   /***** Dialogs *****/
  75. #ifdef FSHIFT
  76. /* Gcc on Solaris has a version of this that we don't care about.  */
  77. #undef FSHIFT
  78. #endif
  79. #define FVIRTKEY TRUE          /* Assumed to be == TRUE */
  80. #define FNOINVERT 0x02
  81. #define FSHIFT 0x04
  82. #define FCONTROL 0x08
  83. #define FALT 0x10
  84. typedef struct tagANIMATIONINFO
  85. {
  86.        UINT          cbSize;
  87.        INT           iMinAnimate;
  88. } ANIMATIONINFO, *LPANIMATIONINFO;
  89. typedef struct tagNMHDR
  90. {
  91.     HWND  hwndFrom;
  92.     UINT  idFrom;
  93.     UINT  code;
  94. } NMHDR, *LPNMHDR;
  95. typedef struct
  96. {
  97. UINT cbSize;
  98. INT iTabLength;
  99. INT iLeftMargin;
  100. INT iRightMargin;
  101. UINT uiLengthDrawn;
  102. } DRAWTEXTPARAMS,*LPDRAWTEXTPARAMS;
  103. #define WM_USER             0x0400
  104. #define DT_EDITCONTROL      0x00002000
  105. #define DT_PATH_ELLIPSIS    0x00004000
  106. #define DT_END_ELLIPSIS     0x00008000
  107. #define DT_MODIFYSTRING     0x00010000
  108. #define DT_RTLREADING       0x00020000
  109. #define DT_WORD_ELLIPSIS    0x00040000
  110. typedef struct
  111. {
  112.    LPARAM   lParam;
  113.    WPARAM16 wParam;
  114.    UINT16   message;
  115.    HWND16   hwnd;
  116. } CWPSTRUCT16, *LPCWPSTRUCT16;
  117. typedef struct
  118. {
  119.   LPARAM        lParam;
  120.   WPARAM      wParam;
  121.   UINT        message;
  122.   HWND        hwnd;
  123. } CWPSTRUCT, *LPCWPSTRUCT;
  124. typedef struct
  125. {
  126.   LRESULT       lResult;
  127.   LPARAM        lParam;
  128.   WPARAM16      wParam;
  129.   DWORD         message;
  130.   HWND16        hwnd;
  131. } CWPRETSTRUCT16, *LPCWPRETSTRUCT16;
  132. typedef struct
  133. {
  134.   LRESULT       lResult;
  135.   LPARAM        lParam;
  136.   WPARAM      wParam;
  137.   DWORD         message;
  138.   HWND        hwnd;
  139. } CWPRETSTRUCT, *LPCWPRETSTRUCT;
  140. typedef struct
  141. {
  142.     UINT   length;
  143.     UINT   flags;
  144.     UINT   showCmd;
  145.     POINT  ptMinPosition WINE_PACKED;
  146.     POINT  ptMaxPosition WINE_PACKED;
  147.     RECT   rcNormalPosition WINE_PACKED;
  148. } WINDOWPLACEMENT, *LPWINDOWPLACEMENT;
  149.   /* WINDOWPLACEMENT flags */
  150. #define WPF_SETMINPOSITION      0x0001
  151. #define WPF_RESTORETOMAXIMIZED  0x0002
  152. /***** Dialogs *****/
  153.   /* cbWndExtra bytes for dialog class */
  154. #define DLGWINDOWEXTRA      30
  155. /* Button control styles */
  156. #define BS_PUSHBUTTON          0x00000000L
  157. #define BS_DEFPUSHBUTTON       0x00000001L
  158. #define BS_CHECKBOX            0x00000002L
  159. #define BS_AUTOCHECKBOX        0x00000003L
  160. #define BS_RADIOBUTTON         0x00000004L
  161. #define BS_3STATE              0x00000005L
  162. #define BS_AUTO3STATE          0x00000006L
  163. #define BS_GROUPBOX            0x00000007L
  164. #define BS_USERBUTTON          0x00000008L
  165. #define BS_AUTORADIOBUTTON     0x00000009L
  166. #define BS_OWNERDRAW           0x0000000BL
  167. #define BS_LEFTTEXT            0x00000020L
  168. #define BS_TEXT                0x00000000L
  169. #define BS_ICON                0x00000040L
  170. #define BS_BITMAP              0x00000080L
  171. #define BS_LEFT                0x00000100L
  172. #define BS_RIGHT               0x00000200L
  173. #define BS_CENTER              0x00000300L
  174. #define BS_TOP                 0x00000400L
  175. #define BS_BOTTOM              0x00000800L
  176. #define BS_VCENTER             0x00000C00L
  177. #define BS_PUSHLIKE            0x00001000L
  178. #define BS_MULTILINE           0x00002000L
  179. #define BS_NOTIFY              0x00004000L
  180. #define BS_FLAT                0x00008000L
  181.   /* Dialog styles */
  182. #define DS_ABSALIGN 0x0001
  183. #define DS_SYSMODAL 0x0002
  184. #define DS_3DLOOK 0x0004 /* win95 */
  185. #define DS_FIXEDSYS 0x0008 /* win95 */
  186. #define DS_NOFAILCREATE 0x0010 /* win95 */
  187. #define DS_LOCALEDIT 0x0020
  188. #define DS_SETFONT 0x0040
  189. #define DS_MODALFRAME 0x0080
  190. #define DS_NOIDLEMSG 0x0100
  191. #define DS_SETFOREGROUND 0x0200 /* win95 */
  192. #define DS_CONTROL 0x0400 /* win95 */
  193. #define DS_CENTER 0x0800 /* win95 */
  194. #define DS_CENTERMOUSE 0x1000 /* win95 */
  195. #define DS_CONTEXTHELP 0x2000 /* win95 */
  196.   /* Dialog messages */
  197. #define DM_GETDEFID         (WM_USER+0)
  198. #define DM_SETDEFID         (WM_USER+1)
  199. #define DC_HASDEFID         0x534b
  200. /* Owner draw control types */
  201. #define ODT_MENU        1
  202. #define ODT_LISTBOX     2
  203. #define ODT_COMBOBOX    3
  204. #define ODT_BUTTON      4
  205. #define ODT_STATIC      5
  206. /* Owner draw actions */
  207. #define ODA_DRAWENTIRE  0x0001
  208. #define ODA_SELECT      0x0002
  209. #define ODA_FOCUS       0x0004
  210. /* Owner draw state */
  211. #define ODS_SELECTED    0x0001
  212. #define ODS_GRAYED      0x0002
  213. #define ODS_DISABLED    0x0004
  214. #define ODS_CHECKED     0x0008
  215. #define ODS_FOCUS       0x0010
  216. #define ODS_COMBOBOXEDIT 0x1000
  217. #define ODS_HOTLIGHT    0x0040
  218. #define ODS_INACTIVE    0x0080
  219. /* Edit control styles */
  220. #define ES_LEFT         0x00000000
  221. #define ES_CENTER       0x00000001
  222. #define ES_RIGHT        0x00000002
  223. #define ES_MULTILINE    0x00000004
  224. #define ES_UPPERCASE    0x00000008
  225. #define ES_LOWERCASE    0x00000010
  226. #define ES_PASSWORD     0x00000020
  227. #define ES_AUTOVSCROLL  0x00000040
  228. #define ES_AUTOHSCROLL  0x00000080
  229. #define ES_NOHIDESEL    0x00000100
  230. #define ES_OEMCONVERT   0x00000400
  231. #define ES_READONLY     0x00000800
  232. #define ES_WANTRETURN   0x00001000
  233. #define ES_NUMBER       0x00002000
  234. /* OEM Resource Ordinal Numbers */
  235. #define OBM_CLOSED          32731
  236. #define OBM_RADIOCHECK      32732
  237. #define OBM_TRTYPE          32733
  238. #define OBM_LFARROWI        32734
  239. #define OBM_RGARROWI        32735
  240. #define OBM_DNARROWI        32736
  241. #define OBM_UPARROWI        32737
  242. #define OBM_COMBO           32738
  243. #define OBM_MNARROW         32739
  244. #define OBM_LFARROWD        32740
  245. #define OBM_RGARROWD        32741
  246. #define OBM_DNARROWD        32742
  247. #define OBM_UPARROWD        32743
  248. #define OBM_RESTORED        32744
  249. #define OBM_ZOOMD           32745
  250. #define OBM_REDUCED         32746
  251. #define OBM_RESTORE         32747
  252. #define OBM_ZOOM            32748
  253. #define OBM_REDUCE          32749
  254. #define OBM_LFARROW         32750
  255. #define OBM_RGARROW         32751
  256. #define OBM_DNARROW         32752
  257. #define OBM_UPARROW         32753
  258. #define OBM_CLOSE           32754
  259. #define OBM_OLD_RESTORE     32755
  260. #define OBM_OLD_ZOOM        32756
  261. #define OBM_OLD_REDUCE      32757
  262. #define OBM_BTNCORNERS      32758
  263. #define OBM_CHECKBOXES      32759
  264. #define OBM_CHECK           32760
  265. #define OBM_BTSIZE          32761
  266. #define OBM_OLD_LFARROW     32762
  267. #define OBM_OLD_RGARROW     32763
  268. #define OBM_OLD_DNARROW     32764
  269. #define OBM_OLD_UPARROW     32765
  270. #define OBM_SIZE            32766
  271. #define OBM_OLD_CLOSE       32767
  272. #define OCR_BUMMER     100
  273. #define OCR_DRAGOBJECT     101
  274. #define OCR_NORMAL          32512
  275. #define OCR_IBEAM           32513
  276. #define OCR_WAIT            32514
  277. #define OCR_CROSS           32515
  278. #define OCR_UP              32516
  279. #define OCR_SIZE            32640
  280. #define OCR_ICON            32641
  281. #define OCR_SIZENWSE        32642
  282. #define OCR_SIZENESW        32643
  283. #define OCR_SIZEWE          32644
  284. #define OCR_SIZENS          32645
  285. #define OCR_SIZEALL         32646
  286. #define OCR_ICOCUR          32647
  287. #define OCR_NO              32648
  288. #define OCR_APPSTARTING     32650
  289. #define OCR_HELP            32651  /* only defined in wine */
  290. #define OIC_SAMPLE          32512
  291. #define OIC_HAND            32513
  292. #define OIC_QUES            32514
  293. #define OIC_BANG            32515
  294. #define OIC_NOTE            32516
  295. #define OIC_PORTRAIT        32517
  296. #define OIC_LANDSCAPE       32518
  297. #define OIC_WINEICON        32519
  298. #define OIC_FOLDER          32520
  299. #define OIC_FOLDER2         32521
  300. #define OIC_FLOPPY          32522
  301. #define OIC_CDROM           32523
  302. #define OIC_HDISK           32524
  303. #define OIC_NETWORK         32525
  304. #define COLOR_SCROLLBAR     0
  305. #define COLOR_BACKGROUND     1
  306. #define COLOR_ACTIVECAPTION     2
  307. #define COLOR_INACTIVECAPTION     3
  308. #define COLOR_MENU     4
  309. #define COLOR_WINDOW     5
  310. #define COLOR_WINDOWFRAME     6
  311. #define COLOR_MENUTEXT     7
  312. #define COLOR_WINDOWTEXT     8
  313. #define COLOR_CAPTIONTEXT       9
  314. #define COLOR_ACTIVEBORDER    10
  315. #define COLOR_INACTIVEBORDER    11
  316. #define COLOR_APPWORKSPACE    12
  317. #define COLOR_HIGHLIGHT    13
  318. #define COLOR_HIGHLIGHTTEXT    14
  319. #define COLOR_BTNFACE              15
  320. #define COLOR_BTNSHADOW            16
  321. #define COLOR_GRAYTEXT             17
  322. #define COLOR_BTNTEXT    18
  323. #define COLOR_INACTIVECAPTIONTEXT  19
  324. #define COLOR_BTNHIGHLIGHT         20
  325. /* win95 colors */
  326. #define COLOR_3DDKSHADOW           21
  327. #define COLOR_3DLIGHT              22
  328. #define COLOR_INFOTEXT             23
  329. #define COLOR_INFOBK               24
  330. #define COLOR_DESKTOP              COLOR_BACKGROUND
  331. #define COLOR_3DFACE               COLOR_BTNFACE
  332. #define COLOR_3DSHADOW             COLOR_BTNSHADOW
  333. #define COLOR_3DHIGHLIGHT          COLOR_BTNHIGHLIGHT
  334. #define COLOR_3DHILIGHT            COLOR_BTNHIGHLIGHT
  335. #define COLOR_BTNHILIGHT           COLOR_BTNHIGHLIGHT
  336. /* win98 colors */
  337. #define COLOR_ALTERNATEBTNFACE         25  /* undocumented, constant's name unknown */
  338. #define COLOR_HOTLIGHT                 26
  339. #define COLOR_GRADIENTACTIVECAPTION    27
  340. #define COLOR_GRADIENTINACTIVECAPTION  28
  341.   /* WM_CTLCOLOR values */
  342. #define CTLCOLOR_MSGBOX             0
  343. #define CTLCOLOR_EDIT               1
  344. #define CTLCOLOR_LISTBOX            2
  345. #define CTLCOLOR_BTN                3
  346. #define CTLCOLOR_DLG                4
  347. #define CTLCOLOR_SCROLLBAR          5
  348. #define CTLCOLOR_STATIC             6
  349. /* Edit control messages */
  350. #define EM_GETSEL                0x00b0
  351. #define EM_SETSEL                0x00b1
  352. #define EM_GETRECT               0x00b2
  353. #define EM_SETRECT               0x00b3
  354. #define EM_SETRECTNP             0x00b4
  355. #define EM_SCROLL                0x00b5
  356. #define EM_LINESCROLL            0x00b6
  357. #define EM_SCROLLCARET           0x00b7
  358. #define EM_GETMODIFY             0x00b8
  359. #define EM_SETMODIFY             0x00b9
  360. #define EM_GETLINECOUNT          0x00ba
  361. #define EM_LINEINDEX             0x00bb
  362. #define EM_SETHANDLE             0x00bc
  363. #define EM_GETHANDLE             0x00bd
  364. #define EM_GETTHUMB              0x00be
  365. /* FIXME : missing from specs 0x00bf and 0x00c0 */
  366. #define EM_LINELENGTH            0x00c1
  367. #define EM_REPLACESEL            0x00c2
  368. /* FIXME : missing from specs 0x00c3 */
  369. #define EM_GETLINE               0x00c4
  370. #define EM_LIMITTEXT             0x00c5
  371. #define EM_CANUNDO               0x00c6
  372. #define EM_UNDO                  0x00c7
  373. #define EM_FMTLINES              0x00c8
  374. #define EM_LINEFROMCHAR          0x00c9
  375. /* FIXME : missing from specs 0x00ca */
  376. #define EM_SETTABSTOPS           0x00cb
  377. #define EM_SETPASSWORDCHAR       0x00cc
  378. #define EM_EMPTYUNDOBUFFER       0x00cd
  379. #define EM_GETFIRSTVISIBLELINE   0x00ce
  380. #define EM_SETREADONLY           0x00cf
  381. #define EM_SETWORDBREAKPROC      0x00d0
  382. #define EM_GETWORDBREAKPROC      0x00d1
  383. #define EM_GETPASSWORDCHAR       0x00d2
  384. #define EM_SETMARGINS            0x00d3
  385. #define EM_GETMARGINS            0x00d4
  386. #define EM_GETLIMITTEXT          0x00d5
  387. #define EM_POSFROMCHAR           0x00d6
  388. #define EM_CHARFROMPOS           0x00d7
  389. /* a name change since win95 */
  390. #define EM_SETLIMITTEXT          EM_LIMITTEXT
  391. /* EDITWORDBREAKPROC code values */
  392. #define WB_LEFT         0
  393. #define WB_RIGHT        1
  394. #define WB_ISDELIMITER  2
  395. /* Edit control notification codes */
  396. #define EN_SETFOCUS     0x0100
  397. #define EN_KILLFOCUS    0x0200
  398. #define EN_CHANGE       0x0300
  399. #define EN_UPDATE       0x0400
  400. #define EN_ERRSPACE     0x0500
  401. #define EN_MAXTEXT      0x0501
  402. #define EN_HSCROLL      0x0601
  403. #define EN_VSCROLL      0x0602
  404. /* New since win95 : EM_SETMARGIN parameters */
  405. #define EC_LEFTMARGIN 0x0001
  406. #define EC_RIGHTMARGIN 0x0002
  407. #define EC_USEFONTINFO 0xffff
  408. /* Messages */
  409.   /* WM_GETDLGCODE values */
  410. #define WM_NULL                 0x0000
  411. #define WM_CREATE               0x0001
  412. #define WM_DESTROY              0x0002
  413. #define WM_MOVE                 0x0003
  414. #define WM_SIZEWAIT             0x0004
  415. #define WM_SIZE                 0x0005
  416. #define WM_ACTIVATE             0x0006
  417. #define WM_SETFOCUS             0x0007
  418. #define WM_KILLFOCUS            0x0008
  419. #define WM_SETVISIBLE           0x0009
  420. #define WM_ENABLE               0x000a
  421. #define WM_SETREDRAW            0x000b
  422. #define WM_SETTEXT              0x000c
  423. #define WM_GETTEXT              0x000d
  424. #define WM_GETTEXTLENGTH        0x000e
  425. #define WM_PAINT                0x000f
  426. #define WM_CLOSE                0x0010
  427. #define WM_QUERYENDSESSION      0x0011
  428. #define WM_QUIT                 0x0012
  429. #define WM_QUERYOPEN            0x0013
  430. #define WM_ERASEBKGND           0x0014
  431. #define WM_SYSCOLORCHANGE       0x0015
  432. #define WM_ENDSESSION           0x0016
  433. #define WM_SYSTEMERROR          0x0017
  434. #define WM_SHOWWINDOW           0x0018
  435. #define WM_CTLCOLOR             0x0019
  436. #define WM_WININICHANGE         0x001a
  437. #define WM_SETTINGCHANGE        WM_WININICHANGE
  438. #define WM_DEVMODECHANGE        0x001b
  439. #define WM_ACTIVATEAPP          0x001c
  440. #define WM_FONTCHANGE           0x001d
  441. #define WM_TIMECHANGE           0x001e
  442. #define WM_CANCELMODE           0x001f
  443. #define WM_SETCURSOR            0x0020
  444. #define WM_MOUSEACTIVATE        0x0021
  445. #define WM_CHILDACTIVATE        0x0022
  446. #define WM_QUEUESYNC            0x0023
  447. #define WM_GETMINMAXINFO        0x0024
  448. #define WM_PAINTICON            0x0026
  449. #define WM_ICONERASEBKGND       0x0027
  450. #define WM_NEXTDLGCTL           0x0028
  451. #define WM_ALTTABACTIVE         0x0029
  452. #define WM_SPOOLERSTATUS        0x002a
  453. #define WM_DRAWITEM             0x002b
  454. #define WM_MEASUREITEM          0x002c
  455. #define WM_DELETEITEM           0x002d
  456. #define WM_VKEYTOITEM           0x002e
  457. #define WM_CHARTOITEM           0x002f
  458. #define WM_SETFONT              0x0030
  459. #define WM_GETFONT              0x0031
  460. #define WM_SETHOTKEY            0x0032
  461. #define WM_GETHOTKEY            0x0033
  462. #define WM_FILESYSCHANGE        0x0034
  463. #define WM_ISACTIVEICON         0x0035
  464. #define WM_QUERYPARKICON        0x0036
  465. #define WM_QUERYDRAGICON        0x0037
  466. #define WM_QUERYSAVESTATE       0x0038
  467. #define WM_COMPAREITEM          0x0039
  468. #define WM_TESTING              0x003a
  469. #define WM_OTHERWINDOWCREATED 0x003c
  470. #define WM_OTHERWINDOWDESTROYED 0x003d
  471. #define WM_ACTIVATESHELLWINDOW 0x003e
  472. #define WM_COMPACTING 0x0041
  473. #define WM_COMMNOTIFY 0x0044
  474. #define WM_WINDOWPOSCHANGING  0x0046
  475. #define WM_WINDOWPOSCHANGED  0x0047
  476. #define WM_POWER 0x0048
  477.   /* Win32 4.0 messages */
  478. #define WM_COPYDATA 0x004a
  479. #define WM_CANCELJOURNAL 0x004b
  480. #define WM_NOTIFY 0x004e
  481. #define WM_HELP 0x0053
  482. #define WM_NOTIFYFORMAT 0x0055
  483. #define WM_CONTEXTMENU 0x007b
  484. #define WM_STYLECHANGING  0x007c
  485. #define WM_STYLECHANGED 0x007d
  486. #define WM_DISPLAYCHANGE        0x007e
  487. #define WM_GETICON 0x007f
  488. #define WM_SETICON 0x0080
  489.   /* Non-client system messages */
  490. #define WM_NCCREATE         0x0081
  491. #define WM_NCDESTROY        0x0082
  492. #define WM_NCCALCSIZE       0x0083
  493. #define WM_NCHITTEST        0x0084
  494. #define WM_NCPAINT          0x0085
  495. #define WM_NCACTIVATE       0x0086
  496. #define WM_GETDLGCODE     0x0087
  497. #define WM_SYNCPAINT     0x0088
  498. #define WM_SYNCTASK     0x0089
  499.   /* Non-client mouse messages */
  500. #define WM_NCMOUSEMOVE      0x00a0
  501. #define WM_NCLBUTTONDOWN    0x00a1
  502. #define WM_NCLBUTTONUP      0x00a2
  503. #define WM_NCLBUTTONDBLCLK  0x00a3
  504. #define WM_NCRBUTTONDOWN    0x00a4
  505. #define WM_NCRBUTTONUP      0x00a5
  506. #define WM_NCRBUTTONDBLCLK  0x00a6
  507. #define WM_NCMBUTTONDOWN    0x00a7
  508. #define WM_NCMBUTTONUP      0x00a8
  509. #define WM_NCMBUTTONDBLCLK  0x00a9
  510.   /* Keyboard messages */
  511. #define WM_KEYDOWN          0x0100
  512. #define WM_KEYUP            0x0101
  513. #define WM_CHAR             0x0102
  514. #define WM_DEADCHAR         0x0103
  515. #define WM_SYSKEYDOWN       0x0104
  516. #define WM_SYSKEYUP         0x0105
  517. #define WM_SYSCHAR          0x0106
  518. #define WM_SYSDEADCHAR      0x0107
  519. #define WM_KEYFIRST         WM_KEYDOWN
  520. #define WM_KEYLAST          0x0108
  521. /* Win32 4.0 messages for IME */
  522. #define WM_IME_STARTCOMPOSITION     0x010d
  523. #define WM_IME_ENDCOMPOSITION       0x010e
  524. #define WM_IME_COMPOSITION          0x010f
  525. #define WM_IME_KEYLAST              0x010f
  526. #define WM_INITDIALOG       0x0110 
  527. #define WM_COMMAND          0x0111
  528. #define WM_SYSCOMMAND       0x0112
  529. #define WM_TIMER     0x0113
  530. #define WM_SYSTIMER     0x0118
  531.   /* scroll messages */
  532. #define WM_HSCROLL          0x0114
  533. #define WM_VSCROLL          0x0115
  534. /* Menu messages */
  535. #define WM_INITMENU         0x0116
  536. #define WM_INITMENUPOPUP    0x0117
  537. #define WM_MENUSELECT       0x011F
  538. #define WM_MENUCHAR         0x0120
  539. #define WM_ENTERIDLE        0x0121
  540. #define WM_LBTRACKPOINT     0x0131
  541.   /* Win32 CTLCOLOR messages */
  542. #define WM_CTLCOLORMSGBOX    0x0132
  543. #define WM_CTLCOLOREDIT      0x0133
  544. #define WM_CTLCOLORLISTBOX   0x0134
  545. #define WM_CTLCOLORBTN       0x0135
  546. #define WM_CTLCOLORDLG       0x0136
  547. #define WM_CTLCOLORSCROLLBAR 0x0137
  548. #define WM_CTLCOLORSTATIC    0x0138
  549.   /* Mouse messages */
  550. #define WM_MOUSEMOVE     0x0200
  551. #define WM_LBUTTONDOWN     0x0201
  552. #define WM_LBUTTONUP     0x0202
  553. #define WM_LBUTTONDBLCLK    0x0203
  554. #define WM_RBUTTONDOWN     0x0204
  555. #define WM_RBUTTONUP     0x0205
  556. #define WM_RBUTTONDBLCLK    0x0206
  557. #define WM_MBUTTONDOWN     0x0207
  558. #define WM_MBUTTONUP     0x0208
  559. #define WM_MBUTTONDBLCLK    0x0209
  560. #define WM_MOUSEWHEEL       0x020A
  561. #define WM_MOUSEFIRST     WM_MOUSEMOVE
  562. #define WM_MOUSELAST     WM_MOUSEWHEEL
  563.  
  564. #define WHEEL_DELTA      120
  565. #define WHEEL_PAGESCROLL  (UINT_MAX)
  566. #define WM_PARENTNOTIFY     0x0210
  567. #define WM_ENTERMENULOOP    0x0211
  568. #define WM_EXITMENULOOP     0x0212
  569. #define WM_NEXTMENU     0x0213
  570.   /* Win32 4.0 messages */
  571. #define WM_SIZING     0x0214
  572. #define WM_CAPTURECHANGED   0x0215
  573. #define WM_MOVING     0x0216
  574.   /* MDI messages */
  575. #define WM_MDICREATE     0x0220
  576. #define WM_MDIDESTROY     0x0221
  577. #define WM_MDIACTIVATE     0x0222
  578. #define WM_MDIRESTORE     0x0223
  579. #define WM_MDINEXT     0x0224
  580. #define WM_MDIMAXIMIZE     0x0225
  581. #define WM_MDITILE     0x0226
  582. #define WM_MDICASCADE     0x0227
  583. #define WM_MDIICONARRANGE   0x0228
  584. #define WM_MDIGETACTIVE     0x0229
  585. #define WM_MDIREFRESHMENU   0x0234
  586.   /* D&D messages */
  587. #define WM_DROPOBJECT     0x022A
  588. #define WM_QUERYDROPOBJECT  0x022B
  589. #define WM_BEGINDRAG     0x022C
  590. #define WM_DRAGLOOP     0x022D
  591. #define WM_DRAGSELECT     0x022E
  592. #define WM_DRAGMOVE     0x022F
  593. #define WM_MDISETMENU     0x0230
  594. #define WM_ENTERSIZEMOVE    0x0231
  595. #define WM_EXITSIZEMOVE     0x0232
  596. #define WM_DROPFILES     0x0233
  597. /* Win32 4.0 messages for IME */
  598. #define WM_IME_SETCONTEXT           0x0281
  599. #define WM_IME_NOTIFY               0x0282
  600. #define WM_IME_CONTROL              0x0283
  601. #define WM_IME_COMPOSITIONFULL      0x0284
  602. #define WM_IME_SELECT               0x0285
  603. #define WM_IME_CHAR                 0x0286
  604. /* Win32 5.0 messages for IME */
  605. #define WM_IME_REQUEST              0x0288
  606. /* Win32 4.0 messages for IME */
  607. #define WM_IME_KEYDOWN              0x0290
  608. #define WM_IME_KEYUP                0x0291
  609. /* Clipboard command messages */
  610. #define WM_CUT               0x0300
  611. #define WM_COPY              0x0301
  612. #define WM_PASTE             0x0302
  613. #define WM_CLEAR             0x0303
  614. #define WM_UNDO              0x0304
  615. /* Clipboard owner messages */
  616. #define WM_RENDERFORMAT      0x0305
  617. #define WM_RENDERALLFORMATS  0x0306
  618. #define WM_DESTROYCLIPBOARD  0x0307
  619. /* Clipboard viewer messages */
  620. #define WM_DRAWCLIPBOARD     0x0308
  621. #define WM_PAINTCLIPBOARD    0x0309
  622. #define WM_VSCROLLCLIPBOARD  0x030A
  623. #define WM_SIZECLIPBOARD     0x030B
  624. #define WM_ASKCBFORMATNAME   0x030C
  625. #define WM_CHANGECBCHAIN     0x030D
  626. #define WM_HSCROLLCLIPBOARD  0x030E
  627. #define WM_QUERYNEWPALETTE   0x030F
  628. #define WM_PALETTEISCHANGING 0x0310
  629. #define WM_PALETTECHANGED    0x0311
  630. #define WM_HOTKEY      0x0312
  631. #define WM_PRINT             0x0317
  632. #define WM_PRINTCLIENT       0x0318
  633.   /* FIXME: This does not belong to any libwine interface header */
  634.   /* MFC messages [360-38f] */
  635. #define WM_QUERYAFXWNDPROC  0x0360
  636. #define WM_SIZEPARENT       0x0361
  637. #define WM_SETMESSAGESTRING 0x0362
  638. #define WM_IDLEUPDATECMDUI  0x0363 
  639. #define WM_INITIALUPDATE    0x0364
  640. #define WM_COMMANDHELP      0x0365
  641. #define WM_HELPHITTEST      0x0366
  642. #define WM_EXITHELPMODE     0x0367
  643. #define WM_RECALCPARENT     0x0368
  644. #define WM_SIZECHILD        0x0369
  645. #define WM_KICKIDLE         0x036A 
  646. #define WM_QUERYCENTERWND   0x036B
  647. #define WM_DISABLEMODAL     0x036C
  648. #define WM_FLOATSTATUS      0x036D 
  649. #define WM_ACTIVATETOPLEVEL 0x036E 
  650. #define WM_QUERY3DCONTROLS  0x036F 
  651. #define WM_SOCKET_NOTIFY    0x0373
  652. #define WM_SOCKET_DEAD      0x0374
  653. #define WM_POPMESSAGESTRING 0x0375
  654. #define WM_OCC_LOADFROMSTREAM           0x0376
  655. #define WM_OCC_LOADFROMSTORAGE          0x0377
  656. #define WM_OCC_INITNEW                  0x0378
  657. #define WM_OCC_LOADFROMSTREAM_EX        0x037A
  658. #define WM_OCC_LOADFROMSTORAGE_EX       0x037B
  659. #define WM_QUEUE_SENTINEL   0x0379
  660. #define WM_PENWINFIRST      0x0380
  661. #define WM_PENWINLAST       0x038F
  662. /* end of MFC messages */
  663. /* FIXME: The following two lines do not belong to any libwine interface header */
  664. #define WM_COALESCE_FIRST    0x0390
  665. #define WM_COALESCE_LAST     0x039F
  666. #define WM_APP               0x8000
  667. #define DLGC_WANTARROWS      0x0001
  668. #define DLGC_WANTTAB         0x0002
  669. #define DLGC_WANTALLKEYS     0x0004
  670. #define DLGC_WANTMESSAGE     0x0004
  671. #define DLGC_HASSETSEL       0x0008
  672. #define DLGC_DEFPUSHBUTTON   0x0010
  673. #define DLGC_UNDEFPUSHBUTTON 0x0020
  674. #define DLGC_RADIOBUTTON     0x0040
  675. #define DLGC_WANTCHARS       0x0080
  676. #define DLGC_STATIC          0x0100
  677. #define DLGC_BUTTON          0x2000
  678. /* Standard dialog button IDs */
  679. #define IDOK                1
  680. #define IDCANCEL            2
  681. #define IDABORT             3
  682. #define IDRETRY             4
  683. #define IDIGNORE            5
  684. #define IDYES               6
  685. #define IDNO                7
  686. #define IDCLOSE             8
  687. #define IDHELP              9      
  688. /****** Window classes ******/
  689. typedef struct tagCREATESTRUCTA
  690. {
  691.     LPVOID      lpCreateParams;
  692.     HINSTANCE hInstance;
  693.     HMENU     hMenu;
  694.     HWND      hwndParent;
  695.     INT       cy;
  696.     INT       cx;
  697.     INT       y;
  698.     INT       x;
  699.     LONG        style;
  700.     LPCSTR      lpszName;
  701.     LPCSTR      lpszClass;
  702.     DWORD       dwExStyle;
  703. } CREATESTRUCTA, *LPCREATESTRUCTA;
  704. typedef struct
  705. {
  706.     LPVOID      lpCreateParams;
  707.     HINSTANCE hInstance;
  708.     HMENU     hMenu;
  709.     HWND      hwndParent;
  710.     INT       cy;
  711.     INT       cx;
  712.     INT       y;
  713.     INT       x;
  714.     LONG        style;
  715.     LPCWSTR     lpszName;
  716.     LPCWSTR     lpszClass;
  717.     DWORD       dwExStyle;
  718. } CREATESTRUCTW, *LPCREATESTRUCTW;
  719. DECL_WINELIB_TYPE_AW(CREATESTRUCT)
  720. DECL_WINELIB_TYPE_AW(LPCREATESTRUCT)
  721. typedef struct
  722. {
  723.     HDC   hdc;
  724.     WIN_BOOL  fErase;
  725.     RECT  rcPaint;
  726.     WIN_BOOL  fRestore;
  727.     WIN_BOOL  fIncUpdate;
  728.     BYTE    rgbReserved[32];
  729. } PAINTSTRUCT, *PPAINTSTRUCT, *LPPAINTSTRUCT;
  730. typedef struct 
  731. {
  732.     HMENU   hWindowMenu;
  733.     UINT    idFirstChild;
  734. } CLIENTCREATESTRUCT, *LPCLIENTCREATESTRUCT;
  735. typedef struct
  736. {
  737.     LPCSTR       szClass;
  738.     LPCSTR       szTitle;
  739.     HINSTANCE  hOwner;
  740.     INT        x;
  741.     INT        y;
  742.     INT        cx;
  743.     INT        cy;
  744.     DWORD        style;
  745.     LPARAM       lParam;
  746. } MDICREATESTRUCTA, *LPMDICREATESTRUCTA;
  747. typedef struct
  748. {
  749.     LPCWSTR      szClass;
  750.     LPCWSTR      szTitle;
  751.     HINSTANCE  hOwner;
  752.     INT        x;
  753.     INT        y;
  754.     INT        cx;
  755.     INT        cy;
  756.     DWORD        style;
  757.     LPARAM       lParam;
  758. } MDICREATESTRUCTW, *LPMDICREATESTRUCTW;
  759. DECL_WINELIB_TYPE_AW(MDICREATESTRUCT)
  760. DECL_WINELIB_TYPE_AW(LPMDICREATESTRUCT)
  761. #define MDITILE_VERTICAL     0x0000   
  762. #define MDITILE_HORIZONTAL   0x0001
  763. #define MDITILE_SKIPDISABLED 0x0002
  764. #define MDIS_ALLCHILDSTYLES  0x0001
  765. typedef struct {
  766.     DWORD   styleOld;
  767.     DWORD   styleNew;
  768. } STYLESTRUCT, *LPSTYLESTRUCT;
  769.   /* Offsets for GetWindowLong() and GetWindowWord() */
  770. #define GWL_USERDATA        (-21)
  771. #define GWL_EXSTYLE         (-20)
  772. #define GWL_STYLE           (-16)
  773. #define GWW_ID              (-12)
  774. #define GWL_ID              GWW_ID
  775. #define GWW_HWNDPARENT      (-8)
  776. #define GWL_HWNDPARENT      GWW_HWNDPARENT
  777. #define GWW_HINSTANCE       (-6)
  778. #define GWL_HINSTANCE       GWW_HINSTANCE
  779. #define GWL_WNDPROC         (-4)
  780. #define DWL_MSGRESULT     0
  781. #define DWL_DLGPROC     4
  782. #define DWL_USER     8
  783.   /* GetWindow() constants */
  784. #define GW_HWNDFIRST 0
  785. #define GW_HWNDLAST 1
  786. #define GW_HWNDNEXT 2
  787. #define GW_HWNDPREV 3
  788. #define GW_OWNER 4
  789. #define GW_CHILD 5
  790.   /* WM_GETMINMAXINFO struct */
  791. typedef struct
  792. {
  793.     POINT   ptReserved;
  794.     POINT   ptMaxSize;
  795.     POINT   ptMaxPosition;
  796.     POINT   ptMinTrackSize;
  797.     POINT   ptMaxTrackSize;
  798. } MINMAXINFO, *PMINMAXINFO, *LPMINMAXINFO;
  799.   /* RedrawWindow() flags */
  800. #define RDW_INVALIDATE       0x0001
  801. #define RDW_INTERNALPAINT    0x0002
  802. #define RDW_ERASE            0x0004
  803. #define RDW_VALIDATE         0x0008
  804. #define RDW_NOINTERNALPAINT  0x0010
  805. #define RDW_NOERASE          0x0020
  806. #define RDW_NOCHILDREN       0x0040
  807. #define RDW_ALLCHILDREN      0x0080
  808. #define RDW_UPDATENOW        0x0100
  809. #define RDW_ERASENOW         0x0200
  810. #define RDW_FRAME            0x0400
  811. #define RDW_NOFRAME          0x0800
  812. /* debug flags */
  813. #define DBGFILL_ALLOC  0xfd
  814. #define DBGFILL_FREE   0xfb
  815. #define DBGFILL_BUFFER 0xf9
  816. #define DBGFILL_STACK  0xf7
  817.   /* WM_WINDOWPOSCHANGING/CHANGED struct */
  818. typedef struct tagWINDOWPOS
  819. {
  820.     HWND  hwnd;
  821.     HWND  hwndInsertAfter;
  822.     INT   x;
  823.     INT   y;
  824.     INT   cx;
  825.     INT   cy;
  826.     UINT  flags;
  827. } WINDOWPOS, *PWINDOWPOS, *LPWINDOWPOS;
  828.   /* WM_MOUSEACTIVATE return values */
  829. #define MA_ACTIVATE             1
  830. #define MA_ACTIVATEANDEAT       2
  831. #define MA_NOACTIVATE           3
  832. #define MA_NOACTIVATEANDEAT     4
  833.   /* WM_ACTIVATE wParam values */
  834. #define WA_INACTIVE             0
  835. #define WA_ACTIVE               1
  836. #define WA_CLICKACTIVE          2
  837. /* WM_GETICON/WM_SETICON params values */
  838. #define ICON_SMALL              0
  839. #define ICON_BIG                1
  840.   /* WM_NCCALCSIZE parameter structure */
  841. typedef struct
  842. {
  843.     RECT       rgrc[3];
  844.     WINDOWPOS *lppos;
  845. } NCCALCSIZE_PARAMS, *LPNCCALCSIZE_PARAMS;
  846.   /* WM_NCCALCSIZE return flags */
  847. #define WVR_ALIGNTOP        0x0010
  848. #define WVR_ALIGNLEFT       0x0020
  849. #define WVR_ALIGNBOTTOM     0x0040
  850. #define WVR_ALIGNRIGHT      0x0080
  851. #define WVR_HREDRAW         0x0100
  852. #define WVR_VREDRAW         0x0200
  853. #define WVR_REDRAW          (WVR_HREDRAW | WVR_VREDRAW)
  854. #define WVR_VALIDRECTS      0x0400
  855.   /* WM_NCHITTEST return codes */
  856. #define HTERROR             (-2)
  857. #define HTTRANSPARENT       (-1)
  858. #define HTNOWHERE           0
  859. #define HTCLIENT            1
  860. #define HTCAPTION           2
  861. #define HTSYSMENU           3
  862. #define HTSIZE              4
  863. #define HTMENU              5
  864. #define HTHSCROLL           6
  865. #define HTVSCROLL           7
  866. #define HTMINBUTTON         8
  867. #define HTMAXBUTTON         9
  868. #define HTLEFT              10
  869. #define HTRIGHT             11
  870. #define HTTOP               12
  871. #define HTTOPLEFT           13
  872. #define HTTOPRIGHT          14
  873. #define HTBOTTOM            15
  874. #define HTBOTTOMLEFT        16
  875. #define HTBOTTOMRIGHT       17
  876. #define HTBORDER            18
  877. #define HTGROWBOX           HTSIZE
  878. #define HTREDUCE            HTMINBUTTON
  879. #define HTZOOM              HTMAXBUTTON
  880. #define HTOBJECT            19
  881. #define HTCLOSE             20
  882. #define HTHELP              21
  883. #define HTSIZEFIRST         HTLEFT
  884. #define HTSIZELAST          HTBOTTOMRIGHT
  885.   /* WM_SYSCOMMAND parameters */
  886. #ifdef SC_SIZE /* at least HP-UX: already defined in /usr/include/sys/signal.h */
  887. #undef SC_SIZE
  888. #endif
  889. #define SC_SIZE         0xf000
  890. #define SC_MOVE         0xf010
  891. #define SC_MINIMIZE     0xf020
  892. #define SC_MAXIMIZE     0xf030
  893. #define SC_NEXTWINDOW   0xf040
  894. #define SC_PREVWINDOW   0xf050
  895. #define SC_CLOSE        0xf060
  896. #define SC_VSCROLL      0xf070
  897. #define SC_HSCROLL      0xf080
  898. #define SC_MOUSEMENU    0xf090
  899. #define SC_KEYMENU      0xf100
  900. #define SC_ARRANGE      0xf110
  901. #define SC_RESTORE      0xf120
  902. #define SC_TASKLIST     0xf130
  903. #define SC_SCREENSAVE   0xf140
  904. #define SC_HOTKEY       0xf150
  905. #define CS_VREDRAW          0x0001
  906. #define CS_HREDRAW          0x0002
  907. #define CS_KEYCVTWINDOW     0x0004
  908. #define CS_DBLCLKS          0x0008
  909. #define CS_OWNDC            0x0020
  910. #define CS_CLASSDC          0x0040
  911. #define CS_PARENTDC         0x0080
  912. #define CS_NOKEYCVT         0x0100
  913. #define CS_NOCLOSE          0x0200
  914. #define CS_SAVEBITS         0x0800
  915. #define CS_BYTEALIGNCLIENT  0x1000
  916. #define CS_BYTEALIGNWINDOW  0x2000
  917. #define CS_GLOBALCLASS      0x4000
  918. #define CS_IME              0x00010000
  919. #define PRF_CHECKVISIBLE    0x00000001L
  920. #define PRF_NONCLIENT       0x00000002L
  921. #define PRF_CLIENT          0x00000004L
  922. #define PRF_ERASEBKGND      0x00000008L
  923. #define PRF_CHILDREN        0x00000010L
  924. #define PRF_OWNED           0x00000020L
  925.  
  926.   /* Offsets for GetClassLong() and GetClassWord() */
  927. #define GCL_MENUNAME        (-8)
  928. #define GCW_HBRBACKGROUND   (-10)
  929. #define GCL_HBRBACKGROUND   GCW_HBRBACKGROUND
  930. #define GCW_HCURSOR         (-12)
  931. #define GCL_HCURSOR         GCW_HCURSOR
  932. #define GCW_HICON           (-14)
  933. #define GCL_HICON           GCW_HICON
  934. #define GCW_HMODULE         (-16)
  935. #define GCL_HMODULE         GCW_HMODULE
  936. #define GCW_CBWNDEXTRA      (-18)
  937. #define GCL_CBWNDEXTRA      GCW_CBWNDEXTRA
  938. #define GCW_CBCLSEXTRA      (-20)
  939. #define GCL_CBCLSEXTRA      GCW_CBCLSEXTRA
  940. #define GCL_WNDPROC         (-24)
  941. #define GCW_STYLE           (-26)
  942. #define GCL_STYLE           GCW_STYLE
  943. #define GCW_ATOM            (-32)
  944. #define GCW_HICONSM         (-34)
  945. #define GCL_HICONSM         GCW_HICONSM
  946. /***** Window hooks *****/
  947.   /* Hook values */
  948. #define WH_MIN     (-1)
  949. #define WH_MSGFILTER     (-1)
  950. #define WH_JOURNALRECORD    0
  951. #define WH_JOURNALPLAYBACK  1
  952. #define WH_KEYBOARD     2
  953. #define WH_GETMESSAGE     3
  954. #define WH_CALLWNDPROC     4
  955. #define WH_CBT     5
  956. #define WH_SYSMSGFILTER     6
  957. #define WH_MOUSE     7
  958. #define WH_HARDWARE     8
  959. #define WH_DEBUG     9
  960. #define WH_SHELL            10
  961. #define WH_FOREGROUNDIDLE   11
  962. #define WH_CALLWNDPROCRET   12
  963. #define WH_MAX              12
  964. #define WH_MINHOOK          WH_MIN
  965. #define WH_MAXHOOK          WH_MAX
  966. #define WH_NB_HOOKS         (WH_MAXHOOK-WH_MINHOOK+1)
  967.   /* Hook action codes */
  968. #define HC_ACTION           0
  969. #define HC_GETNEXT          1
  970. #define HC_SKIP             2
  971. #define HC_NOREMOVE         3
  972. #define HC_NOREM            HC_NOREMOVE
  973. #define HC_SYSMODALON       4
  974. #define HC_SYSMODALOFF      5
  975.   /* CallMsgFilter() values */
  976. #define MSGF_DIALOGBOX      0
  977. #define MSGF_MESSAGEBOX     1
  978. #define MSGF_MENU           2
  979. #define MSGF_MOVE           3
  980. #define MSGF_SIZE           4
  981. #define MSGF_SCROLLBAR      5
  982. #define MSGF_NEXTWINDOW     6
  983. #define MSGF_MAINLOOP       8
  984. #define MSGF_USER        4096
  985. typedef struct
  986. {
  987.     UINT      style;
  988.     WNDPROC   lpfnWndProc;
  989.     INT       cbClsExtra;
  990.     INT       cbWndExtra;
  991.     HINSTANCE hInstance;
  992.     HICON     hIcon;
  993.     HCURSOR   hCursor;
  994.     HBRUSH    hbrBackground;
  995.     LPCSTR      lpszMenuName;
  996.     LPCSTR      lpszClassName;
  997. } WNDCLASSA, *LPWNDCLASSA;
  998. typedef struct
  999. {
  1000.     UINT      style;
  1001.     WNDPROC   lpfnWndProc;
  1002.     INT       cbClsExtra;
  1003.     INT       cbWndExtra;
  1004.     HINSTANCE hInstance;
  1005.     HICON     hIcon;
  1006.     HCURSOR   hCursor;
  1007.     HBRUSH    hbrBackground;
  1008.     LPCWSTR     lpszMenuName;
  1009.     LPCWSTR     lpszClassName;
  1010. } WNDCLASSW, *LPWNDCLASSW;
  1011. DECL_WINELIB_TYPE_AW(WNDCLASS)
  1012. DECL_WINELIB_TYPE_AW(LPWNDCLASS)
  1013. typedef struct {
  1014.     DWORD dwData;
  1015.     DWORD cbData;
  1016.     LPVOID lpData;
  1017. } COPYDATASTRUCT, *PCOPYDATASTRUCT, *LPCOPYDATASTRUCT;
  1018. typedef struct {
  1019.     HMENU hmenuIn;
  1020.     HMENU hmenuNext;
  1021.     HWND  hwndNext;
  1022. } MDINEXTMENU, *PMDINEXTMENU, *LPMDINEXTMENU;
  1023. /* WinHelp internal structure */
  1024. typedef struct {
  1025. WORD size;
  1026. WORD command;
  1027. LONG data;
  1028. LONG reserved;
  1029. WORD ofsFilename;
  1030. WORD ofsData;
  1031. } WINHELP,*LPWINHELP;
  1032. typedef struct
  1033. {
  1034.     UINT16  mkSize;
  1035.     BYTE    mkKeyList;
  1036.     BYTE    szKeyphrase[1];
  1037. } MULTIKEYHELP, *LPMULTIKEYHELP;
  1038. typedef struct {
  1039. WORD wStructSize;
  1040. WORD x;
  1041. WORD y;
  1042. WORD dx;
  1043. WORD dy;
  1044. WORD wMax;
  1045. char rgchMember[2];
  1046. } HELPWININFO, *LPHELPWININFO;
  1047. #define HELP_CONTEXT        0x0001
  1048. #define HELP_QUIT           0x0002
  1049. #define HELP_INDEX          0x0003
  1050. #define HELP_CONTENTS       0x0003
  1051. #define HELP_HELPONHELP     0x0004
  1052. #define HELP_SETINDEX       0x0005
  1053. #define HELP_SETCONTENTS    0x0005
  1054. #define HELP_CONTEXTPOPUP   0x0008
  1055. #define HELP_FORCEFILE      0x0009
  1056. #define HELP_KEY            0x0101
  1057. #define HELP_COMMAND        0x0102
  1058. #define HELP_PARTIALKEY     0x0105
  1059. #define HELP_MULTIKEY       0x0201
  1060. #define HELP_SETWINPOS      0x0203
  1061. #define HELP_CONTEXTMENU    0x000a
  1062. #define HELP_FINDER     0x000b
  1063. #define HELP_WM_HELP     0x000c
  1064. #define HELP_SETPOPUP_POS   0x000d
  1065. #define HELP_TCARD     0x8000
  1066. #define HELP_TCARD_DATA     0x0010
  1067. #define HELP_TCARD_OTHER_CALLER 0x0011
  1068.      /* ChangeDisplaySettings return codes */
  1069. #define DISP_CHANGE_SUCCESSFUL 0
  1070. #define DISP_CHANGE_RESTART    1
  1071. #define DISP_CHANGE_FAILED     (-1)
  1072. #define DISP_CHANGE_BADMODE    (-2)
  1073. #define DISP_CHANGE_NOTUPDATED (-3)
  1074. #define DISP_CHANGE_BADFLAGS   (-4)
  1075. #define DISP_CHANGE_BADPARAM   (-5)
  1076. /* ChangeDisplaySettings.dwFlags */
  1077. #define CDS_UPDATEREGISTRY 0x00000001
  1078. #define CDS_TEST 0x00000002
  1079. #define CDS_FULLSCREEN 0x00000004
  1080. #define CDS_GLOBAL 0x00000008
  1081. #define CDS_SET_PRIMARY 0x00000010
  1082. #define CDS_RESET 0x40000000
  1083. #define CDS_SETRECT 0x20000000
  1084. #define CDS_NORESET 0x10000000
  1085. /* flags to FormatMessage */
  1086. #define FORMAT_MESSAGE_ALLOCATE_BUFFER 0x00000100
  1087. #define FORMAT_MESSAGE_IGNORE_INSERTS 0x00000200
  1088. #define FORMAT_MESSAGE_FROM_STRING 0x00000400
  1089. #define FORMAT_MESSAGE_FROM_HMODULE 0x00000800
  1090. #define FORMAT_MESSAGE_FROM_SYSTEM 0x00001000
  1091. #define FORMAT_MESSAGE_ARGUMENT_ARRAY 0x00002000
  1092. #define FORMAT_MESSAGE_MAX_WIDTH_MASK 0x000000FF
  1093. typedef struct
  1094. {
  1095.     UINT      cbSize;
  1096.     UINT      style;
  1097.     WNDPROC   lpfnWndProc;
  1098.     INT       cbClsExtra;
  1099.     INT       cbWndExtra;
  1100.     HINSTANCE hInstance;
  1101.     HICON     hIcon;
  1102.     HCURSOR   hCursor;
  1103.     HBRUSH    hbrBackground;
  1104.     LPCSTR      lpszMenuName;
  1105.     LPCSTR      lpszClassName;
  1106.     HICON     hIconSm;
  1107. } WNDCLASSEXA, *LPWNDCLASSEXA;
  1108. typedef struct
  1109. {
  1110.     UINT      cbSize;
  1111.     UINT      style;
  1112.     WNDPROC   lpfnWndProc;
  1113.     INT       cbClsExtra;
  1114.     INT       cbWndExtra;
  1115.     HINSTANCE hInstance;
  1116.     HICON     hIcon;
  1117.     HCURSOR   hCursor;
  1118.     HBRUSH    hbrBackground;
  1119.     LPCWSTR     lpszMenuName;
  1120.     LPCWSTR     lpszClassName;
  1121.     HICON     hIconSm;
  1122. } WNDCLASSEXW, *LPWNDCLASSEXW;
  1123. DECL_WINELIB_TYPE_AW(WNDCLASSEX)
  1124. DECL_WINELIB_TYPE_AW(LPWNDCLASSEX)
  1125. typedef struct tagMSG
  1126. {
  1127.     HWND    hwnd;
  1128.     UINT    message;
  1129.     WPARAM  wParam;
  1130.     LPARAM    lParam;
  1131.     DWORD     time;
  1132.     POINT   pt;
  1133. } MSG, *LPMSG;
  1134. #define POINTSTOPOINT(pt, pts)                          
  1135.         { (pt).x = (LONG)(SHORT)LOWORD(*(LONG*)&pts);   
  1136.           (pt).y = (LONG)(SHORT)HIWORD(*(LONG*)&pts); }          
  1137. #define POINTTOPOINTS(pt)      (MAKELONG((short)((pt).x), (short)((pt).y)))
  1138. /* Cursors / Icons */
  1139. typedef struct {
  1140. WIN_BOOL fIcon;
  1141. DWORD xHotspot;
  1142. DWORD yHotspot;
  1143. HBITMAP hbmMask;
  1144. HBITMAP hbmColor;
  1145. } ICONINFO,*LPICONINFO;
  1146. /* this is the 6 byte accel struct used in Win32 when presented to the user */
  1147. typedef struct
  1148. {
  1149.     BYTE   fVirt;
  1150.     BYTE   pad0;
  1151.     WORD   key;
  1152.     WORD   cmd;
  1153. } ACCEL, *LPACCEL;
  1154. /* this is the 8 byte accel struct used in Win32 resources (internal only) */
  1155. typedef struct
  1156. {
  1157.     BYTE   fVirt;
  1158.     BYTE   pad0;
  1159.     WORD   key;
  1160.     WORD   cmd;
  1161.     WORD   pad1;
  1162. } PE_ACCEL, *LPPE_ACCEL;
  1163. /* Flags for TrackPopupMenu */
  1164. #define TPM_LEFTBUTTON    0x0000
  1165. #define TPM_RIGHTBUTTON   0x0002
  1166. #define TPM_LEFTALIGN     0x0000
  1167. #define TPM_CENTERALIGN   0x0004
  1168. #define TPM_RIGHTALIGN    0x0008
  1169. #define TPM_TOPALIGN      0x0000
  1170. #define TPM_VCENTERALIGN  0x0010
  1171. #define TPM_BOTTOMALIGN   0x0020
  1172. #define TPM_HORIZONTAL    0x0000
  1173. #define TPM_VERTICAL      0x0040
  1174. #define TPM_NONOTIFY      0x0080
  1175. #define TPM_RETURNCMD     0x0100
  1176. typedef struct 
  1177. {
  1178.     UINT   cbSize;
  1179.     RECT   rcExclude;
  1180. } TPMPARAMS, *LPTPMPARAMS;
  1181. /* FIXME: not sure this one is correct */
  1182. typedef struct {
  1183.   UINT    cbSize;
  1184.   UINT    fMask;
  1185.   UINT    fType;
  1186.   UINT    fState;
  1187.   UINT    wID;
  1188.   HMENU   hSubMenu;
  1189.   HBITMAP hbmpChecked;
  1190.   HBITMAP hbmpUnchecked;
  1191.   DWORD   dwItemData;
  1192.   LPSTR   dwTypeData;
  1193.   UINT    cch;
  1194.   HBITMAP hbmpItem;
  1195. } MENUITEMINFOA, *LPMENUITEMINFOA;
  1196. typedef struct {
  1197.   UINT    cbSize;
  1198.   UINT    fMask;
  1199.   UINT    fType;
  1200.   UINT    fState;
  1201.   UINT    wID;
  1202.   HMENU   hSubMenu;
  1203.   HBITMAP hbmpChecked;
  1204.   HBITMAP hbmpUnchecked;
  1205.   DWORD     dwItemData;
  1206.   LPWSTR    dwTypeData;
  1207.   UINT    cch;
  1208.   HBITMAP hbmpItem;
  1209. } MENUITEMINFOW, *LPMENUITEMINFOW;
  1210. DECL_WINELIB_TYPE_AW(MENUITEMINFO)
  1211. DECL_WINELIB_TYPE_AW(LPMENUITEMINFO)
  1212. typedef struct {
  1213.   DWORD   cbSize;
  1214.   DWORD   fMask;
  1215.   DWORD   dwStyle;
  1216.   UINT    cyMax;
  1217.   HBRUSH  hbrBack;
  1218.   DWORD   dwContextHelpID;
  1219.   DWORD   dwMenuData;
  1220. } MENUINFO, *LPMENUINFO;
  1221. typedef MENUINFO const * LPCMENUINFO;
  1222. #define MIM_MAXHEIGHT 0x00000001
  1223. #define MIM_BACKGROUND 0x00000002
  1224. #define MIM_HELPID 0x00000004
  1225. #define MIM_MENUDATA 0x00000008
  1226. #define MIM_STYLE 0x00000010
  1227. #define MIM_APPLYTOSUBMENUS 0x80000000
  1228. typedef struct {
  1229.   WORD versionNumber;
  1230.   WORD offset;
  1231. } MENUITEMTEMPLATEHEADER, *PMENUITEMTEMPLATEHEADER;
  1232. typedef struct {
  1233.   WORD mtOption;
  1234.   WORD mtID;
  1235.   WCHAR mtString[1];
  1236. } MENUITEMTEMPLATE, *PMENUITEMTEMPLATE;
  1237. typedef VOID   MENUTEMPLATE;
  1238. typedef PVOID *LPMENUTEMPLATE;
  1239. /* Field specifiers for MENUITEMINFO[AW] type.  */
  1240. #define MIIM_STATE       0x00000001
  1241. #define MIIM_ID          0x00000002
  1242. #define MIIM_SUBMENU     0x00000004
  1243. #define MIIM_CHECKMARKS  0x00000008
  1244. #define MIIM_TYPE        0x00000010
  1245. #define MIIM_DATA        0x00000020
  1246. #define MIIM_STRING      0x00000040
  1247. #define MIIM_BITMAP      0x00000080
  1248. #define MIIM_FTYPE       0x00000100
  1249. #define HBMMENU_CALLBACK ((HBITMAP) -1)
  1250. #define HBMMENU_SYSTEM ((HBITMAP)  1)
  1251. #define HBMMENU_MBAR_RESTORE ((HBITMAP)  2)
  1252. #define HBMMENU_MBAR_MINIMIZE ((HBITMAP)  3)
  1253. #define HBMMENU_MBAR_CLOSE ((HBITMAP)  5)
  1254. #define HBMMENU_MBAR_CLOSE_D ((HBITMAP)  6)
  1255. #define HBMMENU_MBAR_MINIMIZE_D ((HBITMAP)  7)
  1256. #define HBMMENU_POPUP_CLOSE ((HBITMAP)  8)
  1257. #define HBMMENU_POPUP_RESTORE ((HBITMAP)  9)
  1258. #define HBMMENU_POPUP_MAXIMIZE ((HBITMAP) 10)
  1259. #define HBMMENU_POPUP_MINIMIZE ((HBITMAP) 11)
  1260. /* DrawState defines ... */
  1261. typedef WIN_BOOL CALLBACK (*DRAWSTATEPROC)(HDC,LPARAM,WPARAM,INT,INT);
  1262. /* WM_H/VSCROLL commands */
  1263. #define SB_LINEUP           0
  1264. #define SB_LINELEFT         0
  1265. #define SB_LINEDOWN         1
  1266. #define SB_LINERIGHT        1
  1267. #define SB_PAGEUP           2
  1268. #define SB_PAGELEFT         2
  1269. #define SB_PAGEDOWN         3
  1270. #define SB_PAGERIGHT        3
  1271. #define SB_THUMBPOSITION    4
  1272. #define SB_THUMBTRACK       5
  1273. #define SB_TOP              6
  1274. #define SB_LEFT             6
  1275. #define SB_BOTTOM           7
  1276. #define SB_RIGHT            7
  1277. #define SB_ENDSCROLL        8
  1278. /* Scroll bar selection constants */
  1279. #define SB_HORZ             0
  1280. #define SB_VERT             1
  1281. #define SB_CTL              2
  1282. #define SB_BOTH             3
  1283. /* Scrollbar styles */
  1284. #define SBS_HORZ                    0x0000L
  1285. #define SBS_VERT                    0x0001L
  1286. #define SBS_TOPALIGN                0x0002L
  1287. #define SBS_LEFTALIGN               0x0002L
  1288. #define SBS_BOTTOMALIGN             0x0004L
  1289. #define SBS_RIGHTALIGN              0x0004L
  1290. #define SBS_SIZEBOXTOPLEFTALIGN     0x0002L
  1291. #define SBS_SIZEBOXBOTTOMRIGHTALIGN 0x0004L
  1292. #define SBS_SIZEBOX                 0x0008L
  1293. #define SBS_SIZEGRIP                0x0010L
  1294. /* EnableScrollBar() flags */
  1295. #define ESB_ENABLE_BOTH     0x0000
  1296. #define ESB_DISABLE_BOTH    0x0003
  1297. #define ESB_DISABLE_LEFT    0x0001
  1298. #define ESB_DISABLE_RIGHT   0x0002
  1299. #define ESB_DISABLE_UP      0x0001
  1300. #define ESB_DISABLE_DOWN    0x0002
  1301. #define ESB_DISABLE_LTUP    ESB_DISABLE_LEFT
  1302. #define ESB_DISABLE_RTDN    ESB_DISABLE_RIGHT
  1303. /* Win32 button control messages */
  1304. #define BM_GETCHECK          0x00f0
  1305. #define BM_SETCHECK          0x00f1
  1306. #define BM_GETSTATE          0x00f2
  1307. #define BM_SETSTATE          0x00f3
  1308. #define BM_SETSTYLE          0x00f4
  1309. #define BM_CLICK             0x00f5
  1310. #define BM_GETIMAGE          0x00f6
  1311. #define BM_SETIMAGE          0x00f7
  1312. /* Winelib button control messages */
  1313. /* Button notification codes */
  1314. #define BN_CLICKED             0
  1315. #define BN_PAINT               1
  1316. #define BN_HILITE              2
  1317. #define BN_UNHILITE            3
  1318. #define BN_DISABLE             4
  1319. #define BN_DOUBLECLICKED       5
  1320. /* Button states */
  1321. #define BST_UNCHECKED        0x0000
  1322. #define BST_CHECKED          0x0001
  1323. #define BST_INDETERMINATE    0x0002
  1324. #define BST_PUSHED           0x0004
  1325. #define BST_FOCUS            0x0008      
  1326. /* Static Control Styles */
  1327. #define SS_LEFT             0x00000000L
  1328. #define SS_CENTER           0x00000001L
  1329. #define SS_RIGHT            0x00000002L
  1330. #define SS_ICON             0x00000003L
  1331. #define SS_BLACKRECT        0x00000004L
  1332. #define SS_GRAYRECT         0x00000005L
  1333. #define SS_WHITERECT        0x00000006L
  1334. #define SS_BLACKFRAME       0x00000007L
  1335. #define SS_GRAYFRAME        0x00000008L
  1336. #define SS_WHITEFRAME       0x00000009L
  1337. #define SS_SIMPLE           0x0000000BL
  1338. #define SS_LEFTNOWORDWRAP   0x0000000CL
  1339. #define SS_OWNERDRAW        0x0000000DL
  1340. #define SS_BITMAP           0x0000000EL
  1341. #define SS_ENHMETAFILE      0x0000000FL
  1342. #define SS_ETCHEDHORZ       0x00000010L
  1343. #define SS_ETCHEDVERT       0x00000011L
  1344. #define SS_ETCHEDFRAME      0x00000012L
  1345. #define SS_TYPEMASK         0x0000001FL
  1346. #define SS_NOPREFIX         0x00000080L
  1347. #define SS_NOTIFY           0x00000100L
  1348. #define SS_CENTERIMAGE      0x00000200L
  1349. #define SS_RIGHTJUST        0x00000400L
  1350. #define SS_REALSIZEIMAGE    0x00000800L
  1351. #define SS_SUNKEN           0x00001000L
  1352. /* Static Control Messages */
  1353. #define STM_SETICON       0x0170
  1354. #define STM_GETICON       0x0171
  1355. #define STM_SETIMAGE        0x0172
  1356. #define STM_GETIMAGE        0x0173
  1357. /* Scrollbar messages */
  1358. #define SBM_SETPOS             0x00e0
  1359. #define SBM_GETPOS             0x00e1
  1360. #define SBM_SETRANGE           0x00e2
  1361. #define SBM_GETRANGE           0x00e3
  1362. #define SBM_ENABLE_ARROWS      0x00e4
  1363. #define SBM_SETRANGEREDRAW     0x00e6
  1364. #define SBM_SETSCROLLINFO      0x00e9
  1365. #define SBM_GETSCROLLINFO      0x00ea
  1366. /* Scrollbar info */
  1367. typedef struct
  1368. {
  1369.     UINT    cbSize;
  1370.     UINT    fMask;
  1371.     INT     nMin;
  1372.     INT     nMax;
  1373.     UINT    nPage;
  1374.     INT     nPos;
  1375.     INT     nTrackPos;
  1376. } SCROLLINFO, *LPSCROLLINFO;
  1377.  
  1378. /* GetScrollInfo() flags */ 
  1379. #define SIF_RANGE           0x0001
  1380. #define SIF_PAGE            0x0002
  1381. #define SIF_POS             0x0004
  1382. #define SIF_DISABLENOSCROLL 0x0008
  1383. #define SIF_TRACKPOS        0x0010
  1384. #define SIF_ALL             (SIF_RANGE | SIF_PAGE | SIF_POS | SIF_TRACKPOS)
  1385. /* Listbox styles */
  1386. #define LBS_NOTIFY               0x0001
  1387. #define LBS_SORT                 0x0002
  1388. #define LBS_NOREDRAW             0x0004
  1389. #define LBS_MULTIPLESEL          0x0008
  1390. #define LBS_OWNERDRAWFIXED       0x0010
  1391. #define LBS_OWNERDRAWVARIABLE    0x0020
  1392. #define LBS_HASSTRINGS           0x0040
  1393. #define LBS_USETABSTOPS          0x0080
  1394. #define LBS_NOINTEGRALHEIGHT     0x0100
  1395. #define LBS_MULTICOLUMN          0x0200
  1396. #define LBS_WANTKEYBOARDINPUT    0x0400
  1397. #define LBS_EXTENDEDSEL          0x0800
  1398. #define LBS_DISABLENOSCROLL      0x1000
  1399. #define LBS_NODATA               0x2000
  1400. #define LBS_NOSEL                0x4000
  1401. #define LBS_STANDARD  (LBS_NOTIFY | LBS_SORT | WS_VSCROLL | WS_BORDER)
  1402. /* Listbox messages */
  1403. #define LB_ADDSTRING           0x0180
  1404. #define LB_INSERTSTRING        0x0181
  1405. #define LB_DELETESTRING        0x0182
  1406. #define LB_SELITEMRANGEEX      0x0183
  1407. #define LB_RESETCONTENT        0x0184
  1408. #define LB_SETSEL              0x0185
  1409. #define LB_SETCURSEL           0x0186
  1410. #define LB_GETSEL              0x0187
  1411. #define LB_GETCURSEL           0x0188
  1412. #define LB_GETTEXT             0x0189
  1413. #define LB_GETTEXTLEN          0x018a
  1414. #define LB_GETCOUNT            0x018b
  1415. #define LB_SELECTSTRING        0x018c
  1416. #define LB_DIR                 0x018d
  1417. #define LB_GETTOPINDEX         0x018e
  1418. #define LB_FINDSTRING          0x018f
  1419. #define LB_GETSELCOUNT         0x0190
  1420. #define LB_GETSELITEMS         0x0191
  1421. #define LB_SETTABSTOPS         0x0192
  1422. #define LB_GETHORIZONTALEXTENT 0x0193
  1423. #define LB_SETHORIZONTALEXTENT 0x0194
  1424. #define LB_SETCOLUMNWIDTH      0x0195
  1425. #define LB_ADDFILE             0x0196
  1426. #define LB_SETTOPINDEX         0x0197
  1427. #define LB_GETITEMRECT         0x0198
  1428. #define LB_GETITEMDATA         0x0199
  1429. #define LB_SETITEMDATA         0x019a
  1430. #define LB_SELITEMRANGE        0x019b
  1431. #define LB_SETANCHORINDEX      0x019c
  1432. #define LB_GETANCHORINDEX      0x019d
  1433. #define LB_SETCARETINDEX       0x019e
  1434. #define LB_GETCARETINDEX       0x019f
  1435. #define LB_SETITEMHEIGHT       0x01a0
  1436. #define LB_GETITEMHEIGHT       0x01a1
  1437. #define LB_FINDSTRINGEXACT     0x01a2
  1438. #define LB_CARETON             0x01a3
  1439. #define LB_CARETOFF            0x01a4
  1440. #define LB_SETLOCALE           0x01a5
  1441. #define LB_GETLOCALE           0x01a6
  1442. #define LB_SETCOUNT            0x01a7
  1443. #define LB_INITSTORAGE         0x01a8
  1444. #define LB_ITEMFROMPOINT       0x01a9
  1445. /* Listbox notification codes */
  1446. #define LBN_ERRSPACE        (-2)
  1447. #define LBN_SELCHANGE       1
  1448. #define LBN_DBLCLK          2
  1449. #define LBN_SELCANCEL       3
  1450. #define LBN_SETFOCUS        4
  1451. #define LBN_KILLFOCUS       5
  1452. /* Listbox message return values */
  1453. #define LB_OKAY             0
  1454. #define LB_ERR              (-1)
  1455. #define LB_ERRSPACE         (-2)
  1456. #define LB_CTLCODE          0L
  1457. /* Combo box styles */
  1458. #define CBS_SIMPLE            0x0001L
  1459. #define CBS_DROPDOWN          0x0002L
  1460. #define CBS_DROPDOWNLIST      0x0003L
  1461. #define CBS_OWNERDRAWFIXED    0x0010L
  1462. #define CBS_OWNERDRAWVARIABLE 0x0020L
  1463. #define CBS_AUTOHSCROLL       0x0040L
  1464. #define CBS_OEMCONVERT        0x0080L
  1465. #define CBS_SORT              0x0100L
  1466. #define CBS_HASSTRINGS        0x0200L
  1467. #define CBS_NOINTEGRALHEIGHT  0x0400L
  1468. #define CBS_DISABLENOSCROLL   0x0800L
  1469. #define CBS_UPPERCASE       0x2000L
  1470. #define CBS_LOWERCASE       0x4000L
  1471. /* Combo box messages */
  1472. #define CB_GETEDITSEL            0x0140
  1473. #define CB_LIMITTEXT             0x0141
  1474. #define CB_SETEDITSEL            0x0142
  1475. #define CB_ADDSTRING             0x0143
  1476. #define CB_DELETESTRING          0x0144
  1477. #define CB_DIR                   0x0145
  1478. #define CB_GETCOUNT              0x0146
  1479. #define CB_GETCURSEL             0x0147
  1480. #define CB_GETLBTEXT             0x0148
  1481. #define CB_GETLBTEXTLEN          0x0149
  1482. #define CB_INSERTSTRING          0x014a
  1483. #define CB_RESETCONTENT          0x014b
  1484. #define CB_FINDSTRING            0x014c
  1485. #define CB_SELECTSTRING          0x014d
  1486. #define CB_SETCURSEL             0x014e
  1487. #define CB_SHOWDROPDOWN          0x014f
  1488. #define CB_GETITEMDATA           0x0150
  1489. #define CB_SETITEMDATA           0x0151
  1490. #define CB_GETDROPPEDCONTROLRECT 0x0152
  1491. #define CB_SETITEMHEIGHT         0x0153
  1492. #define CB_GETITEMHEIGHT         0x0154
  1493. #define CB_SETEXTENDEDUI         0x0155
  1494. #define CB_GETEXTENDEDUI         0x0156
  1495. #define CB_GETDROPPEDSTATE       0x0157
  1496. #define CB_FINDSTRINGEXACT       0x0158
  1497. #define CB_SETLOCALE             0x0159
  1498. #define CB_GETLOCALE             0x015a
  1499. #define CB_GETTOPINDEX           0x015b
  1500. #define CB_SETTOPINDEX           0x015c
  1501. #define CB_GETHORIZONTALEXTENT   0x015d
  1502. #define CB_SETHORIZONTALEXTENT   0x015e
  1503. #define CB_GETDROPPEDWIDTH       0x015f
  1504. #define CB_SETDROPPEDWIDTH       0x0160
  1505. #define CB_INITSTORAGE           0x0161
  1506. /* Combo box notification codes */
  1507. #define CBN_ERRSPACE        (-1)
  1508. #define CBN_SELCHANGE       1
  1509. #define CBN_DBLCLK          2
  1510. #define CBN_SETFOCUS        3
  1511. #define CBN_KILLFOCUS       4
  1512. #define CBN_EDITCHANGE      5
  1513. #define CBN_EDITUPDATE      6
  1514. #define CBN_DROPDOWN        7
  1515. #define CBN_CLOSEUP         8
  1516. #define CBN_SELENDOK        9
  1517. #define CBN_SELENDCANCEL    10
  1518. /* Combo box message return values */
  1519. #define CB_OKAY             0
  1520. #define CB_ERR              (-1)
  1521. #define CB_ERRSPACE         (-2)
  1522. #define MB_OK 0x00000000
  1523. #define MB_OKCANCEL 0x00000001
  1524. #define MB_ABORTRETRYIGNORE 0x00000002
  1525. #define MB_YESNOCANCEL 0x00000003
  1526. #define MB_YESNO 0x00000004
  1527. #define MB_RETRYCANCEL 0x00000005
  1528. #define MB_TYPEMASK 0x0000000F
  1529. #define MB_ICONHAND 0x00000010
  1530. #define MB_ICONQUESTION 0x00000020
  1531. #define MB_ICONEXCLAMATION 0x00000030
  1532. #define MB_ICONASTERISK 0x00000040
  1533. #define MB_USERICON 0x00000080
  1534. #define MB_ICONMASK 0x000000F0
  1535. #define MB_ICONINFORMATION MB_ICONASTERISK
  1536. #define MB_ICONSTOP MB_ICONHAND
  1537. #define MB_ICONWARNING MB_ICONEXCLAMATION
  1538. #define MB_ICONERROR MB_ICONHAND
  1539. #define MB_DEFBUTTON1 0x00000000
  1540. #define MB_DEFBUTTON2 0x00000100
  1541. #define MB_DEFBUTTON3 0x00000200
  1542. #define MB_DEFBUTTON4 0x00000300
  1543. #define MB_DEFMASK 0x00000F00
  1544. #define MB_APPLMODAL 0x00000000
  1545. #define MB_SYSTEMMODAL 0x00001000
  1546. #define MB_TASKMODAL 0x00002000
  1547. #define MB_MODEMASK 0x00003000
  1548. #define MB_HELP 0x00004000
  1549. #define MB_NOFOCUS 0x00008000
  1550. #define MB_MISCMASK 0x0000C000
  1551. #define MB_SETFOREGROUND 0x00010000
  1552. #define MB_DEFAULT_DESKTOP_ONLY 0x00020000
  1553. #define MB_SERVICE_NOTIFICATION 0x00040000
  1554. #define MB_TOPMOST 0x00040000
  1555. #define MB_RIGHT 0x00080000
  1556. #define MB_RTLREADING 0x00100000
  1557. #define HELPINFO_WINDOW 0x0001
  1558. #define HELPINFO_MENUITEM 0x0002
  1559. /* Structure pointed to by lParam of WM_HELP */
  1560. typedef struct
  1561. {
  1562.     UINT cbSize; /* Size in bytes of this struct  */
  1563.     INT iContextType; /* Either HELPINFO_WINDOW or HELPINFO_MENUITEM */
  1564.     INT iCtrlId; /* Control Id or a Menu item Id. */
  1565.     HANDLE hItemHandle; /* hWnd of control or hMenu.     */
  1566.     DWORD dwContextId; /* Context Id associated with this item */
  1567.     POINT MousePos; /* Mouse Position in screen co-ordinates */
  1568. }  HELPINFO,*LPHELPINFO;
  1569. typedef void CALLBACK (*MSGBOXCALLBACK)(LPHELPINFO lpHelpInfo);
  1570. typedef struct
  1571. {
  1572.     UINT cbSize;
  1573.     HWND hwndOwner;
  1574.     HINSTANCE hInstance;
  1575.     LPCSTR lpszText;
  1576.     LPCSTR lpszCaption;
  1577.     DWORD dwStyle;
  1578.     LPCSTR lpszIcon;
  1579.     DWORD dwContextHelpId;
  1580.     MSGBOXCALLBACK lpfnMsgBoxCallback;
  1581.     DWORD dwLanguageId;
  1582. } MSGBOXPARAMSA,*LPMSGBOXPARAMSA;
  1583. typedef struct
  1584. {
  1585.     UINT cbSize;
  1586.     HWND hwndOwner;
  1587.     HINSTANCE hInstance;
  1588.     LPCWSTR lpszText;
  1589.     LPCWSTR lpszCaption;
  1590.     DWORD dwStyle;
  1591.     LPCWSTR lpszIcon;
  1592.     DWORD dwContextHelpId;
  1593.     MSGBOXCALLBACK lpfnMsgBoxCallback;
  1594.     DWORD dwLanguageId;
  1595. } MSGBOXPARAMSW,*LPMSGBOXPARAMSW;
  1596. DECL_WINELIB_TYPE_AW(MSGBOXPARAMS)
  1597. DECL_WINELIB_TYPE_AW(LPMSGBOXPARAMS)
  1598. typedef struct _numberfmt32a {
  1599.     UINT NumDigits;
  1600.     UINT LeadingZero;
  1601.     UINT Grouping;
  1602.     LPCSTR lpDecimalSep;
  1603.     LPCSTR lpThousandSep;
  1604.     UINT NegativeOrder;
  1605. } NUMBERFMTA;
  1606. typedef struct _numberfmt32w {
  1607.     UINT NumDigits;
  1608.     UINT LeadingZero;
  1609.     UINT Grouping;
  1610.     LPCWSTR lpDecimalSep;
  1611.     LPCWSTR lpThousandSep;
  1612.     UINT NegativeOrder;
  1613. } NUMBERFMTW;
  1614. typedef struct _currencyfmt32a
  1615. {   
  1616. UINT      NumDigits;   
  1617. UINT      LeadingZero; 
  1618. UINT      Grouping;   
  1619. LPCSTR    lpDecimalSep;   
  1620. LPCSTR    lpThousandSep; 
  1621. UINT      NegativeOrder;   
  1622. UINT      PositiveOrder; 
  1623. LPCSTR    lpCurrencySymbol;
  1624. } CURRENCYFMTA; 
  1625. typedef struct _currencyfmt32w
  1626. {   
  1627. UINT      NumDigits;   
  1628. UINT      LeadingZero; 
  1629. UINT      Grouping;   
  1630. LPCWSTR   lpDecimalSep;   
  1631. LPCWSTR   lpThousandSep; 
  1632. UINT      NegativeOrder;   
  1633. UINT      PositiveOrder; 
  1634. LPCWSTR   lpCurrencySymbol;
  1635. } CURRENCYFMTW; 
  1636. #define MONITOR_DEFAULTTONULL       0x00000000
  1637. #define MONITOR_DEFAULTTOPRIMARY    0x00000001
  1638. #define MONITOR_DEFAULTTONEAREST    0x00000002
  1639. #define MONITORINFOF_PRIMARY        0x00000001
  1640. typedef struct tagMONITORINFO
  1641. {
  1642.     DWORD   cbSize;
  1643.     RECT  rcMonitor;
  1644.     RECT  rcWork;
  1645.     DWORD   dwFlags;
  1646. } MONITORINFO, *LPMONITORINFO;
  1647. typedef WIN_BOOL  CALLBACK (*MONITORENUMPROC)(HMONITOR,HDC,LPRECT,LPARAM);
  1648. /* FIXME: use this instead of LPCVOID for CreateDialogIndirectParam
  1649.    and DialogBoxIndirectParam */
  1650. typedef struct tagDLGTEMPLATE
  1651. {
  1652.     DWORD style;
  1653.     DWORD dwExtendedStyle;
  1654.     WORD cdit;
  1655.     short x;
  1656.     short y;
  1657.     short cx;
  1658.     short cy;
  1659. } DLGTEMPLATE;
  1660. typedef DLGTEMPLATE *LPDLGTEMPLATEA;
  1661. typedef DLGTEMPLATE *LPDLGTEMPLATEW;
  1662. #define LPDLGTEMPLATE WINELIB_NAME_AW(LPDLGTEMPLATE)
  1663. typedef const DLGTEMPLATE *LPCDLGTEMPLATEA;
  1664. typedef const DLGTEMPLATE *LPCDLGTEMPLATEW;
  1665. #define LPCDLGTEMPLATE WINELIB_NAME_AW(LPCDLGTEMPLATE)
  1666. typedef struct tagDLGITEMTEMPLATE
  1667. {
  1668.     DWORD style;
  1669.     DWORD dwExtendedStyle;
  1670.     short x;
  1671.     short y;
  1672.     short cx;
  1673.     short cy;
  1674.     WORD id;
  1675. } DLGITEMTEMPLATE;
  1676. typedef DLGITEMTEMPLATE *LPDLGITEMTEMPLATEA;
  1677. typedef DLGITEMTEMPLATE *LPDLGITEMTEMPLATEW;
  1678. #define LPDLGITEMTEMPLATE WINELIB_NAME_AW(LPDLGITEMTEMPLATE)
  1679. typedef const DLGITEMTEMPLATE *LPCDLGITEMTEMPLATEA;
  1680. typedef const DLGITEMTEMPLATE *LPCDLGITEMTEMPLATEW;
  1681. #define LPCDLGITEMTEMPLATE WINELIB_NAME_AW(LPCDLGITEMTEMPLATE)
  1682.   /* CBT hook values */
  1683. #define HCBT_MOVESIZE     0
  1684. #define HCBT_MINMAX     1
  1685. #define HCBT_QS      2
  1686. #define HCBT_CREATEWND     3
  1687. #define HCBT_DESTROYWND     4
  1688. #define HCBT_ACTIVATE     5
  1689. #define HCBT_CLICKSKIPPED   6
  1690. #define HCBT_KEYSKIPPED     7
  1691. #define HCBT_SYSCOMMAND     8
  1692. #define HCBT_SETFOCUS     9
  1693.   /* CBT hook structures */
  1694. typedef struct
  1695. {
  1696.     CREATESTRUCTA *lpcs;
  1697.     HWND           hwndInsertAfter;
  1698. } CBT_CREATEWNDA, *LPCBT_CREATEWNDA;
  1699. typedef struct
  1700. {
  1701.     CREATESTRUCTW *lpcs;
  1702.     HWND           hwndInsertAfter;
  1703. } CBT_CREATEWNDW, *LPCBT_CREATEWNDW;
  1704. DECL_WINELIB_TYPE_AW(CBT_CREATEWND)
  1705. DECL_WINELIB_TYPE_AW(LPCBT_CREATEWND)
  1706. typedef struct
  1707. {
  1708.     WIN_BOOL    fMouse;
  1709.     HWND    hWndActive;
  1710. } CBTACTIVATESTRUCT, *LPCBTACTIVATESTRUCT;
  1711. /* modifiers for RegisterHotKey */
  1712. #define MOD_ALT 0x0001
  1713. #define MOD_CONTROL 0x0002
  1714. #define MOD_SHIFT 0x0004
  1715. #define MOD_WIN 0x0008
  1716. /* ids for RegisterHotKey */
  1717. #define IDHOT_SNAPWINDOW (-1)    /* SHIFT-PRINTSCRN  */
  1718. #define IDHOT_SNAPDESKTOP (-2)    /* PRINTSCRN        */
  1719.   /* keybd_event flags */
  1720. #define KEYEVENTF_EXTENDEDKEY        0x0001
  1721. #define KEYEVENTF_KEYUP              0x0002
  1722. #define KEYEVENTF_WINE_FORCEEXTENDED 0x8000
  1723.   /* mouse_event flags */
  1724. #define MOUSEEVENTF_MOVE        0x0001
  1725. #define MOUSEEVENTF_LEFTDOWN    0x0002
  1726. #define MOUSEEVENTF_LEFTUP      0x0004
  1727. #define MOUSEEVENTF_RIGHTDOWN   0x0008
  1728. #define MOUSEEVENTF_RIGHTUP     0x0010
  1729. #define MOUSEEVENTF_MIDDLEDOWN  0x0020
  1730. #define MOUSEEVENTF_MIDDLEUP    0x0040
  1731. #define MOUSEEVENTF_WHEEL       0x0800
  1732. #define MOUSEEVENTF_ABSOLUTE    0x8000
  1733. /* ExitWindows() flags */
  1734. #define EW_RESTARTWINDOWS   0x0042
  1735. #define EW_REBOOTSYSTEM     0x0043
  1736. #define EW_EXITANDEXECAPP   0x0044
  1737. /* ExitWindowsEx() flags */
  1738. #define EWX_LOGOFF           0
  1739. #define EWX_SHUTDOWN         1
  1740. #define EWX_REBOOT           2
  1741. #define EWX_FORCE            4
  1742. #define EWX_POWEROFF         8
  1743. /* SetLastErrorEx types */
  1744. #define SLE_ERROR 0x00000001
  1745. #define SLE_MINORERROR 0x00000002
  1746. #define SLE_WARNING 0x00000003
  1747. /* Predefined resources */
  1748. #define IDI_APPLICATIONA MAKEINTRESOURCEA(32512)
  1749. #define IDI_APPLICATIONW MAKEINTRESOURCEW(32512)
  1750. #define IDI_APPLICATION    WINELIB_NAME_AW(IDI_APPLICATION)
  1751. #define IDI_HANDA        MAKEINTRESOURCEA(32513)
  1752. #define IDI_HANDW        MAKEINTRESOURCEW(32513)
  1753. #define IDI_HAND           WINELIB_NAME_AW(IDI_HAND)
  1754. #define IDI_QUESTIONA    MAKEINTRESOURCEA(32514)
  1755. #define IDI_QUESTIONW    MAKEINTRESOURCEW(32514)
  1756. #define IDI_QUESTION       WINELIB_NAME_AW(IDI_QUESTION)
  1757. #define IDI_EXCLAMATIONA MAKEINTRESOURCEA(32515)
  1758. #define IDI_EXCLAMATIONW MAKEINTRESOURCEW(32515)
  1759. #define IDI_EXCLAMATION    WINELIB_NAME_AW(IDI_EXCLAMATION)
  1760. #define IDI_ASTERISKA    MAKEINTRESOURCEA(32516)
  1761. #define IDI_ASTERISKW    MAKEINTRESOURCEW(32516)
  1762. #define IDI_ASTERISK       WINELIB_NAME_AW(IDI_ASTERISK)
  1763. #define IDC_BUMMERA      MAKEINTRESOURCEA(100)
  1764. #define IDC_BUMMERW      MAKEINTRESOURCEW(100)
  1765. #define IDC_BUMMER         WINELIB_NAME_AW(IDC_BUMMER)
  1766. #define IDC_ARROWA       MAKEINTRESOURCEA(32512)
  1767. #define IDC_ARROWW       MAKEINTRESOURCEW(32512)
  1768. #define IDC_ARROW          WINELIB_NAME_AW(IDC_ARROW)
  1769. #define IDC_IBEAMA       MAKEINTRESOURCEA(32513)
  1770. #define IDC_IBEAMW       MAKEINTRESOURCEW(32513)
  1771. #define IDC_IBEAM          WINELIB_NAME_AW(IDC_IBEAM)
  1772. #define IDC_WAITA        MAKEINTRESOURCEA(32514)
  1773. #define IDC_WAITW        MAKEINTRESOURCEW(32514)
  1774. #define IDC_WAIT           WINELIB_NAME_AW(IDC_WAIT)
  1775. #define IDC_CROSSA       MAKEINTRESOURCEA(32515)
  1776. #define IDC_CROSSW       MAKEINTRESOURCEW(32515)
  1777. #define IDC_CROSS          WINELIB_NAME_AW(IDC_CROSS)
  1778. #define IDC_UPARROWA     MAKEINTRESOURCEA(32516)
  1779. #define IDC_UPARROWW     MAKEINTRESOURCEW(32516)
  1780. #define IDC_UPARROW        WINELIB_NAME_AW(IDC_UPARROW)
  1781. #define IDC_SIZEA        MAKEINTRESOURCEA(32640)
  1782. #define IDC_SIZEW        MAKEINTRESOURCEW(32640)
  1783. #define IDC_SIZE           WINELIB_NAME_AW(IDC_SIZE)
  1784. #define IDC_ICONA        MAKEINTRESOURCEA(32641)
  1785. #define IDC_ICONW        MAKEINTRESOURCEW(32641)
  1786. #define IDC_ICON           WINELIB_NAME_AW(IDC_ICON)
  1787. #define IDC_SIZENWSEA    MAKEINTRESOURCEA(32642)
  1788. #define IDC_SIZENWSEW    MAKEINTRESOURCEW(32642)
  1789. #define IDC_SIZENWSE       WINELIB_NAME_AW(IDC_SIZENWSE)
  1790. #define IDC_SIZENESWA    MAKEINTRESOURCEA(32643)
  1791. #define IDC_SIZENESWW    MAKEINTRESOURCEW(32643)
  1792. #define IDC_SIZENESW       WINELIB_NAME_AW(IDC_SIZENESW)
  1793. #define IDC_SIZEWEA      MAKEINTRESOURCEA(32644)
  1794. #define IDC_SIZEWEW      MAKEINTRESOURCEW(32644)
  1795. #define IDC_SIZEWE         WINELIB_NAME_AW(IDC_SIZEWE)
  1796. #define IDC_SIZENSA      MAKEINTRESOURCEA(32645)
  1797. #define IDC_SIZENSW      MAKEINTRESOURCEW(32645)
  1798. #define IDC_SIZENS         WINELIB_NAME_AW(IDC_SIZENS)
  1799. #define IDC_SIZEALLA     MAKEINTRESOURCEA(32646)
  1800. #define IDC_SIZEALLW     MAKEINTRESOURCEW(32646)
  1801. #define IDC_SIZEALL        WINELIB_NAME_AW(IDC_SIZEALL)
  1802. #define IDC_NOA          MAKEINTRESOURCEA(32648)
  1803. #define IDC_NOW          MAKEINTRESOURCEW(32648)
  1804. #define IDC_NO             WINELIB_NAME_AW(IDC_NO)
  1805. #define IDC_APPSTARTINGA MAKEINTRESOURCEA(32650)
  1806. #define IDC_APPSTARTINGW MAKEINTRESOURCEW(32650)
  1807. #define IDC_APPSTARTING    WINELIB_NAME_AW(IDC_APPSTARTING)
  1808. #define IDC_HELPA        MAKEINTRESOURCEA(32651)
  1809. #define IDC_HELPW        MAKEINTRESOURCEW(32651)
  1810. #define IDC_HELP           WINELIB_NAME_AW(IDC_HELP)
  1811. #define MNC_IGNORE 0
  1812. #define MNC_CLOSE 1
  1813. #define MNC_EXECUTE 2
  1814. #define MNC_SELECT 3 
  1815. /* SystemParametersInfo */
  1816. /* defines below are for all win versions */
  1817. #define SPI_GETBEEP               1
  1818. #define SPI_SETBEEP               2
  1819. #define SPI_GETMOUSE              3
  1820. #define SPI_SETMOUSE              4
  1821. #define SPI_GETBORDER             5
  1822. #define SPI_SETBORDER             6
  1823. #define SPI_GETKEYBOARDSPEED      10
  1824. #define SPI_SETKEYBOARDSPEED      11
  1825. #define SPI_LANGDRIVER            12
  1826. #define SPI_ICONHORIZONTALSPACING 13
  1827. #define SPI_GETSCREENSAVETIMEOUT  14
  1828. #define SPI_SETSCREENSAVETIMEOUT  15
  1829. #define SPI_GETSCREENSAVEACTIVE   16
  1830. #define SPI_SETSCREENSAVEACTIVE   17
  1831. #define SPI_GETGRIDGRANULARITY    18
  1832. #define SPI_SETGRIDGRANULARITY    19
  1833. #define SPI_SETDESKWALLPAPER      20
  1834. #define SPI_SETDESKPATTERN        21
  1835. #define SPI_GETKEYBOARDDELAY      22
  1836. #define SPI_SETKEYBOARDDELAY      23
  1837. #define SPI_ICONVERTICALSPACING   24
  1838. #define SPI_GETICONTITLEWRAP      25
  1839. #define SPI_SETICONTITLEWRAP      26
  1840. #define SPI_GETMENUDROPALIGNMENT  27
  1841. #define SPI_SETMENUDROPALIGNMENT  28
  1842. #define SPI_SETDOUBLECLKWIDTH     29
  1843. #define SPI_SETDOUBLECLKHEIGHT    30
  1844. #define SPI_GETICONTITLELOGFONT   31
  1845. #define SPI_SETDOUBLECLICKTIME    32
  1846. #define SPI_SETMOUSEBUTTONSWAP    33
  1847. #define SPI_SETICONTITLELOGFONT   34
  1848. #define SPI_GETFASTTASKSWITCH     35
  1849. #define SPI_SETFASTTASKSWITCH     36
  1850. #define SPI_SETDRAGFULLWINDOWS    37
  1851. #define SPI_GETDRAGFULLWINDOWS   38
  1852. #define SPI_GETFILTERKEYS         50
  1853. #define SPI_SETFILTERKEYS         51
  1854. #define SPI_GETTOGGLEKEYS         52
  1855. #define SPI_SETTOGGLEKEYS         53
  1856. #define SPI_GETMOUSEKEYS          54
  1857. #define SPI_SETMOUSEKEYS          55
  1858. #define SPI_GETSHOWSOUNDS         56
  1859. #define SPI_SETSHOWSOUNDS         57
  1860. #define SPI_GETSTICKYKEYS         58
  1861. #define SPI_SETSTICKYKEYS         59
  1862. #define SPI_GETACCESSTIMEOUT      60
  1863. #define SPI_SETACCESSTIMEOUT      61
  1864. #define SPI_GETSOUNDSENTRY        64
  1865. #define SPI_SETSOUNDSENTRY        65
  1866. /* defines below are for all win versions WINVER >= 0x0400 */
  1867. #define SPI_SETDRAGFULLWINDOWS    37
  1868. #define SPI_GETDRAGFULLWINDOWS    38
  1869. #define SPI_GETNONCLIENTMETRICS   41
  1870. #define SPI_SETNONCLIENTMETRICS   42
  1871. #define SPI_GETMINIMIZEDMETRICS   43
  1872. #define SPI_SETMINIMIZEDMETRICS   44
  1873. #define SPI_GETICONMETRICS        45
  1874. #define SPI_SETICONMETRICS        46
  1875. #define SPI_SETWORKAREA           47
  1876. #define SPI_GETWORKAREA           48
  1877. #define SPI_SETPENWINDOWS         49
  1878. #define SPI_GETSERIALKEYS         62
  1879. #define SPI_SETSERIALKEYS         63
  1880. #define SPI_GETHIGHCONTRAST       66
  1881. #define SPI_SETHIGHCONTRAST       67
  1882. #define SPI_GETKEYBOARDPREF       68
  1883. #define SPI_SETKEYBOARDPREF       69
  1884. #define SPI_GETSCREENREADER       70
  1885. #define SPI_SETSCREENREADER       71
  1886. #define SPI_GETANIMATION          72
  1887. #define SPI_SETANIMATION          73
  1888. #define SPI_GETFONTSMOOTHING      74
  1889. #define SPI_SETFONTSMOOTHING      75
  1890. #define SPI_SETDRAGWIDTH          76
  1891. #define SPI_SETDRAGHEIGHT         77
  1892. #define SPI_SETHANDHELD           78
  1893. #define SPI_GETLOWPOWERTIMEOUT    79
  1894. #define SPI_GETPOWEROFFTIMEOUT    80
  1895. #define SPI_SETLOWPOWERTIMEOUT    81
  1896. #define SPI_SETPOWEROFFTIMEOUT    82
  1897. #define SPI_GETLOWPOWERACTIVE     83
  1898. #define SPI_GETPOWEROFFACTIVE     84
  1899. #define SPI_SETLOWPOWERACTIVE     85
  1900. #define SPI_SETPOWEROFFACTIVE     86
  1901. #define SPI_SETCURSORS            87
  1902. #define SPI_SETICONS              88
  1903. #define SPI_GETDEFAULTINPUTLANG   89
  1904. #define SPI_SETDEFAULTINPUTLANG   90
  1905. #define SPI_SETLANGTOGGLE         91
  1906. #define SPI_GETWINDOWSEXTENSION   92
  1907. #define SPI_SETMOUSETRAILS        93
  1908. #define SPI_GETMOUSETRAILS        94
  1909. #define SPI_SETSCREENSAVERRUNNING 97
  1910. #define SPI_SCREENSAVERRUNNING    SPI_SETSCREENSAVERRUNNING
  1911. /* defines below are for all win versions (_WIN32_WINNT >= 0x0400) ||
  1912.  *                                        (_WIN32_WINDOWS > 0x0400) */
  1913. #define SPI_GETMOUSEHOVERWIDTH    98
  1914. #define SPI_SETMOUSEHOVERWIDTH    99
  1915. #define SPI_GETMOUSEHOVERHEIGHT   100
  1916. #define SPI_SETMOUSEHOVERHEIGHT   101
  1917. #define SPI_GETMOUSEHOVERTIME     102
  1918. #define SPI_SETMOUSEHOVERTIME     103
  1919. #define SPI_GETWHEELSCROLLLINES   104
  1920. #define SPI_SETWHEELSCROLLLINES   105
  1921. #define SPI_GETSHOWIMEUI          110
  1922. #define SPI_SETSHOWIMEUI          111
  1923. /* defines below are for all win versions WINVER >= 0x0500 */
  1924. #define SPI_GETMOUSESPEED         112
  1925. #define SPI_SETMOUSESPEED         113
  1926. #define SPI_GETSCREENSAVERRUNNING 114
  1927. #define SPI_GETACTIVEWINDOWTRACKING    0x1000
  1928. #define SPI_SETACTIVEWINDOWTRACKING    0x1001
  1929. #define SPI_GETMENUANIMATION           0x1002
  1930. #define SPI_SETMENUANIMATION           0x1003
  1931. #define SPI_GETCOMBOBOXANIMATION       0x1004
  1932. #define SPI_SETCOMBOBOXANIMATION       0x1005
  1933. #define SPI_GETLISTBOXSMOOTHSCROLLING  0x1006
  1934. #define SPI_SETLISTBOXSMOOTHSCROLLING  0x1007
  1935. #define SPI_GETGRADIENTCAPTIONS        0x1008
  1936. #define SPI_SETGRADIENTCAPTIONS        0x1009
  1937. #define SPI_GETMENUUNDERLINES          0x100A
  1938. #define SPI_SETMENUUNDERLINES          0x100B
  1939. #define SPI_GETACTIVEWNDTRKZORDER      0x100C
  1940. #define SPI_SETACTIVEWNDTRKZORDER      0x100D
  1941. #define SPI_GETHOTTRACKING             0x100E
  1942. #define SPI_SETHOTTRACKING             0x100F
  1943. #define SPI_GETFOREGROUNDLOCKTIMEOUT   0x2000
  1944. #define SPI_SETFOREGROUNDLOCKTIMEOUT   0x2001
  1945. #define SPI_GETACTIVEWNDTRKTIMEOUT     0x2002
  1946. #define SPI_SETACTIVEWNDTRKTIMEOUT     0x2003
  1947. #define SPI_GETFOREGROUNDFLASHCOUNT    0x2004
  1948. #define SPI_SETFOREGROUNDFLASHCOUNT    0x2005
  1949. /* SystemParametersInfo flags */
  1950. #define SPIF_UPDATEINIFILE              1
  1951. #define SPIF_SENDWININICHANGE           2
  1952. #define SPIF_SENDCHANGE                 SPIF_SENDWININICHANGE
  1953. /* Window Styles */
  1954. #define WS_OVERLAPPED    0x00000000L
  1955. #define WS_POPUP         0x80000000L
  1956. #define WS_CHILD         0x40000000L
  1957. #define WS_MINIMIZE      0x20000000L
  1958. #define WS_VISIBLE       0x10000000L
  1959. #define WS_DISABLED      0x08000000L
  1960. #define WS_CLIPSIBLINGS  0x04000000L
  1961. #define WS_CLIPCHILDREN  0x02000000L
  1962. #define WS_MAXIMIZE      0x01000000L
  1963. #define WS_CAPTION       0x00C00000L
  1964. #define WS_BORDER        0x00800000L
  1965. #define WS_DLGFRAME      0x00400000L
  1966. #define WS_VSCROLL       0x00200000L
  1967. #define WS_HSCROLL       0x00100000L
  1968. #define WS_SYSMENU       0x00080000L
  1969. #define WS_THICKFRAME    0x00040000L
  1970. #define WS_GROUP         0x00020000L
  1971. #define WS_TABSTOP       0x00010000L
  1972. #define WS_MINIMIZEBOX   0x00020000L
  1973. #define WS_MAXIMIZEBOX   0x00010000L
  1974. #define WS_TILED         WS_OVERLAPPED
  1975. #define WS_ICONIC        WS_MINIMIZE
  1976. #define WS_SIZEBOX       WS_THICKFRAME
  1977. #define WS_OVERLAPPEDWINDOW (WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME| WS_MINIMIZEBOX | WS_MAXIMIZEBOX)
  1978. #define WS_POPUPWINDOW (WS_POPUP | WS_BORDER | WS_SYSMENU)
  1979. #define WS_CHILDWINDOW (WS_CHILD)
  1980. #define WS_TILEDWINDOW (WS_OVERLAPPEDWINDOW)
  1981. /* Window extended styles */
  1982. #define WS_EX_DLGMODALFRAME    0x00000001L
  1983. #define WS_EX_DRAGDETECT       0x00000002L
  1984. #define WS_EX_NOPARENTNOTIFY   0x00000004L
  1985. #define WS_EX_TOPMOST          0x00000008L
  1986. #define WS_EX_ACCEPTFILES      0x00000010L
  1987. #define WS_EX_TRANSPARENT      0x00000020L
  1988. /* New Win95/WinNT4 styles */
  1989. #define WS_EX_MDICHILD         0x00000040L
  1990. #define WS_EX_TOOLWINDOW       0x00000080L
  1991. #define WS_EX_WINDOWEDGE       0x00000100L
  1992. #define WS_EX_CLIENTEDGE       0x00000200L
  1993. #define WS_EX_CONTEXTHELP      0x00000400L
  1994. #define WS_EX_RIGHT            0x00001000L
  1995. #define WS_EX_LEFT             0x00000000L
  1996. #define WS_EX_RTLREADING       0x00002000L
  1997. #define WS_EX_LTRREADING       0x00000000L
  1998. #define WS_EX_LEFTSCROLLBAR    0x00004000L
  1999. #define WS_EX_RIGHTSCROLLBAR   0x00000000L
  2000. #define WS_EX_CONTROLPARENT    0x00010000L
  2001. #define WS_EX_STATICEDGE       0x00020000L
  2002. #define WS_EX_APPWINDOW        0x00040000L
  2003. #define WS_EX_OVERLAPPEDWINDOW (WS_EX_WINDOWEDGE|WS_EX_CLIENTEDGE)
  2004. #define WS_EX_PALETTEWINDOW    (WS_EX_WINDOWEDGE|WS_EX_TOOLWINDOW|WS_EX_TOPMOST)
  2005. /* WINE internal... */
  2006. #define WS_EX_TRAYWINDOW 0x80000000L
  2007. /* Window scrolling */
  2008. #define SW_SCROLLCHILDREN      0x0001
  2009. #define SW_INVALIDATE          0x0002
  2010. #define SW_ERASE               0x0004
  2011. /* CreateWindow() coordinates */
  2012. #define CW_USEDEFAULT ((INT)0x80000000)
  2013. /* ChildWindowFromPointEx Flags */
  2014. #define CWP_ALL                0x0000
  2015. #define CWP_SKIPINVISIBLE      0x0001
  2016. #define CWP_SKIPDISABLED       0x0002
  2017. #define CWP_SKIPTRANSPARENT    0x0004
  2018.   /* PeekMessage() options */
  2019. #define PM_NOREMOVE 0x0000
  2020. #define PM_REMOVE 0x0001
  2021. #define PM_NOYIELD 0x0002
  2022. /* WM_SHOWWINDOW wParam codes */
  2023. #define SW_PARENTCLOSING    1
  2024. #define SW_OTHERMAXIMIZED   2
  2025. #define SW_PARENTOPENING    3
  2026. #define SW_OTHERRESTORED    4
  2027.   /* ShowWindow() codes */
  2028. #define SW_HIDE             0
  2029. #define SW_SHOWNORMAL       1
  2030. #define SW_NORMAL           1
  2031. #define SW_SHOWMINIMIZED    2
  2032. #define SW_SHOWMAXIMIZED    3
  2033. #define SW_MAXIMIZE         3
  2034. #define SW_SHOWNOACTIVATE   4
  2035. #define SW_SHOW             5
  2036. #define SW_MINIMIZE         6
  2037. #define SW_SHOWMINNOACTIVE  7
  2038. #define SW_SHOWNA           8
  2039. #define SW_RESTORE          9
  2040. #define SW_SHOWDEFAULT     10
  2041. #define SW_MAX     10
  2042. #define SW_NORMALNA     0xCC /* undoc. flag in MinMaximize */
  2043.   /* WM_SIZE message wParam values */
  2044. #define SIZE_RESTORED        0
  2045. #define SIZE_MINIMIZED       1
  2046. #define SIZE_MAXIMIZED       2
  2047. #define SIZE_MAXSHOW         3
  2048. #define SIZE_MAXHIDE         4
  2049. #define SIZENORMAL           SIZE_RESTORED
  2050. #define SIZEICONIC           SIZE_MINIMIZED
  2051. #define SIZEFULLSCREEN       SIZE_MAXIMIZED
  2052. #define SIZEZOOMSHOW         SIZE_MAXSHOW
  2053. #define SIZEZOOMHIDE         SIZE_MAXHIDE
  2054. /* SetWindowPos() and WINDOWPOS flags */
  2055. #define SWP_NOSIZE          0x0001
  2056. #define SWP_NOMOVE          0x0002
  2057. #define SWP_NOZORDER        0x0004
  2058. #define SWP_NOREDRAW        0x0008
  2059. #define SWP_NOACTIVATE      0x0010
  2060. #define SWP_FRAMECHANGED    0x0020  /* The frame changed: send WM_NCCALCSIZE */
  2061. #define SWP_SHOWWINDOW      0x0040
  2062. #define SWP_HIDEWINDOW      0x0080
  2063. #define SWP_NOCOPYBITS      0x0100
  2064. #define SWP_NOOWNERZORDER   0x0200  /* Don't do owner Z ordering */
  2065. #define SWP_DRAWFRAME       SWP_FRAMECHANGED
  2066. #define SWP_NOREPOSITION    SWP_NOOWNERZORDER
  2067. #define SWP_NOSENDCHANGING  0x0400
  2068. #define SWP_DEFERERASE      0x2000
  2069. #define SWP_ASYNCWINDOWPOS  0x4000
  2070. #define HWND_DESKTOP        ((HWND)0)
  2071. #define HWND_BROADCAST      ((HWND)0xffff)
  2072. /* SetWindowPos() hwndInsertAfter field values */
  2073. #define HWND_TOP            ((HWND)0)
  2074. #define HWND_BOTTOM         ((HWND)1)
  2075. #define HWND_TOPMOST        ((HWND)-1)
  2076. #define HWND_NOTOPMOST      ((HWND)-2)
  2077. #define MF_INSERT          0x0000
  2078. #define MF_CHANGE          0x0080
  2079. #define MF_APPEND          0x0100
  2080. #define MF_DELETE          0x0200
  2081. #define MF_REMOVE          0x1000
  2082. #define MF_END             0x0080
  2083. #define MF_ENABLED         0x0000
  2084. #define MF_GRAYED          0x0001
  2085. #define MF_DISABLED        0x0002
  2086. #define MF_STRING          0x0000
  2087. #define MF_BITMAP          0x0004
  2088. #define MF_UNCHECKED       0x0000
  2089. #define MF_CHECKED         0x0008
  2090. #define MF_POPUP           0x0010
  2091. #define MF_MENUBARBREAK    0x0020
  2092. #define MF_MENUBREAK       0x0040
  2093. #define MF_UNHILITE        0x0000
  2094. #define MF_HILITE          0x0080
  2095. #define MF_OWNERDRAW       0x0100
  2096. #define MF_USECHECKBITMAPS 0x0200
  2097. #define MF_BYCOMMAND       0x0000
  2098. #define MF_BYPOSITION      0x0400
  2099. #define MF_SEPARATOR       0x0800
  2100. #define MF_DEFAULT         0x1000
  2101. #define MF_SYSMENU         0x2000
  2102. #define MF_HELP            0x4000
  2103. #define MF_RIGHTJUSTIFY    0x4000
  2104. #define MF_MOUSESELECT     0x8000
  2105. /* Flags for extended menu item types.  */
  2106. #define MFT_STRING         MF_STRING
  2107. #define MFT_BITMAP         MF_BITMAP
  2108. #define MFT_MENUBARBREAK   MF_MENUBARBREAK
  2109. #define MFT_MENUBREAK      MF_MENUBREAK
  2110. #define MFT_OWNERDRAW      MF_OWNERDRAW
  2111. #define MFT_RADIOCHECK     0x00000200L
  2112. #define MFT_SEPARATOR      MF_SEPARATOR
  2113. #define MFT_RIGHTORDER     0x00002000L
  2114. #define MFT_RIGHTJUSTIFY   MF_RIGHTJUSTIFY
  2115. /* Flags for extended menu item states.  */
  2116. #define MFS_GRAYED          0x00000003L
  2117. #define MFS_DISABLED        MFS_GRAYED
  2118. #define MFS_CHECKED         MF_CHECKED
  2119. #define MFS_HILITE          MF_HILITE
  2120. #define MFS_ENABLED         MF_ENABLED
  2121. #define MFS_UNCHECKED       MF_UNCHECKED
  2122. #define MFS_UNHILITE        MF_UNHILITE
  2123. #define MFS_DEFAULT         MF_DEFAULT
  2124. #define MFS_MASK            0x0000108BL
  2125. #define MFS_HOTTRACKDRAWN   0x10000000L
  2126. #define MFS_CACHEDBMP       0x20000000L
  2127. #define MFS_BOTTOMGAPDROP   0x40000000L
  2128. #define MFS_TOPGAPDROP      0x80000000L
  2129. #define MFS_GAPDROP         0xC0000000L
  2130. /* for GetMenuDefaultItem */
  2131. #define GMDI_USEDISABLED    0x0001L
  2132. #define GMDI_GOINTOPOPUPS   0x0002L
  2133. #define DT_TOP 0
  2134. #define DT_LEFT 0
  2135. #define DT_CENTER 1
  2136. #define DT_RIGHT 2
  2137. #define DT_VCENTER 4
  2138. #define DT_BOTTOM 8
  2139. #define DT_WORDBREAK 16
  2140. #define DT_SINGLELINE 32
  2141. #define DT_EXPANDTABS 64
  2142. #define DT_TABSTOP 128
  2143. #define DT_NOCLIP 256
  2144. #define DT_EXTERNALLEADING 512
  2145. #define DT_CALCRECT 1024
  2146. #define DT_NOPREFIX 2048
  2147. #define DT_INTERNAL 4096
  2148. /* DrawCaption()/DrawCaptionTemp() flags */
  2149. #define DC_ACTIVE 0x0001
  2150. #define DC_SMALLCAP 0x0002
  2151. #define DC_ICON 0x0004
  2152. #define DC_TEXT 0x0008
  2153. #define DC_INBUTTON 0x0010
  2154. /* DrawEdge() flags */
  2155. #define BDR_RAISEDOUTER    0x0001
  2156. #define BDR_SUNKENOUTER    0x0002
  2157. #define BDR_RAISEDINNER    0x0004
  2158. #define BDR_SUNKENINNER    0x0008
  2159. #define BDR_OUTER          0x0003
  2160. #define BDR_INNER          0x000c
  2161. #define BDR_RAISED         0x0005
  2162. #define BDR_SUNKEN         0x000a
  2163. #define EDGE_RAISED        (BDR_RAISEDOUTER | BDR_RAISEDINNER)
  2164. #define EDGE_SUNKEN        (BDR_SUNKENOUTER | BDR_SUNKENINNER)
  2165. #define EDGE_ETCHED        (BDR_SUNKENOUTER | BDR_RAISEDINNER)
  2166. #define EDGE_BUMP          (BDR_RAISEDOUTER | BDR_SUNKENINNER)
  2167. /* border flags */
  2168. #define BF_LEFT            0x0001
  2169. #define BF_TOP             0x0002
  2170. #define BF_RIGHT           0x0004
  2171. #define BF_BOTTOM          0x0008
  2172. #define BF_DIAGONAL        0x0010
  2173. #define BF_MIDDLE          0x0800  /* Fill in the middle */
  2174. #define BF_SOFT            0x1000  /* For softer buttons */
  2175. #define BF_ADJUST          0x2000  /* Calculate the space left over */
  2176. #define BF_FLAT            0x4000  /* For flat rather than 3D borders */
  2177. #define BF_MONO            0x8000  /* For monochrome borders */
  2178. #define BF_TOPLEFT         (BF_TOP | BF_LEFT)
  2179. #define BF_TOPRIGHT        (BF_TOP | BF_RIGHT)
  2180. #define BF_BOTTOMLEFT      (BF_BOTTOM | BF_LEFT)
  2181. #define BF_BOTTOMRIGHT     (BF_BOTTOM | BF_RIGHT)
  2182. #define BF_RECT            (BF_LEFT | BF_TOP | BF_RIGHT | BF_BOTTOM)
  2183. #define BF_DIAGONAL_ENDTOPRIGHT     (BF_DIAGONAL | BF_TOP | BF_RIGHT)
  2184. #define BF_DIAGONAL_ENDTOPLEFT      (BF_DIAGONAL | BF_TOP | BF_LEFT)
  2185. #define BF_DIAGONAL_ENDBOTTOMLEFT   (BF_DIAGONAL | BF_BOTTOM | BF_LEFT)
  2186. #define BF_DIAGONAL_ENDBOTTOMRIGHT  (BF_DIAGONAL | BF_BOTTOM | BF_RIGHT)
  2187. /* DrawFrameControl() uType's */
  2188. #define DFC_CAPTION             1
  2189. #define DFC_MENU                2
  2190. #define DFC_SCROLL              3
  2191. #define DFC_BUTTON              4
  2192. /* uState's */
  2193. #define DFCS_CAPTIONCLOSE       0x0000
  2194. #define DFCS_CAPTIONMIN         0x0001
  2195. #define DFCS_CAPTIONMAX         0x0002
  2196. #define DFCS_CAPTIONRESTORE     0x0003
  2197. #define DFCS_CAPTIONHELP        0x0004 /* Windows 95 only */
  2198. #define DFCS_MENUARROW          0x0000
  2199. #define DFCS_MENUCHECK          0x0001
  2200. #define DFCS_MENUBULLET         0x0002
  2201. #define DFCS_MENUARROWRIGHT     0x0004
  2202. #define DFCS_SCROLLUP            0x0000
  2203. #define DFCS_SCROLLDOWN          0x0001
  2204. #define DFCS_SCROLLLEFT          0x0002
  2205. #define DFCS_SCROLLRIGHT         0x0003
  2206. #define DFCS_SCROLLCOMBOBOX      0x0005
  2207. #define DFCS_SCROLLSIZEGRIP      0x0008
  2208. #define DFCS_SCROLLSIZEGRIPRIGHT 0x0010
  2209. #define DFCS_BUTTONCHECK        0x0000
  2210. #define DFCS_BUTTONRADIOIMAGE   0x0001
  2211. #define DFCS_BUTTONRADIOMASK    0x0002 /* to draw nonsquare button */
  2212. #define DFCS_BUTTONRADIO        0x0004
  2213. #define DFCS_BUTTON3STATE       0x0008
  2214. #define DFCS_BUTTONPUSH         0x0010
  2215. /* additional state of the control */
  2216. #define DFCS_INACTIVE           0x0100
  2217. #define DFCS_PUSHED             0x0200
  2218. #define DFCS_CHECKED            0x0400
  2219. #define DFCS_ADJUSTRECT         0x2000 /* exclude surrounding edge */
  2220. #define DFCS_FLAT               0x4000
  2221. #define DFCS_MONO               0x8000
  2222. /* Image type */
  2223. #define DST_COMPLEX 0x0000
  2224. #define DST_TEXT 0x0001
  2225. #define DST_PREFIXTEXT 0x0002
  2226. #define DST_ICON 0x0003
  2227. #define DST_BITMAP 0x0004
  2228. /* State type */
  2229. #define DSS_NORMAL 0x0000
  2230. #define DSS_UNION 0x0010  /* Gray string appearance */
  2231. #define DSS_DISABLED 0x0020
  2232. #define DSS_DEFAULT 0x0040  /* Make it bold */
  2233. #define DSS_MONO 0x0080
  2234. #define DSS_RIGHT 0x8000
  2235. typedef struct
  2236. {
  2237.     UINT      CtlType;
  2238.     UINT      CtlID;
  2239.     UINT      itemID;
  2240.     UINT      itemAction;
  2241.     UINT      itemState;
  2242.     HWND      hwndItem;
  2243.     HDC       hDC;
  2244.     RECT      rcItem WINE_PACKED;
  2245.     DWORD       itemData WINE_PACKED;
  2246. } DRAWITEMSTRUCT, *PDRAWITEMSTRUCT, *LPDRAWITEMSTRUCT;
  2247. typedef struct
  2248. {
  2249.     UINT      CtlType;
  2250.     UINT      CtlID;
  2251.     UINT      itemID;
  2252.     UINT      itemWidth;
  2253.     UINT      itemHeight;
  2254.     DWORD       itemData;
  2255. } MEASUREITEMSTRUCT, *PMEASUREITEMSTRUCT, *LPMEASUREITEMSTRUCT;
  2256. typedef struct
  2257. {
  2258.     UINT     CtlType;
  2259.     UINT     CtlID;
  2260.     UINT     itemID;
  2261.     HWND     hwndItem;
  2262.     DWORD      itemData;
  2263. } DELETEITEMSTRUCT, *LPDELETEITEMSTRUCT;
  2264. typedef struct
  2265. {
  2266.     UINT      CtlType;
  2267.     UINT      CtlID;
  2268.     HWND      hwndItem;
  2269.     UINT      itemID1;
  2270.     DWORD       itemData1;
  2271.     UINT      itemID2;
  2272.     DWORD       itemData2;
  2273.     DWORD       dwLocaleId;
  2274. } COMPAREITEMSTRUCT, *PCOMPAREITEMSTRUCT, *LPCOMPAREITEMSTRUCT;
  2275. /* WM_KEYUP/DOWN/CHAR HIWORD(lParam) flags */
  2276. #define KF_EXTENDED         0x0100
  2277. #define KF_DLGMODE          0x0800
  2278. #define KF_MENUMODE         0x1000
  2279. #define KF_ALTDOWN          0x2000
  2280. #define KF_REPEAT           0x4000
  2281. #define KF_UP               0x8000
  2282. /* Virtual key codes */
  2283. #define VK_LBUTTON          0x01
  2284. #define VK_RBUTTON          0x02
  2285. #define VK_CANCEL           0x03
  2286. #define VK_MBUTTON          0x04
  2287. /*                          0x05-0x07  Undefined */
  2288. #define VK_BACK             0x08
  2289. #define VK_TAB              0x09
  2290. /*                          0x0A-0x0B  Undefined */
  2291. #define VK_CLEAR            0x0C
  2292. #define VK_RETURN           0x0D
  2293. /*                          0x0E-0x0F  Undefined */
  2294. #define VK_SHIFT            0x10
  2295. #define VK_CONTROL          0x11
  2296. #define VK_MENU             0x12
  2297. #define VK_PAUSE            0x13
  2298. #define VK_CAPITAL          0x14
  2299. /*                          0x15-0x19  Reserved for Kanji systems */
  2300. /*                          0x1A       Undefined */
  2301. #define VK_ESCAPE           0x1B
  2302. /*                          0x1C-0x1F  Reserved for Kanji systems */
  2303. #define VK_SPACE            0x20
  2304. #define VK_PRIOR            0x21
  2305. #define VK_NEXT             0x22
  2306. #define VK_END              0x23
  2307. #define VK_HOME             0x24
  2308. #define VK_LEFT             0x25
  2309. #define VK_UP               0x26
  2310. #define VK_RIGHT            0x27
  2311. #define VK_DOWN             0x28
  2312. #define VK_SELECT           0x29
  2313. #define VK_PRINT            0x2A /* OEM specific in Windows 3.1 SDK */
  2314. #define VK_EXECUTE          0x2B
  2315. #define VK_SNAPSHOT         0x2C
  2316. #define VK_INSERT           0x2D
  2317. #define VK_DELETE           0x2E
  2318. #define VK_HELP             0x2F
  2319. #define VK_0                0x30
  2320. #define VK_1                0x31
  2321. #define VK_2                0x32
  2322. #define VK_3                0x33
  2323. #define VK_4                0x34
  2324. #define VK_5                0x35
  2325. #define VK_6                0x36
  2326. #define VK_7                0x37
  2327. #define VK_8                0x38
  2328. #define VK_9                0x39
  2329. /*                          0x3A-0x40  Undefined */
  2330. #define VK_A                0x41
  2331. #define VK_B                0x42
  2332. #define VK_C                0x43
  2333. #define VK_D                0x44
  2334. #define VK_E                0x45
  2335. #define VK_F                0x46
  2336. #define VK_G                0x47
  2337. #define VK_H                0x48
  2338. #define VK_I                0x49
  2339. #define VK_J                0x4A
  2340. #define VK_K                0x4B
  2341. #define VK_L                0x4C
  2342. #define VK_M                0x4D
  2343. #define VK_N                0x4E
  2344. #define VK_O                0x4F
  2345. #define VK_P                0x50
  2346. #define VK_Q                0x51
  2347. #define VK_R                0x52
  2348. #define VK_S                0x53
  2349. #define VK_T                0x54
  2350. #define VK_U                0x55
  2351. #define VK_V                0x56
  2352. #define VK_W                0x57
  2353. #define VK_X                0x58
  2354. #define VK_Y                0x59
  2355. #define VK_Z                0x5A
  2356. #define VK_LWIN             0x5B
  2357. #define VK_RWIN             0x5C
  2358. #define VK_APPS             0x5D
  2359. /*                          0x5E-0x5F Unassigned */
  2360. #define VK_NUMPAD0          0x60
  2361. #define VK_NUMPAD1          0x61
  2362. #define VK_NUMPAD2          0x62
  2363. #define VK_NUMPAD3          0x63
  2364. #define VK_NUMPAD4          0x64
  2365. #define VK_NUMPAD5          0x65
  2366. #define VK_NUMPAD6          0x66
  2367. #define VK_NUMPAD7          0x67
  2368. #define VK_NUMPAD8          0x68
  2369. #define VK_NUMPAD9          0x69
  2370. #define VK_MULTIPLY         0x6A
  2371. #define VK_ADD              0x6B
  2372. #define VK_SEPARATOR        0x6C
  2373. #define VK_SUBTRACT         0x6D
  2374. #define VK_DECIMAL          0x6E
  2375. #define VK_DIVIDE           0x6F
  2376. #define VK_F1               0x70
  2377. #define VK_F2               0x71
  2378. #define VK_F3               0x72
  2379. #define VK_F4               0x73
  2380. #define VK_F5               0x74
  2381. #define VK_F6               0x75
  2382. #define VK_F7               0x76
  2383. #define VK_F8               0x77
  2384. #define VK_F9               0x78
  2385. #define VK_F10              0x79
  2386. #define VK_F11              0x7A
  2387. #define VK_F12              0x7B
  2388. #define VK_F13              0x7C
  2389. #define VK_F14              0x7D
  2390. #define VK_F15              0x7E
  2391. #define VK_F16              0x7F
  2392. #define VK_F17              0x80
  2393. #define VK_F18              0x81
  2394. #define VK_F19              0x82
  2395. #define VK_F20              0x83
  2396. #define VK_F21              0x84
  2397. #define VK_F22              0x85
  2398. #define VK_F23              0x86
  2399. #define VK_F24              0x87
  2400. /*                          0x88-0x8F  Unassigned */
  2401. #define VK_NUMLOCK          0x90
  2402. #define VK_SCROLL           0x91
  2403. /*                          0x92-0x9F  Unassigned */
  2404. /*
  2405.  * differencing between right and left shift/control/alt key.
  2406.  * Used only by GetAsyncKeyState() and GetKeyState().
  2407.  */
  2408. #define VK_LSHIFT           0xA0
  2409. #define VK_RSHIFT           0xA1
  2410. #define VK_LCONTROL         0xA2
  2411. #define VK_RCONTROL         0xA3
  2412. #define VK_LMENU            0xA4
  2413. #define VK_RMENU            0xA5
  2414. /*                          0xA6-0xB9  Unassigned */
  2415. #define VK_OEM_1            0xBA
  2416. #define VK_OEM_PLUS         0xBB
  2417. #define VK_OEM_COMMA        0xBC
  2418. #define VK_OEM_MINUS        0xBD
  2419. #define VK_OEM_PERIOD       0xBE
  2420. #define VK_OEM_2            0xBF
  2421. #define VK_OEM_3            0xC0
  2422. /*                          0xC1-0xDA  Unassigned */
  2423. #define VK_OEM_4            0xDB
  2424. #define VK_OEM_5            0xDC
  2425. #define VK_OEM_6            0xDD
  2426. #define VK_OEM_7            0xDE
  2427. /*                          0xDF-0xE4  OEM specific */
  2428. #define VK_PROCESSKEY       0xE5
  2429. /*                          0xE6       OEM specific */
  2430. /*                          0xE7-0xE8  Unassigned */
  2431. /*                          0xE9-0xF5  OEM specific */
  2432. #define VK_ATTN             0xF6
  2433. #define VK_CRSEL            0xF7
  2434. #define VK_EXSEL            0xF8
  2435. #define VK_EREOF            0xF9
  2436. #define VK_PLAY             0xFA
  2437. #define VK_ZOOM             0xFB
  2438. #define VK_NONAME           0xFC
  2439. #define VK_PA1              0xFD
  2440. #define VK_OEM_CLEAR        0xFE
  2441.   
  2442.   /* Key status flags for mouse events */
  2443. #define MK_LBUTTON     0x0001
  2444. #define MK_RBUTTON     0x0002
  2445. #define MK_SHIFT     0x0004
  2446. #define MK_CONTROL     0x0008
  2447. #define MK_MBUTTON     0x0010
  2448.   /* Queue status flags */
  2449. #define QS_KEY 0x0001
  2450. #define QS_MOUSEMOVE 0x0002
  2451. #define QS_MOUSEBUTTON 0x0004
  2452. #define QS_MOUSE (QS_MOUSEMOVE | QS_MOUSEBUTTON)
  2453. #define QS_POSTMESSAGE 0x0008
  2454. #define QS_TIMER 0x0010
  2455. #define QS_PAINT 0x0020
  2456. #define QS_SENDMESSAGE 0x0040
  2457. #define QS_HOTKEY 0x0080
  2458. #define QS_INPUT (QS_MOUSE | QS_KEY)
  2459. #define QS_ALLEVENTS (QS_INPUT | QS_POSTMESSAGE | QS_TIMER | QS_PAINT | QS_HOTKEY)
  2460. #define QS_ALLINPUT     (QS_ALLEVENTS | QS_SENDMESSAGE)
  2461. #define DDL_READWRITE 0x0000
  2462. #define DDL_READONLY 0x0001
  2463. #define DDL_HIDDEN 0x0002
  2464. #define DDL_SYSTEM 0x0004
  2465. #define DDL_DIRECTORY 0x0010
  2466. #define DDL_ARCHIVE 0x0020
  2467. #define DDL_POSTMSGS 0x2000
  2468. #define DDL_DRIVES 0x4000
  2469. #define DDL_EXCLUSIVE 0x8000
  2470.   /* Shell hook values */
  2471. #define HSHELL_WINDOWCREATED       1
  2472. #define HSHELL_WINDOWDESTROYED     2
  2473. #define HSHELL_ACTIVATESHELLWINDOW 3
  2474. /* Predefined Clipboard Formats */
  2475. #define CF_TEXT              1
  2476. #define CF_BITMAP            2
  2477. #define CF_METAFILEPICT      3
  2478. #define CF_SYLK              4
  2479. #define CF_DIF               5
  2480. #define CF_TIFF              6
  2481. #define CF_OEMTEXT           7
  2482. #define CF_DIB               8
  2483. #define CF_PALETTE           9
  2484. #define CF_PENDATA          10
  2485. #define CF_RIFF             11
  2486. #define CF_WAVE             12
  2487. #define CF_ENHMETAFILE      14
  2488. #define CF_HDROP            15
  2489. #define CF_LOCALE           16
  2490. #define CF_MAX              17
  2491. #define CF_OWNERDISPLAY     0x0080
  2492. #define CF_DSPTEXT          0x0081
  2493. #define CF_DSPBITMAP        0x0082
  2494. #define CF_DSPMETAFILEPICT  0x0083
  2495. /* "Private" formats don't get GlobalFree()'d */
  2496. #define CF_PRIVATEFIRST     0x0200
  2497. #define CF_PRIVATELAST      0x02FF
  2498. /* "GDIOBJ" formats do get DeleteObject()'d */
  2499. #define CF_GDIOBJFIRST      0x0300
  2500. #define CF_GDIOBJLAST       0x03FF
  2501. /* DragObject stuff */
  2502. typedef struct
  2503. {
  2504.     HWND16     hWnd;
  2505.     HANDLE16   hScope;
  2506.     WORD       wFlags;
  2507.     HANDLE16   hList;
  2508.     HANDLE16   hOfStruct;
  2509.     POINT16 pt WINE_PACKED;
  2510.     LONG       l WINE_PACKED;
  2511. } DRAGINFO, *LPDRAGINFO;
  2512. #define DRAGOBJ_PROGRAM 0x0001
  2513. #define DRAGOBJ_DATA 0x0002
  2514. #define DRAGOBJ_DIRECTORY 0x0004
  2515. #define DRAGOBJ_MULTIPLE 0x0008
  2516. #define DRAGOBJ_EXTERNAL 0x8000
  2517. #define DRAG_PRINT 0x544E5250
  2518. #define DRAG_FILE 0x454C4946
  2519. /* types of LoadImage */
  2520. #define IMAGE_BITMAP 0
  2521. #define IMAGE_ICON 1
  2522. #define IMAGE_CURSOR 2
  2523. #define IMAGE_ENHMETAFILE 3
  2524. /* loadflags to LoadImage */
  2525. #define LR_DEFAULTCOLOR 0x0000
  2526. #define LR_MONOCHROME 0x0001
  2527. #define LR_COLOR 0x0002
  2528. #define LR_COPYRETURNORG 0x0004
  2529. #define LR_COPYDELETEORG 0x0008
  2530. #define LR_LOADFROMFILE 0x0010
  2531. #define LR_LOADTRANSPARENT 0x0020
  2532. #define LR_DEFAULTSIZE 0x0040
  2533. #define LR_VGA_COLOR 0x0080
  2534. #define LR_LOADMAP3DCOLORS 0x1000
  2535. #define LR_CREATEDIBSECTION 0x2000
  2536. #define LR_COPYFROMRESOURCE 0x4000
  2537. #define LR_SHARED 0x8000
  2538. /* Flags for DrawIconEx.  */
  2539. #define DI_MASK                 1
  2540. #define DI_IMAGE                2
  2541. #define DI_NORMAL               (DI_MASK | DI_IMAGE)
  2542. #define DI_COMPAT               4
  2543. #define DI_DEFAULTSIZE          8
  2544.   /* misc messages */
  2545. #define WM_CPL_LAUNCH       (WM_USER + 1000)
  2546. #define WM_CPL_LAUNCHED     (WM_USER + 1001)
  2547. /* WM_NOTIFYFORMAT commands and return values */
  2548. #define NFR_ANSI     1
  2549. #define NFR_UNICODE     2
  2550. #define NF_QUERY     3
  2551. #define NF_REQUERY     4
  2552. #include "poppack.h"
  2553. #define     EnumTaskWindows(handle,proc,lparam) 
  2554.             EnumThreadWindows(handle,proc,lparam)
  2555. #define     OemToAnsiA OemToCharA
  2556. #define     OemToAnsiW OemToCharW
  2557. #define     OemToAnsi WINELIB_NAME_AW(OemToAnsi)
  2558. #define     OemToAnsiBuffA OemToCharBuffA
  2559. #define     OemToAnsiBuffW OemToCharBuffW
  2560. #define     OemToAnsiBuff WINELIB_NAME_AW(OemToAnsiBuff)
  2561. #define     AnsiToOemA CharToOemA
  2562. #define     AnsiToOemW CharToOemW
  2563. #define     AnsiToOem WINELIB_NAME_AW(AnsiToOem)
  2564. #define     AnsiToOemBuffA CharToOemBuffA
  2565. #define     AnsiToOemBuffW CharToOemBuffW
  2566. #define     AnsiToOemBuff WINELIB_NAME_AW(AnsiToOemBuff)
  2567. /* NOTE: This is SYSTEM.3, not USER.182, which is also named KillSystemTimer */
  2568. WORD        WINAPI SYSTEM_KillSystemTimer( WORD );
  2569. /* Extra functions that don't exist in the Windows API */
  2570. HPEN      WINAPI GetSysColorPen(INT);
  2571. INT       WINAPI LoadMessageA(HMODULE,UINT,WORD,LPSTR,INT);
  2572. INT       WINAPI LoadMessageW(HMODULE,UINT,WORD,LPWSTR,INT);
  2573. VOID        WINAPI ScreenSwitchEnable16(WORD);
  2574. #define WC_DIALOG    (LPSTR)((DWORD)((WORD)( 0x8002)))
  2575. #ifdef __cplusplus
  2576. }
  2577. #endif
  2578. #endif /* _WINUSER_ */