user32.h 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554
  1. #ifndef USER32_H
  2. #define USER32_H
  3. #include "minwin.h"
  4. #ifdef UNICODE
  5. #define MessageBox MessageBoxW
  6. #define LoadCursor LoadCursorW
  7. #define RegisterClassEx RegisterClassExW
  8. #define SetWindowLongPtr SetWindowLongPtrW
  9. #define GetWindowLongPtr GetWindowLongPtrW
  10. #define DefWindowProc DefWindowProcW
  11. #define CreateWindowEx CreateWindowExW
  12. #define PeekMessage PeekMessageW
  13. #define DispatchMessage DispatchMessageW
  14. #else
  15. #define MessageBox MessageBoxA
  16. #define LoadCursor LoadCursorA
  17. #define RegisterClassEx RegisterClassExA
  18. #define SetWindowLongPtr SetWindowLongPtrA
  19. #define GetWindowLongPtr GetWindowLongPtrA
  20. #define DefWindowProc DefWindowProcA
  21. #define CreateWindowEx CreateWindowExA
  22. #define PeekMessage PeekMessageA
  23. #define DispatchMessage DispatchMessageA
  24. #endif
  25. #define IDC_APPSTARTING MAKEINTRESOURCE(32650)
  26. #define IDC_ARROW MAKEINTRESOURCE(32512)
  27. #define IDC_CROSS MAKEINTRESOURCE(32515)
  28. #define IDC_HAND MAKEINTRESOURCE(32649)
  29. #define IDC_HELP MAKEINTRESOURCE(32651)
  30. #define IDC_IBEAM MAKEINTRESOURCE(32513)
  31. #define IDC_ICON MAKEINTRESOURCE(32641)
  32. #define IDC_NO MAKEINTRESOURCE(32648)
  33. #define IDC_SIZE MAKEINTRESOURCE(32640)
  34. #define IDC_SIZEALL MAKEINTRESOURCE(32646)
  35. #define IDC_SIZENESW MAKEINTRESOURCE(32643)
  36. #define IDC_SIZENS MAKEINTRESOURCE(32645)
  37. #define IDC_SIZENWSE MAKEINTRESOURCE(32642)
  38. #define IDC_SIZEWE MAKEINTRESOURCE(32644)
  39. #define IDC_UPARROW MAKEINTRESOURCE(32516)
  40. #define IDC_WAIT MAKEINTRESOURCE(32514)
  41. #define GWL_EXSTYLE (-20)
  42. #define GWLP_HINSTANCE (-6)
  43. #define GWLP_HWNDPARENT (-8)
  44. #define GWLP_ID (-12)
  45. #define GWL_STYLE (-16)
  46. #define GWLP_USERDATA (-21)
  47. #define GWLP_WNDPROC (-4)
  48. #define DWLP_MSGRESULT 0
  49. #define DWLP_DLGPROG 8
  50. #define DWLP_USER 16
  51. #define MB_OK 0
  52. #define MB_ABORTRETRYIGNORE 0x2
  53. #define MB_CANCELTRYCONTINUE
  54. #define MB_HELP 0x4000
  55. #define MB_OKCANCEL 0x1
  56. #define MB_RETRYCANCEL 0x5
  57. #define MB_YESNO 0x4
  58. #define MB_YESNOCANCEL 0x3
  59. #define MB_ICONEXCLAMATION 0x30
  60. #define MB_ICONWARNING 0x30
  61. #define MB_ICONINFORMATION 0x40
  62. #define MB_ICONASTERISK 0x40
  63. #define MB_ICONQUESTION 0x20
  64. #define MB_ICONSTOP 0x10
  65. #define MB_ICONERROR 0x10
  66. #define MB_ICONHAND 0x10
  67. #define MB_APPLMODAL 0
  68. #define MB_SYSTEMMODAL 0x1000
  69. #define MB_TASKMODAL 0x2000
  70. #define MB_DEFAULT_DESKTOP_ONLY 0x20000
  71. #define MB_RIGHT 0x80000
  72. #define MB_RTLREADING 0x100000
  73. #define MB_SETFOREGROUND 0x10000
  74. #define MB_TOPMOST 0x40000
  75. #define MB_SERVICE_NOTIFICAITON 0x200000
  76. #define CS_VREDRAW 0x1
  77. #define CS_HREDRAW 0x2
  78. #define CS_DBLCLKS 0x8
  79. #define CS_OWNDC 0x20
  80. #define CS_CLASSDC 0x40
  81. #define CS_PARENTDC 0x80
  82. #define CS_NOCLOSE 0x200
  83. #define CS_SAVEBITS 0x800
  84. #define CS_BYTEALIGNCLIENT 0x1000
  85. #define CS_BYTEALIGNWINDOW 0x2000
  86. #define CS_GLOBALCLASS 0x4000
  87. #define CS_IME 0x10000
  88. #define CS_DROPSHADOW 0x20000
  89. #define SW_HIDE 0
  90. #define SW_SHOWNORMAL 1
  91. #define SW_NORMAL 1
  92. #define SW_SHOWMINIMIZED 2
  93. #define SW_SHOWMAXIMIZED 3
  94. #define SW_MAXIMIZE 3
  95. #define SW_SHOWNOACTIVATE 4
  96. #define SW_SHOW 5
  97. #define SW_MINIMIZE 6
  98. #define SW_SHOWMINNOACTIVE 7
  99. #define SW_SHOWNA 8
  100. #define SW_RESTORE 9
  101. #define SW_SHOWDEFAULT 10
  102. #define SW_FORCEMINIMIZE 11
  103. #define SW_MAX 11
  104. #define CW_USEDEFAULT (0x80000000)
  105. #define WS_OVERLAPPED (0x0)
  106. #define WS_MAXIMIZEBOX (0x10000)
  107. #define WS_TABSTOP (0x10000)
  108. #define WS_MINIMIZEBOX (0x20000)
  109. #define WS_GROUP (0x20000)
  110. #define WS_THICKFRAME ( 0x40000)
  111. #define WS_SYSMENU (0x80000)
  112. #define WS_HSCROLL (0x100000)
  113. #define WS_VSCROLL (0x200000)
  114. #define WS_DLGFRAME (0x400000)
  115. #define WS_BORDER (0x800000)
  116. #define WS_CAPTION (0xC00000)
  117. #define WS_MAXIMIZE (0x1000000)
  118. #define WS_CLIPCHILDREN (0x2000000)
  119. #define WS_CLIPSIBLINGS (0x4000000)
  120. #define WS_DISABLED (0x8000000)
  121. #define WS_VISIBLE (0x10000000)
  122. #define WS_MINIMIZE (0x20000000)
  123. #define WS_CHILD (0x40000000)
  124. #define WS_POPUP (0x80000000)
  125. #define WS_TILED WS_OVERLAPPED
  126. #define WS_ICONIC WS_MINIMIZE
  127. #define WS_SIZEBOX WS_THICKFRAME
  128. #define WS_TILEDWINDOW WS_OVERLAPPEDWINDOW
  129. #define WS_OVERLAPPEDWINDOW (WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME | WS_MINIMIZEBOX | WS_MAXIMIZEBOX)
  130. #define WS_POPUPWINDOW (WS_POPUP | WS_BORDER | WS_SYSMENU)
  131. #define WS_CHILDWINDOW (WS_CHILD)
  132. #define WS_EX_LEFT (0x0)
  133. #define WS_EX_LTRREADING (0x0)
  134. #define WS_EX_RIGHTSCROLLBAR (0x0)
  135. #define WS_EX_DLGMODALFRAME (0x1)
  136. #define WS_EX_NOPARENTNOTIFY (0x4)
  137. #define WS_EX_TOPMOST (0x8)
  138. #define WS_EX_ACCEPTFILES (0x10)
  139. #define WS_EX_TRANSPARENT (0x20)
  140. #define WS_EX_MDICHILD (0x40)
  141. #define WS_EX_TOOLWINDOW (0x80)
  142. #define WS_EX_WINDOWEDGE (0x100)
  143. #define WS_EX_CLIENTEDGE (0x200)
  144. #define WS_EX_CONTEXTHELP (0x400)
  145. #define WS_EX_RIGHT (0x1000)
  146. #define WS_EX_RTLREADING (0x2000)
  147. #define WS_EX_LEFTSCROLLBAR (0x4000)
  148. #define WS_EX_CONTROLPARENT (0x10000)
  149. #define WS_EX_STATICEDGE (0x20000)
  150. #define WS_EX_APPWINDOW (0x40000)
  151. #define WS_EX_LAYERED (0x80000)
  152. #define WS_EX_NOINHERITLAYOUT (0x100000)
  153. #define WS_EX_NOREDIRECTIONBITMAP (0x200000)
  154. #define WS_EX_LAYOUTRTL (0x400000)
  155. #define WS_EX_COMPOSITED (0x2000000)
  156. #define WS_EX_NOACTIVATE (0x8000000)
  157. #define WS_EX_OVERLAPPEDWINDOW (WS_EX_WINDOWEDGE | WS_EX_CLIENTEDGE)
  158. #define WS_EX_PALETTEWINDOW (WS_EX_WINDOWEDGE | WS_EX_TOOLWINDOW | WS_EX_TOPMOST)
  159. #define PM_NOREMOVE 0
  160. #define PM_REMOVE 1
  161. #define PM_NOYIELD 2
  162. #define MK_LBUTTON 0x1
  163. #define MK_RBUTTON 0x2
  164. #define MK_SHIFT 0x4
  165. #define MK_CONTROL 0x8
  166. #define MK_MBUTTON 0x10
  167. #define MK_XBUTTON1 0x20
  168. #define MK_XBUTTON2 0x40
  169. #define WM_NULL 0x0000
  170. #define WM_CREATE 0x0001
  171. #define WM_DESTROY 0x0002
  172. #define WM_MOVE 0x0003
  173. #define WM_SIZE 0x0005
  174. #define WM_ACTIVATE 0x0006
  175. #define WM_SETFOCUS 0x0007
  176. #define WM_KILLFOCUS 0x0008
  177. #define WM_ENABLE 0x000A
  178. #define WM_SETREDRAW 0x000B
  179. #define WM_SETTEXT 0x000C
  180. #define WM_GETTEXT 0x000D
  181. #define WM_GETTEXTLENGTH 0x000E
  182. #define WM_PAINT 0x000F
  183. #define WM_CLOSE 0x0010
  184. #define WM_QUERYENDSESSION 0x0011
  185. #define WM_QUERYOPEN 0x0013
  186. #define WM_ENDSESSION 0x0016
  187. #define WM_QUIT 0x0012
  188. #define WM_ERASEBKGND 0x0014
  189. #define WM_SYSCOLORCHANGE 0x0015
  190. #define WM_SHOWWINDOW 0x0018
  191. #define WM_WININICHANGE 0x001A
  192. #define WM_SETTINGCHANGE WM_WININICHANGE
  193. #define WM_DEVMODECHANGE 0x001B
  194. #define WM_ACTIVATEAPP 0x001C
  195. #define WM_FONTCHANGE 0x001D
  196. #define WM_TIMECHANGE 0x001E
  197. #define WM_CANCELMODE 0x001F
  198. #define WM_SETCURSOR 0x0020
  199. #define WM_MOUSEACTIVATE 0x0021
  200. #define WM_CHILDACTIVATE 0x0022
  201. #define WM_QUEUESYNC 0x0023
  202. #define WM_GETMINMAXINFO 0x0024
  203. #define WM_PAINTICON 0x0026
  204. #define WM_ICONERASEBKGND 0x0027
  205. #define WM_NEXTDLGCTL 0x0028
  206. #define WM_SPOOLERSTATUS 0x002A
  207. #define WM_DRAWITEM 0x002B
  208. #define WM_MEASUREITEM 0x002C
  209. #define WM_DELETEITEM 0x002D
  210. #define WM_VKEYTOITEM 0x002E
  211. #define WM_CHARTOITEM 0x002F
  212. #define WM_SETFONT 0x0030
  213. #define WM_GETFONT 0x0031
  214. #define WM_SETHOTKEY 0x0032
  215. #define WM_GETHOTKEY 0x0033
  216. #define WM_QUERYDRAGICON 0x0037
  217. #define WM_COMPAREITEM 0x0039
  218. #define WM_GETOBJECT 0x003D
  219. #define WM_COMPACTING 0x0041
  220. #define WM_COMMNOTIFY 0x0044
  221. #define WM_WINDOWPOSCHANGING 0x0046
  222. #define WM_WINDOWPOSCHANGED 0x0047
  223. #define WM_POWER 0x0048
  224. #define PWR_OK 1
  225. #define PWR_FAIL (-1)
  226. #define PWR_SUSPENDREQUEST 1
  227. #define PWR_SUSPENDRESUME 2
  228. #define PWR_CRITICALRESUME 3
  229. #define WM_COPYDATA 0x004A
  230. #define WM_CANCELJOURNAL 0x004B
  231. #define WM_NOTIFY 0x004E
  232. #define WM_INPUTLANGCHANGEREQUEST 0x0050
  233. #define WM_INPUTLANGCHANGE 0x0051
  234. #define WM_TCARD 0x0052
  235. #define WM_HELP 0x0053
  236. #define WM_USERCHANGED 0x0054
  237. #define WM_NOTIFYFORMAT 0x0055
  238. #define WM_CONTEXTMENU 0x007B
  239. #define WM_STYLECHANGING 0x007C
  240. #define WM_STYLECHANGED 0x007D
  241. #define WM_DISPLAYCHANGE 0x007E
  242. #define WM_GETICON 0x007F
  243. #define WM_SETICON 0x0080
  244. #define WM_NCCREATE 0x0081
  245. #define WM_NCDESTROY 0x0082
  246. #define WM_NCCALCSIZE 0x0083
  247. #define WM_NCHITTEST 0x0084
  248. #define WM_NCPAINT 0x0085
  249. #define WM_NCACTIVATE 0x0086
  250. #define WM_GETDLGCODE 0x0087
  251. #define WM_SYNCPAINT 0x0088
  252. #define WM_NCMOUSEMOVE 0x00A0
  253. #define WM_NCLBUTTONDOWN 0x00A1
  254. #define WM_NCLBUTTONUP 0x00A2
  255. #define WM_NCLBUTTONDBLCLK 0x00A3
  256. #define WM_NCRBUTTONDOWN 0x00A4
  257. #define WM_NCRBUTTONUP 0x00A5
  258. #define WM_NCRBUTTONDBLCLK 0x00A6
  259. #define WM_NCMBUTTONDOWN 0x00A7
  260. #define WM_NCMBUTTONUP 0x00A8
  261. #define WM_NCMBUTTONDBLCLK 0x00A9
  262. #define WM_NCXBUTTONDOWN 0x00AB
  263. #define WM_NCXBUTTONUP 0x00AC
  264. #define WM_NCXBUTTONDBLCLK 0x00AD
  265. #define WM_INPUT_DEVICE_CHANGE 0x00fe
  266. #define WM_INPUT 0x00FF
  267. #define WM_KEYFIRST 0x0100
  268. #define WM_KEYDOWN 0x0100
  269. #define WM_KEYUP 0x0101
  270. #define WM_CHAR 0x0102
  271. #define WM_DEADCHAR 0x0103
  272. #define WM_SYSKEYDOWN 0x0104
  273. #define WM_SYSKEYUP 0x0105
  274. #define WM_SYSCHAR 0x0106
  275. #define WM_SYSDEADCHAR 0x0107
  276. #define WM_UNICHAR 0x0109
  277. #define WM_KEYLAST 0x0109
  278. #define UNICODE_NOCHAR 0xFFFF
  279. #define WM_IME_STARTCOMPOSITION 0x010D
  280. #define WM_IME_ENDCOMPOSITION 0x010E
  281. #define WM_IME_COMPOSITION 0x010F
  282. #define WM_IME_KEYLAST 0x010F
  283. #define WM_INITDIALOG 0x0110
  284. #define WM_COMMAND 0x0111
  285. #define WM_SYSCOMMAND 0x0112
  286. #define WM_TIMER 0x0113
  287. #define WM_HSCROLL 0x0114
  288. #define WM_VSCROLL 0x0115
  289. #define WM_INITMENU 0x0116
  290. #define WM_INITMENUPOPUP 0x0117
  291. #define WM_MENUSELECT 0x011F
  292. #define WM_GESTURE 0x0119
  293. #define WM_GESTURENOTIFY 0x011A
  294. #define WM_MENUCHAR 0x0120
  295. #define WM_ENTERIDLE 0x0121
  296. #define WM_MENURBUTTONUP 0x0122
  297. #define WM_MENUDRAG 0x0123
  298. #define WM_MENUGETOBJECT 0x0124
  299. #define WM_UNINITMENUPOPUP 0x0125
  300. #define WM_MENUCOMMAND 0x0126
  301. #define WM_CHANGEUISTATE 0x0127
  302. #define WM_UPDATEUISTATE 0x0128
  303. #define WM_QUERYUISTATE 0x0129
  304. #define WM_DEVICECHANGE 0x219
  305. #define WM_MDICREATE 0x220
  306. #define WM_MDIDESTROY 0x221
  307. #define WM_MDIACTIVATE 0x222
  308. #define WM_MDIRESTORE 0x223
  309. #define WM_MDINEXT 0x224
  310. #define WM_MDIMAXIMIZE 0x225
  311. #define WM_MDITILE 0x226
  312. #define WM_MDICASCADE 0x227
  313. #define WM_MDIICONARRANGE 0x228
  314. #define WM_MDIGETACTIVE 0x229
  315. #define WM_MDISETMENU 0x230
  316. #define WM_ENTERSIZEMOVE 0x231
  317. #define WM_EXITSIZEMOVE 0x232
  318. #define WM_DROPFILES 0x233
  319. #define WM_MDIREFRESHMENU 0x234
  320. #define WM_POINTERDEVICECHANGE 0x238
  321. #define WM_POINTERDEVICEINRANGE 0x239
  322. #define WM_POINTERDEVICEOUTOFRANGE 0x23a
  323. #define WM_TOUCH 0x240
  324. #define WM_NCPOINTERUPDATE 0x241
  325. #define WM_NCPOINTERDOWN 0x242
  326. #define WM_NCPOINTERUP 0x243
  327. #define WM_POINTERUPDATE 0x245
  328. #define WM_POINTERDOWN 0x246
  329. #define WM_POINTERUP 0x247
  330. #define WM_POINTERENTER 0x249
  331. #define WM_POINTERLEAVE 0x24a
  332. #define WM_POINTERACTIVATE 0x24b
  333. #define WM_POINTERCAPTURECHANGED 0x24c
  334. #define WM_TOUCHHITTESTING 0x24d
  335. #define WM_POINTERWHEEL 0x24e
  336. #define WM_POINTERHWHEEL 0x24f
  337. #define WM_IME_SETCONTEXT 0x281
  338. #define WM_IME_NOTIFY 0x282
  339. #define WM_IME_CONTROL 0x283
  340. #define WM_IME_COMPOSITIONFULL 0x284
  341. #define WM_IME_SELECT 0x285
  342. #define WM_IME_CHAR 0x286
  343. #define WM_IME_REQUEST 0x288
  344. #define WM_IME_KEYDOWN 0x290
  345. #define WM_IME_KEYUP 0x291
  346. #define WM_MOUSEHOVER 0x2A1
  347. #define WM_MOUSELEAVE 0x2A3
  348. #define WM_NCMOUSEHOVER 0x2A0
  349. #define WM_NCMOUSELEAVE 0x2A2
  350. #define WM_WTSSESSION_CHANGE 0x2B1
  351. #define WM_TABLET_FIRST 0x2c0
  352. #define WM_TABLET_LAST 0x2df
  353. #define WM_CUT 0x300
  354. #define WM_COPY 0x301
  355. #define WM_PASTE 0x302
  356. #define WM_CLEAR 0x303
  357. #define WM_UNDO 0x304
  358. #define WM_RENDERFORMAT 0x305
  359. #define WM_RENDERALLFORMATS 0x306
  360. #define WM_DESTROYCLIPBOARD 0x307
  361. #define WM_DRAWCLIPBOARD 0x308
  362. #define WM_PAINTCLIPBOARD 0x309
  363. #define WM_VSCROLLCLIPBOARD 0x30A
  364. #define WM_SIZECLIPBOARD 0x30B
  365. #define WM_ASKCBFORMATNAME 0x30C
  366. #define WM_CHANGECBCHAIN 0x30D
  367. #define WM_HSCROLLCLIPBOARD 0x30E
  368. #define WM_QUERYNEWPALETTE 0x30F
  369. #define WM_PALETTEISCHANGING 0x310
  370. #define WM_PALETTECHANGED 0x311
  371. #define WM_HOTKEY 0x312
  372. #define WM_PRINT 0x317
  373. #define WM_PRINTCLIENT 0x318
  374. #define WM_APPCOMMAND 0x319
  375. #define WM_THEMECHANGED 0x31A
  376. #define WM_CLIPBOARDUPDATE 0x31d
  377. #define WM_DWMCOMPOSITIONCHANGED 0x31e
  378. #define WM_DWMNCRENDERINGCHANGED 0x31f
  379. #define WM_DWMCOLORIZATIONCOLORCHANGED 0x320
  380. #define WM_DWMWINDOWMAXIMIZEDCHANGE 0x321
  381. #define WM_DWMSENDICONICTHUMBNAIL 0x323
  382. #define WM_DWMSENDICONICLIVEPREVIEWBITMAP 0x326
  383. #define WM_GETTITLEBARINFOEX 0x33f
  384. #define WM_HANDHELDFIRST 0x358
  385. #define WM_HANDHELDLAST 0x35F
  386. #define WM_AFXFIRST 0x360
  387. #define WM_AFXLAST 0x37F
  388. #define WM_PENWINFIRST 0x380
  389. #define WM_PENWINLAST 0x38F
  390. #define WM_APP 0x8000
  391. #define WM_USER 0x400
  392. #define WM_PARENTNOTIFY 0x210
  393. #define WM_ENTERMENULOOP 0x211
  394. #define WM_EXITMENULOOP 0x212
  395. #define WM_NEXTMENU 0x213
  396. #define WM_SIZING 0x214
  397. #define WM_CAPTURECHANGED 0x215
  398. #define WM_MOVING 0x216
  399. #define WM_POWERBROADCAST 0x218
  400. #define WM_CTLCOLORMSGBOX 0x132
  401. #define WM_CTLCOLOREDIT 0x133
  402. #define WM_CTLCOLORLISTBOX 0x134
  403. #define WM_CTLCOLORBTN 0x135
  404. #define WM_CTLCOLORDLG 0x136
  405. #define WM_CTLCOLORSCROLLBAR 0x137
  406. #define WM_CTLCOLORSTATIC 0x138
  407. #define WM_MOUSEFIRST 0x200
  408. #define WM_MOUSEMOVE 0x200
  409. #define WM_LBUTTONDOWN 0x201
  410. #define WM_LBUTTONUP 0x202
  411. #define WM_LBUTTONDBLCLK 0x203
  412. #define WM_RBUTTONDOWN 0x204
  413. #define WM_RBUTTONUP 0x205
  414. #define WM_RBUTTONDBLCLK 0x206
  415. #define WM_MBUTTONDOWN 0x207
  416. #define WM_MBUTTONUP 0x208
  417. #define WM_MBUTTONDBLCLK 0x209
  418. #define WM_MOUSEWHEEL 0x20A
  419. #define WM_XBUTTONDOWN 0x20B
  420. #define WM_XBUTTONUP 0x20C
  421. #define WM_XBUTTONDBLCLK 0x20D
  422. #define WM_MOUSEHWHEEL 0x20e
  423. #define GET_X_LPARAM(X) ((int)(short)LOWORD(X))
  424. #define GET_Y_LPARAM(X) ((int)(short)HIWORD(X))
  425. #define WHEEL_DELTA 120
  426. #define GET_WHEEL_DELTA_WPARAM(X) ((short)HIWORD(X))
  427. typedef struct tagMSG {
  428. HWND hwnd;
  429. UINT message;
  430. WPARAM wParam;
  431. LPARAM lParam;
  432. DWORD time;
  433. POINT pt;
  434. } MSG, *PMSG, *LPMSG;
  435. typedef struct tagCREATESTRUCT {
  436. LPVOID lpCreateParams;
  437. HINSTANCE hInstance;
  438. HMENU hMenu;
  439. HWND hwndParent;
  440. int cy;
  441. int cx;
  442. int y;
  443. int x;
  444. LONG style;
  445. LPCTSTR lpszName;
  446. LPCTSTR lpszClass;
  447. DWORD dwExStyle;
  448. } CREATESTRUCT, *LPCREATESTRUCT;
  449. typedef struct tagWNDCLASSEX {
  450. UINT cbSize;
  451. UINT style;
  452. WNDPROC lpfnWndProc;
  453. int cbClsExtra;
  454. int cbWndExtra;
  455. HINSTANCE hInstance;
  456. HICON hIcon;
  457. HCURSOR hCursor;
  458. HBRUSH hbrBackground;
  459. LPCTSTR lpszMenuName;
  460. LPCTSTR lpszClassName;
  461. HICON hIconSm;
  462. } WNDCLASSEX, *PWNDCLASSEX;
  463. HCURSOR WINAPI LoadCursor(HINSTANCE hInstance, LPCTSTR lpCursorName);
  464. int WINAPI MessageBox(HWND hWnd, LPCTSTR lpText, LPCTSTR lpCaption, UINT uType);
  465. ATOM WINAPI RegisterClassEx(const WNDCLASSEX *lpwcx);
  466. LONG_PTR WINAPI SetWindowLongPtr(HWND hWnd, int nIndex, LONG_PTR dwNewLong);
  467. LONG_PTR WINAPI GetWindowLongPtr(HWND hWnd, int nIndex);
  468. LRESULT WINAPI DefWindowProc(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam);
  469. BOOL WINAPI ValidateRect(HWND hWnd, const RECT *lpRect);
  470. HDC WINAPI GetDC(HWND hWnd);
  471. int WINAPI ReleaseDC(HWND hWnd, HDC hDC);
  472. BOOL WINAPI AdjustWindowRect(RECT *lpRect, DWORD dwStyle, BOOL bMenu);
  473. HWND WINAPI CreateWindowEx(DWORD dwExStyle,
  474. LPCTSTR lpClassName,
  475. LPCTSTR lpWindowName,
  476. DWORD dwStyle,
  477. int x,
  478. int y,
  479. int nWidth,
  480. int nHeight,
  481. HWND hWndParent,
  482. HMENU hMenu,
  483. HINSTANCE hInstance,
  484. LPVOID lpParam);
  485. BOOL WINAPI PeekMessage( LPMSG lpMsg,
  486. HWND hWnd,
  487. UINT wMsgFilterMin,
  488. UINT wMsgFilterMax,
  489. UINT wRemoveMsg);
  490. BOOL WINAPI TranslateMessage(const MSG *lpMsg);
  491. LRESULT WINAPI DispatchMessage(const MSG *lpmsg);
  492. BOOL WINAPI DestroyWindow(HWND hWnd);
  493. BOOL WINAPI ShowWindow(HWND hWnd, int nCmdShow);
  494. HMODULE WINAPI GetModuleHandle(LPCTSTR lpModuleName);
  495. FARPROC WINAPI GetProcAddress(HMODULE hModule, LPCSTR lpProcName);
  496. int WINAPI ShowCursor(BOOL bShow);
  497. BOOL WINAPI GetClientRect(HWND hWnd, LPRECT lpRect);
  498. BOOL WINAPI WaitMessage(void);
  499. #endif