The WM_HOTKEY message is posted when the user presses a hot key registered by the RegisterHotKey function. The message is placed at the top of the message queue associated with the thread that registered the hot key. WM_HOTKEY  
idHotKey = (int) wParam;              // identifier of hot key 
fuModifiers = (UINT) LOWORD(lParam);  // key-modifier flags 
uVirtKey = (UINT) HIWORD(lParam);     // virtual-key code 
 ParametersidHotKeyValue of wParam. Specifies the identifier of the hot key that generated the message. If the message was generated by a system-defined hot key, the idHotKey parameter will be one of the following values: Value Meaning
IDHOT_SNAPDESKTOP The "snap desktop" hot key was pressed.
IDHOT_SNAPWINDOW The "snap window" hot key was pressed.
 fuModifiersSpecifies the keys that were to be pressed in combination with the key specified by the nVirtKey parameter to generate the WM_HOTKEY message. The fuModifiers parameter can be a combination of the following values: Value Meaning
MOD_ALT Either ALT key was held down.
MOD_CONTROL Either CTRL key was held down.
MOD_SHIFT Either SHIFT key was held down.
MOD_WIN Either WINDOWS key was held down. These keys appear only on the Microsoft Ergonomic Keyboard and are labeled with the Microsoft Windows logo.
 uVirtKeySpecifies the virtual key code of the hot key. ResWM_HOTKEY is unrelated to the WM_GETHOTKEY and WM_SETHOTKEY hot keys. The WM_HOTKEY message is sent for generic hot keys while the WM_SET\GETHOTKEY messages relate to window activation hot keys.