reactos操作系统实现(171)
TranslateMessage函数用来把虚拟键消息转换为字符消息,其实现的代码如下:
#001 BOOL WINAPI
#002 TranslateMessage(CONST MSG *lpMsg)
#003 {
在这个函数里只是简单地调用函数TranslateMessageEx。
#004 return(TranslateMessageEx((LPMSG)lpMsg, 0));
#005 }
TranslateMessageEx函数实现代码如下:
#001 BOOL WINAPI
#002 TranslateMessageEx(CONST MSG *lpMsg, DWORD unk)
#003 {
区分那些消息可以转换,下面只转换四种消息:按键按下、按键弹起、系统键按下、系统键弹起,其它消息不需要转换。
#004 switch (lpMsg->message)
#005 {
#006 case WM_KEYDOWN:
#007 case WM_KEYUP:
#008 case WM_SYSKEYDOWN:
#009 case WM_SYSKEYUP:
调用WIN32K.SYS里的内核函数NtUserTranslateMessage。
#010 return(NtUserTranslateMessage((LPMSG)lpMsg, (HKL)unk));
#011
#012 default:
#013 return FALSE;
#014 }
#015 }
#016