mirror of
https://github.com/Xevion/easy7zip.git
synced 2025-12-07 20:06:59 -06:00
76 lines
1.1 KiB
C++
Executable File
76 lines
1.1 KiB
C++
Executable File
// WimHandler.h
|
|
|
|
#ifndef __ARCHIVE_WIM_HANDLER_H
|
|
#define __ARCHIVE_WIM_HANDLER_H
|
|
|
|
#include "Common/MyCom.h"
|
|
#include "Common/MyXml.h"
|
|
|
|
#include "WimIn.h"
|
|
|
|
namespace NArchive {
|
|
namespace NWim {
|
|
|
|
struct CVolume
|
|
{
|
|
CHeader Header;
|
|
CMyComPtr<IInStream> Stream;
|
|
};
|
|
|
|
struct CImageInfo
|
|
{
|
|
bool CTimeDefined;
|
|
bool MTimeDefined;
|
|
bool NameDefined;
|
|
// bool IndexDefined;
|
|
|
|
FILETIME CTime;
|
|
FILETIME MTime;
|
|
UString Name;
|
|
// UInt32 Index;
|
|
|
|
CImageInfo(): CTimeDefined(false), MTimeDefined(false), NameDefined(false)
|
|
// , IndexDefined(false)
|
|
{}
|
|
void Parse(const CXmlItem &item);
|
|
};
|
|
|
|
struct CXml
|
|
{
|
|
CByteBuffer Data;
|
|
UInt16 VolIndex;
|
|
CObjectVector<CImageInfo> Images;
|
|
|
|
void ToUnicode(UString &s);
|
|
void Parse();
|
|
};
|
|
|
|
|
|
class CHandler:
|
|
public IInArchive,
|
|
public CMyUnknownImp
|
|
{
|
|
CDatabase _db;
|
|
CObjectVector<CVolume> _volumes;
|
|
CObjectVector<CXml> _xmls;
|
|
int _nameLenForStreams;
|
|
bool _xmlInComments;
|
|
|
|
public:
|
|
MY_UNKNOWN_IMP1(IInArchive)
|
|
INTERFACE_IInArchive(;)
|
|
};
|
|
|
|
class COutHandler:
|
|
public IOutArchive,
|
|
public CMyUnknownImp
|
|
{
|
|
public:
|
|
MY_UNKNOWN_IMP1(IOutArchive)
|
|
INTERFACE_IOutArchive(;)
|
|
};
|
|
|
|
}}
|
|
|
|
#endif
|