Source code
Revision control
Copy as Markdown
Other Tools
// ExtractCallbackSfx.h↩
↩
#ifndef __EXTRACT_CALLBACK_SFX_H↩
#define __EXTRACT_CALLBACK_SFX_H↩
↩
#include "resource.h"↩
↩
#include "../../../Windows/ResourceString.h"↩
↩
#include "../../Archive/IArchive.h"↩
↩
#include "../../Common/FileStreams.h"↩
#include "../../ICoder.h"↩
↩
#include "../../UI/FileManager/LangUtils.h"↩
↩
#ifndef _NO_PROGRESS↩
#include "../../UI/FileManager/ProgressDialog.h"↩
#endif↩
#include "../../UI/Common/ArchiveOpenCallback.h"↩
↩
class CExtractCallbackImp:↩
public IArchiveExtractCallback,↩
public IOpenCallbackUI,↩
public CMyUnknownImp↩
{↩
public:↩
↩
MY_UNKNOWN_IMP↩
↩
INTERFACE_IArchiveExtractCallback(;)↩
INTERFACE_IOpenCallbackUI(;)↩
↩
private:↩
CMyComPtr<IInArchive> _archiveHandler;↩
FString _directoryPath;↩
UString _filePath;↩
FString _diskFilePath;↩
↩
bool _extractMode;↩
struct CProcessedFileInfo↩
{↩
FILETIME MTime;↩
bool IsDir;↩
UInt32 Attributes;↩
} _processedFileInfo;↩
↩
COutFileStream *_outFileStreamSpec;↩
CMyComPtr<ISequentialOutStream> _outFileStream;↩
↩
UString _itemDefaultName;↩
FILETIME _defaultMTime;↩
UInt32 _defaultAttributes;↩
↩
void CreateComplexDirectory(const UStringVector &dirPathParts);↩
public:↩
#ifndef _NO_PROGRESS↩
CProgressDialog ProgressDialog;↩
#endif↩
↩
bool _isCorrupt;↩
UString _message;↩
↩
void Init(IInArchive *archiveHandler,↩
const FString &directoryPath,↩
const UString &itemDefaultName,↩
const FILETIME &defaultMTime,↩
UInt32 defaultAttributes);↩
↩
#ifndef _NO_PROGRESS↩
HRESULT StartProgressDialog(const UString &title, NWindows::CThread &thread)↩
{↩
ProgressDialog.Create(title, thread, 0);↩
{↩
ProgressDialog.SetText(LangString(IDS_PROGRESS_EXTRACTING));↩
}↩
↩
ProgressDialog.Show(SW_SHOWNORMAL);↩
return S_OK;↩
}↩
virtual ~CExtractCallbackImp() { ProgressDialog.Destroy(); }↩
#endif↩
↩
};↩
↩
#endif↩