win32 编程中使用ListView控件,排序问题

问题遇到的现象和发生背景

win32 编程中使用ListView控件,禁用了表头点击排序,想用一个按钮点击时排序。

用代码块功能插入代码,请勿粘贴截图
        if (LOWORD(wParam) == IDC_BUTTON1)
        {
            ListView_SortItems(GetDlgItem(hDlg, IDC_LIST1), SortItemFunc, MAKELPARAM(4, 0));
        }
        break;
int CALLBACK SortItemFunc(LPARAM lParam1, LPARAM lParam2, LPARAM sortID)
{
//lParam1,lParam2 总是为NULL
    int nCol = LOWORD(sortID);    //要比较的列索引
    int nAcs = HIWORD(sortID);    //按升序或是降序排序
    int nRet = 0;

    if (nCol == 4)
    {
        LVITEM* pStu1 = (LVITEM*)lParam1;
        LVITEM* pStu2 = (LVITEM*)lParam2;
        nRet = _tccmp(pStu1->pszText, pStu2->pszText);
    }

    return (nAcs == 0 ? nRet : -nRet);
}
运行结果及报错内容

lParam1,lParam2 总是为NULL

我的解答思路和尝试过的方法

请问应该怎样才能正确调用排序函数,谢谢了

这里没有答案,谢谢了