public override int RunCore() { Message msg; int res; while ((res = User32Methods.GetMessage(out msg, IntPtr.Zero, 0, 0)) > 0) { User32Methods.TranslateMessage(ref msg); User32Methods.DispatchMessage(ref msg); } return(res); }
public override int RunCore() { Message msg; int res = 0; while (!Abort && (res = User32Methods.GetMessage(out msg, IntPtr.Zero, 0, 0)) > 0) { User32Methods.TranslateMessage(ref msg); User32Methods.DispatchMessage(ref msg); } Thread.Sleep(10); return(res); }
static int Main(string[] args) { var instanceHandle = Kernel32Methods.GetModuleHandle(IntPtr.Zero); var wc = new WindowClassEx { Size = (uint)Marshal.SizeOf <WindowClassEx>(), ClassName = "MainWindow", CursorHandle = User32Helpers.LoadCursor(IntPtr.Zero, SystemCursor.IDC_ARROW), IconHandle = User32Helpers.LoadIcon(IntPtr.Zero, SystemIcon.IDI_APPLICATION), Styles = WindowClassStyles.CS_HREDRAW | WindowClassStyles.CS_VREDRAW, BackgroundBrushHandle = new IntPtr((int)StockObject.WHITE_BRUSH), WindowProc = WindowProc, InstanceHandle = instanceHandle }; var resReg = User32Methods.RegisterClassEx(ref wc); if (resReg == 0) { Console.Error.WriteLine("registration failed"); return(-1); } var hwnd = User32Methods.CreateWindowEx(WindowExStyles.WS_EX_APPWINDOW, wc.ClassName, "Hello", WindowStyles.WS_OVERLAPPEDWINDOW, (int)CreateWindowFlags.CW_USEDEFAULT, (int)CreateWindowFlags.CW_USEDEFAULT, (int)CreateWindowFlags.CW_USEDEFAULT, (int)CreateWindowFlags.CW_USEDEFAULT, IntPtr.Zero, IntPtr.Zero, instanceHandle, IntPtr.Zero); if (hwnd == IntPtr.Zero) { Console.Error.WriteLine("window creation failed"); return(-1); } User32Methods.ShowWindow(hwnd, ShowWindowCommands.SW_SHOWNORMAL); User32Methods.UpdateWindow(hwnd); Message msg; int res; while ((res = User32Methods.GetMessage(out msg, IntPtr.Zero, 0, 0)) != 0) { User32Methods.TranslateMessage(ref msg); User32Methods.DispatchMessage(ref msg); } return(res); }
public override int RunCore() { Message msg; int res; while ((res = User32Methods.GetMessage(out msg, IntPtr.Zero, 0, 0)) > 0) { if (this.Preprocess(ref msg)) { User32Methods.TranslateMessage(ref msg); if (this.PostTranslate(ref msg)) { User32Methods.DispatchMessage(ref msg); } this.PostProcess(ref msg); } } return(res); }