Loop1
|
|
Archive opening:
|
|
|
-->ArcOpenW(PK_OM_LIST)
|
|
|
|
<--ArcGetPasswordProcW (for protected archives, the archive may request password during opening)
|
|
|
If archive didn't open and plugin requested invalid password – go to Loop1
|
|
|
If archive didn't open – exit
|
|
|
-->SetProcessDataProcW (deprecated function, which gets executed if presents in the plugin)
|
|
|
-->SetChangeVolProcW (deprecated function, which gets executed if presents in the plugin)
|
|
|
If plugin didn't request a password, but the list is encrypted – -->ArcParamToPlug(PK_PARTOPLUG_PASSWORD)
|
|
Loop2 - Archive scanning:
|
|
|
-->ReadHeaderExW
|
|
|
If result is E_BAD_DATA, go to End1
|
|
|
If result not E_SUCCESS, go to End2
|
|
|
-->ProcessFileW(PK_SKIP)
|
|
|
go to Loop2
|
|
End1:
-->CloseArchive
go to Loop1
|
End2:
-->CloseArchive
|