#include "StdAfx.h"#include "OpenArchive.h"#include "Common/Wildcard.h"#include "Windows/FileName.h"#include "Windows/FileDir.h"#include "Windows/Defs.h"#include "Windows/PropVariant.h"#include "../../Common/FileStreams.h"#include "../../Common/StreamUtils.h"#include "Common/StringConvert.h"#include "HandlerLoader.h"#include "DefaultName.h"Go to the source code of this file.
Functions | |
| HRESULT | GetArchiveItemPath (IInArchive *archive, UInt32 index, UString &result) |
| HRESULT | GetArchiveItemPath (IInArchive *archive, UInt32 index, const UString &defaultName, UString &result) |
| HRESULT | GetArchiveItemFileTime (IInArchive *archive, UInt32 index, const FILETIME &defaultFileTime, FILETIME &fileTime) |
| static HRESULT | IsArchiveItemProp (IInArchive *archive, UInt32 index, PROPID propID, bool &result) |
| HRESULT | IsArchiveItemFolder (IInArchive *archive, UInt32 index, bool &result) |
| HRESULT | IsArchiveItemAnti (IInArchive *archive, UInt32 index, bool &result) |
| HRESULT | ReOpenArchive (IInArchive *archive, const UString &fileName) |
| static bool | TestSignature (const Byte *p1, const Byte *p2, size_t size) |
| HRESULT | OpenArchive (IInStream *inStream, const UString &fileName, HMODULE *module, IInArchive **archiveResult, CArchiverInfo &archiverInfoResult, UString &defaultItemName, IArchiveOpenCallback *openArchiveCallback) |
| HRESULT | OpenArchive (const UString &filePath, HMODULE *module, IInArchive **archiveResult, CArchiverInfo &archiverInfo, UString &defaultItemName, IArchiveOpenCallback *openArchiveCallback) |
| static void | MakeDefaultName (UString &name) |
| HRESULT | OpenArchive (const UString &fileName, HMODULE *module0, HMODULE *module1, IInArchive **archive0, IInArchive **archive1, CArchiverInfo &archiverInfo0, CArchiverInfo &archiverInfo1, UString &defaultItemName0, UString &defaultItemName1, IArchiveOpenCallback *openArchiveCallback) |
| HRESULT | MyOpenArchive (const UString &archiveName, HMODULE *module, IInArchive **archive, UString &defaultItemName, IOpenCallbackUI *openCallbackUI) |
| HRESULT | MyOpenArchive (const UString &archiveName, HMODULE *module0, HMODULE *module1, IInArchive **archive0, IInArchive **archive1, UString &defaultItemName0, UString &defaultItemName1, UStringVector &volumePaths, IOpenCallbackUI *openCallbackUI) |
| HRESULT | OpenArchive (const UString &archiveName, CArchiveLink &archiveLink, IArchiveOpenCallback *openCallback) |
| HRESULT | MyOpenArchive (const UString &archiveName, CArchiveLink &archiveLink, IOpenCallbackUI *openCallbackUI) |
| HRESULT | ReOpenArchive (CArchiveLink &archiveLink, const UString &fileName) |
Variables | |
| const UInt64 | kMaxCheckStartPosition |
| HRESULT GetArchiveItemFileTime | ( | IInArchive * | archive, | |
| UInt32 | index, | |||
| const FILETIME & | defaultFileTime, | |||
| FILETIME & | fileTime | |||
| ) |
Definition at line 78 of file OpenArchive.cpp.
References E_FAIL, tagPROPVARIANT::filetime, kpidLastWriteTime, RINOK, S_OK, tagPROPVARIANT::vt, VT_EMPTY, and VT_FILETIME.
| HRESULT GetArchiveItemPath | ( | IInArchive * | archive, | |
| UInt32 | index, | |||
| const UString & | defaultName, | |||
| UString & | result | |||
| ) |
Definition at line 70 of file OpenArchive.cpp.
References GetArchiveItemPath(), CStringBase< T >::IsEmpty(), RINOK, and S_OK.
Definition at line 57 of file OpenArchive.cpp.
References tagPROPVARIANT::bstrVal, E_FAIL, CStringBase< T >::Empty(), kpidPath, RINOK, S_OK, tagPROPVARIANT::vt, VT_BSTR, and VT_EMPTY.
Referenced by DecompressArchive(), GetArchiveItemPath(), and OpenArchive().
Definition at line 105 of file OpenArchive.cpp.
References IsArchiveItemProp(), and kpidIsFolder.
Referenced by DecompressArchive(), and CArchiveExtractCallback::GetStream().
| static HRESULT IsArchiveItemProp | ( | IInArchive * | archive, | |
| UInt32 | index, | |||
| PROPID | propID, | |||
| bool & | result | |||
| ) | [static] |
Definition at line 92 of file OpenArchive.cpp.
References tagPROPVARIANT::boolVal, E_FAIL, RINOK, S_OK, VARIANT_BOOLToBool, tagPROPVARIANT::vt, VT_BOOL, and VT_EMPTY.
Referenced by IsArchiveItemAnti(), and IsArchiveItemFolder().
| static void MakeDefaultName | ( | UString & | name | ) | [static] |
Definition at line 315 of file OpenArchive.cpp.
References CStringBase< T >::IsEmpty(), CStringBase< T >::Left(), CStringBase< T >::Length(), CStringBase< T >::Mid(), pos(), and CStringBase< T >::ReverseFind().
Referenced by OpenArchive().
| HRESULT MyOpenArchive | ( | const UString & | archiveName, | |
| CArchiveLink & | archiveLink, | |||
| IOpenCallbackUI * | openCallbackUI | |||
| ) |
Definition at line 505 of file OpenArchive.cpp.
References CArchiveLink::Archive0, CArchiveLink::Archive1, CArchiveLink::DefaultItemName0, CArchiveLink::DefaultItemName1, CArchiveLink::Library0, CArchiveLink::Library1, MyOpenArchive(), and CArchiveLink::VolumePaths.
| HRESULT MyOpenArchive | ( | const UString & | archiveName, | |
| HMODULE * | module0, | |||
| HMODULE * | module1, | |||
| IInArchive ** | archive0, | |||
| IInArchive ** | archive1, | |||
| UString & | defaultItemName0, | |||
| UString & | defaultItemName1, | |||
| UStringVector & | volumePaths, | |||
| IOpenCallbackUI * | openCallbackUI | |||
| ) |
Definition at line 427 of file OpenArchive.cpp.
References CObjectVector< T >::Add(), COpenCallbackImp::Callback, COpenCallbackImp::FileNames, HRESULT, COpenCallbackImp::Init(), CStringBase< T >::Left(), CStringBase< T >::Mid(), NWindows::NFile::NDirectory::MyGetFullPathName(), OpenArchive(), RINOK, S_OK, and CBaseRecordVector::Size().
| HRESULT MyOpenArchive | ( | const UString & | archiveName, | |
| HMODULE * | module, | |||
| IInArchive ** | archive, | |||
| UString & | defaultItemName, | |||
| IOpenCallbackUI * | openCallbackUI | |||
| ) |
Definition at line 397 of file OpenArchive.cpp.
References COpenCallbackImp::Callback, COpenCallbackImp::Init(), CStringBase< T >::Left(), CStringBase< T >::Mid(), NWindows::NFile::NDirectory::MyGetFullPathName(), and OpenArchive().
Referenced by DecompressArchives(), MyOpenArchive(), and ReOpenArchive().
| HRESULT OpenArchive | ( | const UString & | archiveName, | |
| CArchiveLink & | archiveLink, | |||
| IArchiveOpenCallback * | openCallback | |||
| ) |
Definition at line 491 of file OpenArchive.cpp.
References CArchiveLink::Archive0, CArchiveLink::Archive1, CArchiveLink::ArchiverInfo0, CArchiveLink::ArchiverInfo1, CArchiveLink::DefaultItemName0, CArchiveLink::DefaultItemName1, CArchiveLink::Library0, CArchiveLink::Library1, and OpenArchive().
| HRESULT OpenArchive | ( | const UString & | fileName, | |
| HMODULE * | module0, | |||
| HMODULE * | module1, | |||
| IInArchive ** | archive0, | |||
| IInArchive ** | archive1, | |||
| CArchiverInfo & | archiverInfo0, | |||
| CArchiverInfo & | archiverInfo1, | |||
| UString & | defaultItemName0, | |||
| UString & | defaultItemName1, | |||
| IArchiveOpenCallback * | openArchiveCallback | |||
| ) |
Definition at line 329 of file OpenArchive.cpp.
References CStringBase< T >::CompareNoCase(), ExtractFileNameFromPath(), GetArchiveItemPath(), HRESULT, CStringBase< T >::IsEmpty(), MakeDefaultName(), CArchiverInfo::Name, OpenArchive(), CMyComPtr< T >::QueryInterface(), CStringBase< T >::Right(), RINOK, and S_OK.
| HRESULT OpenArchive | ( | const UString & | filePath, | |
| HMODULE * | module, | |||
| IInArchive ** | archiveResult, | |||
| CArchiverInfo & | archiverInfo, | |||
| UString & | defaultItemName, | |||
| IArchiveOpenCallback * | openArchiveCallback | |||
| ) |
Definition at line 294 of file OpenArchive.cpp.
References ExtractFileNameFromPath(), GetLastError(), CInFileStream::Open(), and OpenArchive().
| HRESULT OpenArchive | ( | IInStream * | inStream, | |
| const UString & | fileName, | |||
| HMODULE * | module, | |||
| IInArchive ** | archiveResult, | |||
| CArchiverInfo & | archiverInfoResult, | |||
| UString & | defaultItemName, | |||
| IArchiveOpenCallback * | openArchiveCallback | |||
| ) |
Definition at line 140 of file OpenArchive.cpp.
References CRecordVector< T >::Add(), asio::buffer(), CArchiverInfo::ClassID, CStringBase< T >::CompareNoCase(), CBaseRecordVector::Delete(), CMyComPtr< T >::Detach(), E_ABORT, E_FAIL, CArchiverInfo::Extensions, CArchiverInfo::FilePath, CArchiverInfo::FindExtension(), HRESULT, index, CRecordVector< T >::Insert(), kMaxCheckStartPosition, CStringBase< T >::Mid(), CArchiverInfo::Name, NULL, pos(), ReadArchiverInfoList(), CStringBase< T >::ReverseFind(), RINOK, S_FALSE, S_OK, CBaseRecordVector::Size(), CArchiverInfo::StartSignature, STREAM_SEEK_SET, and TestSignature().
Referenced by MyOpenArchive(), and OpenArchive().
| HRESULT ReOpenArchive | ( | CArchiveLink & | archiveLink, | |
| const UString & | fileName | |||
| ) |
Definition at line 519 of file OpenArchive.cpp.
References CArchiveLink::GetArchive(), CArchiveLink::GetNumLevels(), MyOpenArchive(), and ReOpenArchive().
| HRESULT ReOpenArchive | ( | IInArchive * | archive, | |
| const UString & | fileName | |||
| ) |
Definition at line 122 of file OpenArchive.cpp.
References kMaxCheckStartPosition, NULL, and CInFileStream::Open().
Referenced by ReOpenArchive().
| const UInt64 kMaxCheckStartPosition |
Initial value:
1 << 22
Definition at line 115 of file OpenArchive.cpp.
Referenced by OpenArchive(), and ReOpenArchive().
1.5.6