ListView_GetItem() returns 错误

ListView_GetItem() returns FALSE

我有一个 Windows 应用程序,我在其中调用 ListView_GetItem() 并且它 returns FALSE(错误)。请参阅下面的代码。传递的值是sel_index的第10行和Col的1,buf足够大,GetLastError() returns 0.
Windows的在线文档ListView_GetItem 宏不会说明失败的原因或可能的错误代码。 谁能告诉我可能出了什么问题?
我用

创建了 ListView
hList = CreateWindow(WC_LISTVIEW, "", WS_CHILD | WS_BORDER | LVS_REPORT | WS_HSCROLL | WS_VSCROLL | WS_EX_CLIENTEDGE, ... etc


{
   LV_ITEM Item;              // List view item structure
   char buf[10];

   Item.mask=LVIF_TEXT;
   Item.pszText = buf;     // buffer
   Item.iItem = sel_index;    // selected line
   Item.iSubItem = Col;       // want subitem
   if(!ListView_GetItem(hList, &Item))
   {
       PrintErr("\r\nGetSubItem failed, error=%d",GetLastError());
       return "";
   }
   return (Item.pszText);
}

您未初始化大部分字段。不设置 cchTextMax 是最痛苦的。像这样初始化结构:

LV_ITEM Item = {0}; 

并将cchTextMax设置为10

Item.pszText = buf;  
Item.cchTextMax = 10;