mirror of
https://github.com/Xevion/easy7zip.git
synced 2025-12-12 12:11:34 -06:00
21.07
This commit is contained in:
@@ -21,12 +21,20 @@
|
||||
|
||||
#include "../Compress/CopyCoder.h"
|
||||
#include "../Compress/LzmaDecoder.h"
|
||||
#include "../Compress/LzmaEncoder.h"
|
||||
#include "../Compress/ZlibDecoder.h"
|
||||
#include "../Compress/ZlibEncoder.h"
|
||||
|
||||
#include "Common/DummyOutStream.h"
|
||||
|
||||
// #define SWF_UPDATE
|
||||
|
||||
#ifdef SWF_UPDATE
|
||||
|
||||
#include "../Compress/LzmaEncoder.h"
|
||||
#include "../Compress/ZlibEncoder.h"
|
||||
|
||||
#include "Common/HandlerOut.h"
|
||||
|
||||
#endif
|
||||
|
||||
using namespace NWindows;
|
||||
|
||||
@@ -152,8 +160,10 @@ struct CItem
|
||||
class CHandler:
|
||||
public IInArchive,
|
||||
public IArchiveOpenSeq,
|
||||
#ifdef SWF_UPDATE
|
||||
public IOutArchive,
|
||||
public ISetProperties,
|
||||
#endif
|
||||
public CMyUnknownImp
|
||||
{
|
||||
CItem _item;
|
||||
@@ -162,16 +172,22 @@ class CHandler:
|
||||
CMyComPtr<ISequentialInStream> _seqStream;
|
||||
CMyComPtr<IInStream> _stream;
|
||||
|
||||
#ifdef SWF_UPDATE
|
||||
CSingleMethodProps _props;
|
||||
bool _lzmaMode;
|
||||
#endif
|
||||
|
||||
public:
|
||||
CHandler(): _lzmaMode(false) {}
|
||||
#ifdef SWF_UPDATE
|
||||
MY_UNKNOWN_IMP4(IInArchive, IArchiveOpenSeq, IOutArchive, ISetProperties)
|
||||
INTERFACE_IInArchive(;)
|
||||
CHandler(): _lzmaMode(false) {}
|
||||
INTERFACE_IOutArchive(;)
|
||||
STDMETHOD(OpenSeq)(ISequentialInStream *stream);
|
||||
STDMETHOD(SetProperties)(const wchar_t * const *names, const PROPVARIANT *values, UInt32 numProps);
|
||||
#else
|
||||
MY_UNKNOWN_IMP2(IInArchive, IArchiveOpenSeq)
|
||||
#endif
|
||||
INTERFACE_IInArchive(;)
|
||||
STDMETHOD(OpenSeq)(ISequentialInStream *stream);
|
||||
};
|
||||
|
||||
static const Byte kProps[] =
|
||||
@@ -416,6 +432,9 @@ STDMETHODIMP CHandler::Extract(const UInt32 *indices, UInt32 numItems,
|
||||
COM_TRY_END
|
||||
}
|
||||
|
||||
|
||||
#ifdef SWF_UPDATE
|
||||
|
||||
static HRESULT UpdateArchive(ISequentialOutStream *outStream, UInt64 size,
|
||||
bool lzmaMode, const CSingleMethodProps &props,
|
||||
IArchiveUpdateCallback *updateCallback)
|
||||
@@ -576,11 +595,14 @@ STDMETHODIMP CHandler::SetProperties(const wchar_t * const *names, const PROPVAR
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
static const Byte k_Signature[] = {
|
||||
3, 'C', 'W', 'S',
|
||||
3, 'Z', 'W', 'S' };
|
||||
|
||||
REGISTER_ARC_IO(
|
||||
REGISTER_ARC_I(
|
||||
"SWFc", "swf", "~.swf", 0xD8,
|
||||
k_Signature,
|
||||
0,
|
||||
|
||||
Reference in New Issue
Block a user