WinApi.cs 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. using System;
  2. using System.Runtime.InteropServices;
  3. namespace IntegrationTestApp.Embedding;
  4. internal class WinApi
  5. {
  6. [Flags]
  7. public enum WindowStyles : uint
  8. {
  9. WS_BORDER = 0x800000,
  10. WS_CAPTION = 0xc00000,
  11. WS_CHILD = 0x40000000,
  12. WS_CLIPCHILDREN = 0x2000000,
  13. WS_CLIPSIBLINGS = 0x4000000,
  14. WS_DISABLED = 0x8000000,
  15. WS_DLGFRAME = 0x400000,
  16. WS_GROUP = 0x20000,
  17. WS_HSCROLL = 0x100000,
  18. WS_MAXIMIZE = 0x1000000,
  19. WS_MAXIMIZEBOX = 0x10000,
  20. WS_MINIMIZE = 0x20000000,
  21. WS_MINIMIZEBOX = 0x20000,
  22. WS_OVERLAPPED = 0x0,
  23. WS_OVERLAPPEDWINDOW = WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME | WS_MINIMIZEBOX | WS_MAXIMIZEBOX,
  24. WS_POPUP = 0x80000000u,
  25. WS_POPUPWINDOW = WS_POPUP | WS_BORDER | WS_SYSMENU,
  26. WS_SYSMENU = 0x80000,
  27. WS_TABSTOP = 0x10000,
  28. WS_THICKFRAME = 0x40000,
  29. WS_VISIBLE = 0x10000000,
  30. WS_VSCROLL = 0x200000,
  31. WS_EX_DLGMODALFRAME = 0x00000001,
  32. WS_EX_NOPARENTNOTIFY = 0x00000004,
  33. WS_EX_NOREDIRECTIONBITMAP = 0x00200000,
  34. WS_EX_TOPMOST = 0x00000008,
  35. WS_EX_ACCEPTFILES = 0x00000010,
  36. WS_EX_TRANSPARENT = 0x00000020,
  37. WS_EX_MDICHILD = 0x00000040,
  38. WS_EX_TOOLWINDOW = 0x00000080,
  39. WS_EX_WINDOWEDGE = 0x00000100,
  40. WS_EX_CLIENTEDGE = 0x00000200,
  41. WS_EX_CONTEXTHELP = 0x00000400,
  42. WS_EX_RIGHT = 0x00001000,
  43. WS_EX_LEFT = 0x00000000,
  44. WS_EX_RTLREADING = 0x00002000,
  45. WS_EX_LTRREADING = 0x00000000,
  46. WS_EX_LEFTSCROLLBAR = 0x00004000,
  47. WS_EX_RIGHTSCROLLBAR = 0x00000000,
  48. WS_EX_CONTROLPARENT = 0x00010000,
  49. WS_EX_STATICEDGE = 0x00020000,
  50. WS_EX_APPWINDOW = 0x00040000,
  51. WS_EX_OVERLAPPEDWINDOW = WS_EX_WINDOWEDGE | WS_EX_CLIENTEDGE,
  52. WS_EX_PALETTEWINDOW = WS_EX_WINDOWEDGE | WS_EX_TOOLWINDOW | WS_EX_TOPMOST,
  53. WS_EX_LAYERED = 0x00080000,
  54. WS_EX_NOINHERITLAYOUT = 0x00100000,
  55. WS_EX_LAYOUTRTL = 0x00400000,
  56. WS_EX_COMPOSITED = 0x02000000,
  57. WS_EX_NOACTIVATE = 0x08000000
  58. }
  59. [DllImport("user32.dll", SetLastError = true)]
  60. public static extern bool DestroyWindow(IntPtr hwnd);
  61. [DllImport("kernel32.dll")]
  62. public static extern IntPtr GetModuleHandle(string? lpModuleName);
  63. [DllImport("user32.dll", SetLastError = true)]
  64. public static extern IntPtr CreateWindowEx(
  65. int dwExStyle,
  66. string lpClassName,
  67. string lpWindowName,
  68. uint dwStyle,
  69. int x,
  70. int y,
  71. int nWidth,
  72. int nHeight,
  73. IntPtr hWndParent,
  74. IntPtr hMenu,
  75. IntPtr hInstance,
  76. IntPtr lpParam);
  77. }