Port 7-zip v23+ compatibility fixes from upstream PR #83#7
Merged
Merged
Conversation
…portExtractResult callback, kpidComment/Encrypted/CRC support - Fix UniversalArchiveOpenCallback to return VT_EMPTY instead of E_NOINTERFACE when IArchiveOpenVolumeCallback is not implemented (allows 7-zip codec auto-detection) - Add IArchiveExtractCallbackMessage2 support for ReportExtractResult callback (7-zip v23+ error reporting during extraction) - Add kpidComment, kpidEncrypted, kpidCRC property support in update callback - Add ReportExtractResultIndexType enum - Add propertyComment/propertyEncrypted/propertyCRC to IOutItem7z and OutItem
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Ports critical compatibility fixes from borisbrodski/sevenzipjbinding#83 (7z-23.01 branch) to support newer 7-zip engine behavior.
Changes
UniversalArchiveOpenCallback: return VT_EMPTY instead of E_NOINTERFACE
GetProperty()returnsVT_EMPTYwhenIArchiveOpenVolumeCallbackis not implemented, allowing 7-zip codec auto-detection to proceed instead of failingGetStream()returnsS_OKwith NULL stream (orE_FAILfor CAB volumes) instead ofE_NOINTERFACEIArchiveExtractCallbackMessage2 / ReportExtractResult callback
ReportExtractResultIndexTypeenum mapping 7-zip'sNEventIndexTypeIArchiveExtractCallback.reportExtractResult()default method for backward-compatible immediate error reportingIArchiveExtractCallbackMessage2, exposes viaQueryInterfaceJavaPackageSevenZip.hkpidComment / kpidEncrypted / kpidCRC in update callback
IOutItem7zandOutItemgainpropertyComment,propertyEncrypted,propertyCRCCPPToJavaArchiveUpdateCallback.cppswitch handles the new propIDsContext
7-zip v23+ calls
QueryInterfaceforIArchiveExtractCallbackMessage2during extraction and requests additional properties (comment, encrypted, CRC) during archive creation. Without these changes, the engine either crashes onE_NOINTERFACEduring open or silently loses error reporting capabilities.