You can use GetKeyState() in you WM_KEYDOWN processing to check the state of the shift key; or you can simply process the WM_KEYDOWN message and check the wParam parameter for VK_SHIFT and then use SendMessage() to post a new message with VK_CONTROL.