Функция вызывается плагином, чтобы сообщить программе определенные параметры в процессе работы с архивом.
Плагин может запомнить указатель на эту функцию в ArcInitPluginW.
Синтаксис C++
typedef int (__stdcall *ArcParamFromPlugProc) (
_In_ LONG_PTR Session,
_In_ HANDLE hArcData,
_In_ int ParameterType,
_In_ LONG_PTR ParameterData
);
|
Параметры
Session [in]
Тип: LONG_PTR
Идентификатор сессии.
hArcData [in]
Тип: HANDLE
Этот параметр содержит значение возвращаемое функцией ArcOpenW. Определяется самим плагином. Если открытие архива не было, то параметр должен равняться 0.
ParameterType [in]
Тип: int
Указывает тип устанавливаемого параметра согласно списку:
Код
|
Комментарий
|
PK_SENDPARAM_STAGE
0
|
Для индикатора процесса устанавливает новый этап.
Например, перед упаковкой файла в архив требуется пройти этап подготовки архива.
Здесь ParameterData – это указатель на структуру ArcProcessingStageData.
Если требуется установить обычный этап, после прохождения этапа подготовки архива, то ParameterData может быть 0. Тогда все значения индикатора сбросятся в то состояние, которое было до спецэтапа.
Плагин должен вызывать этот параметр только при переходе в спецэтап, и при выходе из него.
|
PK_SENDPARAM_FILESIZE
1
|
Для индикатора процесса изменяет размер текущего обрабатываемого файла.
Обычно используется программой во время спецэтапа, устанавливаемого параметром PK_SENDPARAM_STAGE.
Данный параметр требуется устанавливать перед обработкой каждого файла в ходе работы на спецэтапе.
Здесь ParameterData – имеет тип *__int64 (указатель на размер файла).
|
ParameterData [in]
Тип: LONG_PTR
Содержит задаваемые данные. Формат данных определяется параметром ParameterType.
Возвращаемое значение
Тип: unsigned int
В случае успеха возвращает 0, иначе – код ошибки.
|