HOOK消息,并修改的有关问题

HOOK消息,并修改的问题!
if(((DWORD)lParam&0x40000000)   &&   (HC_ACTION==nCode))
{
switch(wParam)
{
case   'Z ':
{
keybd_event(0x48,MapVirtualKey(0x48,0),0,0);
keybd_event(0x48,MapVirtualKey(0x48,0),KEYEVENTF_KEYUP,0);
break;
}
case   VK_TAB:
{
keybd_event(0x61,MapVirtualKey(0x61,0),0,0);
keybd_event(0x61,MapVirtualKey(0x61,0),KEYEVENTF_KEYUP,0);
break;
}
}
LRESULT   RetVal   =   CallNextHookEx(hkb,nCode,wParam,lParam);
return   RetVal;
原代码是这样的,当我按Z键的时候,先是输入了一个Z然后又输入了一个H
我怎么样让他按Z只输入H!
那个高手指点一下!


------解决方案--------------------
当输入 为 'z '不要调用LRESULT RetVal = CallNextHookEx(hkb,nCode,wParam,lParam);
传递消息,直接返回 true就可以了。