LVITEM 字段 puColumns 和 piColFmt 是指针还是整数?

Are LVITEM fields puColumns and piColFmt pointers or integers?

在这个 , there is one last thing I don't know. The documentation 中发现 64 位 LVITEM 的字段后说:

  1. puColumns 是一个 UINT。它是一个指向列索引数组的指针,指定为此项显示哪些列,以及这些列的顺序。
  2. piColFmt 是一个整数。它是指向以下标志(单独或组合)的数组的指针,指定扩展平铺视图中每个子项的格式。

我的问题是为什么它们是整数而不是指针?在 64 位架构中,它们应该像指针一样占用 8 个字节,还是像整数一样占用 4 个字节?

谢谢!

所以 Windows SDK 说:

typedef struct tagLVITEMA
{
    UINT mask;
    int iItem;
    int iSubItem;
    UINT state;
    UINT stateMask;
    LPSTR pszText;
    int cchTextMax;
    int iImage;
    LPARAM lParam;
#if (_WIN32_IE >= 0x0300)
    int iIndent;
#endif
#if (_WIN32_WINNT >= 0x0501)
    int iGroupId;
    UINT cColumns; // tile view columns
    PUINT puColumns;
#endif
#if _WIN32_WINNT >= 0x0600 // Will be unused downlevel, but sizeof(LVITEMA) must be equal to sizeof(LVITEMW)
    int* piColFmt;
    int iGroup; // readonly. only valid for owner data.
#endif
} LVITEMA, *LPLVITEMA;