>>34さんのおっしゃる通りおま環なのでしょうけど
ホイールを1つ回すとWM_INPUTが連続で2回来ることが分かりました
TEのツリーや一覧、他のアプリでは2行スクロールしないのですけど

WM_INPUTが連続で来る間隔は最大でも16msのようなので、
PostMessageしているところをこうすれば回避できましたが
こんなコードをプルリクするのは無理筋ですよね・・・

DWORD dupguard = ::GetTickCount() - g_dwTickWheel;
if (dupguard > 20) {
::PostMessage(hwndMenu, WM_KEYDOWN, key, 0);
::PostMessage(hwndMenu, WM_KEYUP, key, 0);
g_dwTickWheel = ::GetTickCount();
}