OpenArchive() with OpenMode==PK_OM_LIST repeat ReadHeader() ProcessFile(...,PK_SKIP,...) until error returned CloseArchive()
OpenArchive() with OpenMode==PK_OM_EXTRACT
repeat
ReadHeader()
if WantToExtractThisFile()
ProcessFile(...,PK_EXTRACT,...)
else
ProcessFile(...,PK_SKIP,...)
until error returned
CloseArchive()