Exemple #1
0
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;
}
Exemple #2
0
BOOL  ZTranslateMessageEx(  CONST MSG *lpMsg,  UINT flags)
{
    return TranslateMessageEx( lpMsg,   flags) ;
}