IKeyboardInputSink Interface


Provides a keyboard sink for components that manages tabbing, accelerators, and mnemonics across interop boundaries and between HWNDs. This interface implements keyboard message management in WPF-Win32 interoperation scenarios.

public interface class IKeyboardInputSink
public interface IKeyboardInputSink
type IKeyboardInputSink = interface
Public Interface IKeyboardInputSink


A keyboard sink handles input from particular subsets of the overall keyboard input model for Win32 and Windows Presentation Foundation (WPF), and enables some keyboard input to be processed and directed to HWNDs other than the one with current keyboard focus.

If your component contains other components, and maintains a tab order, your component must also implement IKeyboardInputSite and keep track of which component has focus.

For a discussion of the input architecture specifically implemented for Windows Forms interop, see Windows Forms and WPF Interoperability Input Architecture.

HwndSource and HwndHost each implement the IKeyboardInputSink interface, through explicit interface definitions. The explicit definitions supply default behaviors, and can also be accessed if necessary through an IKeyboardInputSink interface cast of HwndSource or HwndHost.



Gets or sets a reference to the component's container's IKeyboardInputSite interface.



Gets a value that indicates whether the sink or one of its contained components has focus.

OnMnemonic(MSG, ModifierKeys)

Called when one of the mnemonics (access keys) for this sink is invoked.


Registers the IKeyboardInputSink interface of a contained component.


Sets focus on either the first tab stop or the last tab stop of the sink.

TranslateAccelerator(MSG, ModifierKeys)

Processes keyboard input at the keydown message level.

TranslateChar(MSG, ModifierKeys)

Processes WM_CHAR, WM_SYSCHAR, WM_DEADCHAR, and WM_SYSDEADCHAR input messages before OnMnemonic(MSG, ModifierKeys) is called.

Applies to

See also