Yes, I agree the docs are a bit lacking here, but it does say the mask value for SetItemState specifies which state bits to change. LVIS_SELECTED is a state bit, whereas LVIF_IMAGE is not. If you dig a little deeper and look at the version that takes a LVITEM structure as a parameter, and lookup the LVITEM structure itself, you will find one of the parameters is stateMask, and the decription of that is as follow:

Value specifying which bits of the state member will be retrieved or modified. For example, setting this member to LVIS_SELECTED will cause only the item's selection state to be retrieved.
This member allows you to modify one or more item states without having to retrieve all of the item states first. For example, setting this member to LVIS_SELECTED and state to zero will cause the item's selection state to be cleared, but none of the other states will be affected.


From this I am making a small leap in thinking that the same thing goes for the mask value of SetItemState since it says the mask value only specifies which state bits to change (as does the decription of stateMask), and that the docs should probably say stateMask rather than mask for that parameter, to be more clear (a list of valid mask value's would be nice too).

If you wanna to be completely safe then just do it using an LVITEM structure instead, but personally I think that this is what is meant for the mask value for SetItemState, otherwise you really have nothing to use for the mask value in SetItemState, and the function is almost useless.

Russ