В разной литературе по разному... Умные люди в примерах применяют всегда. В win32.hlp сказано, что только при значении флага действия nCode<0 (тоесть nCode<HC_ACTION). Как правильно? или ткните в толковый faq.
как написано в документации: The CallNextHookEx function passes the hook information to the next hook procedure in the current hook chain. насколько я понимаю лучше вызывать всегда, если больше хуков нет, система сама разберется.