In kProps for e.g. ApfsHandler.cpp: https://github.com/ip7z/7zip/blob/8c63d71ff886bda90c86db28466287f977374237/CPP/7zip/Archive/ApfsHandler.cpp#L3478-L3490
and the declared VT type in k7z_PROPID_To_VARTYPE in PropID.cpp prop is assigned via operator=(uint32): https://github.com/ip7z/7zip/blob/8c63d71ff886bda90c86db28466287f977374237/CPP/7zip/Common/PropId.cpp#L101-L103
but the assignment of property in GetProperty is with a UInt32:
https://github.com/ip7z/7zip/blob/8c63d71ff886bda90c86db28466287f977374237/CPP/7zip/Archive/ApfsHandler.cpp#L4034-L4040
same also applies to the other archive handlers that use this property
sorry, that should say
the declared VT type in k7z_PROPID_To_VARTYPE in PropID.cpp prop is defined as VT_UI8
kpidStreamId also looks to be inconsistent, its defined as VT_UI8 in k7z_PROPID_To_VARTYPE,
ExtHandler.cpp, CpioHandler.cpp and WimHandler.cpp assign a UInt32, however NtfsHandler.cpp assigns a UInt64 instead to the property
looks like the same thing with kpidNumAltStreams aswell? VT_UI8 in k7z_PROPID_To_VARTYPE, assigned UInt32 in wim and ntfs handlers
I'll fix some of these things.
But that 64-bit / 32-bit difference can be ignored by client code.
There is
vtfield insidePROPVARIANTthat contains correct value for each returned item.Last edit: Igor Pavlov 2026-06-03