LRESULT CALLBACK LowLevelKeyboardProc(int nCode, WPARAM wParam, LPARAM lParam)
{
     // 拦截键盘的某些按键, 如果 g_bDisableKeyboard 为 TRUE 则拦截整个键盘按键
if (nCode >= HC_ACTION)
     {
         KBDLLHOOKSTRUCT* pStruct = (KBDLLHOOKSTRUCT*)lParam;
         if (g_bDisableKeyboard)
              if (g_lpfnKeyboardProc(wParam, pStruct))
   return CallNextHookEx(g_hHook, nCode, wParam, lParam);
              else
                   return true;
 
         LPDWORD tmpVirtualKey = g_lpdwVirtualKey;
         for (int i = 0; i < g_nLength; i++)
         {
              if (pStruct->vkCode == *tmpVirtualKey++)
                   if (g_lpfnKeyboardProc(wParam, pStruct))
   return CallNextHookEx(g_hHook, nCode, wParam, lParam);
                   else
                       return true;
         }
        
     }   
 
     // 调用系统中的下一个钩子
     return CallNextHookEx(g_hHook, nCode, wParam, lParam);
}