|This is an interesting question and I have googled a little bit but did not found any satisfying answer.
I have always used the same numbers for column and subitem. I have just tried different subitem values (including -1) with a report list. But everything was working as expected, even with column re-ordering by drag & drop and an owner-drawn list.
So it seems that the subitem number passed by various functions is set to the column number and not to the subitem number.
However, this may be not always true. The
LVN_GETDISPINFO notification message passes a
LVITEM structure which may contain the subitem number passed when inserting the column. But I didn't checked this so far.