/// <summary>Initialize a new window message-based keyboard device</summary> /// <param name="messageSource">Source the window messages are obtained from</param> internal WindowMessageKeyboard(IKeyboardMessageSource messageSource) { this.bufferKeyPressDelegate = new KeyboardKeyEventDelegate(BufferKeyPress); this.bufferKeyReleaseDelegate = new KeyboardKeyEventDelegate(BufferKeyRelease); this.bufferCharacterEntryDelegate = new KeyboardCharacterEventDelegate( BufferCharacterEntry ); this.messageSource = messageSource; this.messageSource.KeyPressed += this.bufferKeyPressDelegate; this.messageSource.KeyReleased += this.bufferKeyReleaseDelegate; this.messageSource.CharacterEntered += this.bufferCharacterEntryDelegate; }
/// <summary>Immediately releases all resources owned by the instance</summary> public void Dispose() { if (this.messageSource != null) { this.messageSource.CharacterEntered -= this.bufferCharacterEntryDelegate; this.messageSource.KeyReleased -= this.bufferKeyReleaseDelegate; this.messageSource.KeyPressed -= this.bufferKeyPressDelegate; this.messageSource = null; } }