Jon Griffiths jon_p_griffiths@yahoo.com 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.