No, LVCOLUMN.iSubItem numbered sequentially from 0, from left to right, as you know. Yes, of course, it seems that this is not practical, since you should always specify the column number in order to do something with LVCOLUMN. Therefore, he simply returns to you what you already know.
It is hard to guess how this happened, except to note that the common controls were not exactly Microsoft. I suspect this might be related to LVS_EX_HEADERDRAGDROP in the list. This allows the user to reinstall columns by dragging and dropping them. Now the column index you pass to LVM_GETCOLUMN is a bit muddy, should you indicate the position or source column index? They went with the latter and used LVM_GETCOLUMNORDERARRAY if you need to know how the user arranged the columns.
Or they just mirror LVITEM.iSubItem so that the structures look similar, perhaps a little more likely. Do not worry about it.
source share