When the TreeView's indent property is set to something other than the default, the HitTest doesn't return the right result. Increase the indent value to say, 40, and you'll realise that the HitTest thinks that the plusminus (button in plain WinAPI jargon) is somewhat to the right of where the actual plusminus glyphs are drawn.
I've tried plain WinAPI TreeView_HitTest and it returned the same result, which leads me to think this is a miscalculation on Vista's part. TreeView_SetIndent doesn't actually indent the buttons, but Vista's calculation thinks the buttons are indented.
I've also recreated the TreeView control using plain WinAPI and found that the issue remains - leading me to conclude that this is fundamentally a Windows Vista bug. However, there's no way to submit a bug for Windows Vista and that MS Visual Studio is the main dev platform for Vista, it makes sense to submit the bug here.