I see your point, there... it would be nice to bypass this thou, but since it is a minor detail i can leave with it...
It just occured to me !!! How do you diferentiate between different menus [status menu, contact context menu, etc], in order to add your own items. i didn't have a problem with the tray as there is only just one menu...
By just catching the TrackPopupMenuEx API is not enough for differentiating them, as all menus are childs of the contact list, things get created and destroyed all the time, so you dont have a contant handle,
And you do not catch the LoadMenu API [that 1 argument is actually the menu resource id] as i could hook it before changeing the hooking procedure...
So the only way i can think of is comparing the 1 menuitem's command ID to see which menu it is ??? i am i right here ???
Basically i cannot think of anything else