It doesn't appear to be filling in the lParam value. The lParam value is set to 0 every time the LVM_GETITEM call is made
Code:
case WM_NOTIFY:
{
switch (((LPNMHDR) lParam)->code)
{
LPNMITEMACTIVATE nmitem;
LVITEM item;
case NM_DBLCLK:
nmitem = (LPNMITEMACTIVATE) lParam;
item.mask = LVIF_PARAM;
item.iItem = nmitem->iItem;
item.iSubItem = nmitem->iSubItem;
//SendMessage(hListView, LVM_GETITEM, 0, (LPARAM)&item);
ListView_GetItem(hListView, &item); // upon return, lParam is 0
GetData(item.lParam);
break;
...
Any ideas?