This details a bunch of problems I had with the Windows toolbar common control, and a bunch of problems with the MSDN Library (January 2000 edition) that didn't make it any easier.  Keep in mind this was my first experience trying to use a toolbar control.

First I tried to set up tooltips for the toolbar buttons: seems easy enough.  But the MSDN documentation for toolbar's tooltips had me casting pointers to the wrong structure and crashing, because links in the help system went to DISPINFO instead of TOOLTIP structures.

I got tooltips working pretty easily once I figured out what MSDN was doing wrong.

Then I wanted to play with the custom-draw facilities of the toolbar and found another set of inconsistencies.

First, I was just trying to handle the erase-background message myself to lay down a custom background.  The docs for toolbar custom-draw implied that I could return CDRF_NOTIFYPOSTERASE from the pre-draw phase, but when I did that I still didn't get the pre-erase notification... you have to go enable the style specifically for the control (TBSTYLE_CUSTOMERASE) when you create it, then return CDRF_NOTIFYPOSTERASE  from the pre-erase phase. Of course none of this was mentioned in MSDN Library help anywhere near the description of toolbar custom draw, or CDRF_NOTIFYPOSTERASE, but only in the description of toolbar window styles where TBSTYLE_CUSTOMERASE was defined.

Then, I wanted to figure out what part of the toolbar I was responsible for drawing, but the fields of NMCUSTOMDRAW that could tell you which button/rect you're working with are empty, at least on toolbar erase. So I have to redraw the whole window each time.