ArcProcessDataProcW функция

Начало  Предыдущая  Следующая

Эта функция должна вызываться плагином для отображения прогресса упаковки, распаковки, тестирования, удаления, а также для возможности прервать данные процессы.

Плагин должен вызывать эту функцию достаточно часто, чтобы не возникало мнимого эффекта зависания.

Указатель на данную функцию плагин должен запоминать в функциях ArcOpenW, ArcPackFilesW, ArcDeleteFilesW.

Синтаксис C++

typedef int (__stdcall *ArcProcessDataProcW)(

                _In_ LONG_PTR Session,

                _In_ wchar_t *FileName,

                _In_ int Size

);

 

Параметры

Session [in]

Тип: LONG_PTR

Идентификатор сессии.

FileName [in]

Тип: wchar_t*

Имя обрабатываемого в архиве файла (0-терминированная строка). Значение NULL – нежелательно.

Size [in]

Тип: int

Обычно данный параметр задает количество байт, обработанных с момента последнего вызова функции.

Однако, если это значение меньше 0, то – это директивно указанный плагином процент. При этом:

значение от -1 до -100 определяет процент общего прогресса (-1 – это 1%, -100 – это 100%),

значение от -1000 до -1100 определяет процент прогресса текущего файла (-1001 – это 1%, -1100 – это 100%),

значение меньшие -100000 (константа PK_DOUBLEPROGRESS) позволяют в одном числе задать сразу два процента для общего прогресса и прогресса текущего файла по следующей формуле:

PK_DOUBLEPROGRESS – (ОбщийПроцент + ПроцентТекущегоФайла*1000)

Возвращаемое значение

Тип: int

Если пользователь прервал работу, то результат – 0. Иначе работу плагина следует продолжить.