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  

posted @ 2009-12-28 23:07  ajuanabc  阅读(191)  评论(0编辑  收藏  举报