Dispatcher(Thread t) { base_thread = t; for (int i = 1; i <= (int)DispatcherPriority.Send; i++) { priority_queues [i] = new PokableQueue(); } wait = new EventWaitHandle(false, EventResetMode.AutoReset); hooks = new DispatcherHooks(this); }
private void Window_Loaded(object sender, RoutedEventArgs e) { if (this.dispatcher == null) { this.dispatcher = this.Dispatcher; this.dispatcherHooks = this.dispatcher.Hooks; } WindowInteropHelper wndHelper = new WindowInteropHelper(this); IntPtr wpfHwnd = wndHelper.Handle; _keyboardDriver = new RawKeyboard(wpfHwnd); _keyboardDriver.EnumerateDevices(); _devNotifyHandle = RegisterForDeviceNotifications(wpfHwnd); System.Windows.Interop.ComponentDispatcher.ThreadFilterMessage += new System.Windows.Interop.ThreadMessageEventHandler(ComponentDispatcher_ThreadFilterMessage); System.Windows.Interop.ComponentDispatcher.ThreadPreprocessMessage += new System.Windows.Interop.ThreadMessageEventHandler(ComponentDispatcher_ThreadPreprocessMessage); this.KeyPressed += new RawKeyboard.DeviceEventHandler(OnKeyPressed); }
Dispatcher (Thread t) { base_thread = t; for (int i = 1; i <= (int) DispatcherPriority.Send; i++) priority_queues [i] = new PokableQueue (); wait = new EventWaitHandle (false, EventResetMode.AutoReset); hooks = new DispatcherHooks (this); }