Здесь для чтения списка файлов в архиве показана общая схема, в какой последовательности программа вызывает функции плагина, и как плагин может вызывать в ответ функции программы.
Loop1
|
|
Открытие архива:
|
|
|
-->ArcOpenW(PK_OM_LIST)
|
|
|
|
<--ArcGetPasswordProcW (во время открытия плагин может спросить пароль, если список файлов зашифрован)
|
|
|
Если архив не открылся и плагин спросил некорректный пароль – переход на Loop1
|
|
|
Если архив не открылся, то выход
|
|
|
-->SetProcessDataProcW (устаревшая функция, запускается, если есть в плагине)
|
|
|
-->SetChangeVolProcW (устаревшая функция, запускается, если есть в плагине)
|
|
|
Если плагин пароль не спрашивал, но список зашифрован – -->ArcParamToPlug(PK_PARTOPLUG_PASSWORD)
|
|
Loop2 - Сканирование архива:
|
|
|
-->ReadHeaderExW
|
|
|
Если результат E_BAD_DATA, то переход на Окончание1
|
|
|
Если результат не E_SUCCESS, то переход на Окончание2
|
|
|
-->ProcessFileW(PK_SKIP)
|
|
|
переход на Loop2
|
|
Окончание1:
-->CloseArchive
переход на Loop1
|
Окончание2:
-->CloseArchive
|
|