#define _WIN32_WINNT  0x0500 // 设置系统版本, 确保可以使用底层键盘钩子
#include "winuser.h"
#include <afxwin.h>
// 全局变量
HHOOK g_hHook = NULL; // 钩子句柄LRESULT CALLBACK SetHookProc(int nCode, WPARAM wParam, LPARAM lParam)
{
KBDLLHOOKSTRUCT *pkh = (KBDLLHOOKSTRUCT *)lParam ;

if (nCode==HC_ACTION) {
BOOL bCtrlKeyDown =
GetAsyncKeyState(VK_CONTROL)>>((sizeof(SHORT) * 8) - 1);

if ((pkh->vkCode==VK_ESCAPE && bCtrlKeyDown) ||     // Ctrl+Esc
(pkh->vkCode==VK_TAB && pkh->flags & LLKHF_ALTDOWN) ||   // Alt+TAB
(pkh->vkCode==VK_ESCAPE && pkh->flags & LLKHF_ALTDOWN)|| // Alt+Esc
(pkh->vkCode==VK_LWIN || pkh->vkCode==VK_RWIN)) { // Start Menu
if (wParam==WM_SYSKEYDOWN||wParam==WM_KEYDOWN)
return 1; // gobble it: go directly to jail, do not pass go
}
}
return CallNextHookEx(g_hHook, nCode, wParam, lParam);
}void startHook()
{
if (g_hHook == NULL)
         g_hHook = SetWindowsHookEx(WH_KEYBOARD,SetHookProc, NULL, NULL);
if (g_hHook == NULL)
return;
}就会出现这样的错误:
error C2065: 'KBDLLHOOKSTRUCT' : undeclared identifier
这是怎么回事?