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