hum.. there'S a lot of stuff here (btw Cookie, did you forget about WM_LBUTTONDBLCLK?
).
so, my first questio nwould be: what do you want to do exactly? because if you simply want to catch notifications sent from the treeview control, all you need to do is to catch WM_NOTIFY messages, cast lParam to a NMHDR structure and check if "code" is equal to NM_CLICK, NM_DBLCLK, etc...