what! no replies! ;P Anyway the problem is solved. in the line
GetToolBarCtrl().AddButtons(iButtonCount+iSeptratorCount, pAToolBarButton);
pAToolBarButton is an array of TBBUTTON structure where each structure represents a button on the tool bar. It seems that each field in TBBUTTON structure must be properly initialized in Vista. Well this is a good programming practice anyway. But in case you have left the less used fields like TBBUTTON.dwValue uninitialized, it would ignored when you application runs on XP. Where as in Vista you get an exception when you try to add the buttons to your toolbar control.
only dead fish swim with the stream