BOOL TabView::PreTranslateMessage(MSG* pMsg) { if( (pMsg->message == WM_KEYDOWN) || (pMsg->message == WM_KEYUP) || (pMsg->message == WM_SYSKEYDOWN) || (pMsg->message == WM_SYSKEYUP) ) { // Avoid calling ::TranslateMessage for WM_KEYDOWN, WM_KEYUP, // WM_SYSKEYDOWN and WM_SYSKEYUP // except for wParam == VK_PACKET, // which is sent by SendInput when pasting text if (pMsg->wParam == VK_PACKET) return FALSE; // except for wParam == VK_PROCESSKEY, // Input Method Manager if (pMsg->wParam == VK_PROCESSKEY) return FALSE; // private API TranslateMessageEx // called with the TM_POSTCHARBREAKS flag // return FALSE if no char is posted if( !TranslateMessageEx(pMsg, TM_POSTCHARBREAKS) ) { TRACE(L"TabView::PreTranslateMessage Msg not translated: 0x%04X, wParam: 0x%08X, lParam: 0x%08X\n", pMsg->message, pMsg->wParam, pMsg->lParam); ::DispatchMessage(pMsg); } else { wLastVirtualKey = static_cast<WORD>(pMsg->wParam); TRACE(L"TabView::PreTranslateMessage Msg translated: 0x%04X, wParam: 0x%08X, lParam: 0x%08X\n", pMsg->message, pMsg->wParam, pMsg->lParam); } return TRUE; } return FALSE; }
BOOL ZTranslateMessageEx( CONST MSG *lpMsg, UINT flags) { return TranslateMessageEx( lpMsg, flags) ; }