ちょっと確認させてください。
LVM_GETITEMTEXTのマクロ、ListView_GetItemTextは
void ListView_GetItemText(
HWND hwnd, //リストビューのウィンドウハンドル
int iItem, //行
int iSubItem, //列
LPTSTR pszText, //バッファのアドレス
int cchTextMax //バッファのサイズ
);
ですよね。
つまりpszTextに指定するバッファを
自分で用意しなくてはいけない。
cchTextMaxの文字数も自分で指定しなくてはいけない。
ということではないのでしょうか?
ですので前もってバッファを用意するためには文字数を取得しなくてはいけないですよね?

どっかまちがってるのかな・・・