2009/4/23 Mikołaj Zalewski mikolaj@zalewski.pl:
Hi, I think it would be interesting to test what TB_GETBUTTONINFO returns as iString for such a separator. That way we will know if the value is simply ignored, or it's something more complicated.
Forget what I said in my previous email. I was running the GETBUTTONINFO the wrong way. I'm now using r = SendMessage(hToolbar, TB_GETBUTTONTEXT, 0, (LPARAM)NULL); to get the button text length (not caring about the button text itself). I found a number of things.
(1) WINE always returns -1 in this case, which is wrong. I'll provide a patch for this (2) All versions of windows totally ignore the iString field for separators: valid or invalid, the resulting button text is always empty (-1 length).
The behaviour of an invalid iString pointer for buttons seems to be undefined instead, crashes on some versions on button insertion, in some other on GETBUTTONTEXT, in other cases not at all.