void HandleMsg(UINT message, WPARAM wParam, LPARAM lParam) { switch (message) { case WM_HID_DEV_ADDED: Enqueue(PluggedIn); StartKeyScan(); break; case WM_HID_DEV_REMOVED: Enqueue(Unplugged); StopKeyScan(); break; case WM_HID_KEY_DOWN: switch (wParam) { case 1: Enqueue(Key1); break; case 2: Enqueue(Key4); break; case 3: Enqueue(Key7); break; case 4: Enqueue(KeyStar); // Star key break; case 5: Enqueue(Key2); break; case 6: Enqueue(Key5); break; case 7: Enqueue(Key8); break; case 8: Enqueue(Key0); break; case 9: Enqueue(Key3); break; case 10: Enqueue(Key6); break; case 11: Enqueue(Key9); break; case 12: Enqueue(KeyHash); // Hash Key break; case 13: m_isOffHook = TRUE; // Dial key break; case 14: m_isOffHook = FALSE;; // Stop Dial key break; case 15: Enqueue(KeyC); // left Navigator Keys break; case 16: Enqueue(KeyD); // Right Navigator Keys } break; case WM_HID_KEY_UP: // Do Nothing break; case WM_HID_VOLUME_DOWN: if ((int)wParam == 1) Enqueue(VolumeUp); else Enqueue(VolumeDown); break; case WM_HID_VOLUME_UP: // Do Nothing break; case WM_HID_PLAYBACK_MUTE: // Not Implemented break; case WM_HID_RECORD_MUTE: // Not Implemented break; case WM_DEVICECHANGE: HandleUsbDeviceChange(wParam, lParam); break; case WM_HID_SHUTDOWN : CloseDevice(); DestroyWindow(m_hWnd); break; case WM_DESTROY : PostQuitMessage(0); break; } }
void HandleMsg(UINT message, WPARAM wParam, LPARAM lParam) { switch (message) { case WM_HID_DEV_ADDED : m_pluggedIn = true; StartKeyScan(); break; case WM_HID_DEV_REMOVED : m_pluggedIn = false; StopKeyScan(); break; case WM_HID_KEY_DOWN: switch (wParam) { case 1: Enqueue('1'); break; case 2: Enqueue('4'); break; case 3: Enqueue('7'); break; case 4: Enqueue('*'); break; case 5: Enqueue('2'); break; case 6: Enqueue('5'); break; case 7: Enqueue('8'); break; case 8: Enqueue('0'); break; case 9: Enqueue('3'); break; case 10: Enqueue('6'); break; case 11: Enqueue('9'); break; case 12: Enqueue('#'); break; case 13: m_isOffHook = true; // Dial key break; case 14: m_isOffHook = false;; // Stop Dial key break; case 15: Enqueue('l'); // left break; case 16: Enqueue('r'); // right } break; case WM_HID_KEY_UP: // Do Nothing break; case WM_HID_VOLUME_DOWN: if ((int)wParam == 1) Enqueue('u'); else Enqueue('d'); break; case WM_HID_VOLUME_UP: // Do Nothing break; case WM_HID_PLAYBACK_MUTE: break; case WM_HID_RECORD_MUTE: Enqueue('m'); break; case WM_DEVICECHANGE: HandleUsbDeviceChange(wParam, lParam); break; case WM_HID_SHUTDOWN : CloseDevice(); DestroyWindow(m_hWnd); break; case WM_DESTROY : PostQuitMessage(0); break; } }