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