OpenArchive should perform all necessary operations when an archive is to be opened.
OpenArchive should return a unique handle representing the archive. The handle should remain valid until
CloseArchive is called. If an
error occurs, you should return zero, and specify the
error by setting OpenResult member of ArchiveData.
You can use the ArchiveData to query information about the archive being open, and store the information in ArchiveData to some location that can be accessed via the handle.