To begin, sorry for the confusion. I tested with my method and Ctrl+B didn't seem to reach the Message loop, hopefully it works for you...
As for the keys not working... could the reason be you return 0 (= Message handled) for *all* WM_KEYDOWN messages, even if they don't correspond to a keybord shortcut?
Try returning 0 only when you do handle the message.
For prob. 1 sorry I cannot help >.< !