LRESULT CALLBACK WINAPIHookProc(int nCode,WPARAM wParam,LPARAM lParam)
{
if(nCode<0)
return CallNextHookEx(NULL,nCode,wParam,lParam);
switch(nCode)
{
case HC_ACTION:
switch(wParam)
{
case PM_NOREMOVE:
PMSG pmsg=(PMSG)lParam;
if(pmsg->message==WM_DEVICECHANGE)
{
if(pmsg->wParam == DBT_DEVNODES_CHANGED)
{
AfxMessageBox("aaa");
}
}
break;
}
}
return CallNextHookEx(NULL,nCode,wParam,lParam);
}
{
if(nCode<0)
return CallNextHookEx(NULL,nCode,wParam,lParam);
switch(nCode)
{
case HC_ACTION:
switch(wParam)
{
case PM_NOREMOVE:
PMSG pmsg=(PMSG)lParam;
if(pmsg->message==WM_DEVICECHANGE)
{
if(pmsg->wParam == DBT_DEVNODES_CHANGED)
{
AfxMessageBox("aaa");
}
}
break;
}
}
return CallNextHookEx(NULL,nCode,wParam,lParam);
}
LRESULT CALLBACK WINAPIHookProc(int nCode,WPARAM wParam,LPARAM lParam)
{ if(nCode<0)
return CallNextHookEx(NULL,nCode,wParam,lParam);
switch(nCode)
{
case HC_ACTION:
PMSG pmsg=(PMSG)lParam;
switch(wParam)
{
case PM_NOREMOVE:
if(pmsg->message==WM_DEVICECHANGE)
{
AfxMessageBox("aaa");
}
break;
}
}
return CallNextHookEx(NULL,nCode,wParam,lParam);
}
SetWindowsHookEx(WH_GETMESSAGE,WINAPIHookProc,glhInstance,0);
顺便问一下,你是HOOK系统中全部进程的调用吗?