Simon Said - 2020-04-30

Hello,

Because GetItemData() implementation for both CListViewCtrlT<> and
CTreeViewCtrlT<> returns 0 (NULL) when the call to SendMessage() fails,
it is not possible to know whether 0 represents a valid item data value
or an error code. The suggested changes leverage c++ 17 std::optional
https://www.bfilipek.com/2018/05/using-optional.html class to make
that distinction.

See attachement,

Thanks,

Simon-Pierre