SetWindowsHookEx の使い方を教えてください。

WH_CALLWNDPROC とか、WH_GETMESSAGE
とか、フックの種類がいくつかあるようですが、
どういう場合にどのフックを使えばいいのか
ヘルプを読んでもよくわかりません。

こういうときにこのフックとか解説している
サイトがあれば教えてください。