|
Total Commander вызывает ReadHeaderEx, чтобы узнать, какие файлы есть в архиве. Функция вызывается всегда, если существует ReadHeader. Функция должна быть реализована, только если поддерживаемый формат архива может содержать файлы объёмом более 2 Gb. В этом случае вы должны реализовать и ReadHeader и ReadHeaderEx для совместимости с более ранними версиями Total Commander.
int __stdcall ReadHeaderEx (HANDLE hArcData, tHeaderDataEx *HeaderDataEx);
function ReadHeaderEx(hArcData: THandle; var HeaderDataEx: THeaderDataEx): longint; stdcall;
Описание
ReadHeaderEx вызывается до тех пор, пока не вернёт ноль (до тех пор, пока предыдущий вызов функции не вернёт ноль). Каждый вызов HeaderDataEx снабжает Total Commander информацией о следующем файле, содержащемся в архиве.
После того, как все файлы в архиве будут возвращены, ReadHeaderEx должна возвратить значение E_END_ARCHIVE, которое должно предотвратить следующий вызов ReadHeaderEx. При возникновении ошибки ReadHeaderEx должна возвратить один из кодов ошибок или 0, если ошибок не было.
hArcData содержит дескриптор, возвращённый в OpenArchive. Вы можете хранить и другую информацию в месте, которое может быть доступно через этот дескриптор. Например, вы можете сохранить позицию в архиве при возвращении информации о файлах в ReadHeaderEx.
Предполагается, что вы присвоите значения, по крайней мере, полям PackSize, PackSizeHigh, UnpSize, UnpSizeHigh, FileTime и FileName записи tHeaderDataEx. Total Commander может использовать эту информацию для вывода содержимого архива, когда архив просматривается как каталог.
|