Trapping Keystrokes Globally:
From the Winforms FAQ:
How do I process certain keys at the Form level, irrespective of which control has the focus?
When the Form.KeyPreview property is set to true, the Form's KeyPress, KeyDown and KeyUp events will be fired even before the Control with the focus' corresponding events. You may choose to forward these message to the Control after processing them in the Form's event handlers (this happens by default) or set the e.Handled property to true (in the event argument) to prevent the message from being sent to the Control with focus.
Calling C/C++ code:
.Net has the P/Invoke mechanism for calling native DLLs and COM interop for calling COM objects.