リストビューを使用したプログラムを作っています。
しまいたいデータの構造体へのポインタをpItemに入れ

LV_ITEM lvi;
lvi.mask = LVIF_TEXT;
lvi.iItem = i;
lvi.iSubItem = 0;
lvi.lParam = (LPARAM)pItem;
lvi.pszText = LPSTR_TEXTCALLBACK;
if (GetListCtrl().InsertItem(&lvi) == -1)return FALSE;

LPSTR_TEXTCALLBACKを使用して

void MyListView::OnGetdispinfo(NMHDR* pNMHDR, LRESULT* pResult) {
LV_DISPINFO* pDispInfo = (LV_DISPINFO*)pNMHDR;
を呼び出しています。

すると本来個々のpDispInfo->item.lParamにはしまいたいデータの構造体が
入っているはずだと思うのですが、null値になってしまっています。
どのような原因が考えられるでしょうか?