5
#include "IsoHandler.h"
5
#include "Common/ComTry.h"
7
6
#include "Common/Defs.h"
8
#include "Common/StringConvert.h"
9
7
#include "Common/IntToString.h"
10
8
#include "Common/NewHandler.h"
11
#include "Common/ComTry.h"
9
#include "Common/StringConvert.h"
11
#include "Windows/PropVariant.h"
13
12
#include "Windows/Time.h"
14
#include "Windows/PropVariant.h"
14
#include "../../Common/LimitedStreams.h"
16
15
#include "../../Common/ProgressUtils.h"
17
#include "../../Common/LimitedStreams.h"
19
#include "../../Compress/Copy/CopyCoder.h"
17
#include "../../Compress/CopyCoder.h"
21
19
#include "../Common/ItemNameUtils.h"
21
#include "IsoHandler.h"
23
23
using namespace NWindows;
24
24
using namespace NTime;
26
26
namespace NArchive {
29
STATPROPSTG kProps[] =
29
STATPROPSTG kProps[] =
31
31
{ NULL, kpidPath, VT_BSTR},
32
{ NULL, kpidIsFolder, VT_BOOL},
32
{ NULL, kpidIsDir, VT_BOOL},
33
33
{ NULL, kpidSize, VT_UI8},
34
{ NULL, kpidPackedSize, VT_UI8},
35
{ NULL, kpidLastWriteTime, VT_FILETIME}
34
{ NULL, kpidPackSize, VT_UI8},
35
{ NULL, kpidMTime, VT_FILETIME}
38
38
IMP_IInArchive_Props
39
39
IMP_IInArchive_ArcProps_NO
41
STDMETHODIMP CHandler::Open(IInStream *stream,
41
STDMETHODIMP CHandler::Open(IInStream *stream,
42
42
const UInt64 * /* maxCheckStartPosition */,
43
43
IArchiveOpenCallback * /* openArchiveCallback */)
242
240
streamSpec->Init(currentItemSize);
243
241
RINOK(copyCoder->Code(inStream, realOutStream, NULL, NULL, progress));
244
242
realOutStream.Release();
245
RINOK(extractCallback->SetOperationResult((copyCoderSpec->TotalSize == currentItemSize) ?
243
RINOK(extractCallback->SetOperationResult((copyCoderSpec->TotalSize == currentItemSize) ?
246
244
NArchive::NExtract::NOperationResult::kOK:
247
245
NArchive::NExtract::NOperationResult::kDataError));