Win32.cs 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678
  1. //
  2. // System.Windows.Forms.Win32
  3. //
  4. // Provides easy access to commonly used Win32/WINELib contants and functions
  5. //
  6. // Author:
  7. // John Sohn ([email protected])
  8. // Dennis Hayes ([email protected])
  9. //
  10. using System.Runtime.InteropServices;
  11. namespace System.Windows.Forms {
  12. // holder for DLL Win32 DllImports
  13. public class Win32 {
  14. [StructLayout(LayoutKind.Sequential)]
  15. public class POINT {
  16. public long x;
  17. public long y;
  18. }
  19. [StructLayout(LayoutKind.Sequential)]
  20. public struct RECT {
  21. public long left;
  22. public long top;
  23. public long right;
  24. public long bottom;
  25. }
  26. [StructLayout(LayoutKind.Sequential)]
  27. public struct MSG {
  28. public IntPtr hwnd;
  29. public uint message;
  30. public IntPtr wParam;
  31. public IntPtr lParam;
  32. public uint time;
  33. public POINT pt;
  34. }
  35. [StructLayout(LayoutKind.Sequential)]
  36. public struct WNDCLASS {
  37. public int style;
  38. public WndProc lpfnWndProc;
  39. public int cbClsExtra;
  40. public int cbWndExtra;
  41. public IntPtr hInstance;
  42. public IntPtr hIcon;
  43. public IntPtr hCursor;
  44. public IntPtr hbrBackground;
  45. public string lpszMenuName;
  46. public string lpszClassName;
  47. }
  48. // helper function for calling RegisterClass
  49. public delegate IntPtr WndProc (IntPtr hwnd, int msg,
  50. IntPtr wParam, IntPtr lParam);
  51. [DllImport ("monostub.exe",
  52. CallingConvention = CallingConvention.StdCall,
  53. CharSet = CharSet.Auto)]
  54. public static extern int MonoRegisterClass (
  55. int style, WndProc lpfnWndProc, int cbClsExtra,
  56. int cbWndExtra, IntPtr hInstance, IntPtr hIcon,
  57. IntPtr hCursor, IntPtr hbrBackground,
  58. string lpszMenuName, string lpszClassName);
  59. [DllImport ("user32.dll",
  60. CallingConvention = CallingConvention.StdCall,
  61. CharSet = CharSet.Auto)]
  62. public static extern IntPtr CreateWindowExA (
  63. uint dwExStyle, string lpClassName,
  64. string lpWindowName, uint dwStyle,
  65. int x, int y, int nWidth, int nHeight,
  66. IntPtr hWndParent, IntPtr hMenu, IntPtr hInstance,
  67. ref object lpParam);
  68. [DllImport ("user32.dll", CallingConvention =
  69. CallingConvention.StdCall, CharSet = CharSet.Auto)]
  70. public extern static IntPtr DefWindowProcA (
  71. IntPtr hWnd, int Msg, IntPtr wParam, IntPtr lParam);
  72. [DllImport ("user32.dll", CallingConvention =
  73. CallingConvention.StdCall, CharSet = CharSet.Auto)]
  74. public extern static int DestroyWindow (IntPtr hWnd);
  75. [DllImport ("user32.dll", CallingConvention =
  76. CallingConvention.StdCall, CharSet = CharSet.Auto)]
  77. public static extern int ShowWindow (IntPtr hWnd,
  78. uint nCmdShow);
  79. [DllImport ("user32.dll", CallingConvention =
  80. CallingConvention.StdCall,CharSet = CharSet.Auto)]
  81. public static extern int GetMessageA (ref MSG msg, int hwnd,
  82. int msgFrom, int msgTo);
  83. [DllImport ("user32.dll", CallingConvention =
  84. CallingConvention.StdCall, CharSet = CharSet.Auto)]
  85. public static extern int TranslateMessage (ref MSG msg);
  86. [DllImport ("user32.dll", CallingConvention =
  87. CallingConvention.StdCall, CharSet = CharSet.Auto)]
  88. public static extern int DispatchMessageA (ref MSG msg);
  89. [DllImport ("user32.dll", CallingConvention =
  90. CallingConvention.StdCall, CharSet = CharSet.Auto)]
  91. public static extern int PeekMessageA (
  92. ref MSG msg, IntPtr hWnd, uint wMsgFilterMin,
  93. uint wMsgFilterMax, uint wRemoveMsg);
  94. [DllImport ("user32.dll", CallingConvention =
  95. CallingConvention.StdCall,
  96. CharSet = CharSet.Auto)]
  97. public extern static void PostQuitMessage (int nExitCode);
  98. [DllImport ("user32.dll", CallingConvention =
  99. CallingConvention.StdCall,
  100. CharSet = CharSet.Auto)]
  101. public extern static IntPtr SetActiveWindow (IntPtr hWnd);
  102. [DllImport ("user32.dll", CallingConvention =
  103. CallingConvention.StdCall,
  104. CharSet = CharSet.Auto)]
  105. public extern static int CloseWindow (IntPtr hWnd);
  106. [DllImport ("user32.dll", CallingConvention =
  107. CallingConvention.StdCall,
  108. CharSet = CharSet.Auto)]
  109. public extern static int SetWindowPos (
  110. IntPtr hWnd, IntPtr hWndInsertAfter,
  111. int X, int Y, int cx, int cy, int uFlags);
  112. [DllImport ("user32.dll",
  113. CallingConvention = CallingConvention.StdCall,
  114. CharSet = CharSet.Auto)]
  115. public static extern int MessageBoxA (
  116. IntPtr hWnd, string pText, string pCaption, uint uType);
  117. [DllImport ("user32.dll",
  118. CallingConvention = CallingConvention.StdCall,
  119. CharSet = CharSet.Auto)]
  120. public static extern IntPtr SetParent (
  121. IntPtr hWndChild, IntPtr hWndNewParent);
  122. [DllImport ("user32.dll",
  123. CallingConvention = CallingConvention.StdCall,
  124. CharSet = CharSet.Auto)]
  125. public static extern IntPtr GetParent (IntPtr hWnd);
  126. [DllImport ("user32.dll",
  127. CallingConvention = CallingConvention.StdCall,
  128. CharSet = CharSet.Auto)]
  129. public static extern bool SetWindowTextA (
  130. IntPtr hWnd, string lpString);
  131. [DllImport ("user32.dll",
  132. CallingConvention = CallingConvention.StdCall,
  133. CharSet = CharSet.Auto)]
  134. public static extern bool UpdateWindow (IntPtr hWnd);
  135. [DllImport ("user32.dll",
  136. CallingConvention = CallingConvention.StdCall,
  137. CharSet = CharSet.Auto)]
  138. public static extern uint GetBkColor (IntPtr hdc);
  139. [DllImport ("user32.dll",
  140. CallingConvention = CallingConvention.StdCall,
  141. CharSet = CharSet.Auto)]
  142. public static extern uint SetBkColor (IntPtr hdc, uint crColor);
  143. [DllImport ("user32.dll",
  144. CallingConvention = CallingConvention.StdCall,
  145. CharSet = CharSet.Auto)]
  146. public static extern IntPtr GetDC (IntPtr hWnd);
  147. [DllImport ("user32.dll",
  148. CallingConvention = CallingConvention.StdCall,
  149. CharSet = CharSet.Auto)]
  150. public static extern int ReleaseDC (IntPtr hWnd, IntPtr hDC);
  151. [DllImport ("user32.dll",
  152. CallingConvention = CallingConvention.StdCall,
  153. CharSet = CharSet.Auto)]
  154. public static extern IntPtr GetFocus();
  155. [DllImport ("user32.dll",
  156. CallingConvention = CallingConvention.StdCall,
  157. CharSet = CharSet.Auto)]
  158. public static extern IntPtr SetFocus (IntPtr hWnd);
  159. [DllImport ("user32.dll",
  160. CallingConvention = CallingConvention.StdCall,
  161. CharSet = CharSet.Auto)]
  162. public static extern bool IsWindowEnabled (IntPtr hWnd);
  163. [DllImport ("user32.dll",
  164. CallingConvention = CallingConvention.StdCall,
  165. CharSet = CharSet.Auto)]
  166. public static extern bool EnableWindow (
  167. IntPtr hWnd, bool bEnable);
  168. [DllImport ("user32.dll",
  169. CallingConvention = CallingConvention.StdCall,
  170. CharSet = CharSet.Auto)]
  171. public static extern bool GetWindowRect (
  172. IntPtr hWnd, ref RECT lpRect);
  173. [DllImport ("user32.dll",
  174. CallingConvention = CallingConvention.StdCall,
  175. CharSet = CharSet.Auto)]
  176. public static extern bool GetClientRect (
  177. IntPtr hWnd, ref RECT lpRect);
  178. [DllImport ("user32.dll",
  179. CallingConvention = CallingConvention.StdCall,
  180. CharSet = CharSet.Auto)]
  181. public static extern bool InvalidateRect (
  182. IntPtr hWnd, ref RECT lpRect, bool bErase);
  183. [DllImport ("user32.dll",
  184. CallingConvention = CallingConvention.StdCall,
  185. CharSet = CharSet.Auto)]
  186. public static extern IntPtr GetCapture ();
  187. [DllImport ("user32.dll",
  188. CallingConvention = CallingConvention.StdCall,
  189. CharSet = CharSet.Auto)]
  190. public static extern IntPtr SetCapture (IntPtr hWnd);
  191. [DllImport ("user32.dll",
  192. CallingConvention = CallingConvention.StdCall,
  193. CharSet = CharSet.Auto)]
  194. public static extern bool ReleaseCapture ();
  195. [DllImport ("user32.dll",
  196. CallingConvention = CallingConvention.StdCall,
  197. CharSet = CharSet.Auto)]
  198. public static extern int GetWindowTextA (
  199. IntPtr hWnd, ref String lpString, int nMaxCount);
  200. [DllImport ("user32.dll",
  201. CallingConvention = CallingConvention.StdCall,
  202. CharSet = CharSet.Auto)]
  203. public static extern int GetWindowTextLengthA (IntPtr hWnd);
  204. [DllImport ("user32.dll",
  205. CallingConvention = CallingConvention.StdCall,
  206. CharSet = CharSet.Auto)]
  207. public static extern bool GetCursorPos (ref POINT lpPoint);
  208. // Window Messages
  209. public const uint WM_NULL = 0x0000;
  210. public const uint WM_CREATE = 0x0001;
  211. public const uint WM_DESTROY = 0x0002;
  212. public const uint WM_MOVE = 0x0003;
  213. public const uint WM_SIZEWAIT = 0x0004;
  214. public const uint WM_SIZE = 0x0005;
  215. public const uint WM_ACTIVATE = 0x0006;
  216. public const uint WM_SETFOCUS = 0x0007;
  217. public const uint WM_KILLFOCUS = 0x0008;
  218. public const uint WM_SETVISIBLE = 0x0009;
  219. public const uint WM_ENABLE = 0x000a;
  220. public const uint WM_SETREDRAW = 0x000b;
  221. public const uint WM_SETTEXT = 0x000c;
  222. public const uint WM_GETTEXT = 0x000d;
  223. public const uint WM_GETTEXTLENGTH = 0x000e;
  224. public const uint WM_PAINT = 0x000f;
  225. public const uint WM_CLOSE = 0x0010;
  226. public const uint WM_QUERYENDSESSION = 0x0011;
  227. public const uint WM_QUIT = 0x0012;
  228. public const uint WM_QUERYOPEN = 0x0013;
  229. public const uint WM_ERASEBKGND = 0x0014;
  230. public const uint WM_SYSCOLORCHANGE = 0x0015;
  231. public const uint WM_ENDSESSION = 0x0016;
  232. public const uint WM_SYSTEMERROR = 0x0017;
  233. public const uint WM_SHOWWINDOW = 0x0018;
  234. public const uint WM_CTLCOLOR = 0x0019;
  235. public const uint WM_WININICHANGE = 0x001a;
  236. public const uint WM_SETTINGCHANGE = WM_WININICHANGE;
  237. public const uint WM_DEVMODECHANGE = 0x001b;
  238. public const uint WM_ACTIVATEAPP = 0x001c;
  239. public const uint WM_FONTCHANGE = 0x001d;
  240. public const uint WM_TIMECHANGE = 0x001e;
  241. public const uint WM_CANCELMODE = 0x001f;
  242. public const uint WM_SETCURSOR = 0x0020;
  243. public const uint WM_MOUSEACTIVATE = 0x0021;
  244. public const uint WM_CHILDACTIVATE = 0x0022;
  245. public const uint WM_QUEUESYNC = 0x0023;
  246. public const uint WM_GETMINMAXINFO = 0x0024;
  247. public const uint WM_PAINTICON = 0x0026;
  248. public const uint WM_ICONERASEBKGND = 0x0027;
  249. public const uint WM_NEXTDLGCTL = 0x0028;
  250. public const uint WM_ALTTABACTIVE = 0x0029;
  251. public const uint WM_SPOOLERSTATUS = 0x002a;
  252. public const uint WM_DRAWITEM = 0x002b;
  253. public const uint WM_MEASUREITEM = 0x002c;
  254. public const uint WM_DELETEITEM = 0x002d;
  255. public const uint WM_VKEYTOITEM = 0x002e;
  256. public const uint WM_CHARTOITEM = 0x002f;
  257. public const uint WM_SETFONT = 0x0030;
  258. public const uint WM_GETFONT = 0x0031;
  259. public const uint WM_SETHOTKEY = 0x0032;
  260. public const uint WM_GETHOTKEY = 0x0033;
  261. public const uint WM_FILESYSCHANGE = 0x0034;
  262. public const uint WM_ISACTIVEICON = 0x0035;
  263. public const uint WM_QUERYPARKICON = 0x0036;
  264. public const uint WM_QUERYDRAGICON = 0x0037;
  265. public const uint WM_QUERYSAVESTATE = 0x0038;
  266. public const uint WM_COMPAREITEM = 0x0039;
  267. public const uint WM_TESTING = 0x003a;
  268. public const uint WM_OTHERWINDOWCREATED = 0x003c;
  269. public const uint WM_OTHERWINDOWDESTROYED = 0x003d;
  270. public const uint WM_ACTIVATESHELLWINDOW = 0x003e;
  271. public const uint WM_COMPACTING = 0x0041;
  272. public const uint WM_COMMNOTIFY = 0x0044;
  273. public const uint WM_WINDOWPOSCHANGING = 0x0046;
  274. public const uint WM_WINDOWPOSCHANGED = 0x0047;
  275. public const uint WM_POWER = 0x0048;
  276. /* Win32 4.0 messages */
  277. public const uint WM_COPYDATA = 0x004a;
  278. public const uint WM_CANCELJOURNAL = 0x004b;
  279. public const uint WM_NOTIFY = 0x004e;
  280. public const uint WM_INPUTLANGCHANGEREQUEST = 0x0050;
  281. public const uint WM_INPUTLANGCHANGE = 0x0051;
  282. public const uint WM_TCARD = 0x0052;
  283. public const uint WM_HELP = 0x0053;
  284. public const uint WM_USERCHANGED = 0x0054;
  285. public const uint WM_NOTIFYFORMAT = 0x0055;
  286. public const uint WM_CONTEXTMENU = 0x007b;
  287. public const uint WM_STYLECHANGING = 0x007c;
  288. public const uint WM_STYLECHANGED = 0x007d;
  289. public const uint WM_DISPLAYCHANGE = 0x007e;
  290. public const uint WM_GETICON = 0x007f;
  291. public const uint WM_SETICON = 0x0080;
  292. /* Non-client system messages */
  293. public const uint WM_NCCREATE = 0x0081;
  294. public const uint WM_NCDESTROY = 0x0082;
  295. public const uint WM_NCCALCSIZE = 0x0083;
  296. public const uint WM_NCHITTEST = 0x0084;
  297. public const uint WM_NCPAINT = 0x0085;
  298. public const uint WM_NCACTIVATE = 0x0086;
  299. public const uint WM_GETDLGCODE = 0x0087;
  300. public const uint WM_SYNCPAINT = 0x0088;
  301. public const uint WM_SYNCTASK = 0x0089;
  302. /* Non-client mouse messages */
  303. public const uint WM_NCMOUSEMOVE = 0x00a0;
  304. public const uint WM_NCLBUTTONDOWN = 0x00a1;
  305. public const uint WM_NCLBUTTONUP = 0x00a2;
  306. public const uint WM_NCLBUTTONDBLCLK = 0x00a3;
  307. public const uint WM_NCRBUTTONDOWN = 0x00a4;
  308. public const uint WM_NCRBUTTONUP = 0x00a5;
  309. public const uint WM_NCRBUTTONDBLCLK = 0x00a6;
  310. public const uint WM_NCMBUTTONDOWN = 0x00a7;
  311. public const uint WM_NCMBUTTONUP = 0x00a8;
  312. public const uint WM_NCMBUTTONDBLCLK = 0x00a9;
  313. public const uint WM_NCXBUTTONDOWN = 0x00ab;
  314. public const uint WM_NCXBUTTONUP = 0x00ac;
  315. public const uint WM_NCXBUTTONDBLCLK = 0x00ad;
  316. /* Keyboard messages */
  317. public const uint WM_KEYDOWN = 0x0100;
  318. public const uint WM_KEYUP = 0x0101;
  319. public const uint WM_CHAR = 0x0102;
  320. public const uint WM_DEADCHAR = 0x0103;
  321. public const uint WM_SYSKEYDOWN = 0x0104;
  322. public const uint WM_SYSKEYUP = 0x0105;
  323. public const uint WM_SYSCHAR = 0x0106;
  324. public const uint WM_SYSDEADCHAR = 0x0107;
  325. public const uint WM_KEYFIRST = WM_KEYDOWN;
  326. public const uint WM_KEYLAST = 0x0108;
  327. /* Win32 4.0 messages for IME */
  328. public const uint IME_STARTCOMPOSITION = 0x010d;
  329. public const uint IME_ENDCOMPOSITION = 0x010e;
  330. public const uint IME_COMPOSITION = 0x010f;
  331. public const uint IME_KEYLAST = 0x010f;
  332. public const uint WM_INITDIALOG = 0x0110;
  333. public const uint WM_COMMAND = 0x0111;
  334. public const uint WM_SYSCOMMAND = 0x0112;
  335. public const uint WM_TIMER = 0x0113;
  336. public const uint WM_SYSTIMER = 0x0118;
  337. /* scroll messages */
  338. public const uint WM_HSCROLL = 0x0114;
  339. public const uint WM_VSCROLL = 0x0115;
  340. /* Menu messages */
  341. public const uint WM_INITMENU = 0x0116;
  342. public const uint WM_INITMENUPOPUP = 0x0117;
  343. public const uint WM_MENUSELECT = 0x011F;
  344. public const uint WM_MENUCHAR = 0x0120;
  345. public const uint WM_ENTERIDLE = 0x0121;
  346. public const uint WM_MENURBUTTONUP = 0x0122;
  347. public const uint WM_MENUDRAG = 0x0123;
  348. public const uint WM_MENUGETOBJECT = 0x0124;
  349. public const uint WM_UNINITMENUPOPUP = 0x0125;
  350. public const uint WM_MENUCOMMAND = 0x0126;
  351. public const uint WM_CHANGEUISTATE = 0x0127;
  352. public const uint WM_UPDATEUISTATE = 0x0128;
  353. public const uint WM_QUERYUISTATE = 0x0129;
  354. public const uint WM_LBTRACKPOINT = 0x0131;
  355. /* Win32 CTLCOLOR messages */
  356. public const uint WM_CTLCOLORMSGBOX = 0x0132;
  357. public const uint WM_CTLCOLOREDIT = 0x0133;
  358. public const uint WM_CTLCOLORLISTBOX = 0x0134;
  359. public const uint WM_CTLCOLORBTN = 0x0135;
  360. public const uint WM_CTLCOLORDLG = 0x0136;
  361. public const uint WM_CTLCOLORSCROLLBAR = 0x0137;
  362. public const uint WM_CTLCOLORSTATIC = 0x0138;
  363. /* Mouse messages */
  364. public const uint WM_MOUSEMOVE = 0x0200;
  365. public const uint WM_LBUTTONDOWN = 0x0201;
  366. public const uint WM_LBUTTONUP = 0x0202;
  367. public const uint WM_LBUTTONDBLCLK = 0x0203;
  368. public const uint WM_RBUTTONDOWN = 0x0204;
  369. public const uint WM_RBUTTONUP = 0x0205;
  370. public const uint WM_RBUTTONDBLCLK = 0x0206;
  371. public const uint WM_MBUTTONDOWN = 0x0207;
  372. public const uint WM_MBUTTONUP = 0x0208;
  373. public const uint WM_MBUTTONDBLCLK = 0x0209;
  374. public const uint WM_MOUSEWHEEL = 0x020A;
  375. public const uint WM_XBUTTONDOWN = 0x020B;
  376. public const uint WM_XBUTTONUP = 0x020C;
  377. public const uint WM_XBUTTONDBLCLK = 0x020D;
  378. public const uint WM_MOUSEFIRST = 0x0200;
  379. public const uint WM_MOUSELAST = 0x020D;
  380. public const uint WM_WHEEL_DELTA = 120;
  381. public const uint WM_WHEEL_PAGESCROLL = 65535;
  382. public const uint WM_PARENTNOTIFY = 0x0210;
  383. public const uint WM_ENTERMENULOOP = 0x0211;
  384. public const uint WM_EXITMENULOOP = 0x0212;
  385. public const uint WM_NEXTMENU = 0x0213;
  386. /* Win32 4.0 messages */
  387. public const uint WM_SIZING = 0x0214;
  388. public const uint WM_CAPTURECHANGED = 0x0215;
  389. public const uint WM_MOVING = 0x0216;
  390. public const uint WM_POWERBROADCAST = 0x0218;
  391. public const uint WM_DEVICECHANGE = 0x0219;
  392. /* wParam for WM_SIZING message */
  393. public const uint WMSZ_LEFT = 1;
  394. public const uint WMSZ_RIGHT = 2;
  395. public const uint WMSZ_TOP = 3;
  396. public const uint WMSZ_TOPLEFT = 4;
  397. public const uint WMSZ_TOPRIGHT = 5;
  398. public const uint WMSZ_BOTTOM = 6;
  399. public const uint WMSZ_BOTTOMLEFT = 7;
  400. public const uint WMSZ_BOTTOMRIGHT = 8;
  401. /* MDI messages */
  402. public const uint WM_MDICREATE = 0x0220;
  403. public const uint WM_MDIDESTROY = 0x0221;
  404. public const uint WM_MDIACTIVATE = 0x0222;
  405. public const uint WM_MDIRESTORE = 0x0223;
  406. public const uint WM_MDINEXT = 0x0224;
  407. public const uint WM_MDIMAXIMIZE = 0x0225;
  408. public const uint WM_MDITILE = 0x0226;
  409. public const uint WM_MDICASCADE = 0x0227;
  410. public const uint WM_MDIICONARRANGE = 0x0228;
  411. public const uint WM_MDIGETACTIVE = 0x0229;
  412. public const uint WM_MDIREFRESHMENU = 0x0234;
  413. /* D&D messages */
  414. public const uint WM_DROPOBJECT = 0x022A;
  415. public const uint WM_QUERYDROPOBJECT = 0x022B;
  416. public const uint WM_BEGINDRAG = 0x022C;
  417. public const uint WM_DRAGLOOP = 0x022D;
  418. public const uint WM_DRAGSELECT = 0x022E;
  419. public const uint WM_DRAGMOVE = 0x022F;
  420. public const uint WM_MDISETMENU = 0x0230;
  421. public const uint WM_ENTERSIZEMOVE = 0x0231;
  422. public const uint WM_EXITSIZEMOVE = 0x0232;
  423. public const uint WM_DROPFILES = 0x0233;
  424. /* Win32 4.0 messages for IME */
  425. public const uint IME_SETCONTEXT = 0x0281;
  426. public const uint IME_NOTIFY = 0x0282;
  427. public const uint IME_CONTROL = 0x0283;
  428. public const uint IME_COMPOSITIONFULL = 0x0284;
  429. public const uint IME_SELECT = 0x0285;
  430. public const uint IME_CHAR = 0x0286;
  431. /* Win32 5.0 messages for IME */
  432. public const uint IME_REQUEST = 0x0288;
  433. /* Win32 4.0 messages for IME */
  434. public const uint IME_KEYDOWN = 0x0290;
  435. public const uint IME_KEYUP = 0x0291;
  436. /* Clipboard command messages */
  437. public const uint WM_CUT = 0x0300;
  438. public const uint WM_COPY = 0x0301;
  439. public const uint WM_PASTE = 0x0302;
  440. public const uint WM_CLEAR = 0x0303;
  441. public const uint WM_UNDO = 0x0304;
  442. /* Clipboard owner messages */
  443. public const uint WM_RENDERFORMAT = 0x0305;
  444. public const uint WM_RENDERALLFORMATS = 0x0306;
  445. public const uint WM_DESTROYCLIPBOARD = 0x0307;
  446. /* Clipboard viewer messages */
  447. public const uint WM_DRAWCLIPBOARD = 0x0308;
  448. public const uint WM_PAINTCLIPBOARD = 0x0309;
  449. public const uint WM_VSCROLLCLIPBOARD = 0x030A;
  450. public const uint WM_SIZECLIPBOARD = 0x030B;
  451. public const uint WM_ASKCBFORMATNAME = 0x030C;
  452. public const uint WM_CHANGECBCHAIN = 0x030D;
  453. public const uint WM_HSCROLLCLIPBOARD = 0x030E;
  454. public const uint WM_QUERYNEWPALETTE = 0x030F;
  455. public const uint WM_PALETTEISCHANGING = 0x0310;
  456. public const uint WM_PALETTECHANGED = 0x0311;
  457. public const uint WM_HOTKEY = 0x0312;
  458. public const uint WM_PRINT = 0x0317;
  459. public const uint WM_PRINTCLIENT = 0x0318;
  460. public const uint WM_PENWINFIRST = 0x0380;
  461. public const uint WM_PENWINLAST = 0x038F;
  462. public const uint WM_APP = 0x8000;
  463. public const int WM_MOUSEHOVER = 0x02A1;
  464. public const int WM_MOUSELEAVE = 0x02A3;
  465. // Window Styles
  466. public const uint WS_OVERLAPPED = 0x00000000;
  467. public const uint WS_POPUP = 0x80000000;
  468. public const uint WS_CHILD = 0x40000000;
  469. public const uint WS_MINIMIZE = 0x20000000;
  470. public const uint WS_VISIBLE = 0x10000000;
  471. public const uint WS_DISABLED = 0x08000000;
  472. public const uint WS_CLIPSIBLINGS = 0x04000000;
  473. public const uint WS_CLIPCHILDREN = 0x02000000;
  474. public const uint WS_MAXIMIZE = 0x01000000;
  475. public const uint WS_CAPTION = 0x00C00000;
  476. public const uint WS_BORDER = 0x00800000;
  477. public const uint WS_DLGFRAME = 0x00400000;
  478. public const uint WS_VSCROLL = 0x00200000;
  479. public const uint WS_HSCROLL = 0x00100000;
  480. public const uint WS_SYSMENU = 0x00080000;
  481. public const uint WS_THICKFRAME = 0x00040000;
  482. public const uint WS_GROUP = 0x00020000;
  483. public const uint WS_TABSTOP = 0x00010000;
  484. public const uint WS_MINIMIZEBOX = 0x00020000;
  485. public const uint WS_MAXIMIZEBOX = 0x00010000;
  486. public const uint WS_OVERLAPPEDWINDOW = WS_OVERLAPPED |
  487. WS_CAPTION | WS_SYSMENU | WS_THICKFRAME|
  488. WS_MINIMIZEBOX | WS_MAXIMIZEBOX;
  489. // ShowWindow types
  490. public const uint SW_HIDE = 0;
  491. public const uint SW_SHOWNORMAL = 1;
  492. public const uint SW_NORMAL = 1;
  493. public const uint SW_SHOWMINIMIZED = 2;
  494. public const uint SW_SHOWMAXIMIZED = 3;
  495. public const uint SW_MAXIMIZE = 3;
  496. public const uint SW_SHOWNOACTIVATE = 4;
  497. public const uint SW_SHOW = 5;
  498. public const uint SW_MINIMIZE = 6;
  499. public const uint SW_SHOWMINNOACTIVE = 7;
  500. public const uint SW_SHOWNA = 8;
  501. public const uint SW_RESTORE = 9;
  502. public const uint SW_SHOWDEFAULT = 10;
  503. public const uint SW_FORCEMINIMIZE = 11;
  504. public const uint SW_MAX = 11;
  505. public const uint SW_NORMALNA = 0xCC;
  506. // SetWindowPos types
  507. public const uint SWP_NOSIZE = 0x0001;
  508. public const uint SWP_NOMOVE = 0x0002;
  509. public const uint SWP_NOZORDER = 0x0004;
  510. public const uint SWP_NOREDRAW = 0x0008;
  511. public const uint SWP_NOACTIVATE = 0x0010;
  512. public const uint SWP_FRAMECHANGED = 0x0020;
  513. public const uint SWP_SHOWWINDOW = 0x0040;
  514. public const uint SWP_HIDEWINDOW = 0x0080;
  515. public const uint SWP_NOCOPYBITS = 0x0100;
  516. public const uint SWP_NOOWNERZORDER = 0x0200;
  517. public const uint SWP_DRAWFRAME = SWP_FRAMECHANGED;
  518. public const uint SWP_NOREPOSITION = SWP_NOOWNERZORDER;
  519. public const uint SWP_NOSENDCHANGING = 0x0400;
  520. public const uint SWP_DEFERERASE = 0x2000;
  521. public const uint SWP_ASYNCWINDOWPOS = 0x4000;
  522. public const uint CS_VREDRAW = 0x0001;
  523. public const uint CS_HREDRAW = 0x0002;
  524. public const uint CS_KEYCVTWINDOW = 0x0004;
  525. public const uint CS_DBLCLKS = 0x0008;
  526. public const uint CS_OWNDC = 0x0020;
  527. public const uint CS_CLASSDC = 0x0040;
  528. public const uint CS_PARENTDC = 0x0080;
  529. public const uint CS_NOKEYCVT = 0x0100;
  530. public const uint CS_NOCLOSE = 0x0200;
  531. public const uint CS_SAVEBITS = 0x0800;
  532. public const uint CS_BYTEALIGNCLIENT = 0x1000;
  533. public const uint CS_BYTEALIGNWINDOW = 0x2000;
  534. public const uint CS_GLOBALCLASS = 0x4000;
  535. public const uint CS_IME = 0x00010000;
  536. // PeekMessage types
  537. public const uint PM_NOREMOVE = 0x0000;
  538. public const uint PM_REMOVE = 0x0001;
  539. public const uint PM_NOYIELD = 0x0002;
  540. // MessageBox types
  541. public const uint MB_OK = 0x00000000;
  542. public const uint MB_OKCANCEL = 0x00000001;
  543. public const uint MB_ABORTRETRYIGNORE = 0x00000002;
  544. public const uint MB_YESNOCANCEL = 0x00000003;
  545. public const uint MB_YESNO = 0x00000004;
  546. public const uint MB_RETRYCANCEL = 0x00000005;
  547. public const uint MB_TYPEMASK = 0x0000000F;
  548. public const int HWND_TOP = 0;
  549. public const int HWND_BOTTOM = 1;
  550. public const int HWND_TOPMOST = -1;
  551. public const int HWND_NOTOPMOST = -2;
  552. public const int HWND_MESSAGE = -3;
  553. // Static Control Styles
  554. public const int SS_LEFT = 0x00000000L;
  555. public const int SS_CENTER = 0x00000001L;
  556. public const int SS_RIGHT = 0x00000002L;
  557. public const int SS_ICON = 0x00000003L;
  558. public const int SS_BLACKRECT = 0x00000004L;
  559. public const int SS_GRAYRECT = 0x00000005L;
  560. public const int SS_WHITERECT = 0x00000006L;
  561. public const int SS_BLACKFRAME = 0x00000007L;
  562. public const int SS_GRAYFRAME = 0x00000008L;
  563. public const int SS_WHITEFRAME = 0x00000009L;
  564. public const int SS_SIMPLE = 0x0000000BL;
  565. public const int SS_LEFTNOWORDWRAP = 0x0000000CL;
  566. public const int SS_OWNERDRAW = 0x0000000DL;
  567. public const int SS_BITMAP = 0x0000000EL;
  568. public const int SS_ENHMETAFILE = 0x0000000FL;
  569. public const int SS_ETCHEDHORZ = 0x00000010L;
  570. public const int SS_ETCHEDVERT = 0x00000011L;
  571. public const int SS_ETCHEDFRAME = 0x00000012L;
  572. public const int SS_TYPEMASK = 0x0000001FL;
  573. public const int SS_NOPREFIX = 0x00000080L;
  574. public const int SS_NOTIFY = 0x00000100L;
  575. public const int SS_CENTERIMAGE = 0x00000200L;
  576. public const int SS_RIGHTJUST = 0x00000400L;
  577. public const int SS_REALSIZEIMAGE = 0x00000800L;
  578. public const int SS_SUNKEN = 0x00001000L;
  579. }
  580. }