Tab control TCM_SETITEMEXTRA (bugzilla #1046)

Alexandre Julliard julliard at
Thu Jun 3 12:55:48 CDT 2004

Jon Griffiths <jon_p_griffiths at> writes:

> It makes no difference; hardly anyone changes the the extra space and
> by default it's declared as an LPARAM in the TCITEM struct. If I
> declare it as BYTE[1] we still need to subtract its size and add in
> cBytes so the TAB_ITEM_SIZE() macros is still needed. And the default
> initialisation will still use sizeof(LPARAM) anyway.

It makes a big difference in code readability. It's pretty clear that
a BYTE[1] array is a variable size thing; nobody expects an LPARAM to
be variable size. Yes, Microsoft got it wrong in TCITEM, but that's
not a reason to make the same mistake in our internal structures.

Alexandre Julliard
julliard at

More information about the wine-devel mailing list