ArcGetPasswordProcW функция

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

Функцию вызывает плагин для получения от пользователя пароля архива.

Плагин должен запомнить указатель на эту функцию в ArcInitPluginW.

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

typedef int (__stdcall *ArcGetPasswordProcW)(

                _In_ LONG_PTR Session,

                _In_ HANDLE hArcData,

                _In_ wchar_t *ArcFileName,

                _In_ wchar_t *FileNameInArc,

                _Out_ wchar_t *PasswordBuf,

                _In_ int PasswordMaxLen

);

 

Параметры

Session [in]

Тип: LONG_PTR

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

hArcData [in]

Тип: HANDLE

Идентификатор архива. Если это упаковка файлов или другая операция, при которой ArcOpenW не вызывалась, то параметр должен содержать 0.

ArcFileName [in]

Тип: wchar_t*

Указатель на строку, содержащую имя файла архива.

FileNameInArc [in]

Тип: wchar_t*

Указатель на строку, содержащую имя распаковываемого файла в архиве. Если пароль необходимо получить не для конкретного файла, а для всего архива, то данный указатель должен быть равен NULL.

PasswordBuf [out]

Тип: wchar_t*

Указатель на буфер, содержащий 0-терминированный пароль. Длина буфера, выделенного плагином, должна быть не менее, чем PasswordMaxLen+1 символов.

PasswordMaxLen [in]

Тип: int

Максимальная длина буфера пароля.

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

Тип: int

Возвращается одно из следующих значений:

Код

Комментарий

PK_GETPASS_OK

0

Пользователь нажал кнопку "ОК"

PK_GETPASS_CANCEL

1

Пользователь нажал кнопку "Отмена" (следует прервать разархивацию)

PK_GETPASS_SKIP

2

Пользователь нажал кнопку "Пропустить" (в случае, если пароль вводится для конкретного файла)

PK_GETPASS_UNEXPECTED_ERR

-1

Непредвиденная ошибка

Комментарий

Функция вызывается по усмотрению самого плагина. В ходе выполнения функции программой будет показан соответствующий диалог для получения пароля от пользователя.

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

В возвращаемом значении можно обработать нажатие кнопок "ОК", "Отмена", "Пропустить" (если пароль вводится для конкретного файла).