   WM_INPUT message not being caught
  Hi,I read up on MSDN how to implement Raw Input handling. I only want to handle the mouse buttons for now, just to get it working. Now, I've done the following.../*********** * Register Mouse as a raw input device **/RAWINPUTDEVICE l_aRawInputDevices[1]; //only one RID will be registeredl_aRawInputDevices[0].usUsagePage = HID_USAGE_PAGE_GENERIC; //0x01l_aRawInputDevices[0].usUsage = HID_USAGE_GENERIC_MOUSE;  //0x02l_aRawInputDevices[0].dwFlags = RIDEV_NOLEGACY;   // i've also tried just specifying RIDEV_INPUTSINK l_aRawInputDevices[0].hwndTarget = 0/*l_hWindow*/;   // I've tried with and without specifying the window which is applicableif( RegisterRawInputDevices( l_aRawInputDevices, 1, sizeof(l_aRawInputDevices[0]) ) == false ){System::Windows::Forms::MessageBox::Show( "Could not Register HID" );}Now, for our application, we've registered to the Application::Idle event in which we "Run" and handle our Windows Messaging. Something like this....void Class::AppIdle( Object^ sender, EventArgs^ e ){MSG l_Msg;MSG l_MouseMsg;while ( !PeekMessage(&l_Msg, 0, 0, 0, 0) ) // No message is recieved{   ....   ENGINE->Run(); //updates, culls, draws etc.}if ( ::PeekMessage( &l_MouseMsg, 0/*this->m_hRenderWindowHandle*/, 0, 0, 0/*PM_REMOVE*/ ) )   // here I've also specified with {    //and without the window handle switch( l_MouseMsg.message ) {    case WM_INPUT:{   // it does not go in here   System::Diagnostics::Trace::WriteLine( "WM_INPUT" );   break;   }} }}It does not switch into the WM_INPUT case when I to anything with the mouse (clicking away and moving it around the window). This is how I've been handling mouse inputs thus far (within the same AppIdle funtion) which works well enough (although it does not always catch the button up case - which is the reason I'm trying WM_INPUT)if ( ::PeekMessage( &l_MouseMsg, this->m_hRenderWindowHandle, 513, 517, 0/*PM_REMOVE*/ ) ){switch( l_MouseMsg.message ){case WM_LBUTTONDOWN  :{ENGINEMANAGER->GetInputDevice()->SetMouseButtonDown( 0, true );break;}case WM_LBUTTONUP :{ENGINEMANAGER->GetInputDevice()->SetMouseButtonDown( 0, false );ENGINEMANAGER->GetInputDevice()->SetMouseButtonClicked( 0, true );break;}case WM_RBUTTONUP :{ENGINEMANAGER->GetInputDevice()->SetMouseButtonDown( 1, false );ENGINEMANAGER->GetInputDevice()->SetMouseButtonClicked( 1, true );break;}default :{break;}}}Any advise what I'm doing wrong that the switch does not catch the WM_INPUT case?   