Loop1
|
|
Archive opening:
|
|
|
-->ArcOpenW(PK_OM_EXTRACT)
|
|
|
|
<--ArcGetPasswordProcW (Plugin may request a password for encrypted archives)
|
|
|
If archive didn't open, exit
|
|
|
-->SetProcessDataProcW (deprecated function, gets called if presents in the plugin)
|
|
|
-->SetChangeVolProcW (deprecated function, gets called if presents in the plugin)
|
|
|
If encrypted but password wasn't requested – -->ArcParamToPlug(PK_PARTOPLUG_PASSWORD)
|
|
Loop2 - Unarchiving
|
|
|
-->ReadHeaderExW
|
|
|
If result is not E_SUCCESS, exit from Loop2
|
|
|
If the current file isn't wanted -->ProcessFileW(PK_SKIP)
|
|
|
Otherwise -->ProcessFileW(PK_EXTRACT)
|
|
|
go to Loop2
|
|
-->CloseArchive
|
|
If no wrong password, exit from Loop1
|
|
go to Loop1
|