chore: initial commit (extracted from Launchers monorepo)

Plugin: ns7zip v2.0.0
Architectures: x86-ansi, x86-unicode, amd64-unicode
License: LGPL-2.1-or-later
This commit is contained in:
Simone
2026-04-29 14:07:51 +02:00
commit d074cc7c07
3848 changed files with 1076682 additions and 0 deletions
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,29 @@
Microsoft Developer Studio Workspace File, Format Version 6.00
# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
###############################################################################
Project: "Alone"=.\Alone.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
}}}
###############################################################################
Global:
Package=<5>
{{{
}}}
Package=<3>
{{{
}}}
###############################################################################
@@ -0,0 +1,3 @@
// StdAfx.cpp
#include "StdAfx.h"
@@ -0,0 +1,11 @@
// StdAfx.h
#ifndef ZIP7_INC_STDAFX_H
#define ZIP7_INC_STDAFX_H
#if defined(_MSC_VER) && _MSC_VER >= 1800
#pragma warning(disable : 4464) // relative include path contains '..'
#endif
#include "../../../Common/Common.h"
#endif
@@ -0,0 +1,245 @@
PROG = 7za.exe
CFLAGS = $(CFLAGS) -DZ7_ZIP_LZFSE_DISABLE
# -DZ7_PROG_VARIANT_A
# CONSOLE_VARIANT_FLAGS=-DZ7_PROG_VARIANT_A
# ZIP_FLAGS=-DZ7_ZIP_LZFSE_DISABLE
# USE_C_SORT=1
# USE_C_AES = 1
# USE_C_SHA = 1
# USE_C_LZFINDOPT = 1
COMMON_OBJS = \
$O\CommandLineParser.obj \
$O\CRC.obj \
$O\CrcReg.obj \
$O\DynLimBuf.obj \
$O\IntToString.obj \
$O\ListFileUtils.obj \
$O\LzFindPrepare.obj \
$O\NewHandler.obj \
$O\StdInStream.obj \
$O\StdOutStream.obj \
$O\MyString.obj \
$O\StringConvert.obj \
$O\StringToInt.obj \
$O\UTFConvert.obj \
$O\MyVector.obj \
$O\Wildcard.obj \
$O\Sha1Reg.obj \
$O\Sha256Reg.obj \
$O\Xxh64Reg.obj \
$O\XzCrc64Init.obj \
$O\XzCrc64Reg.obj \
WIN_OBJS = \
$O\DLL.obj \
$O\ErrorMsg.obj \
$O\FileDir.obj \
$O\FileFind.obj \
$O\FileIO.obj \
$O\FileLink.obj \
$O\FileName.obj \
$O\FileSystem.obj \
$O\MemoryLock.obj \
$O\PropVariant.obj \
$O\PropVariantConv.obj \
$O\PropVariantUtils.obj \
$O\Registry.obj \
$O\Synchronization.obj \
$O\System.obj \
$O\SystemInfo.obj \
$O\TimeUtils.obj \
7ZIP_COMMON_OBJS = \
$O\CreateCoder.obj \
$O\CWrappers.obj \
$O\FilePathAutoRename.obj \
$O\FileStreams.obj \
$O\FilterCoder.obj \
$O\InBuffer.obj \
$O\InOutTempBuffer.obj \
$O\LimitedStreams.obj \
$O\MemBlocks.obj \
$O\MethodId.obj \
$O\MethodProps.obj \
$O\MultiOutStream.obj \
$O\OffsetStream.obj \
$O\OutBuffer.obj \
$O\OutMemStream.obj \
$O\ProgressMt.obj \
$O\ProgressUtils.obj \
$O\PropId.obj \
$O\StreamBinder.obj \
$O\StreamObjects.obj \
$O\StreamUtils.obj \
$O\UniqBlocks.obj \
$O\VirtThread.obj \
AR_OBJS = \
$O\Bz2Handler.obj \
$O\DeflateProps.obj \
$O\GzHandler.obj \
$O\LzmaHandler.obj \
$O\SplitHandler.obj \
$O\XzHandler.obj \
$O\ZstdHandler.obj \
AR_COMMON_OBJS = \
$O\CoderMixer2.obj \
$O\DummyOutStream.obj \
$O\FindSignature.obj \
$O\HandlerOut.obj \
$O\InStreamWithCRC.obj \
$O\ItemNameUtils.obj \
$O\MultiStream.obj \
$O\OutStreamWithCRC.obj \
$O\ParseProperties.obj \
7Z_OBJS = \
$O\7zCompressionMode.obj \
$O\7zDecode.obj \
$O\7zEncode.obj \
$O\7zExtract.obj \
$O\7zFolderInStream.obj \
$O\7zHandler.obj \
$O\7zHandlerOut.obj \
$O\7zHeader.obj \
$O\7zIn.obj \
$O\7zOut.obj \
$O\7zProperties.obj \
$O\7zSpecStream.obj \
$O\7zUpdate.obj \
$O\7zRegister.obj \
CAB_OBJS = \
$O\CabBlockInStream.obj \
$O\CabHandler.obj \
$O\CabHeader.obj \
$O\CabIn.obj \
$O\CabRegister.obj \
TAR_OBJS = \
$O\TarHandler.obj \
$O\TarHandlerOut.obj \
$O\TarHeader.obj \
$O\TarIn.obj \
$O\TarOut.obj \
$O\TarUpdate.obj \
$O\TarRegister.obj \
ZIP_OBJS = \
$O\ZipAddCommon.obj \
$O\ZipHandler.obj \
$O\ZipHandlerOut.obj \
$O\ZipIn.obj \
$O\ZipItem.obj \
$O\ZipOut.obj \
$O\ZipUpdate.obj \
$O\ZipRegister.obj \
COMPRESS_OBJS = \
$O\Bcj2Coder.obj \
$O\Bcj2Register.obj \
$O\BcjCoder.obj \
$O\BcjRegister.obj \
$O\BitlDecoder.obj \
$O\BranchMisc.obj \
$O\BranchRegister.obj \
$O\ByteSwap.obj \
$O\BZip2Crc.obj \
$O\BZip2Decoder.obj \
$O\BZip2Encoder.obj \
$O\BZip2Register.obj \
$O\CopyCoder.obj \
$O\CopyRegister.obj \
$O\Deflate64Register.obj \
$O\DeflateDecoder.obj \
$O\DeflateEncoder.obj \
$O\DeflateRegister.obj \
$O\DeltaFilter.obj \
$O\ImplodeDecoder.obj \
$O\Lzma2Decoder.obj \
$O\Lzma2Encoder.obj \
$O\Lzma2Register.obj \
$O\LzmaDecoder.obj \
$O\LzmaEncoder.obj \
$O\LzmaRegister.obj \
$O\LzOutWindow.obj \
$O\LzxDecoder.obj \
$O\PpmdDecoder.obj \
$O\PpmdEncoder.obj \
$O\PpmdRegister.obj \
$O\PpmdZip.obj \
$O\QuantumDecoder.obj \
$O\ShrinkDecoder.obj \
$O\XzDecoder.obj \
$O\XzEncoder.obj \
$O\ZstdDecoder.obj \
# $O\LzfseDecoder.obj \
# $O\ZstdRegister.obj \
CRYPTO_OBJS = \
$O\7zAes.obj \
$O\7zAesRegister.obj \
$O\HmacSha1.obj \
$O\MyAes.obj \
$O\MyAesReg.obj \
$O\Pbkdf2HmacSha1.obj \
$O\RandGen.obj \
$O\WzAes.obj \
$O\ZipCrypto.obj \
$O\ZipStrong.obj \
C_OBJS = \
$O\7zStream.obj \
$O\Alloc.obj \
$O\Bcj2.obj \
$O\Bcj2Enc.obj \
$O\Bra.obj \
$O\Bra86.obj \
$O\BraIA64.obj \
$O\BwtSort.obj \
$O\CpuArch.obj \
$O\Delta.obj \
$O\HuffEnc.obj \
$O\LzFind.obj \
$O\LzFindMt.obj \
$O\Lzma2Dec.obj \
$O\Lzma2DecMt.obj \
$O\Lzma2Enc.obj \
$O\LzmaDec.obj \
$O\LzmaEnc.obj \
$O\MtCoder.obj \
$O\MtDec.obj \
$O\Ppmd7.obj \
$O\Ppmd7Dec.obj \
$O\Ppmd7Enc.obj \
$O\Ppmd8.obj \
$O\Ppmd8Dec.obj \
$O\Ppmd8Enc.obj \
$O\SwapBytes.obj \
$O\Threads.obj \
$O\Xxh64.obj \
$O\Xz.obj \
$O\XzDec.obj \
$O\XzEnc.obj \
$O\XzIn.obj \
$O\ZstdDec.obj \
!include "../../UI/Console/Console.mak"
!include "../../Aes.mak"
!include "../../Crc.mak"
!include "../../Crc64.mak"
!include "../../LzFindOpt.mak"
!include "../../LzmaDec.mak"
!include "../../Sha1.mak"
!include "../../Sha256.mak"
!include "../../Sort.mak"
!include "../../7zip.mak"
@@ -0,0 +1,357 @@
PROG = 7za
CONSOLE_VARIANT_FLAGS=-DZ7_PROG_VARIANT_A
ZIP_FLAGS=-DZ7_ZIP_LZFSE_DISABLE
# IS_X64 = 1
# USE_ASM = 1
# ST_MODE = 1
ifdef SystemDrive
IS_MINGW = 1
else
ifdef SYSTEMDRIVE
# ifdef OS
IS_MINGW = 1
endif
endif
include ../../LzmaDec_gcc.mak
LOCAL_FLAGS_ST =
MT_OBJS =
ifdef ST_MODE
LOCAL_FLAGS_ST = -DZ7_ST
ifdef IS_MINGW
MT_OBJS = \
$O/Threads.o \
endif
else
MT_OBJS = \
$O/LzFindMt.o \
$O/LzFindOpt.o \
$O/Threads.o \
$O/MemBlocks.o \
$O/OutMemStream.o \
$O/ProgressMt.o \
$O/StreamBinder.o \
$O/Synchronization.o \
$O/VirtThread.o \
endif
LOCAL_FLAGS_SYS =
ifdef IS_MINGW
LOCAL_FLAGS_SYS = \
-DZ7_DEVICE_FILE \
# -DZ7_LARGE_PAGES \
# -DZ7_LONG_PATH \
SYS_OBJS = \
$O/FileSystem.o \
$O/Registry.o \
$O/MemoryLock.o \
$O/DLL.o \
$O/DllSecur.o \
$O/resource.o \
else
SYS_OBJS = \
$O/MyWindows.o \
endif
LOCAL_FLAGS = \
$(LOCAL_FLAGS_ST) \
$(LOCAL_FLAGS_SYS) \
CONSOLE_OBJS = \
$O/BenchCon.o \
$O/ConsoleClose.o \
$O/ExtractCallbackConsole.o \
$O/HashCon.o \
$O/List.o \
$O/Main.o \
$O/MainAr.o \
$O/OpenCallbackConsole.o \
$O/PercentPrinter.o \
$O/UpdateCallbackConsole.o \
$O/UserInputUtils.o \
UI_COMMON_OBJS = \
$O/ArchiveCommandLine.o \
$O/ArchiveExtractCallback.o \
$O/ArchiveOpenCallback.o \
$O/Bench.o \
$O/DefaultName.o \
$O/EnumDirItems.o \
$O/Extract.o \
$O/ExtractingFilePath.o \
$O/HashCalc.o \
$O/LoadCodecs.o \
$O/OpenArchive.o \
$O/PropIDUtils.o \
$O/SetProperties.o \
$O/SortUtils.o \
$O/TempFiles.o \
$O/Update.o \
$O/UpdateAction.o \
$O/UpdateCallback.o \
$O/UpdatePair.o \
$O/UpdateProduce.o \
COMMON_OBJS = \
$O/CommandLineParser.o \
$O/CRC.o \
$O/CrcReg.o \
$O/DynLimBuf.o \
$O/IntToString.o \
$O/ListFileUtils.o \
$O/LzFindPrepare.o \
$O/MyString.o \
$O/MyVector.o \
$O/NewHandler.o \
$O/Sha1Prepare.o \
$O/Sha1Reg.o \
$O/Sha256Prepare.o \
$O/Sha256Reg.o \
$O/StdInStream.o \
$O/StdOutStream.o \
$O/StringConvert.o \
$O/StringToInt.o \
$O/UTFConvert.o \
$O/Wildcard.o \
$O/Xxh64Reg.o \
$O/XzCrc64Init.o \
$O/XzCrc64Reg.o \
WIN_OBJS = \
$O/ErrorMsg.o \
$O/FileDir.o \
$O/FileFind.o \
$O/FileIO.o \
$O/FileLink.o \
$O/FileName.o \
$O/PropVariant.o \
$O/PropVariantConv.o \
$O/PropVariantUtils.o \
$O/System.o \
$O/SystemInfo.o \
$O/TimeUtils.o \
7ZIP_COMMON_OBJS = \
$O/CreateCoder.o \
$O/CWrappers.o \
$O/FilePathAutoRename.o \
$O/FileStreams.o \
$O/InBuffer.o \
$O/InOutTempBuffer.o \
$O/FilterCoder.o \
$O/LimitedStreams.o \
$O/MethodId.o \
$O/MethodProps.o \
$O/MultiOutStream.o \
$O/OffsetStream.o \
$O/OutBuffer.o \
$O/ProgressUtils.o \
$O/PropId.o \
$O/StreamObjects.o \
$O/StreamUtils.o \
$O/UniqBlocks.o \
AR_OBJS = \
$O/Bz2Handler.o \
$O/GzHandler.o \
$O/LzmaHandler.o \
$O/SplitHandler.o \
$O/XzHandler.o \
$O/ZstdHandler.o \
AR_COMMON_OBJS = \
$O/CoderMixer2.o \
$O/DummyOutStream.o \
$O/HandlerOut.o \
$O/InStreamWithCRC.o \
$O/ItemNameUtils.o \
$O/MultiStream.o \
$O/OutStreamWithCRC.o \
$O/ParseProperties.o \
7Z_OBJS = \
$O/7zCompressionMode.o \
$O/7zDecode.o \
$O/7zEncode.o \
$O/7zExtract.o \
$O/7zFolderInStream.o \
$O/7zHandler.o \
$O/7zHandlerOut.o \
$O/7zHeader.o \
$O/7zIn.o \
$O/7zOut.o \
$O/7zProperties.o \
$O/7zRegister.o \
$O/7zSpecStream.o \
$O/7zUpdate.o \
CAB_OBJS = \
$O/CabBlockInStream.o \
$O/CabHandler.o \
$O/CabHeader.o \
$O/CabIn.o \
$O/CabRegister.o \
TAR_OBJS = \
$O/TarHandler.o \
$O/TarHandlerOut.o \
$O/TarHeader.o \
$O/TarIn.o \
$O/TarOut.o \
$O/TarUpdate.o \
$O/TarRegister.o \
ZIP_OBJS = \
$O/ZipAddCommon.o \
$O/ZipHandler.o \
$O/ZipHandlerOut.o \
$O/ZipIn.o \
$O/ZipItem.o \
$O/ZipOut.o \
$O/ZipUpdate.o \
$O/ZipRegister.o \
COMPRESS_OBJS = \
$O/Bcj2Coder.o \
$O/Bcj2Register.o \
$O/BcjCoder.o \
$O/BcjRegister.o \
$O/BitlDecoder.o \
$O/BranchMisc.o \
$O/BranchRegister.o \
$O/ByteSwap.o \
$O/BZip2Crc.o \
$O/BZip2Decoder.o \
$O/BZip2Encoder.o \
$O/BZip2Register.o \
$O/CopyCoder.o \
$O/CopyRegister.o \
$O/Deflate64Register.o \
$O/DeflateDecoder.o \
$O/DeflateEncoder.o \
$O/DeflateRegister.o \
$O/DeltaFilter.o \
$O/ImplodeDecoder.o \
$O/Lzma2Decoder.o \
$O/Lzma2Encoder.o \
$O/Lzma2Register.o \
$O/LzmaDecoder.o \
$O/LzmaEncoder.o \
$O/LzmaRegister.o \
$O/LzOutWindow.o \
$O/LzxDecoder.o \
$O/PpmdDecoder.o \
$O/PpmdEncoder.o \
$O/PpmdRegister.o \
$O/PpmdZip.o \
$O/QuantumDecoder.o \
$O/ShrinkDecoder.o \
$O/XzDecoder.o \
$O/XzEncoder.o \
$O/ZstdDecoder.o \
# $O/LzfseDecoder.o \
# $O/ZstdRegister.o
CRYPTO_OBJS = \
$O/7zAes.o \
$O/7zAesRegister.o \
$O/HmacSha1.o \
$O/MyAes.o \
$O/MyAesReg.o \
$O/Pbkdf2HmacSha1.o \
$O/RandGen.o \
$O/WzAes.o \
$O/ZipCrypto.o \
$O/ZipStrong.o \
C_OBJS = \
$O/7zCrc.o \
$O/7zCrcOpt.o \
$O/7zStream.o \
$O/Aes.o \
$O/AesOpt.o \
$O/Alloc.o \
$O/Bcj2.o \
$O/Bcj2Enc.o \
$O/Bra.o \
$O/Bra86.o \
$O/BraIA64.o \
$O/BwtSort.o \
$O/CpuArch.o \
$O/Delta.o \
$O/HuffEnc.o \
$O/LzFind.o \
$O/Lzma2Dec.o \
$O/Lzma2DecMt.o \
$O/Lzma2Enc.o \
$O/LzmaDec.o \
$O/LzmaEnc.o \
$O/MtCoder.o \
$O/MtDec.o \
$O/Ppmd7.o \
$O/Ppmd7Dec.o \
$O/Ppmd7Enc.o \
$O/Ppmd8.o \
$O/Ppmd8Dec.o \
$O/Ppmd8Enc.o \
$O/Sha1.o \
$O/Sha1Opt.o \
$O/Sha256.o \
$O/Sha256Opt.o \
$O/Sort.o \
$O/SwapBytes.o \
$O/Xxh64.o \
$O/Xz.o \
$O/XzDec.o \
$O/XzEnc.o \
$O/XzIn.o \
$O/XzCrc64.o \
$O/XzCrc64Opt.o \
$O/ZstdDec.o \
OBJS = \
$(LZMA_DEC_OPT_OBJS) \
$(C_OBJS) \
$(MT_OBJS) \
$(SYS_OBJS) \
$(COMMON_OBJS) \
$(WIN_OBJS) \
$(COMPRESS_OBJS) \
$(CRYPTO_OBJS) \
$(7ZIP_COMMON_OBJS) \
$(AR_OBJS) \
$(AR_COMMON_OBJS) \
$(7Z_OBJS) \
$(CAB_OBJS) \
$(TAR_OBJS) \
$(ZIP_OBJS) \
$(UI_COMMON_OBJS) \
$(CONSOLE_OBJS) \
include ../../7zip_gcc.mak
@@ -0,0 +1,7 @@
#include "../../MyVersionInfo.rc"
MY_VERSION_INFO_APP("7-Zip Standalone Console", "7za")
#ifndef UNDER_CE
1 24 MOVEABLE PURE "../../UI/Console/Console.manifest"
#endif
@@ -0,0 +1,3 @@
// StdAfx.cpp
#include "StdAfx.h"
@@ -0,0 +1,11 @@
// StdAfx.h
#ifndef ZIP7_INC_STDAFX_H
#define ZIP7_INC_STDAFX_H
#if defined(_MSC_VER) && _MSC_VER >= 1800
#pragma warning(disable : 4464) // relative include path contains '..'
#endif
#include "../../../Common/Common.h"
#endif
@@ -0,0 +1,31 @@
PROG = 7zz.exe
# USE_C_AES = 1
# USE_C_SHA = 1
CFLAGS = $(CFLAGS) -DZ7_PROG_VARIANT_Z
# CONSOLE_VARIANT_FLAGS=-DZ7_PROG_VARIANT_Z
!include "../Format7zF/Arc.mak"
!include "../../UI/Console/Console.mak"
COMMON_OBJS = $(COMMON_OBJS) \
$O\CommandLineParser.obj \
$O\ListFileUtils.obj \
$O\StdInStream.obj \
$O\StdOutStream.obj \
WIN_OBJS = $(WIN_OBJS) \
$O\DLL.obj \
$O\ErrorMsg.obj \
$O\FileLink.obj \
$O\FileSystem.obj \
$O\MemoryLock.obj \
$O\Registry.obj \
$O\SystemInfo.obj \
7ZIP_COMMON_OBJS = $(7ZIP_COMMON_OBJS) \
$O\FilePathAutoRename.obj \
$O\FileStreams.obj \
$O\MultiOutStream.obj \
!include "../../7zip.mak"
@@ -0,0 +1,111 @@
PROG = 7zz
CONSOLE_VARIANT_FLAGS=-DZ7_PROG_VARIANT_Z
# IS_X64 = 1
# USE_ASM = 1
# ST_MODE = 1
include ../Format7zF/Arc_gcc.mak
ifdef SystemDrive
IS_MINGW = 1
else
ifdef SYSTEMDRIVE
# ifdef OS
IS_MINGW = 1
endif
endif
LOCAL_FLAGS_SYS =
ifdef IS_MINGW
LOCAL_FLAGS_SYS = \
-DZ7_DEVICE_FILE \
# -DZ7_LONG_PATH \
# -DZ7_DEVICE_FILE \
SYS_OBJS = \
$O/FileSystem.o \
$O/Registry.o \
$O/MemoryLock.o \
$O/DLL.o \
$O/DllSecur.o \
$O/resource.o \
else
SYS_OBJS = \
$O/MyWindows.o \
endif
LOCAL_FLAGS = \
$(LOCAL_FLAGS_SYS) \
$(LOCAL_FLAGS_ST) \
UI_COMMON_OBJS = \
$O/ArchiveCommandLine.o \
$O/ArchiveExtractCallback.o \
$O/ArchiveOpenCallback.o \
$O/Bench.o \
$O/DefaultName.o \
$O/EnumDirItems.o \
$O/Extract.o \
$O/ExtractingFilePath.o \
$O/HashCalc.o \
$O/LoadCodecs.o \
$O/OpenArchive.o \
$O/PropIDUtils.o \
$O/SetProperties.o \
$O/SortUtils.o \
$O/TempFiles.o \
$O/Update.o \
$O/UpdateAction.o \
$O/UpdateCallback.o \
$O/UpdatePair.o \
$O/UpdateProduce.o \
CONSOLE_OBJS = \
$O/BenchCon.o \
$O/ConsoleClose.o \
$O/ExtractCallbackConsole.o \
$O/HashCon.o \
$O/List.o \
$O/Main.o \
$O/MainAr.o \
$O/OpenCallbackConsole.o \
$O/PercentPrinter.o \
$O/UpdateCallbackConsole.o \
$O/UserInputUtils.o \
COMMON_OBJS_2 = \
$O/CommandLineParser.o \
$O/ListFileUtils.o \
$O/StdInStream.o \
$O/StdOutStream.o \
WIN_OBJS_2 = \
$O/ErrorMsg.o \
$O/FileLink.o \
$O/SystemInfo.o \
7ZIP_COMMON_OBJS_2 = \
$O/FilePathAutoRename.o \
$O/FileStreams.o \
$O/MultiOutStream.o \
OBJS = \
$(ARC_OBJS) \
$(SYS_OBJS) \
$(COMMON_OBJS_2) \
$(WIN_OBJS_2) \
$(7ZIP_COMMON_OBJS_2) \
$(UI_COMMON_OBJS) \
$(CONSOLE_OBJS) \
include ../../7zip_gcc.mak
@@ -0,0 +1,7 @@
#include "../../MyVersionInfo.rc"
MY_VERSION_INFO_APP("7-Zip Standalone 2 Console", "7zz")
#ifndef UNDER_CE
1 24 MOVEABLE PURE "../../UI/Console/Console.manifest"
#endif
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,29 @@
Microsoft Developer Studio Workspace File, Format Version 6.00
# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
###############################################################################
Project: "Alone"=.\Alone.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
}}}
###############################################################################
Global:
Package=<5>
{{{
}}}
Package=<3>
{{{
}}}
###############################################################################
@@ -0,0 +1,3 @@
// StdAfx.cpp
#include "StdAfx.h"
@@ -0,0 +1,11 @@
// StdAfx.h
#ifndef ZIP7_INC_STDAFX_H
#define ZIP7_INC_STDAFX_H
#if defined(_MSC_VER) && _MSC_VER >= 1800
#pragma warning(disable : 4464) // relative include path contains '..'
#endif
#include "../../../Common/Common.h"
#endif
@@ -0,0 +1,168 @@
PROG = 7zr.exe
# USE_C_AES = 1
# USE_C_SHA = 1
# USE_C_CRC64 = 1
# USE_C_CRC = 1
# NO_ASM_GNU=1
# NO_ASM=1
CFLAGS = $(CFLAGS) -DZ7_PROG_VARIANT_R
# CONSOLE_VARIANT_FLAGS=-DZ7_PROG_VARIANT_R
COMMON_OBJS = \
$O\CommandLineParser.obj \
$O\CRC.obj \
$O\CrcReg.obj \
$O\DynLimBuf.obj \
$O\IntToString.obj \
$O\ListFileUtils.obj \
$O\LzFindPrepare.obj \
$O\NewHandler.obj \
$O\StdInStream.obj \
$O\StdOutStream.obj \
$O\MyString.obj \
$O\Sha256Reg.obj \
$O\StringConvert.obj \
$O\StringToInt.obj \
$O\UTFConvert.obj \
$O\MyVector.obj \
$O\Wildcard.obj \
$O\XzCrc64Init.obj \
$O\XzCrc64Reg.obj \
WIN_OBJS = \
$O\DLL.obj \
$O\ErrorMsg.obj \
$O\FileDir.obj \
$O\FileFind.obj \
$O\FileIO.obj \
$O\FileLink.obj \
$O\FileName.obj \
$O\FileSystem.obj \
$O\MemoryLock.obj \
$O\PropVariant.obj \
$O\PropVariantConv.obj \
$O\Registry.obj \
$O\System.obj \
$O\SystemInfo.obj \
$O\TimeUtils.obj \
7ZIP_COMMON_OBJS = \
$O\CreateCoder.obj \
$O\CWrappers.obj \
$O\FilePathAutoRename.obj \
$O\FileStreams.obj \
$O\InBuffer.obj \
$O\InOutTempBuffer.obj \
$O\FilterCoder.obj \
$O\LimitedStreams.obj \
$O\MethodId.obj \
$O\MethodProps.obj \
$O\MultiOutStream.obj \
$O\OffsetStream.obj \
$O\OutBuffer.obj \
$O\ProgressUtils.obj \
$O\PropId.obj \
$O\StreamBinder.obj \
$O\StreamObjects.obj \
$O\StreamUtils.obj \
$O\UniqBlocks.obj \
$O\VirtThread.obj \
AR_OBJS = \
$O\LzmaHandler.obj \
$O\SplitHandler.obj \
$O\XzHandler.obj \
AR_COMMON_OBJS = \
$O\CoderMixer2.obj \
$O\DummyOutStream.obj \
$O\HandlerOut.obj \
$O\InStreamWithCRC.obj \
$O\ItemNameUtils.obj \
$O\MultiStream.obj \
$O\OutStreamWithCRC.obj \
$O\ParseProperties.obj \
7Z_OBJS = \
$O\7zCompressionMode.obj \
$O\7zDecode.obj \
$O\7zEncode.obj \
$O\7zExtract.obj \
$O\7zFolderInStream.obj \
$O\7zHandler.obj \
$O\7zHandlerOut.obj \
$O\7zHeader.obj \
$O\7zIn.obj \
$O\7zOut.obj \
$O\7zProperties.obj \
$O\7zRegister.obj \
$O\7zSpecStream.obj \
$O\7zUpdate.obj \
COMPRESS_OBJS = \
$O\Bcj2Coder.obj \
$O\Bcj2Register.obj \
$O\BcjCoder.obj \
$O\BcjRegister.obj \
$O\BranchMisc.obj \
$O\BranchRegister.obj \
$O\ByteSwap.obj \
$O\CopyCoder.obj \
$O\CopyRegister.obj \
$O\DeltaFilter.obj \
$O\Lzma2Decoder.obj \
$O\Lzma2Encoder.obj \
$O\Lzma2Register.obj \
$O\LzmaDecoder.obj \
$O\LzmaEncoder.obj \
$O\LzmaRegister.obj \
$O\XzDecoder.obj \
$O\XzEncoder.obj \
CRYPTO_OBJS = \
$O\7zAes.obj \
$O\7zAesRegister.obj \
$O\MyAes.obj \
$O\MyAesReg.obj \
$O\RandGen.obj \
C_OBJS = \
$O\7zStream.obj \
$O\Alloc.obj \
$O\Bcj2.obj \
$O\Bcj2Enc.obj \
$O\Bra.obj \
$O\Bra86.obj \
$O\BraIA64.obj \
$O\CpuArch.obj \
$O\Delta.obj \
$O\LzFind.obj \
$O\LzFindMt.obj \
$O\Lzma2Dec.obj \
$O\Lzma2DecMt.obj \
$O\Lzma2Enc.obj \
$O\LzmaDec.obj \
$O\LzmaEnc.obj \
$O\MtCoder.obj \
$O\MtDec.obj \
$O\SwapBytes.obj \
$O\Threads.obj \
$O\Xz.obj \
$O\XzDec.obj \
$O\XzEnc.obj \
$O\XzIn.obj \
!include "../../UI/Console/Console.mak"
!include "../../Aes.mak"
!include "../../Crc.mak"
!include "../../Crc64.mak"
!include "../../LzFindOpt.mak"
!include "../../LzmaDec.mak"
!include "../../Sha256.mak"
!include "../../Sort.mak"
!include "../../7zip.mak"
@@ -0,0 +1,279 @@
PROG = 7zr
CONSOLE_VARIANT_FLAGS=-DZ7_PROG_VARIANT_R
# IS_X64 = 1
# USE_ASM = 1
# ST_MODE = 1
ifdef SystemDrive
IS_MINGW = 1
else
ifdef SYSTEMDRIVE
# ifdef OS
IS_MINGW = 1
endif
endif
include ../../LzmaDec_gcc.mak
LOCAL_FLAGS_ST =
MT_OBJS =
ifdef ST_MODE
LOCAL_FLAGS_ST = -DZ7_ST
ifdef IS_MINGW
MT_OBJS = \
$O/Threads.o \
endif
else
MT_OBJS = \
$O/LzFindMt.o \
$O/LzFindOpt.o \
$O/Threads.o \
$O/StreamBinder.o \
$O/VirtThread.o \
endif
LOCAL_FLAGS_SYS =
ifdef IS_MINGW
LOCAL_FLAGS_SYS = \
-DZ7_DEVICE_FILE \
# -DZ7_LARGE_PAGES \
# -DZ7_LONG_PATH \
SYS_OBJS = \
$O/FileSystem.o \
$O/Registry.o \
$O/MemoryLock.o \
$O/DLL.o \
$O/DllSecur.o \
$O/resource.o \
else
SYS_OBJS = \
$O/MyWindows.o \
endif
LOCAL_FLAGS = \
$(LOCAL_FLAGS_ST) \
$(LOCAL_FLAGS_SYS) \
CONSOLE_OBJS = \
$O/BenchCon.o \
$O/ConsoleClose.o \
$O/ExtractCallbackConsole.o \
$O/HashCon.o \
$O/List.o \
$O/Main.o \
$O/MainAr.o \
$O/OpenCallbackConsole.o \
$O/PercentPrinter.o \
$O/UpdateCallbackConsole.o \
$O/UserInputUtils.o \
UI_COMMON_OBJS = \
$O/ArchiveCommandLine.o \
$O/ArchiveExtractCallback.o \
$O/ArchiveOpenCallback.o \
$O/Bench.o \
$O/DefaultName.o \
$O/EnumDirItems.o \
$O/Extract.o \
$O/ExtractingFilePath.o \
$O/HashCalc.o \
$O/LoadCodecs.o \
$O/OpenArchive.o \
$O/PropIDUtils.o \
$O/SetProperties.o \
$O/SortUtils.o \
$O/TempFiles.o \
$O/Update.o \
$O/UpdateAction.o \
$O/UpdateCallback.o \
$O/UpdatePair.o \
$O/UpdateProduce.o \
COMMON_OBJS = \
$O/CommandLineParser.o \
$O/CRC.o \
$O/CrcReg.o \
$O/DynLimBuf.o \
$O/IntToString.o \
$O/ListFileUtils.o \
$O/LzFindPrepare.o \
$O/MyString.o \
$O/MyVector.o \
$O/NewHandler.o \
$O/Sha256Prepare.o \
$O/Sha256Reg.o \
$O/StdInStream.o \
$O/StdOutStream.o \
$O/StringConvert.o \
$O/StringToInt.o \
$O/UTFConvert.o \
$O/Wildcard.o \
$O/XzCrc64Init.o \
$O/XzCrc64Reg.o \
WIN_OBJS = \
$O/ErrorMsg.o \
$O/FileDir.o \
$O/FileFind.o \
$O/FileIO.o \
$O/FileLink.o \
$O/FileName.o \
$O/PropVariant.o \
$O/PropVariantConv.o \
$O/System.o \
$O/SystemInfo.o \
$O/TimeUtils.o \
7ZIP_COMMON_OBJS = \
$O/CreateCoder.o \
$O/CWrappers.o \
$O/FilePathAutoRename.o \
$O/FileStreams.o \
$O/InBuffer.o \
$O/InOutTempBuffer.o \
$O/FilterCoder.o \
$O/LimitedStreams.o \
$O/MethodId.o \
$O/MethodProps.o \
$O/MultiOutStream.o \
$O/OffsetStream.o \
$O/OutBuffer.o \
$O/ProgressUtils.o \
$O/PropId.o \
$O/StreamObjects.o \
$O/StreamUtils.o \
$O/UniqBlocks.o \
AR_OBJS = \
$O/LzmaHandler.o \
$O/SplitHandler.o \
$O/XzHandler.o \
AR_COMMON_OBJS = \
$O/CoderMixer2.o \
$O/DummyOutStream.o \
$O/HandlerOut.o \
$O/InStreamWithCRC.o \
$O/ItemNameUtils.o \
$O/MultiStream.o \
$O/OutStreamWithCRC.o \
$O/ParseProperties.o \
7Z_OBJS = \
$O/7zCompressionMode.o \
$O/7zDecode.o \
$O/7zEncode.o \
$O/7zExtract.o \
$O/7zFolderInStream.o \
$O/7zHandler.o \
$O/7zHandlerOut.o \
$O/7zHeader.o \
$O/7zIn.o \
$O/7zOut.o \
$O/7zProperties.o \
$O/7zRegister.o \
$O/7zSpecStream.o \
$O/7zUpdate.o \
COMPRESS_OBJS = \
$O/Bcj2Coder.o \
$O/Bcj2Register.o \
$O/BcjCoder.o \
$O/BcjRegister.o \
$O/BranchMisc.o \
$O/BranchRegister.o \
$O/ByteSwap.o \
$O/CopyCoder.o \
$O/CopyRegister.o \
$O/DeltaFilter.o \
$O/Lzma2Decoder.o \
$O/Lzma2Encoder.o \
$O/Lzma2Register.o \
$O/LzmaDecoder.o \
$O/LzmaEncoder.o \
$O/LzmaRegister.o \
$O/XzDecoder.o \
$O/XzEncoder.o \
CRYPTO_OBJS = \
$O/7zAes.o \
$O/7zAesRegister.o \
$O/MyAes.o \
$O/MyAesReg.o \
$O/RandGen.o \
C_OBJS = \
$O/7zCrc.o \
$O/7zCrcOpt.o \
$O/7zStream.o \
$O/Aes.o \
$O/AesOpt.o \
$O/Alloc.o \
$O/Bcj2.o \
$O/Bcj2Enc.o \
$O/Bra.o \
$O/Bra86.o \
$O/BraIA64.o \
$O/CpuArch.o \
$O/Delta.o \
$O/LzFind.o \
$O/Lzma2Dec.o \
$O/Lzma2DecMt.o \
$O/Lzma2Enc.o \
$O/LzmaDec.o \
$O/LzmaEnc.o \
$O/MtCoder.o \
$O/MtDec.o \
$O/Sha256.o \
$O/Sha256Opt.o \
$O/SwapBytes.o \
$O/Xz.o \
$O/XzDec.o \
$O/XzEnc.o \
$O/XzIn.o \
$O/XzCrc64.o \
$O/XzCrc64Opt.o \
OBJS = \
$(LZMA_DEC_OPT_OBJS) \
$(C_OBJS) \
$(MT_OBJS) \
$(SYS_OBJS) \
$(COMMON_OBJS) \
$(WIN_OBJS) \
$(COMPRESS_OBJS) \
$(CRYPTO_OBJS) \
$(7ZIP_COMMON_OBJS) \
$(AR_OBJS) \
$(AR_COMMON_OBJS) \
$(7Z_OBJS) \
$(UI_COMMON_OBJS) \
$(CONSOLE_OBJS) \
include ../../7zip_gcc.mak
@@ -0,0 +1,7 @@
#include "../../../../C/7zVersion.rc"
MY_VERSION_INFO_APP("7-Zip Reduced Standalone Console", "7zr")
#ifndef UNDER_CE
1 24 MOVEABLE PURE "../../UI/Console/Console.manifest"
#endif
File diff suppressed because it is too large Load Diff
+29
View File
@@ -0,0 +1,29 @@
Microsoft Developer Studio Workspace File, Format Version 6.00
# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
###############################################################################
Project: "FM"=.\FM.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
}}}
###############################################################################
Global:
Package=<5>
{{{
}}}
Package=<3>
{{{
}}}
###############################################################################
@@ -0,0 +1,3 @@
// StdAfx.cpp
#include "StdAfx.h"
@@ -0,0 +1,6 @@
// StdAfx.h
#if _MSC_VER >= 1800
#pragma warning(disable : 4464) // relative include path contains '..'
#endif
#include "../../UI/FileManager/StdAfx.h"
@@ -0,0 +1,84 @@
PROG = 7zFM.exe
# CFLAGS = $(CFLAGS) -DZ7_LARGE_PAGES
!include "../Format7zF/Arc.mak"
!include "../../UI/FileManager/FM.mak"
COMMON_OBJS = $(COMMON_OBJS) \
$O\CommandLineParser.obj \
$O\Lang.obj \
$O\ListFileUtils.obj \
$O\Random.obj \
WIN_OBJS = $(WIN_OBJS) \
$O\Clipboard.obj \
$O\CommonDialog.obj \
$O\DLL.obj \
$O\ErrorMsg.obj \
$O\FileLink.obj \
$O\MemoryGlobal.obj \
$O\MemoryLock.obj \
$O\Menu.obj \
$O\ProcessUtils.obj \
$O\Registry.obj \
$O\ResourceString.obj \
$O\SystemInfo.obj \
$O\Shell.obj \
$O\Window.obj \
WIN_CTRL_OBJS = \
$O\ComboBox.obj \
$O\Dialog.obj \
$O\ListView.obj \
$O\PropertyPage.obj \
$O\Window2.obj \
7ZIP_COMMON_OBJS = $(7ZIP_COMMON_OBJS) \
$O\FilePathAutoRename.obj \
$O\FileStreams.obj \
$O\MultiOutStream.obj \
UI_COMMON_OBJS = \
$O\ArchiveExtractCallback.obj \
$O\ArchiveName.obj \
$O\ArchiveOpenCallback.obj \
$O\Bench.obj \
$O\CompressCall2.obj \
$O\DefaultName.obj \
$O\EnumDirItems.obj \
$O\Extract.obj \
$O\ExtractingFilePath.obj \
$O\HashCalc.obj \
$O\LoadCodecs.obj \
$O\OpenArchive.obj \
$O\PropIDUtils.obj \
$O\SetProperties.obj \
$O\SortUtils.obj \
$O\TempFiles.obj \
$O\Update.obj \
$O\UpdateAction.obj \
$O\UpdateCallback.obj \
$O\UpdatePair.obj \
$O\UpdateProduce.obj \
$O\WorkDir.obj \
$O\ZipRegistry.obj \
EXPLORER_OBJS = \
$O\ContextMenu.obj \
$O\MyMessages.obj \
$O\RegistryContextMenu.obj \
GUI_OBJS = \
$O\BenchmarkDialog.obj \
$O\CompressDialog.obj \
$O\ExtractDialog.obj \
$O\ExtractGUI.obj \
$O\HashGUI.obj \
$O\UpdateCallbackGUI.obj \
$O\UpdateCallbackGUI2.obj \
$O\UpdateGUI.obj \
!include "../../7zip.mak"
@@ -0,0 +1,7 @@
#include "../../UI/FileManager/resource.rc"
#include "../../UI/GUI/resource2.rc"
STRINGTABLE
BEGIN
100 "7z zip rar 001 cab iso xz txz lzma tar cpio bz2 bzip2 tbz2 tbz gz gzip tgz tpz z taz lzh lha rpm deb arj vhd vhdx wim swm esd fat ntfs dmg hfs xar squashfs apfs"
END
@@ -0,0 +1,3 @@
// StdAfx.cpp
#include "StdAfx.h"
@@ -0,0 +1,11 @@
// StdAfx.h
#ifndef ZIP7_INC_STDAFX_H
#define ZIP7_INC_STDAFX_H
#if defined(_MSC_VER) && _MSC_VER >= 1800
#pragma warning(disable : 4464) // relative include path contains '..'
#endif
#include "../../../Common/Common.h"
#endif
@@ -0,0 +1,148 @@
PROG = 7za.dll
DEF_FILE = ../../Archive/Archive2.def
CFLAGS = $(CFLAGS) \
-DZ7_DEFLATE_EXTRACT_ONLY \
-DZ7_BZIP2_EXTRACT_ONLY \
COMMON_OBJS = \
$O\CRC.obj \
$O\CrcReg.obj \
$O\IntToString.obj \
$O\LzFindPrepare.obj \
$O\NewHandler.obj \
$O\MyString.obj \
$O\Sha256Reg.obj \
$O\StringConvert.obj \
$O\StringToInt.obj \
$O\MyVector.obj \
$O\Wildcard.obj \
WIN_OBJS = \
$O\FileDir.obj \
$O\FileFind.obj \
$O\FileIO.obj \
$O\FileName.obj \
$O\PropVariant.obj \
$O\Synchronization.obj \
$O\System.obj \
$O\TimeUtils.obj \
7ZIP_COMMON_OBJS = \
$O\CreateCoder.obj \
$O\CWrappers.obj \
$O\InBuffer.obj \
$O\InOutTempBuffer.obj \
$O\FilterCoder.obj \
$O\LimitedStreams.obj \
$O\MethodId.obj \
$O\MethodProps.obj \
$O\OutBuffer.obj \
$O\ProgressUtils.obj \
$O\PropId.obj \
$O\StreamBinder.obj \
$O\StreamObjects.obj \
$O\StreamUtils.obj \
$O\UniqBlocks.obj \
$O\VirtThread.obj \
AR_OBJS = \
$O\ArchiveExports.obj \
$O\DllExports2.obj \
AR_COMMON_OBJS = \
$O\CoderMixer2.obj \
$O\HandlerOut.obj \
$O\InStreamWithCRC.obj \
$O\ItemNameUtils.obj \
$O\OutStreamWithCRC.obj \
$O\ParseProperties.obj \
7Z_OBJS = \
$O\7zCompressionMode.obj \
$O\7zDecode.obj \
$O\7zEncode.obj \
$O\7zExtract.obj \
$O\7zFolderInStream.obj \
$O\7zHandler.obj \
$O\7zHandlerOut.obj \
$O\7zHeader.obj \
$O\7zIn.obj \
$O\7zOut.obj \
$O\7zProperties.obj \
$O\7zSpecStream.obj \
$O\7zUpdate.obj \
$O\7zRegister.obj \
COMPRESS_OBJS = \
$O\CodecExports.obj \
$O\Bcj2Coder.obj \
$O\Bcj2Register.obj \
$O\BcjCoder.obj \
$O\BcjRegister.obj \
$O\BitlDecoder.obj \
$O\BranchMisc.obj \
$O\BranchRegister.obj \
$O\ByteSwap.obj \
$O\BZip2Crc.obj \
$O\BZip2Decoder.obj \
$O\BZip2Register.obj \
$O\CopyCoder.obj \
$O\CopyRegister.obj \
$O\DeflateDecoder.obj \
$O\DeflateRegister.obj \
$O\DeltaFilter.obj \
$O\Lzma2Decoder.obj \
$O\Lzma2Encoder.obj \
$O\Lzma2Register.obj \
$O\LzmaDecoder.obj \
$O\LzmaEncoder.obj \
$O\LzmaRegister.obj \
$O\LzOutWindow.obj \
$O\PpmdDecoder.obj \
$O\PpmdEncoder.obj \
$O\PpmdRegister.obj \
CRYPTO_OBJS = \
$O\7zAes.obj \
$O\7zAesRegister.obj \
$O\MyAes.obj \
$O\MyAesReg.obj \
$O\RandGen.obj \
C_OBJS = \
$O\7zStream.obj \
$O\Alloc.obj \
$O\Bcj2.obj \
$O\Bcj2Enc.obj \
$O\Bra.obj \
$O\Bra86.obj \
$O\BraIA64.obj \
$O\BwtSort.obj \
$O\CpuArch.obj \
$O\Delta.obj \
$O\HuffEnc.obj \
$O\LzFind.obj \
$O\LzFindMt.obj \
$O\Lzma2Dec.obj \
$O\Lzma2DecMt.obj \
$O\Lzma2Enc.obj \
$O\LzmaDec.obj \
$O\LzmaEnc.obj \
$O\MtCoder.obj \
$O\MtDec.obj \
$O\Ppmd7.obj \
$O\Ppmd7Dec.obj \
$O\Ppmd7Enc.obj \
$O\SwapBytes.obj \
$O\Threads.obj \
!include "../../Aes.mak"
!include "../../Crc.mak"
!include "../../LzFindOpt.mak"
!include "../../LzmaDec.mak"
!include "../../Sha256.mak"
!include "../../Sort.mak"
!include "../../7zip.mak"
@@ -0,0 +1,5 @@
#include "../../MyVersionInfo.rc"
MY_VERSION_INFO_DLL("7z Standalone Plugin", "7za")
101 ICON "../../Archive/Icons/7z.ico"
@@ -0,0 +1,3 @@
// StdAfx.cpp
#include "StdAfx.h"
@@ -0,0 +1,11 @@
// StdAfx.h
#ifndef ZIP7_INC_STDAFX_H
#define ZIP7_INC_STDAFX_H
#if defined(_MSC_VER) && _MSC_VER >= 1800
#pragma warning(disable : 4464) // relative include path contains '..'
#endif
#include "../../../Common/Common.h"
#endif
@@ -0,0 +1,116 @@
PROG = 7zxa.dll
DEF_FILE = ../../Archive/Archive2.def
CFLAGS = $(CFLAGS) \
-DZ7_EXTRACT_ONLY \
COMMON_OBJS = \
$O\CRC.obj \
$O\CrcReg.obj \
$O\IntToString.obj \
$O\MyString.obj \
$O\MyVector.obj \
$O\NewHandler.obj \
$O\Sha256Reg.obj \
$O\StringConvert.obj \
$O\StringToInt.obj \
$O\Wildcard.obj \
WIN_OBJS = \
$O\PropVariant.obj \
$O\Synchronization.obj \
$O\System.obj \
7ZIP_COMMON_OBJS = \
$O\CreateCoder.obj \
$O\CWrappers.obj \
$O\InBuffer.obj \
$O\FilterCoder.obj \
$O\LimitedStreams.obj \
$O\MethodId.obj \
$O\MethodProps.obj \
$O\OutBuffer.obj \
$O\ProgressUtils.obj \
$O\PropId.obj \
$O\StreamBinder.obj \
$O\StreamObjects.obj \
$O\StreamUtils.obj \
$O\VirtThread.obj \
AR_OBJS = \
$O\ArchiveExports.obj \
$O\DllExports2.obj \
AR_COMMON_OBJS = \
$O\CoderMixer2.obj \
$O\HandlerOut.obj \
$O\ItemNameUtils.obj \
$O\OutStreamWithCRC.obj \
$O\ParseProperties.obj \
7Z_OBJS = \
$O\7zCompressionMode.obj \
$O\7zDecode.obj \
$O\7zExtract.obj \
$O\7zHandler.obj \
$O\7zHeader.obj \
$O\7zIn.obj \
$O\7zProperties.obj \
$O\7zRegister.obj \
COMPRESS_OBJS = \
$O\CodecExports.obj \
$O\Bcj2Coder.obj \
$O\Bcj2Register.obj \
$O\BcjCoder.obj \
$O\BcjRegister.obj \
$O\BitlDecoder.obj \
$O\BranchMisc.obj \
$O\BranchRegister.obj \
$O\ByteSwap.obj \
$O\BZip2Crc.obj \
$O\BZip2Decoder.obj \
$O\BZip2Register.obj \
$O\CopyCoder.obj \
$O\CopyRegister.obj \
$O\DeflateDecoder.obj \
$O\DeflateRegister.obj \
$O\DeltaFilter.obj \
$O\Lzma2Decoder.obj \
$O\Lzma2Register.obj \
$O\LzmaDecoder.obj \
$O\LzmaRegister.obj \
$O\LzOutWindow.obj \
$O\PpmdDecoder.obj \
$O\PpmdRegister.obj \
CRYPTO_OBJS = \
$O\7zAes.obj \
$O\7zAesRegister.obj \
$O\MyAes.obj \
$O\MyAesReg.obj \
C_OBJS = \
$O\7zStream.obj \
$O\Alloc.obj \
$O\Bcj2.obj \
$O\Bra.obj \
$O\Bra86.obj \
$O\BraIA64.obj \
$O\CpuArch.obj \
$O\Delta.obj \
$O\Lzma2Dec.obj \
$O\Lzma2DecMt.obj \
$O\LzmaDec.obj \
$O\MtDec.obj \
$O\Ppmd7.obj \
$O\Ppmd7Dec.obj \
$O\SwapBytes.obj \
$O\Threads.obj \
!include "../../Aes.mak"
!include "../../Crc.mak"
!include "../../LzmaDec.mak"
!include "../../Sha256.mak"
!include "../../7zip.mak"
@@ -0,0 +1,5 @@
#include "../../MyVersionInfo.rc"
MY_VERSION_INFO_DLL("7z Standalone Extracting Plugin", "7zxa")
101 ICON "../../Archive/Icons/7z.ico"
@@ -0,0 +1,3 @@
// StdAfx.cpp
#include "StdAfx.h"
@@ -0,0 +1,11 @@
// StdAfx.h
#ifndef ZIP7_INC_STDAFX_H
#define ZIP7_INC_STDAFX_H
#if defined(_MSC_VER) && _MSC_VER >= 1800
#pragma warning(disable : 4464) // relative include path contains '..'
#endif
#include "../../../Common/Common.h"
#endif
@@ -0,0 +1,98 @@
PROG = 7zxr.dll
DEF_FILE = ../../Archive/Archive2.def
CFLAGS = $(CFLAGS) \
-DZ7_EXTRACT_ONLY \
-DZ7_NO_CRYPTO
COMMON_OBJS = \
$O\CRC.obj \
$O\CrcReg.obj \
$O\IntToString.obj \
$O\NewHandler.obj \
$O\MyString.obj \
$O\StringConvert.obj \
$O\StringToInt.obj \
$O\MyVector.obj \
$O\Wildcard.obj \
WIN_OBJS = \
$O\PropVariant.obj \
$O\Synchronization.obj \
$O\System.obj \
7ZIP_COMMON_OBJS = \
$O\CreateCoder.obj \
$O\CWrappers.obj \
$O\InBuffer.obj \
$O\FilterCoder.obj \
$O\LimitedStreams.obj \
$O\MethodId.obj \
$O\MethodProps.obj \
$O\OutBuffer.obj \
$O\ProgressUtils.obj \
$O\PropId.obj \
$O\StreamBinder.obj \
$O\StreamObjects.obj \
$O\StreamUtils.obj \
$O\VirtThread.obj \
AR_OBJS = \
$O\ArchiveExports.obj \
$O\DllExports2.obj \
AR_COMMON_OBJS = \
$O\CoderMixer2.obj \
$O\HandlerOut.obj \
$O\ItemNameUtils.obj \
$O\OutStreamWithCRC.obj \
$O\ParseProperties.obj \
7Z_OBJS = \
$O\7zCompressionMode.obj \
$O\7zDecode.obj \
$O\7zExtract.obj \
$O\7zHandler.obj \
$O\7zHeader.obj \
$O\7zIn.obj \
$O\7zProperties.obj \
$O\7zRegister.obj \
COMPRESS_OBJS = \
$O\CodecExports.obj \
$O\Bcj2Coder.obj \
$O\Bcj2Register.obj \
$O\BcjCoder.obj \
$O\BcjRegister.obj \
$O\BranchMisc.obj \
$O\BranchRegister.obj \
$O\ByteSwap.obj \
$O\CopyCoder.obj \
$O\CopyRegister.obj \
$O\DeltaFilter.obj \
$O\Lzma2Decoder.obj \
$O\Lzma2Register.obj \
$O\LzmaDecoder.obj \
$O\LzmaRegister.obj \
C_OBJS = \
$O\7zStream.obj \
$O\Alloc.obj \
$O\Bcj2.obj \
$O\Bra.obj \
$O\Bra86.obj \
$O\BraIA64.obj \
$O\CpuArch.obj \
$O\Delta.obj \
$O\Lzma2Dec.obj \
$O\Lzma2DecMt.obj \
$O\LzmaDec.obj \
$O\MtDec.obj \
$O\SwapBytes.obj \
$O\Threads.obj \
!include "../../Crc.mak"
!include "../../LzmaDec.mak"
!include "../../7zip.mak"
@@ -0,0 +1,5 @@
#include "../../../../C/7zVersion.rc"
MY_VERSION_INFO_DLL("7z Extracting Reduced Standalone Plugin", "7zxr")
101 ICON "../../Archive/Icons/7z.ico"
@@ -0,0 +1,310 @@
COMMON_OBJS = \
$O\CRC.obj \
$O\CrcReg.obj \
$O\DynLimBuf.obj \
$O\IntToString.obj \
$O\LzFindPrepare.obj \
$O\Md5Reg.obj \
$O\MyMap.obj \
$O\MyString.obj \
$O\MyVector.obj \
$O\MyXml.obj \
$O\NewHandler.obj \
$O\Sha1Reg.obj \
$O\Sha256Reg.obj \
$O\Sha3Reg.obj \
$O\Sha512Reg.obj \
$O\Sha512Prepare.obj \
$O\StringConvert.obj \
$O\StringToInt.obj \
$O\UTFConvert.obj \
$O\Wildcard.obj \
$O\Xxh64Reg.obj \
$O\XzCrc64Init.obj \
$O\XzCrc64Reg.obj \
WIN_OBJS = \
$O\FileDir.obj \
$O\FileFind.obj \
$O\FileIO.obj \
$O\FileName.obj \
$O\PropVariant.obj \
$O\PropVariantConv.obj \
$O\PropVariantUtils.obj \
$O\Synchronization.obj \
$O\System.obj \
$O\TimeUtils.obj \
7ZIP_COMMON_OBJS = \
$O\CreateCoder.obj \
$O\CWrappers.obj \
$O\InBuffer.obj \
$O\InOutTempBuffer.obj \
$O\FilterCoder.obj \
$O\LimitedStreams.obj \
$O\LockedStream.obj \
$O\MemBlocks.obj \
$O\MethodId.obj \
$O\MethodProps.obj \
$O\OffsetStream.obj \
$O\OutBuffer.obj \
$O\OutMemStream.obj \
$O\ProgressMt.obj \
$O\ProgressUtils.obj \
$O\PropId.obj \
$O\StreamBinder.obj \
$O\StreamObjects.obj \
$O\StreamUtils.obj \
$O\UniqBlocks.obj \
$O\VirtThread.obj \
AR_OBJS = \
$O\ApfsHandler.obj \
$O\ApmHandler.obj \
$O\ArHandler.obj \
$O\ArjHandler.obj \
$O\Base64Handler.obj \
$O\Bz2Handler.obj \
$O\ComHandler.obj \
$O\CpioHandler.obj \
$O\CramfsHandler.obj \
$O\DeflateProps.obj \
$O\DmgHandler.obj \
$O\ElfHandler.obj \
$O\ExtHandler.obj \
$O\FatHandler.obj \
$O\FlvHandler.obj \
$O\GzHandler.obj \
$O\GptHandler.obj \
$O\HandlerCont.obj \
$O\HfsHandler.obj \
$O\IhexHandler.obj \
$O\LpHandler.obj \
$O\LzhHandler.obj \
$O\LzmaHandler.obj \
$O\MachoHandler.obj \
$O\MbrHandler.obj \
$O\MslzHandler.obj \
$O\MubHandler.obj \
$O\NtfsHandler.obj \
$O\PeHandler.obj \
$O\PpmdHandler.obj \
$O\QcowHandler.obj \
$O\RpmHandler.obj \
$O\SparseHandler.obj \
$O\SplitHandler.obj \
$O\SquashfsHandler.obj \
$O\SwfHandler.obj \
$O\UefiHandler.obj \
$O\VdiHandler.obj \
$O\VhdHandler.obj \
$O\VhdxHandler.obj \
$O\VmdkHandler.obj \
$O\XarHandler.obj \
$O\XzHandler.obj \
$O\ZHandler.obj \
$O\ZstdHandler.obj \
AR_COMMON_OBJS = \
$O\CoderMixer2.obj \
$O\DummyOutStream.obj \
$O\FindSignature.obj \
$O\InStreamWithCRC.obj \
$O\ItemNameUtils.obj \
$O\MultiStream.obj \
$O\OutStreamWithCRC.obj \
$O\OutStreamWithSha1.obj \
$O\HandlerOut.obj \
$O\ParseProperties.obj \
7Z_OBJS = \
$O\7zCompressionMode.obj \
$O\7zDecode.obj \
$O\7zEncode.obj \
$O\7zExtract.obj \
$O\7zFolderInStream.obj \
$O\7zHandler.obj \
$O\7zHandlerOut.obj \
$O\7zHeader.obj \
$O\7zIn.obj \
$O\7zOut.obj \
$O\7zProperties.obj \
$O\7zSpecStream.obj \
$O\7zUpdate.obj \
$O\7zRegister.obj \
CAB_OBJS = \
$O\CabBlockInStream.obj \
$O\CabHandler.obj \
$O\CabHeader.obj \
$O\CabIn.obj \
$O\CabRegister.obj \
CHM_OBJS = \
$O\ChmHandler.obj \
$O\ChmIn.obj \
ISO_OBJS = \
$O\IsoHandler.obj \
$O\IsoHeader.obj \
$O\IsoIn.obj \
$O\IsoRegister.obj \
NSIS_OBJS = \
$O\NsisDecode.obj \
$O\NsisHandler.obj \
$O\NsisIn.obj \
$O\NsisRegister.obj \
RAR_OBJS = \
$O\RarHandler.obj \
$O\Rar5Handler.obj \
TAR_OBJS = \
$O\TarHandler.obj \
$O\TarHandlerOut.obj \
$O\TarHeader.obj \
$O\TarIn.obj \
$O\TarOut.obj \
$O\TarUpdate.obj \
$O\TarRegister.obj \
UDF_OBJS = \
$O\UdfHandler.obj \
$O\UdfIn.obj \
WIM_OBJS = \
$O\WimHandler.obj \
$O\WimHandlerOut.obj \
$O\WimIn.obj \
$O\WimRegister.obj \
ZIP_OBJS = \
$O\ZipAddCommon.obj \
$O\ZipHandler.obj \
$O\ZipHandlerOut.obj \
$O\ZipIn.obj \
$O\ZipItem.obj \
$O\ZipOut.obj \
$O\ZipUpdate.obj \
$O\ZipRegister.obj \
COMPRESS_OBJS = \
$O\Bcj2Coder.obj \
$O\Bcj2Register.obj \
$O\BcjCoder.obj \
$O\BcjRegister.obj \
$O\BitlDecoder.obj \
$O\BranchMisc.obj \
$O\BranchRegister.obj \
$O\ByteSwap.obj \
$O\BZip2Crc.obj \
$O\BZip2Decoder.obj \
$O\BZip2Encoder.obj \
$O\BZip2Register.obj \
$O\CopyCoder.obj \
$O\CopyRegister.obj \
$O\Deflate64Register.obj \
$O\DeflateDecoder.obj \
$O\DeflateEncoder.obj \
$O\DeflateRegister.obj \
$O\DeltaFilter.obj \
$O\ImplodeDecoder.obj \
$O\LzfseDecoder.obj \
$O\LzhDecoder.obj \
$O\Lzma2Decoder.obj \
$O\Lzma2Encoder.obj \
$O\Lzma2Register.obj \
$O\LzmaDecoder.obj \
$O\LzmaEncoder.obj \
$O\LzmaRegister.obj \
$O\LzmsDecoder.obj \
$O\LzOutWindow.obj \
$O\LzxDecoder.obj \
$O\PpmdDecoder.obj \
$O\PpmdEncoder.obj \
$O\PpmdRegister.obj \
$O\PpmdZip.obj \
$O\QuantumDecoder.obj \
$O\Rar1Decoder.obj \
$O\Rar2Decoder.obj \
$O\Rar3Decoder.obj \
$O\Rar3Vm.obj \
$O\Rar5Decoder.obj \
$O\RarCodecsRegister.obj \
$O\ShrinkDecoder.obj \
$O\XpressDecoder.obj \
$O\XzDecoder.obj \
$O\XzEncoder.obj \
$O\ZlibDecoder.obj \
$O\ZlibEncoder.obj \
$O\ZDecoder.obj \
$O\ZstdDecoder.obj \
CRYPTO_OBJS = \
$O\7zAes.obj \
$O\7zAesRegister.obj \
$O\HmacSha1.obj \
$O\HmacSha256.obj \
$O\MyAes.obj \
$O\MyAesReg.obj \
$O\Pbkdf2HmacSha1.obj \
$O\RandGen.obj \
$O\Rar20Crypto.obj \
$O\Rar5Aes.obj \
$O\RarAes.obj \
$O\WzAes.obj \
$O\ZipCrypto.obj \
$O\ZipStrong.obj \
C_OBJS = \
$O\7zBuf2.obj \
$O\7zStream.obj \
$O\Alloc.obj \
$O\Bcj2.obj \
$O\Bcj2Enc.obj \
$O\Blake2s.obj \
$O\Bra.obj \
$O\Bra86.obj \
$O\BraIA64.obj \
$O\BwtSort.obj \
$O\CpuArch.obj \
$O\Delta.obj \
$O\HuffEnc.obj \
$O\LzFind.obj \
$O\LzFindMt.obj \
$O\Lzma2Dec.obj \
$O\Lzma2DecMt.obj \
$O\Lzma2Enc.obj \
$O\LzmaDec.obj \
$O\LzmaEnc.obj \
$O\Md5.obj \
$O\MtCoder.obj \
$O\MtDec.obj \
$O\Ppmd7.obj \
$O\Ppmd7Dec.obj \
$O\Ppmd7aDec.obj \
$O\Ppmd7Enc.obj \
$O\Ppmd8.obj \
$O\Ppmd8Dec.obj \
$O\Ppmd8Enc.obj \
$O\Sha3.obj \
$O\Sha512.obj \
$O\Sha512Opt.obj \
$O\SwapBytes.obj \
$O\Threads.obj \
$O\Xxh64.obj \
$O\Xz.obj \
$O\XzDec.obj \
$O\XzEnc.obj \
$O\XzIn.obj \
$O\ZstdDec.obj \
!include "../../Aes.mak"
!include "../../Crc.mak"
!include "../../Crc64.mak"
!include "../../LzFindOpt.mak"
!include "../../LzmaDec.mak"
!include "../../Sha1.mak"
!include "../../Sha256.mak"
!include "../../Sort.mak"
@@ -0,0 +1,395 @@
include ../../LzmaDec_gcc.mak
LOCAL_FLAGS_ST =
MT_OBJS =
ifdef SystemDrive
IS_MINGW = 1
else
ifdef SYSTEMDRIVE
# ifdef OS
IS_MINGW = 1
endif
endif
ifdef ST_MODE
LOCAL_FLAGS_ST = -DZ7_ST
ifdef IS_MINGW
MT_OBJS = \
$O/Threads.o \
endif
else
MT_OBJS = \
$O/LzFindMt.o \
$O/LzFindOpt.o \
$O/Threads.o \
$O/MemBlocks.o \
$O/OutMemStream.o \
$O/ProgressMt.o \
$O/StreamBinder.o \
$O/Synchronization.o \
$O/VirtThread.o \
endif
COMMON_OBJS = \
$O/CRC.o \
$O/CrcReg.o \
$O/DynLimBuf.o \
$O/IntToString.o \
$O/LzFindPrepare.o \
$O/Md5Reg.o \
$O/MyMap.o \
$O/MyString.o \
$O/MyVector.o \
$O/MyXml.o \
$O/NewHandler.o \
$O/Sha1Prepare.o \
$O/Sha1Reg.o \
$O/Sha256Prepare.o \
$O/Sha256Reg.o \
$O/Sha3Reg.o \
$O/Sha512Prepare.o \
$O/Sha512Reg.o \
$O/StringConvert.o \
$O/StringToInt.o \
$O/UTFConvert.o \
$O/Wildcard.o \
$O/Xxh64Reg.o \
$O/XzCrc64Init.o \
$O/XzCrc64Reg.o \
WIN_OBJS = \
$O/FileDir.o \
$O/FileFind.o \
$O/FileIO.o \
$O/FileName.o \
$O/PropVariant.o \
$O/PropVariantConv.o \
$O/PropVariantUtils.o \
$O/System.o \
$O/TimeUtils.o \
7ZIP_COMMON_OBJS = \
$O/CreateCoder.o \
$O/CWrappers.o \
$O/InBuffer.o \
$O/InOutTempBuffer.o \
$O/FilterCoder.o \
$O/LimitedStreams.o \
$O/LockedStream.o \
$O/MethodId.o \
$O/MethodProps.o \
$O/OffsetStream.o \
$O/OutBuffer.o \
$O/ProgressUtils.o \
$O/PropId.o \
$O/StreamObjects.o \
$O/StreamUtils.o \
$O/UniqBlocks.o \
AR_OBJS = \
$O/ApfsHandler.o \
$O/ApmHandler.o \
$O/ArHandler.o \
$O/ArjHandler.o \
$O/Base64Handler.o \
$O/Bz2Handler.o \
$O/ComHandler.o \
$O/CpioHandler.o \
$O/CramfsHandler.o \
$O/DeflateProps.o \
$O/DmgHandler.o \
$O/ElfHandler.o \
$O/ExtHandler.o \
$O/FatHandler.o \
$O/FlvHandler.o \
$O/GzHandler.o \
$O/GptHandler.o \
$O/HandlerCont.o \
$O/HfsHandler.o \
$O/IhexHandler.o \
$O/LpHandler.o \
$O/LzhHandler.o \
$O/LzmaHandler.o \
$O/MachoHandler.o \
$O/MbrHandler.o \
$O/MslzHandler.o \
$O/MubHandler.o \
$O/NtfsHandler.o \
$O/PeHandler.o \
$O/PpmdHandler.o \
$O/QcowHandler.o \
$O/RpmHandler.o \
$O/SparseHandler.o \
$O/SplitHandler.o \
$O/SquashfsHandler.o \
$O/SwfHandler.o \
$O/UefiHandler.o \
$O/VdiHandler.o \
$O/VhdHandler.o \
$O/VhdxHandler.o \
$O/VmdkHandler.o \
$O/XarHandler.o \
$O/XzHandler.o \
$O/ZHandler.o \
$O/ZstdHandler.o \
# $O/AvbHandler.o
# $O/LvmHandler.o
AR_COMMON_OBJS = \
$O/CoderMixer2.o \
$O/DummyOutStream.o \
$O/FindSignature.o \
$O/InStreamWithCRC.o \
$O/ItemNameUtils.o \
$O/MultiStream.o \
$O/OutStreamWithCRC.o \
$O/OutStreamWithSha1.o \
$O/HandlerOut.o \
$O/ParseProperties.o \
7Z_OBJS = \
$O/7zCompressionMode.o \
$O/7zDecode.o \
$O/7zEncode.o \
$O/7zExtract.o \
$O/7zFolderInStream.o \
$O/7zHandler.o \
$O/7zHandlerOut.o \
$O/7zHeader.o \
$O/7zIn.o \
$O/7zOut.o \
$O/7zProperties.o \
$O/7zSpecStream.o \
$O/7zUpdate.o \
$O/7zRegister.o \
CAB_OBJS = \
$O/CabBlockInStream.o \
$O/CabHandler.o \
$O/CabHeader.o \
$O/CabIn.o \
$O/CabRegister.o \
CHM_OBJS = \
$O/ChmHandler.o \
$O/ChmIn.o \
ISO_OBJS = \
$O/IsoHandler.o \
$O/IsoHeader.o \
$O/IsoIn.o \
$O/IsoRegister.o \
NSIS_OBJS = \
$O/NsisDecode.o \
$O/NsisHandler.o \
$O/NsisIn.o \
$O/NsisRegister.o \
ifndef DISABLE_RAR
RAR_OBJS = \
$O/RarHandler.o \
$O/Rar5Handler.o \
endif
TAR_OBJS = \
$O/TarHandler.o \
$O/TarHandlerOut.o \
$O/TarHeader.o \
$O/TarIn.o \
$O/TarOut.o \
$O/TarUpdate.o \
$O/TarRegister.o \
UDF_OBJS = \
$O/UdfHandler.o \
$O/UdfIn.o \
WIM_OBJS = \
$O/WimHandler.o \
$O/WimHandlerOut.o \
$O/WimIn.o \
$O/WimRegister.o \
ZIP_OBJS = \
$O/ZipAddCommon.o \
$O/ZipHandler.o \
$O/ZipHandlerOut.o \
$O/ZipIn.o \
$O/ZipItem.o \
$O/ZipOut.o \
$O/ZipUpdate.o \
$O/ZipRegister.o \
COMPRESS_OBJS = \
$O/Bcj2Coder.o \
$O/Bcj2Register.o \
$O/BcjCoder.o \
$O/BcjRegister.o \
$O/BitlDecoder.o \
$O/BranchMisc.o \
$O/BranchRegister.o \
$O/ByteSwap.o \
$O/BZip2Crc.o \
$O/BZip2Decoder.o \
$O/BZip2Encoder.o \
$O/BZip2Register.o \
$O/CopyCoder.o \
$O/CopyRegister.o \
$O/Deflate64Register.o \
$O/DeflateDecoder.o \
$O/DeflateEncoder.o \
$O/DeflateRegister.o \
$O/DeltaFilter.o \
$O/ImplodeDecoder.o \
$O/LzfseDecoder.o \
$O/LzhDecoder.o \
$O/Lzma2Decoder.o \
$O/Lzma2Encoder.o \
$O/Lzma2Register.o \
$O/LzmaDecoder.o \
$O/LzmaEncoder.o \
$O/LzmaRegister.o \
$O/LzmsDecoder.o \
$O/LzOutWindow.o \
$O/LzxDecoder.o \
$O/PpmdDecoder.o \
$O/PpmdEncoder.o \
$O/PpmdRegister.o \
$O/PpmdZip.o \
$O/QuantumDecoder.o \
$O/ShrinkDecoder.o \
$O/XpressDecoder.o \
$O/XzDecoder.o \
$O/XzEncoder.o \
$O/ZlibDecoder.o \
$O/ZlibEncoder.o \
$O/ZDecoder.o \
$O/ZstdDecoder.o \
ifdef DISABLE_RAR
DISABLE_RAR_COMPRESS=1
endif
ifndef DISABLE_RAR_COMPRESS
COMPRESS_OBJS += \
$O/Rar1Decoder.o \
$O/Rar2Decoder.o \
$O/Rar3Decoder.o \
$O/Rar3Vm.o \
$O/Rar5Decoder.o \
$O/RarCodecsRegister.o \
endif
CRYPTO_OBJS = \
$O/7zAes.o \
$O/7zAesRegister.o \
$O/HmacSha1.o \
$O/HmacSha256.o \
$O/MyAes.o \
$O/MyAesReg.o \
$O/Pbkdf2HmacSha1.o \
$O/RandGen.o \
$O/WzAes.o \
$O/ZipCrypto.o \
$O/ZipStrong.o \
ifndef DISABLE_RAR
CRYPTO_OBJS += \
$O/Rar20Crypto.o \
$O/Rar5Aes.o \
$O/RarAes.o \
endif
C_OBJS = \
$O/7zBuf2.o \
$O/7zCrc.o \
$O/7zCrcOpt.o \
$O/7zStream.o \
$O/Aes.o \
$O/AesOpt.o \
$O/Alloc.o \
$O/Bcj2.o \
$O/Bcj2Enc.o \
$O/Blake2s.o \
$O/Bra.o \
$O/Bra86.o \
$O/BraIA64.o \
$O/BwtSort.o \
$O/CpuArch.o \
$O/Delta.o \
$O/HuffEnc.o \
$O/LzFind.o \
$O/Lzma2Dec.o \
$O/Lzma2DecMt.o \
$O/Lzma2Enc.o \
$O/LzmaDec.o \
$O/LzmaEnc.o \
$O/Md5.o \
$O/MtCoder.o \
$O/MtDec.o \
$O/Ppmd7.o \
$O/Ppmd7Dec.o \
$O/Ppmd7aDec.o \
$O/Ppmd7Enc.o \
$O/Ppmd8.o \
$O/Ppmd8Dec.o \
$O/Ppmd8Enc.o \
$O/Sha1.o \
$O/Sha1Opt.o \
$O/Sha256.o \
$O/Sha256Opt.o \
$O/Sha3.o \
$O/Sha512.o \
$O/Sha512Opt.o \
$O/Sort.o \
$O/SwapBytes.o \
$O/Xxh64.o \
$O/Xz.o \
$O/XzDec.o \
$O/XzEnc.o \
$O/XzIn.o \
$O/XzCrc64.o \
$O/XzCrc64Opt.o \
$O/ZstdDec.o \
ARC_OBJS = \
$(LZMA_DEC_OPT_OBJS) \
$(C_OBJS) \
$(MT_OBJS) \
$(COMMON_OBJS) \
$(WIN_OBJS) \
$(7ZIP_COMMON_OBJS) \
$(AR_OBJS) \
$(AR_COMMON_OBJS) \
$(7Z_OBJS) \
$(CAB_OBJS) \
$(CHM_OBJS) \
$(COM_OBJS) \
$(ISO_OBJS) \
$(NSIS_OBJS) \
$(RAR_OBJS) \
$(TAR_OBJS) \
$(UDF_OBJS) \
$(WIM_OBJS) \
$(ZIP_OBJS) \
$(COMPRESS_OBJS) \
$(CRYPTO_OBJS) \
# we need empty line after last line above
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,29 @@
Microsoft Developer Studio Workspace File, Format Version 6.00
# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
###############################################################################
Project: "7z"=.\Format7z.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
}}}
###############################################################################
Global:
Package=<5>
{{{
}}}
Package=<3>
{{{
}}}
###############################################################################
@@ -0,0 +1,3 @@
// StdAfx.cpp
#include "StdAfx.h"
@@ -0,0 +1,11 @@
// StdAfx.h
#ifndef ZIP7_INC_STDAFX_H
#define ZIP7_INC_STDAFX_H
#if defined(_MSC_VER) && _MSC_VER >= 1800
#pragma warning(disable : 4464) // relative include path contains '..'
#endif
#include "../../../Common/Common.h"
#endif
@@ -0,0 +1,21 @@
PROG = 7z.dll
# USE_C_LZFINDOPT = 1
DEF_FILE = ../../Archive/Archive2.def
CFLAGS = $(CFLAGS) \
-DZ7_EXTERNAL_CODECS \
!IFNDEF UNDER_CE
# CFLAGS = $(CFLAGS) -DZ7_LARGE_PAGES
!ENDIF
!include "Arc.mak"
COMPRESS_OBJS = $(COMPRESS_OBJS) \
$O\CodecExports.obj \
AR_OBJS = $(AR_OBJS) \
$O\ArchiveExports.obj \
$O\DllExports2.obj \
!include "../../7zip.mak"
@@ -0,0 +1,57 @@
PROG = 7z
DEF_FILE = ../../Archive/Archive2.def
# IS_X64 = 1
# USE_ASM = 1
# ST_MODE = 1
include Arc_gcc.mak
ifdef SystemDrive
IS_MINGW = 1
else
ifdef SYSTEMDRIVE
# ifdef OS
IS_MINGW = 1
endif
endif
LOCAL_FLAGS_SYS =
ifdef IS_MINGW
LOCAL_FLAGS_SYS = \
$(LOCAL_FLAGS_ST) \
# -DZ7_LARGE_PAGES \
SYS_OBJS = \
$O/resource.o \
else
SYS_OBJS = \
$O/MyWindows.o \
endif
LOCAL_FLAGS = \
-DZ7_EXTERNAL_CODECS \
$(LOCAL_FLAGS_SYS) \
$(LOCAL_FLAGS_ST) \
COMPRESS_OBJS_2 = \
$O/CodecExports.o \
AR_OBJS_2 = \
$O/ArchiveExports.o \
$O/DllExports2.o \
OBJS = \
$(ARC_OBJS) \
$(AR_OBJS_2) \
$(COMPRESS_OBJS_2) \
$(SYS_OBJS) \
include ../../7zip_gcc.mak
@@ -0,0 +1,39 @@
#include "../../MyVersionInfo.rc"
MY_VERSION_INFO_DLL("7z Plugin" , "7z")
0 ICON "../../Archive/Icons/7z.ico"
1 ICON "../../Archive/Icons/zip.ico"
2 ICON "../../Archive/Icons/bz2.ico"
3 ICON "../../Archive/Icons/rar.ico"
4 ICON "../../Archive/Icons/arj.ico"
5 ICON "../../Archive/Icons/z.ico"
6 ICON "../../Archive/Icons/lzh.ico"
7 ICON "../../Archive/Icons/cab.ico"
8 ICON "../../Archive/Icons/iso.ico"
9 ICON "../../Archive/Icons/split.ico"
10 ICON "../../Archive/Icons/rpm.ico"
11 ICON "../../Archive/Icons/deb.ico"
12 ICON "../../Archive/Icons/cpio.ico"
13 ICON "../../Archive/Icons/tar.ico"
14 ICON "../../Archive/Icons/gz.ico"
15 ICON "../../Archive/Icons/wim.ico"
16 ICON "../../Archive/Icons/lzma.ico"
17 ICON "../../Archive/Icons/dmg.ico"
18 ICON "../../Archive/Icons/hfs.ico"
19 ICON "../../Archive/Icons/xar.ico"
20 ICON "../../Archive/Icons/vhd.ico"
21 ICON "../../Archive/Icons/fat.ico"
22 ICON "../../Archive/Icons/ntfs.ico"
23 ICON "../../Archive/Icons/xz.ico"
24 ICON "../../Archive/Icons/squashfs.ico"
25 ICON "../../Archive/Icons/apfs.ico"
26 ICON "../../Archive/Icons/zst.ico"
STRINGTABLE
BEGIN
100 "7z:0 zip:1 rar:3 001:9 cab:7 iso:8 xz:23 txz:23 lzma:16 tar:13 cpio:12 bz2:2 bzip2:2 tbz2:2 tbz:2 gz:14 gzip:14 tgz:14 tpz:14 zst:26 tzst:26 z:5 taz:5 lzh:6 lha:6 rpm:10 deb:11 arj:4 vhd:20 vhdx:20 wim:15 swm:15 esd:15 fat:21 ntfs:22 dmg:17 hfs:18 xar:19 squashfs:24 apfs:25"
END
@@ -0,0 +1,3 @@
// StdAfx.cpp
#include "StdAfx.h"
@@ -0,0 +1,11 @@
// StdAfx.h
#ifndef ZIP7_INC_STDAFX_H
#define ZIP7_INC_STDAFX_H
#if defined(_MSC_VER) && _MSC_VER >= 1800
#pragma warning(disable : 4464) // relative include path contains '..'
#endif
#include "../../../Common/Common.h"
#endif
@@ -0,0 +1,121 @@
PROG = 7zra.dll
DEF_FILE = ../../Archive/Archive2.def
CFLAGS = $(CFLAGS) \
-DZ7_NO_CRYPTO
COMMON_OBJS = \
$O\CRC.obj \
$O\CrcReg.obj \
$O\IntToString.obj \
$O\LzFindPrepare.obj \
$O\NewHandler.obj \
$O\MyString.obj \
$O\StringConvert.obj \
$O\StringToInt.obj \
$O\MyVector.obj \
$O\Wildcard.obj \
WIN_OBJS = \
$O\FileDir.obj \
$O\FileFind.obj \
$O\FileIO.obj \
$O\FileName.obj \
$O\PropVariant.obj \
$O\Synchronization.obj \
$O\System.obj \
$O\TimeUtils.obj \
7ZIP_COMMON_OBJS = \
$O\CreateCoder.obj \
$O\CWrappers.obj \
$O\InBuffer.obj \
$O\InOutTempBuffer.obj \
$O\FilterCoder.obj \
$O\LimitedStreams.obj \
$O\MethodId.obj \
$O\MethodProps.obj \
$O\OutBuffer.obj \
$O\ProgressUtils.obj \
$O\PropId.obj \
$O\StreamBinder.obj \
$O\StreamObjects.obj \
$O\StreamUtils.obj \
$O\UniqBlocks.obj \
$O\VirtThread.obj \
AR_OBJS = \
$O\ArchiveExports.obj \
$O\DllExports2.obj \
AR_COMMON_OBJS = \
$O\CoderMixer2.obj \
$O\HandlerOut.obj \
$O\InStreamWithCRC.obj \
$O\ItemNameUtils.obj \
$O\OutStreamWithCRC.obj \
$O\ParseProperties.obj \
7Z_OBJS = \
$O\7zCompressionMode.obj \
$O\7zDecode.obj \
$O\7zEncode.obj \
$O\7zExtract.obj \
$O\7zFolderInStream.obj \
$O\7zHandler.obj \
$O\7zHandlerOut.obj \
$O\7zHeader.obj \
$O\7zIn.obj \
$O\7zOut.obj \
$O\7zProperties.obj \
$O\7zSpecStream.obj \
$O\7zUpdate.obj \
$O\7zRegister.obj \
COMPRESS_OBJS = \
$O\CodecExports.obj \
$O\Bcj2Coder.obj \
$O\Bcj2Register.obj \
$O\BcjCoder.obj \
$O\BcjRegister.obj \
$O\BranchMisc.obj \
$O\BranchRegister.obj \
$O\ByteSwap.obj \
$O\CopyCoder.obj \
$O\CopyRegister.obj \
$O\DeltaFilter.obj \
$O\Lzma2Decoder.obj \
$O\Lzma2Encoder.obj \
$O\Lzma2Register.obj \
$O\LzmaDecoder.obj \
$O\LzmaEncoder.obj \
$O\LzmaRegister.obj \
C_OBJS = \
$O\7zStream.obj \
$O\Alloc.obj \
$O\Bcj2.obj \
$O\Bcj2Enc.obj \
$O\Bra.obj \
$O\Bra86.obj \
$O\BraIA64.obj \
$O\CpuArch.obj \
$O\Delta.obj \
$O\LzFind.obj \
$O\LzFindMt.obj \
$O\Lzma2Dec.obj \
$O\Lzma2DecMt.obj \
$O\Lzma2Enc.obj \
$O\LzmaDec.obj \
$O\LzmaEnc.obj \
$O\MtCoder.obj \
$O\MtDec.obj \
$O\SwapBytes.obj \
$O\Threads.obj \
!include "../../Crc.mak"
!include "../../LzFindOpt.mak"
!include "../../LzmaDec.mak"
!include "../../7zip.mak"
@@ -0,0 +1,5 @@
#include "../../../../C/7zVersion.rc"
MY_VERSION_INFO_DLL("7z Reduced Standalone Plugin", "7zr")
101 ICON "../../Archive/Icons/7z.ico"
@@ -0,0 +1,817 @@
// LzmaAlone.cpp
#include "StdAfx.h"
// #include <stdio.h>
#if (defined(_WIN32) || defined(OS2) || defined(MSDOS)) && !defined(UNDER_CE)
#include <fcntl.h>
#include <io.h>
#define MY_SET_BINARY_MODE(file) _setmode(_fileno(file), O_BINARY)
#else
#define MY_SET_BINARY_MODE(file)
#endif
#include "../../../../C/CpuArch.h"
#include "../../../../C/7zVersion.h"
#include "../../../../C/Alloc.h"
#include "../../../../C/Lzma86.h"
#include "../../../Common/MyWindows.h"
#include "../../../Common/MyInitGuid.h"
#include "../../../Windows/NtCheck.h"
#ifndef Z7_ST
#include "../../../Windows/System.h"
#endif
#include "../../../Common/IntToString.h"
#include "../../../Common/CommandLineParser.h"
#include "../../../Common/StringConvert.h"
#include "../../../Common/StringToInt.h"
#include "../../Common/FileStreams.h"
#include "../../Common/StreamUtils.h"
#include "../../Compress/LzmaDecoder.h"
#include "../../Compress/LzmaEncoder.h"
#include "../../UI/Console/BenchCon.h"
#include "../../UI/Console/ConsoleClose.h"
extern
bool g_LargePagesMode;
bool g_LargePagesMode = false;
using namespace NCommandLineParser;
static const unsigned kDictSizeLog = 24;
#define kCopyrightString "\nLZMA " MY_VERSION_CPU " : " MY_COPYRIGHT_DATE "\n\n"
static const char * const kHelpString =
"Usage: lzma <command> [inputFile] [outputFile] [<switches>...]\n"
"\n"
"<command>\n"
" e : Encode file\n"
" d : Decode file\n"
" b : Benchmark\n"
"<switches>\n"
" -a{N} : set compression mode : [0, 1] : default = 1 (max)\n"
" -d{N} : set dictionary size : [12, 31] : default = 24 (16 MiB)\n"
" -fb{N} : set number of fast bytes : [5, 273] : default = 128\n"
" -mc{N} : set number of cycles for match finder\n"
" -lc{N} : set number of literal context bits : [0, 8] : default = 3\n"
" -lp{N} : set number of literal pos bits : [0, 4] : default = 0\n"
" -pb{N} : set number of pos bits : [0, 4] : default = 2\n"
" -mf{M} : set match finder: [hc4, hc5, bt2, bt3, bt4, bt5] : default = bt4\n"
" -mt{N} : set number of CPU threads\n"
" -eos : write end of stream marker\n"
" -si : read data from stdin\n"
" -so : write data to stdout\n";
static const char * const kCantAllocate = "Cannot allocate memory";
static const char * const kReadError = "Read error";
static const char * const kWriteError = "Write error";
namespace NKey {
enum Enum
{
kHelp1 = 0,
kHelp2,
kMethod,
kLevel,
kAlgo,
kDict,
kFb,
kMc,
kLc,
kLp,
kPb,
kMatchFinder,
kMultiThread,
kEOS,
kStdIn,
kStdOut,
kFilter86
};
}
#define SWFRM_3(t, mu, mi) t, mu, mi, NULL
#define SWFRM_1(t) SWFRM_3(t, false, 0)
#define SWFRM_SIMPLE SWFRM_1(NSwitchType::kSimple)
#define SWFRM_STRING SWFRM_1(NSwitchType::kString)
#define SWFRM_STRING_SINGL(mi) SWFRM_3(NSwitchType::kString, false, mi)
static const CSwitchForm kSwitchForms[] =
{
{ "?", SWFRM_SIMPLE },
{ "H", SWFRM_SIMPLE },
{ "MM", SWFRM_STRING_SINGL(1) },
{ "X", SWFRM_STRING_SINGL(1) },
{ "A", SWFRM_STRING_SINGL(1) },
{ "D", SWFRM_STRING_SINGL(1) },
{ "FB", SWFRM_STRING_SINGL(1) },
{ "MC", SWFRM_STRING_SINGL(1) },
{ "LC", SWFRM_STRING_SINGL(1) },
{ "LP", SWFRM_STRING_SINGL(1) },
{ "PB", SWFRM_STRING_SINGL(1) },
{ "MF", SWFRM_STRING_SINGL(1) },
{ "MT", SWFRM_STRING },
{ "EOS", SWFRM_SIMPLE },
{ "SI", SWFRM_SIMPLE },
{ "SO", SWFRM_SIMPLE },
{ "F86", NSwitchType::kChar, false, 0, "+" }
};
static void Convert_UString_to_AString(const UString &s, AString &temp)
{
int codePage = CP_OEMCP;
/*
int g_CodePage = -1;
int codePage = g_CodePage;
if (codePage == -1)
codePage = CP_OEMCP;
if (codePage == CP_UTF8)
ConvertUnicodeToUTF8(s, temp);
else
*/
UnicodeStringToMultiByte2(temp, s, (UINT)codePage);
}
static void PrintErr(const char *s)
{
fputs(s, stderr);
}
static void PrintErr_LF(const char *s)
{
PrintErr(s);
fputc('\n', stderr);
}
static void PrintError(const char *s)
{
PrintErr("\nERROR: ");
PrintErr_LF(s);
}
static void PrintError2(const char *s1, const UString &s2)
{
PrintError(s1);
AString a;
Convert_UString_to_AString(s2, a);
PrintErr_LF(a);
}
static void PrintError_int(const char *s, int code)
{
PrintError(s);
char temp[32];
ConvertInt64ToString(code, temp);
PrintErr("Error code = ");
PrintErr_LF(temp);
}
static void Print(const char *s)
{
fputs(s, stdout);
}
static void Print_UInt64(UInt64 v)
{
char temp[32];
ConvertUInt64ToString(v, temp);
Print(temp);
}
static void Print_MB(UInt64 v)
{
Print_UInt64(v);
Print(" MiB");
}
static void Print_Size(const char *s, UInt64 v)
{
Print(s);
Print_UInt64(v);
Print(" (");
Print_MB(v >> 20);
Print(")\n");
}
static void PrintTitle()
{
Print(kCopyrightString);
}
static void PrintHelp()
{
PrintTitle();
Print(kHelpString);
}
Z7_CLASS_IMP_COM_1(
CProgressPrint,
ICompressProgressInfo
)
UInt64 _size1;
UInt64 _size2;
public:
CProgressPrint(): _size1(0), _size2(0) {}
void ClosePrint();
};
#define BACK_STR \
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b"
static const char * const kBackSpaces =
BACK_STR
" "
BACK_STR;
void CProgressPrint::ClosePrint()
{
Print(kBackSpaces);
}
Z7_COM7F_IMF(CProgressPrint::SetRatioInfo(const UInt64 *inSize, const UInt64 *outSize))
{
if (NConsoleClose::TestBreakSignal())
return E_ABORT;
if (inSize)
{
UInt64 v1 = *inSize >> 20;
UInt64 v2 = _size2;
if (outSize)
v2 = *outSize >> 20;
if (v1 != _size1 || v2 != _size2)
{
_size1 = v1;
_size2 = v2;
ClosePrint();
Print_MB(_size1);
Print(" -> ");
Print_MB(_size2);
}
}
return S_OK;
}
Z7_ATTR_NORETURN
static void IncorrectCommand()
{
throw "Incorrect command";
}
static UInt32 GetNumber(const wchar_t *s)
{
const wchar_t *end;
UInt32 v = ConvertStringToUInt32(s, &end);
if (*end != 0)
IncorrectCommand();
return v;
}
static void ParseUInt32(const CParser &parser, unsigned index, UInt32 &res)
{
if (parser[index].ThereIs)
res = GetNumber(parser[index].PostStrings[0]);
}
static int Error_HRESULT(const char *s, HRESULT res)
{
if (res == E_ABORT)
{
Print("\n\nBreak signaled\n");
return 255;
}
PrintError(s);
if (res == E_OUTOFMEMORY)
{
PrintErr_LF(kCantAllocate);
return 8;
}
if (res == E_INVALIDARG)
{
PrintErr_LF("Ununsupported parameter");
}
else
{
char temp[32];
ConvertUInt32ToHex((UInt32)res, temp);
PrintErr("Error code = 0x");
PrintErr_LF(temp);
}
return 1;
}
#if defined(_UNICODE) && !defined(_WIN64) && !defined(UNDER_CE)
#define NT_CHECK_FAIL_ACTION PrintError("Unsupported Windows version"); return 1;
#endif
static void AddProp(CObjectVector<CProperty> &props2, const char *name, const wchar_t *val)
{
CProperty &prop = props2.AddNew();
prop.Name = name;
prop.Value = val;
}
static int main2(int numArgs, const char *args[])
{
NT_CHECK
if (numArgs == 1)
{
PrintHelp();
return 0;
}
/*
bool unsupportedTypes = (sizeof(Byte) != 1 || sizeof(UInt32) < 4 || sizeof(UInt64) < 8);
if (unsupportedTypes)
throw "Unsupported base types. Edit Common/Types.h and recompile";
*/
UStringVector commandStrings;
for (int i = 1; i < numArgs; i++)
commandStrings.Add(MultiByteToUnicodeString(args[i]));
CParser parser;
try
{
if (!parser.ParseStrings(kSwitchForms, Z7_ARRAY_SIZE(kSwitchForms), commandStrings))
{
PrintError2(parser.ErrorMessage, parser.ErrorLine);
return 1;
}
}
catch(...)
{
IncorrectCommand();
}
if (parser[NKey::kHelp1].ThereIs || parser[NKey::kHelp2].ThereIs)
{
PrintHelp();
return 0;
}
const bool stdInMode = parser[NKey::kStdIn].ThereIs;
const bool stdOutMode = parser[NKey::kStdOut].ThereIs;
if (!stdOutMode)
PrintTitle();
const UStringVector &params = parser.NonSwitchStrings;
unsigned paramIndex = 0;
if (paramIndex >= params.Size())
IncorrectCommand();
const UString &command = params[paramIndex++];
CObjectVector<CProperty> props2;
bool dictDefined = false;
UInt32 dict = (UInt32)(Int32)-1;
if (parser[NKey::kDict].ThereIs)
{
UInt32 dictLog;
const UString &s = parser[NKey::kDict].PostStrings[0];
dictLog = GetNumber(s);
if (dictLog >= 32)
throw "unsupported dictionary size";
// we only want to use dictionary sizes that are powers of 2,
// because 7-zip only recognizes such dictionary sizes in the lzma header.#if 0
#if 0
if (dictLog == 32)
dict = (UInt32)3840 << 20;
else
#endif
dict = (UInt32)1 << dictLog;
dictDefined = true;
AddProp(props2, "d", s);
}
if (parser[NKey::kLevel].ThereIs)
{
const UString &s = parser[NKey::kLevel].PostStrings[0];
/* UInt32 level = */ GetNumber(s);
AddProp(props2, "x", s);
}
UString mf ("BT4");
if (parser[NKey::kMatchFinder].ThereIs)
mf = parser[NKey::kMatchFinder].PostStrings[0];
UInt32 numThreads = (UInt32)(Int32)-1;
#ifndef Z7_ST
if (parser[NKey::kMultiThread].ThereIs)
{
const UString &s = parser[NKey::kMultiThread].PostStrings[0];
if (s.IsEmpty())
numThreads = NWindows::NSystem::GetNumberOfProcessors();
else
numThreads = GetNumber(s);
AddProp(props2, "mt", s);
}
#endif
if (parser[NKey::kMethod].ThereIs)
{
const UString &s = parser[NKey::kMethod].PostStrings[0];
if (s.IsEmpty() || s[0] != '=')
IncorrectCommand();
AddProp(props2, "m", s.Ptr(1));
}
if (StringsAreEqualNoCase_Ascii(command, "b"))
{
UInt32 numIterations = 1;
if (paramIndex < params.Size())
numIterations = GetNumber(params[paramIndex++]);
if (params.Size() != paramIndex)
IncorrectCommand();
HRESULT res = BenchCon(props2, numIterations, stdout);
if (res == S_OK)
return 0;
return Error_HRESULT("Benchmark error", res);
}
{
UInt32 needParams = 3;
if (stdInMode) needParams--;
if (stdOutMode) needParams--;
if (needParams != params.Size())
IncorrectCommand();
}
if (numThreads == (UInt32)(Int32)-1)
numThreads = 1;
bool encodeMode = false;
if (StringsAreEqualNoCase_Ascii(command, "e"))
encodeMode = true;
else if (!StringsAreEqualNoCase_Ascii(command, "d"))
IncorrectCommand();
CMyComPtr<ISequentialInStream> inStream;
CInFileStream *inStreamSpec = NULL;
if (stdInMode)
{
inStream = new CStdInFileStream;
MY_SET_BINARY_MODE(stdin);
}
else
{
const UString &inputName = params[paramIndex++];
inStreamSpec = new CInFileStream;
inStream = inStreamSpec;
if (!inStreamSpec->Open(us2fs(inputName)))
{
PrintError2("Cannot open input file", inputName);
return 1;
}
}
CMyComPtr<ISequentialOutStream> outStream;
COutFileStream *outStreamSpec = NULL;
if (stdOutMode)
{
outStream = new CStdOutFileStream;
MY_SET_BINARY_MODE(stdout);
}
else
{
const UString &outputName = params[paramIndex++];
outStreamSpec = new COutFileStream;
outStream = outStreamSpec;
if (!outStreamSpec->Create_ALWAYS(us2fs(outputName)))
{
PrintError2("Cannot open output file", outputName);
return 1;
}
}
bool fileSizeDefined = false;
UInt64 fileSize = 0;
if (inStreamSpec)
{
if (!inStreamSpec->GetLength(fileSize))
throw "Cannot get file length";
fileSizeDefined = true;
if (!stdOutMode)
Print_Size("Input size: ", fileSize);
}
if (encodeMode && !dictDefined)
{
dict = (UInt32)1 << kDictSizeLog;
if (fileSizeDefined)
{
unsigned i;
for (i = 16; i < kDictSizeLog; i++)
if ((UInt32)((UInt32)1 << i) >= fileSize)
break;
dict = (UInt32)1 << i;
}
}
if (parser[NKey::kFilter86].ThereIs)
{
/* -f86 switch is for x86 filtered mode: BCJ + LZMA.
It uses modified header format.
It's not recommended to use -f86 mode now.
You can use xz format instead, if you want to use filters */
if (parser[NKey::kEOS].ThereIs || stdInMode)
throw "Cannot use stdin in this mode";
size_t inSize = (size_t)fileSize;
if (inSize != fileSize)
throw "File is too big";
Byte *inBuffer = NULL;
if (inSize != 0)
{
inBuffer = (Byte *)MyAlloc((size_t)inSize);
if (!inBuffer)
throw kCantAllocate;
}
if (ReadStream_FAIL(inStream, inBuffer, inSize) != S_OK)
throw "Cannot read";
Byte *outBuffer = NULL;
size_t outSize;
if (encodeMode)
{
// we allocate 105% of original size for output buffer
UInt64 outSize64 = fileSize / 20 * 21 + (1 << 16);
outSize = (size_t)outSize64;
if (outSize != outSize64)
throw "File is too big";
if (outSize != 0)
{
outBuffer = (Byte *)MyAlloc((size_t)outSize);
if (!outBuffer)
throw kCantAllocate;
}
int res = Lzma86_Encode(outBuffer, &outSize, inBuffer, inSize,
5, dict, parser[NKey::kFilter86].PostCharIndex == 0 ? SZ_FILTER_YES : SZ_FILTER_AUTO);
if (res != 0)
{
PrintError_int("Encode error", (int)res);
return 1;
}
}
else
{
UInt64 outSize64;
if (Lzma86_GetUnpackSize(inBuffer, inSize, &outSize64) != 0)
throw "data error";
outSize = (size_t)outSize64;
if (outSize != outSize64)
throw "Unpack size is too big";
if (outSize != 0)
{
outBuffer = (Byte *)MyAlloc(outSize);
if (!outBuffer)
throw kCantAllocate;
}
int res = Lzma86_Decode(outBuffer, &outSize, inBuffer, &inSize);
if (inSize != (size_t)fileSize)
throw "incorrect processed size";
if (res != 0)
{
PrintError_int("Decode error", (int)res);
return 1;
}
}
if (WriteStream(outStream, outBuffer, outSize) != S_OK)
throw kWriteError;
MyFree(outBuffer);
MyFree(inBuffer);
}
else
{
CProgressPrint *progressSpec = NULL;
CMyComPtr<ICompressProgressInfo> progress;
if (!stdOutMode)
{
progressSpec = new CProgressPrint;
progress = progressSpec;
}
if (encodeMode)
{
NCompress::NLzma::CEncoder *encoderSpec = new NCompress::NLzma::CEncoder;
CMyComPtr<ICompressCoder> encoder = encoderSpec;
UInt32 pb = 2;
UInt32 lc = 3; // = 0; for 32-bit data
UInt32 lp = 0; // = 2; for 32-bit data
UInt32 algo = 1;
UInt32 fb = 128;
UInt32 mc = 16 + fb / 2;
bool mcDefined = false;
bool eos = parser[NKey::kEOS].ThereIs || stdInMode;
ParseUInt32(parser, NKey::kAlgo, algo);
ParseUInt32(parser, NKey::kFb, fb);
ParseUInt32(parser, NKey::kLc, lc);
ParseUInt32(parser, NKey::kLp, lp);
ParseUInt32(parser, NKey::kPb, pb);
mcDefined = parser[NKey::kMc].ThereIs;
if (mcDefined)
mc = GetNumber(parser[NKey::kMc].PostStrings[0]);
const PROPID propIDs[] =
{
NCoderPropID::kDictionarySize,
NCoderPropID::kPosStateBits,
NCoderPropID::kLitContextBits,
NCoderPropID::kLitPosBits,
NCoderPropID::kAlgorithm,
NCoderPropID::kNumFastBytes,
NCoderPropID::kMatchFinder,
NCoderPropID::kEndMarker,
NCoderPropID::kNumThreads,
NCoderPropID::kMatchFinderCycles,
};
const unsigned kNumPropsMax = Z7_ARRAY_SIZE(propIDs);
PROPVARIANT props[kNumPropsMax];
for (int p = 0; p < 6; p++)
props[p].vt = VT_UI4;
props[0].ulVal = (UInt32)dict;
props[1].ulVal = (UInt32)pb;
props[2].ulVal = (UInt32)lc;
props[3].ulVal = (UInt32)lp;
props[4].ulVal = (UInt32)algo;
props[5].ulVal = (UInt32)fb;
props[6].vt = VT_BSTR;
props[6].bstrVal = const_cast<BSTR>((const wchar_t *)mf);
props[7].vt = VT_BOOL;
props[7].boolVal = eos ? VARIANT_TRUE : VARIANT_FALSE;
props[8].vt = VT_UI4;
props[8].ulVal = (UInt32)numThreads;
// it must be last in property list
props[9].vt = VT_UI4;
props[9].ulVal = (UInt32)mc;
unsigned numProps = kNumPropsMax;
if (!mcDefined)
numProps--;
HRESULT res = encoderSpec->SetCoderProperties(propIDs, props, numProps);
if (res != S_OK)
return Error_HRESULT("incorrect encoder properties", res);
if (encoderSpec->WriteCoderProperties(outStream) != S_OK)
throw kWriteError;
bool fileSizeWasUsed = true;
if (eos || stdInMode)
{
fileSize = (UInt64)(Int64)-1;
fileSizeWasUsed = false;
}
{
Byte temp[8];
for (int i = 0; i < 8; i++)
temp[i]= (Byte)(fileSize >> (8 * i));
if (WriteStream(outStream, temp, 8) != S_OK)
throw kWriteError;
}
res = encoder->Code(inStream, outStream, NULL, NULL, progress);
if (progressSpec)
progressSpec->ClosePrint();
if (res != S_OK)
return Error_HRESULT("Encoding error", res);
UInt64 processedSize = encoderSpec->GetInputProcessedSize();
if (fileSizeWasUsed && processedSize != fileSize)
throw "Incorrect size of processed data";
}
else
{
NCompress::NLzma::CDecoder *decoderSpec = new NCompress::NLzma::CDecoder;
CMyComPtr<ICompressCoder> decoder = decoderSpec;
decoderSpec->FinishStream = true;
const unsigned kPropertiesSize = 5;
Byte header[kPropertiesSize + 8];
if (ReadStream_FALSE(inStream, header, kPropertiesSize + 8) != S_OK)
throw kReadError;
if (decoderSpec->SetDecoderProperties2(header, kPropertiesSize) != S_OK)
throw "SetDecoderProperties error";
UInt64 unpackSize = 0;
for (unsigned i = 0; i < 8; i++)
unpackSize |= ((UInt64)header[kPropertiesSize + i]) << (8 * i);
bool unpackSizeDefined = (unpackSize != (UInt64)(Int64)-1);
HRESULT res = decoder->Code(inStream, outStream, NULL, unpackSizeDefined ? &unpackSize : NULL, progress);
if (progressSpec)
progressSpec->ClosePrint();
if (res != S_OK)
{
if (res == S_FALSE)
{
PrintError("Decoding error");
return 1;
}
return Error_HRESULT("Decoding error", res);
}
if (unpackSizeDefined && unpackSize != decoderSpec->GetOutputProcessedSize())
throw "incorrect uncompressed size in header";
}
}
if (outStreamSpec)
{
if (!stdOutMode)
Print_Size("Output size: ", outStreamSpec->ProcessedSize);
if (outStreamSpec->Close() != S_OK)
throw "File closing error";
}
return 0;
}
int Z7_CDECL main(int numArgs, const char *args[])
{
NConsoleClose::CCtrlHandlerSetter ctrlHandlerSetter;
try { return main2(numArgs, args); }
catch (const char *s)
{
PrintError(s);
return 1;
}
catch(...)
{
PrintError("Unknown Error");
return 1;
}
}
@@ -0,0 +1,540 @@
# Microsoft Developer Studio Project File - Name="LzmaCon" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Console Application" 0x0103
CFG=LzmaCon - Win32 Debug
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "LzmaCon.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "LzmaCon.mak" CFG="LzmaCon - Win32 Debug"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "LzmaCon - Win32 Release" (based on "Win32 (x86) Console Application")
!MESSAGE "LzmaCon - Win32 Debug" (based on "Win32 (x86) Console Application")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
RSC=rc.exe
!IF "$(CFG)" == "LzmaCon - Win32 Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release"
# PROP BASE Intermediate_Dir "Release"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "Release"
# PROP Intermediate_Dir "Release"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
# ADD CPP /nologo /Gr /MD /W4 /WX /GX /O2 /D "NDEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D "Z7_NO_LONG_PATH" /Yu"StdAfx.h" /FD /c
# ADD BASE RSC /l 0x419 /d "NDEBUG"
# ADD RSC /l 0x419 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 /out:"C:\Util\lzma.exe"
!ELSEIF "$(CFG)" == "LzmaCon - Win32 Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "Debug"
# PROP BASE Intermediate_Dir "Debug"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "Debug"
# PROP Intermediate_Dir "Debug"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
# ADD CPP /nologo /MDd /W4 /WX /Gm /GX /ZI /Od /D "_DEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D "Z7_NO_LONG_PATH" /Yu"StdAfx.h" /FD /GZ /c
# ADD BASE RSC /l 0x419 /d "_DEBUG"
# ADD RSC /l 0x419 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /out:"C:\Util\lzma.exe" /pdbtype:sept
!ENDIF
# Begin Target
# Name "LzmaCon - Win32 Release"
# Name "LzmaCon - Win32 Debug"
# Begin Group "Spec"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\StdAfx.cpp
# ADD CPP /Yc"StdAfx.h"
# End Source File
# Begin Source File
SOURCE=.\StdAfx.h
# End Source File
# End Group
# Begin Group "Compress"
# PROP Default_Filter ""
# Begin Source File
SOURCE=..\..\Compress\LzmaDecoder.cpp
# End Source File
# Begin Source File
SOURCE=..\..\Compress\LzmaDecoder.h
# End Source File
# Begin Source File
SOURCE=..\..\Compress\LzmaEncoder.cpp
# End Source File
# Begin Source File
SOURCE=..\..\Compress\LzmaEncoder.h
# End Source File
# Begin Source File
SOURCE=..\..\Compress\LzmaRegister.cpp
# End Source File
# End Group
# Begin Group "Windows"
# PROP Default_Filter ""
# Begin Source File
SOURCE=..\..\..\Windows\FileIO.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\Windows\FileIO.h
# End Source File
# Begin Source File
SOURCE=..\..\..\Windows\NtCheck.h
# End Source File
# Begin Source File
SOURCE=..\..\..\Windows\PropVariant.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\Windows\PropVariant.h
# End Source File
# Begin Source File
SOURCE=..\..\..\Windows\Registry.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\Windows\Registry.h
# End Source File
# Begin Source File
SOURCE=..\..\..\Windows\System.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\Windows\System.h
# End Source File
# Begin Source File
SOURCE=..\..\..\Windows\SystemInfo.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\Windows\SystemInfo.h
# End Source File
# Begin Source File
SOURCE=..\..\..\Windows\Thread.h
# End Source File
# End Group
# Begin Group "Common"
# PROP Default_Filter ""
# Begin Source File
SOURCE=..\..\..\Common\CommandLineParser.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\Common\CommandLineParser.h
# End Source File
# Begin Source File
SOURCE=..\..\..\Common\Common.h
# End Source File
# Begin Source File
SOURCE=..\..\..\Common\ComTry.h
# End Source File
# Begin Source File
SOURCE=..\..\..\Common\CRC.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\Common\CrcReg.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\Common\Defs.h
# End Source File
# Begin Source File
SOURCE=..\..\..\Common\IntToString.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\Common\IntToString.h
# End Source File
# Begin Source File
SOURCE=..\..\..\Common\LzFindPrepare.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\Common\MyBuffer.h
# End Source File
# Begin Source File
SOURCE=..\..\..\Common\MyBuffer2.h
# End Source File
# Begin Source File
SOURCE=..\..\..\Common\MyCom.h
# End Source File
# Begin Source File
SOURCE=..\..\..\Common\MyInitGuid.h
# End Source File
# Begin Source File
SOURCE=..\..\..\Common\MyLinux.h
# End Source File
# Begin Source File
SOURCE=..\..\..\Common\MyString.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\Common\MyString.h
# End Source File
# Begin Source File
SOURCE=..\..\..\Common\MyTypes.h
# End Source File
# Begin Source File
SOURCE=..\..\..\Common\MyUnknown.h
# End Source File
# Begin Source File
SOURCE=..\..\..\Common\MyVector.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\Common\MyVector.h
# End Source File
# Begin Source File
SOURCE=..\..\..\Common\MyWindows.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\Common\MyWindows.h
# End Source File
# Begin Source File
SOURCE=..\..\..\Common\NewHandler.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\Common\NewHandler.h
# End Source File
# Begin Source File
SOURCE=..\..\..\Common\StringConvert.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\Common\StringConvert.h
# End Source File
# Begin Source File
SOURCE=..\..\..\Common\StringToInt.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\Common\StringToInt.h
# End Source File
# Begin Source File
SOURCE=..\..\..\Common\Types.h
# End Source File
# Begin Source File
SOURCE=..\..\..\Common\Wildcard.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\Common\Wildcard.h
# End Source File
# End Group
# Begin Group "7zip Common"
# PROP Default_Filter ""
# Begin Source File
SOURCE=..\..\Common\CreateCoder.cpp
# End Source File
# Begin Source File
SOURCE=..\..\Common\CreateCoder.h
# End Source File
# Begin Source File
SOURCE=..\..\Common\CWrappers.cpp
# End Source File
# Begin Source File
SOURCE=..\..\Common\CWrappers.h
# End Source File
# Begin Source File
SOURCE=..\..\Common\FileStreams.cpp
# End Source File
# Begin Source File
SOURCE=..\..\Common\FileStreams.h
# End Source File
# Begin Source File
SOURCE=..\..\Common\FilterCoder.cpp
# End Source File
# Begin Source File
SOURCE=..\..\Common\FilterCoder.h
# End Source File
# Begin Source File
SOURCE=..\..\Common\MethodProps.cpp
# End Source File
# Begin Source File
SOURCE=..\..\Common\MethodProps.h
# End Source File
# Begin Source File
SOURCE=..\..\Common\StreamObjects.cpp
# End Source File
# Begin Source File
SOURCE=..\..\Common\StreamObjects.h
# End Source File
# Begin Source File
SOURCE=..\..\Common\StreamUtils.cpp
# End Source File
# Begin Source File
SOURCE=..\..\Common\StreamUtils.h
# End Source File
# End Group
# Begin Group "UI Common"
# PROP Default_Filter ""
# Begin Source File
SOURCE=..\..\UI\Common\Bench.cpp
# End Source File
# Begin Source File
SOURCE=..\..\UI\Common\Bench.h
# End Source File
# End Group
# Begin Group "Console"
# PROP Default_Filter ""
# Begin Source File
SOURCE=..\..\UI\Console\BenchCon.cpp
# End Source File
# Begin Source File
SOURCE=..\..\UI\Console\BenchCon.h
# End Source File
# Begin Source File
SOURCE=..\..\UI\Console\ConsoleClose.cpp
# End Source File
# Begin Source File
SOURCE=..\..\UI\Console\ConsoleClose.h
# End Source File
# End Group
# Begin Group "C"
# PROP Default_Filter ""
# Begin Source File
SOURCE=..\..\..\..\C\7zCrc.c
# SUBTRACT CPP /YX /Yc /Yu
# End Source File
# Begin Source File
SOURCE=..\..\..\..\C\7zCrc.h
# End Source File
# Begin Source File
SOURCE=..\..\..\..\C\7zCrcOpt.c
# SUBTRACT CPP /YX /Yc /Yu
# End Source File
# Begin Source File
SOURCE=..\..\..\..\C\7zTypes.h
# End Source File
# Begin Source File
SOURCE=..\..\..\..\C\7zWindows.h
# End Source File
# Begin Source File
SOURCE=..\..\..\..\C\Alloc.c
# SUBTRACT CPP /YX /Yc /Yu
# End Source File
# Begin Source File
SOURCE=..\..\..\..\C\Alloc.h
# End Source File
# Begin Source File
SOURCE=..\..\..\..\C\Bra86.c
# SUBTRACT CPP /YX /Yc /Yu
# End Source File
# Begin Source File
SOURCE=..\..\..\..\C\Compiler.h
# End Source File
# Begin Source File
SOURCE=..\..\..\..\C\CpuArch.c
# SUBTRACT CPP /YX /Yc /Yu
# End Source File
# Begin Source File
SOURCE=..\..\..\..\C\CpuArch.h
# End Source File
# Begin Source File
SOURCE=..\..\..\..\C\LzFind.c
# SUBTRACT CPP /YX /Yc /Yu
# End Source File
# Begin Source File
SOURCE=..\..\..\..\C\LzFind.h
# End Source File
# Begin Source File
SOURCE=..\..\..\..\C\LzFindMt.c
# SUBTRACT CPP /YX /Yc /Yu
# End Source File
# Begin Source File
SOURCE=..\..\..\..\C\LzFindMt.h
# End Source File
# Begin Source File
SOURCE=..\..\..\..\C\LzFindOpt.c
# SUBTRACT CPP /YX /Yc /Yu
# End Source File
# Begin Source File
SOURCE=..\..\..\..\C\LzHash.h
# End Source File
# Begin Source File
SOURCE=..\..\..\..\C\Lzma86.h
# End Source File
# Begin Source File
SOURCE=..\..\..\..\C\Lzma86Dec.c
# SUBTRACT CPP /YX /Yc /Yu
# End Source File
# Begin Source File
SOURCE=..\..\..\..\C\Lzma86Enc.c
# SUBTRACT CPP /YX /Yc /Yu
# End Source File
# Begin Source File
SOURCE=..\..\..\..\C\LzmaDec.c
# SUBTRACT CPP /YX /Yc /Yu
# End Source File
# Begin Source File
SOURCE=..\..\..\..\C\LzmaDec.h
# End Source File
# Begin Source File
SOURCE=..\..\..\..\C\LzmaEnc.c
# SUBTRACT CPP /YX /Yc /Yu
# End Source File
# Begin Source File
SOURCE=..\..\..\..\C\LzmaEnc.h
# End Source File
# Begin Source File
SOURCE=..\..\..\..\C\Threads.c
# SUBTRACT CPP /YX /Yc /Yu
# End Source File
# Begin Source File
SOURCE=..\..\..\..\C\Threads.h
# End Source File
# End Group
# Begin Group "7zip"
# PROP Default_Filter ""
# Begin Source File
SOURCE=..\..\ICoder.h
# End Source File
# Begin Source File
SOURCE=..\..\IDecl.h
# End Source File
# Begin Source File
SOURCE=..\..\IProgress.h
# End Source File
# End Group
# Begin Source File
SOURCE=.\LzmaAlone.cpp
# End Source File
# End Target
# End Project
@@ -0,0 +1,29 @@
Microsoft Developer Studio Workspace File, Format Version 6.00
# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
###############################################################################
Project: "LzmaCon"=.\LzmaCon.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
}}}
###############################################################################
Global:
Package=<5>
{{{
}}}
Package=<3>
{{{
}}}
###############################################################################
@@ -0,0 +1,3 @@
// StdAfx.cpp
#include "StdAfx.h"
@@ -0,0 +1,11 @@
// StdAfx.h
#ifndef ZIP7_INC_STDAFX_H
#define ZIP7_INC_STDAFX_H
#if defined(_MSC_VER) && _MSC_VER >= 1800
#pragma warning(disable : 4464) // relative include path contains '..'
#endif
#include "../../../Common/Common.h"
#endif
@@ -0,0 +1,68 @@
PROG = lzma.exe
MY_CONSOLE = 1
CFLAGS = $(CFLAGS) -DZ7_NO_LONG_PATH
# CFLAGS = $(CFLAGS) -DZ7_ST
CURRENT_OBJS = \
$O\LzmaAlone.obj \
COMPRESS_OBJS = \
$O\LzmaDecoder.obj \
$O\LzmaEncoder.obj \
$O\LzmaRegister.obj \
COMMON_OBJS = \
$O\CommandLineParser.obj \
$O\CRC.obj \
$O\CrcReg.obj \
$O\IntToString.obj \
$O\LzFindPrepare.obj \
$O\MyString.obj \
$O\MyVector.obj \
$O\NewHandler.obj \
$O\StringConvert.obj \
$O\StringToInt.obj \
$O\Wildcard.obj \
WIN_OBJS = \
$O\FileIO.obj \
$O\PropVariant.obj \
$O\Registry.obj \
$O\System.obj \
$O\SystemInfo.obj \
7ZIP_COMMON_OBJS = \
$O\CreateCoder.obj \
$O\CWrappers.obj \
$O\FileStreams.obj \
$O\FilterCoder.obj \
$O\MethodProps.obj \
$O\StreamObjects.obj \
$O\StreamUtils.obj \
UI_COMMON_OBJS = \
$O\Bench.obj \
CONSOLE_OBJS = \
$O\ConsoleClose.obj \
$O\BenchCon.obj \
C_OBJS = \
$O\Alloc.obj \
$O\Bra86.obj \
$O\CpuArch.obj \
$O\LzFind.obj \
$O\LzFindMt.obj \
$O\Lzma86Dec.obj \
$O\Lzma86Enc.obj \
$O\LzmaDec.obj \
$O\LzmaEnc.obj \
$O\Threads.obj \
!include "../../Crc.mak"
!include "../../LzFindOpt.mak"
!include "../../LzmaDec.mak"
!include "../../7zip.mak"
@@ -0,0 +1,131 @@
PROG = lzma
# IS_X64 = 1
# USE_ASM = 1
# ST_MODE = 1
ifdef SystemDrive
IS_MINGW = 1
else
ifdef SYSTEMDRIVE
# ifdef OS
IS_MINGW = 1
endif
endif
include ../../LzmaDec_gcc.mak
LOCAL_FLAGS_ST =
MT_OBJS =
ifdef ST_MODE
LOCAL_FLAGS_ST = -DZ7_ST
else
MT_OBJS = \
$O/LzFindMt.o \
$O/LzFindOpt.o \
$O/Threads.o \
$O/Synchronization.o \
endif
LOCAL_FLAGS_SYS =
ifdef IS_MINGW
SYS_OBJS = \
$O/Registry.o \
$O/resource.o \
LOCAL_FLAGS_SYS = \
-DZ7_NO_LONG_PATH \
else
SYS_OBJS = \
$O/FileDir.o \
$O/FileFind.o \
$O/FileName.o \
$O/MyWindows.o \
$O/TimeUtils.o \
endif
LOCAL_FLAGS = \
$(LOCAL_FLAGS_ST) \
$(LOCAL_FLAGS_SYS) \
COMMON_OBJS = \
$O/CommandLineParser.o \
$O/CRC.o \
$O/CrcReg.o \
$O/IntToString.o \
$O/LzFindPrepare.o \
$O/MyString.o \
$O/MyVector.o \
$O/NewHandler.o \
$O/StringConvert.o \
$O/StringToInt.o \
$O/UTFConvert.o \
$O/Wildcard.o \
WIN_OBJS = \
$O/FileIO.o \
$O/PropVariant.o \
$O/System.o \
$O/SystemInfo.o \
COMPRESS_OBJS = \
$O/LzmaDecoder.o \
$O/LzmaEncoder.o \
$O/LzmaRegister.o \
CONSOLE_OBJS = \
$O/BenchCon.o \
$O/ConsoleClose.o \
7ZIP_COMMON_OBJS = \
$O/CreateCoder.o \
$O/CWrappers.o \
$O/FileStreams.o \
$O/FilterCoder.o \
$O/MethodProps.o \
$O/StreamObjects.o \
$O/StreamUtils.o \
C_OBJS = \
$O/7zCrc.o \
$O/7zCrcOpt.o \
$O/Alloc.o \
$O/Bra86.o \
$O/CpuArch.o \
$O/LzFind.o \
$O/LzmaDec.o \
$O/LzmaEnc.o \
$O/Lzma86Dec.o \
$O/Lzma86Enc.o \
OBJS = \
$(LZMA_DEC_OPT_OBJS) \
$(C_OBJS) \
$(MT_OBJS) \
$(SYS_OBJS) \
$(COMMON_OBJS) \
$(WIN_OBJS) \
$(COMPRESS_OBJS) \
$(7ZIP_COMMON_OBJS) \
$(CONSOLE_OBJS) \
$O/LzmaAlone.o \
$O/Bench.o \
include ../../7zip_gcc.mak
@@ -0,0 +1,3 @@
#include "../../MyVersionInfo.rc"
MY_VERSION_INFO_APP("LZMA", "lzma")
@@ -0,0 +1,44 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 14
VisualStudioVersion = 14.0.24720.0
MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Nsis7z", "Nsis7z.vcxproj", "{A284C1EF-6CA9-4984-A25F-83B22C85A5EC}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug Unicode|Win32 = Debug Unicode|Win32
Debug Unicode|x64 = Debug Unicode|x64
Debug|Win32 = Debug|Win32
Debug|x64 = Debug|x64
Release Unicode|Win32 = Release Unicode|Win32
Release Unicode|x64 = Release Unicode|x64
Release|Win32 = Release|Win32
Release|x64 = Release|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{A284C1EF-6CA9-4984-A25F-83B22C85A5EC}.Debug Unicode|Win32.ActiveCfg = Debug Unicode|Win32
{A284C1EF-6CA9-4984-A25F-83B22C85A5EC}.Debug Unicode|Win32.Build.0 = Debug Unicode|Win32
{A284C1EF-6CA9-4984-A25F-83B22C85A5EC}.Debug Unicode|Win32.Deploy.0 = Debug Unicode|Win32
{A284C1EF-6CA9-4984-A25F-83B22C85A5EC}.Debug Unicode|x64.ActiveCfg = Debug Unicode|x64
{A284C1EF-6CA9-4984-A25F-83B22C85A5EC}.Debug Unicode|x64.Build.0 = Debug Unicode|x64
{A284C1EF-6CA9-4984-A25F-83B22C85A5EC}.Debug|Win32.ActiveCfg = Debug|Win32
{A284C1EF-6CA9-4984-A25F-83B22C85A5EC}.Debug|Win32.Build.0 = Debug|Win32
{A284C1EF-6CA9-4984-A25F-83B22C85A5EC}.Debug|Win32.Deploy.0 = Debug|Win32
{A284C1EF-6CA9-4984-A25F-83B22C85A5EC}.Debug|x64.ActiveCfg = Debug|x64
{A284C1EF-6CA9-4984-A25F-83B22C85A5EC}.Debug|x64.Build.0 = Debug|x64
{A284C1EF-6CA9-4984-A25F-83B22C85A5EC}.Release Unicode|Win32.ActiveCfg = Release Unicode|Win32
{A284C1EF-6CA9-4984-A25F-83B22C85A5EC}.Release Unicode|Win32.Build.0 = Release Unicode|Win32
{A284C1EF-6CA9-4984-A25F-83B22C85A5EC}.Release Unicode|Win32.Deploy.0 = Release Unicode|Win32
{A284C1EF-6CA9-4984-A25F-83B22C85A5EC}.Release Unicode|x64.ActiveCfg = Release Unicode|x64
{A284C1EF-6CA9-4984-A25F-83B22C85A5EC}.Release Unicode|x64.Build.0 = Release Unicode|x64
{A284C1EF-6CA9-4984-A25F-83B22C85A5EC}.Release|Win32.ActiveCfg = Release|Win32
{A284C1EF-6CA9-4984-A25F-83B22C85A5EC}.Release|Win32.Build.0 = Release|Win32
{A284C1EF-6CA9-4984-A25F-83B22C85A5EC}.Release|Win32.Deploy.0 = Release|Win32
{A284C1EF-6CA9-4984-A25F-83B22C85A5EC}.Release|x64.ActiveCfg = Release|x64
{A284C1EF-6CA9-4984-A25F-83B22C85A5EC}.Release|x64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal
@@ -0,0 +1,929 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="15.0"
xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug Unicode|Win32">
<Configuration>Debug Unicode</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug Unicode|x64">
<Configuration>Debug Unicode</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release Unicode|Win32">
<Configuration>Release Unicode</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release Unicode|x64">
<Configuration>Release Unicode</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<SccProjectName />
<SccLocalPath />
<ProjectGuid>{A284C1EF-6CA9-4984-A25F-83B22C85A5EC}</ProjectGuid>
<WindowsTargetPlatformVersion>10.0.26100.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<PlatformToolset>v143</PlatformToolset>
<UseOfMfc>false</UseOfMfc>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<PlatformToolset>v143</PlatformToolset>
<UseOfMfc>false</UseOfMfc>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Unicode|Win32'"
Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<PlatformToolset>v143</PlatformToolset>
<UseOfMfc>false</UseOfMfc>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Unicode|x64'"
Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<PlatformToolset>v143</PlatformToolset>
<UseOfMfc>false</UseOfMfc>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug Unicode|Win32'"
Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<PlatformToolset>v143</PlatformToolset>
<UseOfMfc>false</UseOfMfc>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug Unicode|x64'"
Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<PlatformToolset>v143</PlatformToolset>
<UseOfMfc>false</UseOfMfc>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<PlatformToolset>v143</PlatformToolset>
<UseOfMfc>false</UseOfMfc>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<PlatformToolset>v143</PlatformToolset>
<UseOfMfc>false</UseOfMfc>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props"
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')"
Label="LocalAppDataPlatform" />
<Import Project="$(VCTargetsPath)Microsoft.Cpp.UpgradeFromVC60.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props"
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')"
Label="LocalAppDataPlatform" />
<Import Project="$(VCTargetsPath)Microsoft.Cpp.UpgradeFromVC60.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release Unicode|Win32'"
Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props"
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')"
Label="LocalAppDataPlatform" />
<Import Project="$(VCTargetsPath)Microsoft.Cpp.UpgradeFromVC60.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release Unicode|x64'"
Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props"
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')"
Label="LocalAppDataPlatform" />
<Import Project="$(VCTargetsPath)Microsoft.Cpp.UpgradeFromVC60.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug Unicode|Win32'"
Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props"
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')"
Label="LocalAppDataPlatform" />
<Import Project="$(VCTargetsPath)Microsoft.Cpp.UpgradeFromVC60.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug Unicode|x64'"
Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props"
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')"
Label="LocalAppDataPlatform" />
<Import Project="$(VCTargetsPath)Microsoft.Cpp.UpgradeFromVC60.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props"
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')"
Label="LocalAppDataPlatform" />
<Import Project="$(VCTargetsPath)Microsoft.Cpp.UpgradeFromVC60.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props"
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')"
Label="LocalAppDataPlatform" />
<Import Project="$(VCTargetsPath)Microsoft.Cpp.UpgradeFromVC60.props" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<LinkIncremental>false</LinkIncremental>
<GenerateManifest>false</GenerateManifest>
<TargetName>nsis7z</TargetName>
<OutDir>$(Configuration)\</OutDir>
<IntDir>$(Configuration)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LinkIncremental>false</LinkIncremental>
<GenerateManifest>false</GenerateManifest>
<TargetName>nsis7z</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug Unicode|Win32'">
<LinkIncremental>true</LinkIncremental>
<GenerateManifest>false</GenerateManifest>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug Unicode|x64'">
<LinkIncremental>true</LinkIncremental>
<GenerateManifest>false</GenerateManifest>
<TargetName>nsis7z</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Unicode|Win32'">
<LinkIncremental>false</LinkIncremental>
<GenerateManifest>false</GenerateManifest>
<TargetName>nsis7z</TargetName>
<OutDir>$(Configuration)\</OutDir>
<IntDir>$(Configuration)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Unicode|x64'">
<LinkIncremental>false</LinkIncremental>
<GenerateManifest>false</GenerateManifest>
<TargetName>nsis7z</TargetName>
<OutDir>$(Platform)\$(Configuration)\</OutDir>
<IntDir>$(Platform)\$(Configuration)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<LinkIncremental>true</LinkIncremental>
<GenerateManifest>false</GenerateManifest>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<LinkIncremental>true</LinkIncremental>
<GenerateManifest>false</GenerateManifest>
<TargetName>nsis7z</TargetName>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<InlineFunctionExpansion>Default</InlineFunctionExpansion>
<StringPooling>true</StringPooling>
<FunctionLevelLinking>true</FunctionLevelLinking>
<Optimization>MinSpace</Optimization>
<WholeProgramOptimization>true</WholeProgramOptimization>
<RuntimeTypeInfo>false</RuntimeTypeInfo>
<SuppressStartupBanner>true</SuppressStartupBanner>
<WarningLevel>Level3</WarningLevel>
<AdditionalIncludeDirectories>..\..\..\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>NDEBUG;WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AssemblerOutput>AssemblyAndMachineCode</AssemblerOutput>
<CallingConvention>FastCall</CallingConvention>
<DebugInformationFormat>None</DebugInformationFormat>
<DisableSpecificWarnings>4100</DisableSpecificWarnings>
</ClCompile>
<Midl>
<TypeLibraryName>.\Release\Alone.tlb</TypeLibraryName>
</Midl>
<ResourceCompile>
<Culture>0x0419</Culture>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ResourceCompile>
<Bscmake>
<SuppressStartupBanner>true</SuppressStartupBanner>
<OutputFile>.\Release\Alone.bsc</OutputFile>
</Bscmake>
<Link>
<SuppressStartupBanner>true</SuppressStartupBanner>
<EntryPointSymbol>
</EntryPointSymbol>
<GenerateDebugInformation>No</GenerateDebugInformation>
<LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<InlineFunctionExpansion>Default</InlineFunctionExpansion>
<StringPooling>true</StringPooling>
<FunctionLevelLinking>true</FunctionLevelLinking>
<Optimization>MinSpace</Optimization>
<WholeProgramOptimization>true</WholeProgramOptimization>
<RuntimeTypeInfo>false</RuntimeTypeInfo>
<SuppressStartupBanner>true</SuppressStartupBanner>
<WarningLevel>Level3</WarningLevel>
<AdditionalIncludeDirectories>..\..\..\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>NDEBUG;WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AssemblerOutput>AssemblyAndMachineCode</AssemblerOutput>
<CallingConvention>FastCall</CallingConvention>
</ClCompile>
<Midl>
<TypeLibraryName>.\Release\Alone.tlb</TypeLibraryName>
</Midl>
<ResourceCompile>
<Culture>0x0419</Culture>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ResourceCompile>
<Bscmake>
<SuppressStartupBanner>true</SuppressStartupBanner>
<OutputFile>.\Release\Alone.bsc</OutputFile>
</Bscmake>
<Link>
<SuppressStartupBanner>true</SuppressStartupBanner>
<EntryPointSymbol>
</EntryPointSymbol>
<LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug Unicode|Win32'">
<ClCompile>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<InlineFunctionExpansion>Default</InlineFunctionExpansion>
<FunctionLevelLinking>false</FunctionLevelLinking>
<Optimization>Disabled</Optimization>
<SuppressStartupBanner>true</SuppressStartupBanner>
<WarningLevel>Level4</WarningLevel>
<MinimalRebuild>true</MinimalRebuild>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
<AdditionalIncludeDirectories>..\..\..\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_DEBUG;UNICODE;WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<CallingConvention>FastCall</CallingConvention>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
</ClCompile>
<Midl>
<TypeLibraryName>.\DebugU\Alone.tlb</TypeLibraryName>
</Midl>
<ResourceCompile>
<Culture>0x0419</Culture>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ResourceCompile>
<Bscmake>
<SuppressStartupBanner>true</SuppressStartupBanner>
<OutputFile>.\DebugU\Alone.bsc</OutputFile>
</Bscmake>
<Link>
<SuppressStartupBanner>true</SuppressStartupBanner>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalDependencies>odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<EntryPointSymbol>
</EntryPointSymbol>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug Unicode|x64'">
<ClCompile>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<InlineFunctionExpansion>Default</InlineFunctionExpansion>
<FunctionLevelLinking>false</FunctionLevelLinking>
<Optimization>Disabled</Optimization>
<SuppressStartupBanner>true</SuppressStartupBanner>
<WarningLevel>Level4</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<AdditionalIncludeDirectories>..\..\..\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_DEBUG;UNICODE;WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<CallingConvention>FastCall</CallingConvention>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
</ClCompile>
<Midl>
<TypeLibraryName>.\DebugU\Alone.tlb</TypeLibraryName>
</Midl>
<ResourceCompile>
<Culture>0x0419</Culture>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ResourceCompile>
<Bscmake>
<SuppressStartupBanner>true</SuppressStartupBanner>
<OutputFile>.\DebugU\Alone.bsc</OutputFile>
</Bscmake>
<Link>
<SuppressStartupBanner>true</SuppressStartupBanner>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalDependencies>odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<EntryPointSymbol>
</EntryPointSymbol>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release Unicode|Win32'">
<ClCompile>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<InlineFunctionExpansion>Default</InlineFunctionExpansion>
<StringPooling>true</StringPooling>
<FunctionLevelLinking>true</FunctionLevelLinking>
<Optimization>MinSpace</Optimization>
<WholeProgramOptimization>true</WholeProgramOptimization>
<RuntimeTypeInfo>false</RuntimeTypeInfo>
<SuppressStartupBanner>true</SuppressStartupBanner>
<WarningLevel>Level4</WarningLevel>
<AdditionalIncludeDirectories>..\..\..\ ;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>NDEBUG;UNICODE;WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<CallingConvention>FastCall</CallingConvention>
<DebugInformationFormat>None</DebugInformationFormat>
<DisableSpecificWarnings>4100</DisableSpecificWarnings>
</ClCompile>
<Midl>
<TypeLibraryName>.\ReleaseU\Alone.tlb</TypeLibraryName>
</Midl>
<ResourceCompile>
<Culture>0x0419</Culture>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ResourceCompile>
<Bscmake>
<SuppressStartupBanner>true</SuppressStartupBanner>
<OutputFile>.\ReleaseU\Alone.bsc</OutputFile>
</Bscmake>
<Link>
<SuppressStartupBanner>true</SuppressStartupBanner>
<EntryPointSymbol>
</EntryPointSymbol>
<GenerateDebugInformation>No</GenerateDebugInformation>
<LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release Unicode|x64'">
<ClCompile>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<InlineFunctionExpansion>Default</InlineFunctionExpansion>
<StringPooling>true</StringPooling>
<FunctionLevelLinking>true</FunctionLevelLinking>
<Optimization>MinSpace</Optimization>
<WholeProgramOptimization>true</WholeProgramOptimization>
<RuntimeTypeInfo>false</RuntimeTypeInfo>
<SuppressStartupBanner>true</SuppressStartupBanner>
<WarningLevel>Level4</WarningLevel>
<AdditionalIncludeDirectories>..\..\..\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>NDEBUG;UNICODE;WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<CallingConvention>FastCall</CallingConvention>
<DebugInformationFormat>None</DebugInformationFormat>
<DisableSpecificWarnings>4100</DisableSpecificWarnings>
</ClCompile>
<Midl>
<TypeLibraryName>.\ReleaseU\Alone.tlb</TypeLibraryName>
</Midl>
<ResourceCompile>
<Culture>0x0419</Culture>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ResourceCompile>
<Bscmake>
<SuppressStartupBanner>true</SuppressStartupBanner>
<OutputFile>.\ReleaseU\Alone.bsc</OutputFile>
</Bscmake>
<Link>
<SuppressStartupBanner>true</SuppressStartupBanner>
<EntryPointSymbol>
</EntryPointSymbol>
<GenerateDebugInformation>No</GenerateDebugInformation>
<LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<InlineFunctionExpansion>Default</InlineFunctionExpansion>
<Optimization>Disabled</Optimization>
<SuppressStartupBanner>true</SuppressStartupBanner>
<WarningLevel>Level3</WarningLevel>
<MinimalRebuild>true</MinimalRebuild>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
<AdditionalIncludeDirectories>..\..\..\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_DEBUG;WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<CallingConvention>FastCall</CallingConvention>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
</ClCompile>
<Midl>
<TypeLibraryName>.\Debug\Alone.tlb</TypeLibraryName>
</Midl>
<ResourceCompile>
<Culture>0x0419</Culture>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ResourceCompile>
<Bscmake>
<SuppressStartupBanner>true</SuppressStartupBanner>
<OutputFile>.\Debug\Alone.bsc</OutputFile>
</Bscmake>
<Link>
<SuppressStartupBanner>true</SuppressStartupBanner>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalDependencies>odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<EntryPointSymbol>
</EntryPointSymbol>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<InlineFunctionExpansion>Default</InlineFunctionExpansion>
<FunctionLevelLinking>false</FunctionLevelLinking>
<Optimization>Disabled</Optimization>
<SuppressStartupBanner>true</SuppressStartupBanner>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<AdditionalIncludeDirectories>..\..\..\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_DEBUG;WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<CallingConvention>FastCall</CallingConvention>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
</ClCompile>
<Midl>
<TypeLibraryName>.\Debug\Alone.tlb</TypeLibraryName>
</Midl>
<ResourceCompile>
<Culture>0x0419</Culture>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ResourceCompile>
<Bscmake>
<SuppressStartupBanner>true</SuppressStartupBanner>
<OutputFile>.\Debug\Alone.bsc</OutputFile>
</Bscmake>
<Link>
<SuppressStartupBanner>true</SuppressStartupBanner>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalDependencies>odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<EntryPointSymbol>
</EntryPointSymbol>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClInclude Include="..\..\..\..\C\7z.h" />
<ClInclude Include="..\..\..\..\C\7zAlloc.h" />
<ClInclude Include="..\..\..\..\C\7zBuf.h" />
<ClInclude Include="..\..\..\..\C\7zCrc.h" />
<ClInclude Include="..\..\..\..\C\7zFile.h" />
<ClInclude Include="..\..\..\..\C\7zTypes.h" />
<ClInclude Include="..\..\..\..\C\7zVersion.h" />
<ClInclude Include="..\..\..\..\C\Aes.h" />
<ClInclude Include="..\..\..\..\C\Alloc.h" />
<ClInclude Include="..\..\..\..\C\Bcj2.h" />
<ClInclude Include="..\..\..\..\C\Bra.h" />
<ClInclude Include="..\..\..\..\C\Compiler.h" />
<ClInclude Include="..\..\..\..\C\CpuArch.h" />
<ClInclude Include="..\..\..\..\C\Delta.h" />
<ClInclude Include="..\..\..\..\C\LzFind.h" />
<ClInclude Include="..\..\..\..\C\LzFindMt.h" />
<ClInclude Include="..\..\..\..\C\LzHash.h" />
<ClInclude Include="..\..\..\..\C\Lzma2Dec.h" />
<ClInclude Include="..\..\..\..\C\Lzma2DecMt.h" />
<ClInclude Include="..\..\..\..\C\Lzma2Enc.h" />
<ClInclude Include="..\..\..\..\C\Lzma86.h" />
<ClInclude Include="..\..\..\..\C\LzmaDec.h" />
<ClInclude Include="..\..\..\..\C\LzmaEnc.h" />
<ClInclude Include="..\..\..\..\C\LzmaLib.h" />
<ClInclude Include="..\..\..\..\C\MtCoder.h" />
<ClInclude Include="..\..\..\..\C\MtDec.h" />
<ClInclude Include="..\..\..\..\C\Ppmd.h" />
<ClInclude Include="..\..\..\..\C\Ppmd7.h" />
<ClInclude Include="..\..\..\..\C\Precomp.h" />
<ClInclude Include="..\..\..\..\C\RotateDefs.h" />
<ClInclude Include="..\..\..\..\C\Sha256.h" />
<ClInclude Include="..\..\..\..\C\Sort.h" />
<ClInclude Include="..\..\..\..\C\Threads.h" />
<ClInclude Include="..\..\..\..\C\Xz.h" />
<ClInclude Include="..\..\..\..\C\XzCrc64.h" />
<ClInclude Include="..\..\..\..\C\XzEnc.h" />
<ClInclude Include="..\..\..\Common\StdAfx.h" />
<ClInclude Include="..\..\..\Windows\COM.h" />
<ClInclude Include="..\..\..\Windows\CommonDialog.h" />
<ClInclude Include="..\..\..\Windows\ErrorMsg.h" />
<ClInclude Include="..\..\..\Windows\FileSystem.h" />
<ClInclude Include="..\..\..\Windows\NtCheck.h" />
<ClInclude Include="..\..\..\Windows\PropVariantConv.h" />
<ClInclude Include="..\..\..\Windows\Registry.h" />
<ClInclude Include="..\..\..\Windows\ResourceString.h" />
<ClInclude Include="..\..\..\Windows\SecurityUtils.h" />
<ClInclude Include="..\..\..\Windows\Shell.h" />
<ClInclude Include="..\..\..\Windows\StdAfx.h" />
<ClInclude Include="..\..\..\Windows\TimeUtils.h" />
<ClInclude Include="..\..\..\Windows\Window.h" />
<ClInclude Include="..\..\Archive\7z\7zCompressionMode.h" />
<ClInclude Include="..\..\Archive\7z\7zDecode.h" />
<ClInclude Include="..\..\Archive\7z\7zEncode.h" />
<ClInclude Include="..\..\Archive\7z\7zFolderInStream.h" />
<ClInclude Include="..\..\Archive\7z\7zHandler.h" />
<ClInclude Include="..\..\Archive\7z\7zHeader.h" />
<ClInclude Include="..\..\Archive\7z\7zIn.h" />
<ClInclude Include="..\..\Archive\7z\7zItem.h" />
<ClInclude Include="..\..\Archive\7z\7zOut.h" />
<ClInclude Include="..\..\Archive\7z\7zProperties.h" />
<ClInclude Include="..\..\Archive\7z\7zSpecStream.h" />
<ClInclude Include="..\..\Archive\7z\7zUpdate.h" />
<ClInclude Include="..\..\Archive\7z\StdAfx.h" />
<ClInclude Include="..\..\Archive\Common\CoderMixer2.h" />
<ClInclude Include="..\..\Archive\Common\DummyOutStream.h" />
<ClInclude Include="..\..\Archive\Common\HandlerOut.h" />
<ClInclude Include="..\..\Archive\Common\InStreamWithCRC.h" />
<ClInclude Include="..\..\Archive\Common\ItemNameUtils.h" />
<ClInclude Include="..\..\Archive\Common\MultiStream.h" />
<ClInclude Include="..\..\Archive\Common\OutStreamWithCRC.h" />
<ClInclude Include="..\..\Archive\Common\ParseProperties.h" />
<ClInclude Include="..\..\Archive\Common\StdAfx.h" />
<ClInclude Include="..\..\Common\CreateCoder.h" />
<ClInclude Include="..\..\Common\CWrappers.h" />
<ClInclude Include="..\..\Common\FilePathAutoRename.h" />
<ClInclude Include="..\..\Common\FileStreams.h" />
<ClInclude Include="..\..\Common\FilterCoder.h" />
<ClInclude Include="..\..\Common\InBuffer.h" />
<ClInclude Include="..\..\Common\InOutTempBuffer.h" />
<ClInclude Include="..\..\Common\LimitedStreams.h" />
<ClInclude Include="..\..\Common\LockedStream.h" />
<ClInclude Include="..\..\Common\MethodId.h" />
<ClInclude Include="..\..\Common\MethodProps.h" />
<ClInclude Include="..\..\Common\OffsetStream.h" />
<ClInclude Include="..\..\Common\OutBuffer.h" />
<ClInclude Include="..\..\Common\ProgressUtils.h" />
<ClInclude Include="..\..\Common\RegisterArc.h" />
<ClInclude Include="..\..\Common\RegisterCodec.h" />
<ClInclude Include="..\..\Common\StdAfx.h" />
<ClInclude Include="..\..\Common\StreamBinder.h" />
<ClInclude Include="..\..\Common\StreamObjects.h" />
<ClInclude Include="..\..\Common\StreamUtils.h" />
<ClInclude Include="..\..\Common\UniqBlocks.h" />
<ClInclude Include="..\..\Common\VirtThread.h" />
<ClInclude Include="..\..\Compress\Bcj2Coder.h" />
<ClInclude Include="..\..\Compress\BcjCoder.h" />
<ClInclude Include="..\..\Compress\BranchMisc.h" />
<ClInclude Include="..\..\Compress\CopyCoder.h" />
<ClInclude Include="..\..\Compress\Lzma2Decoder.h" />
<ClInclude Include="..\..\Compress\Lzma2Encoder.h" />
<ClInclude Include="..\..\Compress\LzmaDecoder.h" />
<ClInclude Include="..\..\Compress\LzmaEncoder.h" />
<ClInclude Include="..\..\Compress\XzDecoder.h" />
<ClInclude Include="..\..\Compress\XzEncoder.h" />
<ClInclude Include="..\..\UI\Common\ArchiveName.h" />
<ClInclude Include="..\..\UI\Common\DirItem.h" />
<ClInclude Include="..\..\UI\Common\ExitCode.h" />
<ClInclude Include="..\..\UI\Common\ExtractMode.h" />
<ClInclude Include="..\..\UI\Common\HashCalc.h" />
<ClInclude Include="..\..\UI\Common\IFileExtractCallback.h" />
<ClInclude Include="..\..\UI\Common\StdAfx.h" />
<ClInclude Include="..\..\UI\Common\ZipRegistry.h" />
<ClInclude Include="..\..\UI\Console\ConsoleClose.h" />
<ClInclude Include="..\..\UI\Console\OpenCallbackConsole.h" />
<ClInclude Include="..\..\UI\Console\PercentPrinter.h" />
<ClInclude Include="..\..\UI\Console\UserInputUtils.h" />
<ClInclude Include="..\..\UI\NSIS\ExtractCallbackConsole.h" />
<ClInclude Include="..\..\UI\NSIS\NSISBreak.h" />
<ClInclude Include="..\..\UI\NSIS\StdAfx.h" />
<ClInclude Include="..\..\UI\NSIS\UserInputUtils2.h" />
<ClInclude Include="api.h" />
<ClInclude Include="nsis_tchar.h" />
<ClInclude Include="pluginapi.h" />
<ClInclude Include="resource.h" />
<ClInclude Include="StdAfx.h" />
<ClInclude Include="..\..\..\Common\AutoPtr.h" />
<ClInclude Include="..\..\..\Common\CommandLineParser.h" />
<ClInclude Include="..\..\..\Common\ComTry.h" />
<ClInclude Include="..\..\..\Common\Defs.h" />
<ClInclude Include="..\..\..\Common\DynamicBuffer.h" />
<ClInclude Include="..\..\..\Common\IntToString.h" />
<ClInclude Include="..\..\..\Common\ListFileUtils.h" />
<ClInclude Include="..\..\..\Common\MyCom.h" />
<ClInclude Include="..\..\..\Common\MyException.h" />
<ClInclude Include="..\..\..\Common\MyGuidDef.h" />
<ClInclude Include="..\..\..\Common\MyInitGuid.h" />
<ClInclude Include="..\..\..\Common\MyString.h" />
<ClInclude Include="..\..\..\Common\MyUnknown.h" />
<ClInclude Include="..\..\..\Common\MyVector.h" />
<ClInclude Include="..\..\..\Common\NewHandler.h" />
<ClInclude Include="..\..\..\Common\StdInStream.h" />
<ClInclude Include="..\..\..\Common\StdOutStream.h" />
<ClInclude Include="..\..\..\Common\StringConvert.h" />
<ClInclude Include="..\..\..\Common\StringToInt.h" />
<ClInclude Include="..\..\..\Common\UTFConvert.h" />
<ClInclude Include="..\..\..\Common\Wildcard.h" />
<ClInclude Include="..\..\..\Windows\Defs.h" />
<ClInclude Include="..\..\..\Windows\DLL.h" />
<ClInclude Include="..\..\..\Windows\FileDir.h" />
<ClInclude Include="..\..\..\Windows\FileFind.h" />
<ClInclude Include="..\..\..\Windows\FileIO.h" />
<ClInclude Include="..\..\..\Windows\FileMapping.h" />
<ClInclude Include="..\..\..\Windows\FileName.h" />
<ClInclude Include="..\..\..\Windows\Handle.h" />
<ClInclude Include="..\..\..\Windows\MemoryLock.h" />
<ClInclude Include="..\..\..\Windows\PropVariant.h" />
<ClInclude Include="..\..\..\Windows\Synchronization.h" />
<ClInclude Include="..\..\..\Windows\System.h" />
<ClInclude Include="..\..\..\Windows\Thread.h" />
<ClInclude Include="..\..\UI\Common\ArchiveCommandLine.h" />
<ClInclude Include="..\..\UI\Common\ArchiveExtractCallback.h" />
<ClInclude Include="..\..\UI\Common\ArchiveOpenCallback.h" />
<ClInclude Include="..\..\UI\Common\Bench.h" />
<ClInclude Include="..\..\UI\Common\DefaultName.h" />
<ClInclude Include="..\..\UI\Common\EnumDirItems.h" />
<ClInclude Include="..\..\UI\Common\Extract.h" />
<ClInclude Include="..\..\UI\Common\ExtractingFilePath.h" />
<ClInclude Include="..\..\UI\Common\LoadCodecs.h" />
<ClInclude Include="..\..\UI\Common\OpenArchive.h" />
<ClInclude Include="..\..\UI\Common\Property.h" />
<ClInclude Include="..\..\UI\Common\PropIDUtils.h" />
<ClInclude Include="..\..\UI\Common\SetProperties.h" />
<ClInclude Include="..\..\UI\Common\SortUtils.h" />
<ClInclude Include="..\..\UI\Common\TempFiles.h" />
<ClInclude Include="..\..\UI\Common\Update.h" />
<ClInclude Include="..\..\UI\Common\UpdateAction.h" />
<ClInclude Include="..\..\UI\Common\UpdateCallback.h" />
<ClInclude Include="..\..\UI\Common\UpdatePair.h" />
<ClInclude Include="..\..\UI\Common\UpdateProduce.h" />
<ClInclude Include="..\..\ICoder.h" />
<ClInclude Include="..\..\IMyUnknown.h" />
<ClInclude Include="..\..\IPassword.h" />
<ClInclude Include="..\..\IProgress.h" />
<ClInclude Include="..\..\IStream.h" />
<ClInclude Include="..\..\PropID.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\..\..\C\7zAlloc.c" />
<ClCompile Include="..\..\..\..\C\7zArcIn.c" />
<ClCompile Include="..\..\..\..\C\7zBuf.c" />
<ClCompile Include="..\..\..\..\C\7zBuf2.c" />
<ClCompile Include="..\..\..\..\C\7zCrc.c" />
<ClCompile Include="..\..\..\..\C\7zCrcOpt.c" />
<ClCompile Include="..\..\..\..\C\7zDec.c" />
<ClCompile Include="..\..\..\..\C\7zFile.c" />
<ClCompile Include="..\..\..\..\C\7zStream.c" />
<ClCompile Include="..\..\..\..\C\Aes.c" />
<ClCompile Include="..\..\..\..\C\AesOpt.c" />
<ClCompile Include="..\..\..\..\C\Alloc.c" />
<ClCompile Include="..\..\..\..\C\Bcj2.c" />
<ClCompile Include="..\..\..\..\C\Bcj2Enc.c" />
<ClCompile Include="..\..\..\..\C\Bra.c" />
<ClCompile Include="..\..\..\..\C\Bra86.c" />
<ClCompile Include="..\..\..\..\C\BraIA64.c" />
<ClCompile Include="..\..\..\..\C\CpuArch.c" />
<ClCompile Include="..\..\..\..\C\Delta.c" />
<ClCompile Include="..\..\..\..\C\LzFind.c" />
<ClCompile Include="..\..\..\..\C\LzFindMt.c" />
<ClCompile Include="..\..\..\..\C\LzFindOpt.c" />
<ClCompile Include="..\..\..\..\C\Lzma2Dec.c" />
<ClCompile Include="..\..\..\..\C\Lzma2DecMt.c" />
<ClCompile Include="..\..\..\..\C\Lzma2Enc.c" />
<ClCompile Include="..\..\..\..\C\Lzma86Dec.c" />
<ClCompile Include="..\..\..\..\C\Lzma86Enc.c" />
<ClCompile Include="..\..\..\..\C\LzmaDec.c" />
<ClCompile Include="..\..\..\..\C\LzmaEnc.c" />
<ClCompile Include="..\..\..\..\C\LzmaLib.c" />
<ClCompile Include="..\..\..\..\C\MtCoder.c" />
<ClCompile Include="..\..\..\..\C\MtDec.c" />
<ClCompile Include="..\..\..\..\C\Ppmd7.c" />
<ClCompile Include="..\..\..\..\C\Ppmd7Dec.c" />
<ClCompile Include="..\..\..\..\C\Ppmd7Enc.c" />
<ClCompile Include="..\..\..\..\C\Ppmd8.c" />
<ClCompile Include="..\..\..\..\C\Ppmd8Dec.c" />
<ClCompile Include="..\..\..\..\C\Ppmd8Enc.c" />
<ClCompile Include="..\..\..\..\C\Sha256.c" />
<ClCompile Include="..\..\..\..\C\Sha256Opt.c" />
<ClCompile Include="..\..\..\..\C\Sha1.c" />
<ClCompile Include="..\..\..\..\C\Sha1Opt.c" />
<ClCompile Include="..\..\..\..\C\Sort.c" />
<ClCompile Include="..\..\..\..\C\SwapBytes.c" />
<ClCompile Include="..\..\..\..\C\Threads.c" />
<ClCompile Include="..\..\..\..\C\Xz.c" />
<ClCompile Include="..\..\..\..\C\XzCrc64.c" />
<ClCompile Include="..\..\..\..\C\XzCrc64Opt.c" />
<ClCompile Include="..\..\..\..\C\XzDec.c" />
<ClCompile Include="..\..\..\..\C\XzEnc.c" />
<ClCompile Include="..\..\..\..\C\XzIn.c" />
<ClCompile Include="..\..\..\..\C\ZstdDec.c" />
<ClCompile Include="..\..\..\..\C\Xxh64.c" />
<ClCompile Include="..\..\..\..\C\HuffEnc.c" />
<ClCompile Include="..\..\..\Windows\CommonDialog.cpp" />
<ClCompile Include="..\..\..\Windows\ErrorMsg.cpp" />
<ClCompile Include="..\..\..\Windows\FileLink.cpp" />
<ClCompile Include="..\..\..\Windows\FileMapping.cpp" />
<ClCompile Include="..\..\..\Windows\FileSystem.cpp" />
<ClCompile Include="..\..\..\Windows\PropVariantConv.cpp" />
<ClCompile Include="..\..\..\Windows\PropVariantUtils.cpp" />
<ClCompile Include="..\..\..\Windows\Registry.cpp" />
<ClCompile Include="..\..\..\Windows\ResourceString.cpp" />
<ClCompile Include="..\..\..\Windows\SecurityUtils.cpp" />
<ClCompile Include="..\..\..\Windows\Shell.cpp" />
<ClCompile Include="..\..\..\Windows\TimeUtils.cpp" />
<ClCompile Include="..\..\..\Windows\Window.cpp" />
<ClCompile Include="..\..\Archive\7z\7zCompressionMode.cpp" />
<ClCompile Include="..\..\Archive\7z\7zDecode.cpp" />
<ClCompile Include="..\..\Archive\7z\7zEncode.cpp" />
<ClCompile Include="..\..\Archive\7z\7zExtract.cpp" />
<ClCompile Include="..\..\Archive\7z\7zFolderInStream.cpp" />
<ClCompile Include="..\..\Archive\7z\7zHandler.cpp" />
<ClCompile Include="..\..\Archive\7z\7zHandlerOut.cpp" />
<ClCompile Include="..\..\Archive\7z\7zHeader.cpp" />
<ClCompile Include="..\..\Archive\7z\7zIn.cpp" />
<ClCompile Include="..\..\Archive\7z\7zOut.cpp" />
<ClCompile Include="..\..\Archive\7z\7zProperties.cpp" />
<ClCompile Include="..\..\Archive\7z\7zRegister.cpp" />
<ClCompile Include="..\..\Archive\7z\7zSpecStream.cpp" />
<ClCompile Include="..\..\Archive\7z\7zUpdate.cpp" />
<ClCompile Include="..\..\Archive\7z\StdAfx.cpp" />
<ClCompile Include="..\..\Archive\Common\CoderMixer2.cpp" />
<ClCompile Include="..\..\Archive\Common\DummyOutStream.cpp" />
<ClCompile Include="..\..\Archive\Common\HandlerOut.cpp" />
<ClCompile Include="..\..\Archive\Common\InStreamWithCRC.cpp" />
<ClCompile Include="..\..\Archive\Common\ItemNameUtils.cpp" />
<ClCompile Include="..\..\Archive\Common\MultiStream.cpp" />
<ClCompile Include="..\..\Archive\Common\OutStreamWithCRC.cpp" />
<ClCompile Include="..\..\Archive\Common\ParseProperties.cpp" />
<ClCompile Include="..\..\Common\CreateCoder.cpp" />
<ClCompile Include="..\..\Common\CWrappers.cpp" />
<ClCompile Include="..\..\Common\FilePathAutoRename.cpp" />
<ClCompile Include="..\..\Common\FileStreams.cpp" />
<ClCompile Include="..\..\Common\FilterCoder.cpp" />
<ClCompile Include="..\..\Common\InBuffer.cpp" />
<ClCompile Include="..\..\Common\InOutTempBuffer.cpp" />
<ClCompile Include="..\..\Common\LimitedStreams.cpp" />
<ClCompile Include="..\..\Common\LockedStream.cpp" />
<ClCompile Include="..\..\Common\MethodId.cpp" />
<ClCompile Include="..\..\Common\MethodProps.cpp" />
<ClCompile Include="..\..\Common\MultiOutStream.cpp" />
<ClCompile Include="..\..\Common\OffsetStream.cpp" />
<ClCompile Include="..\..\Common\OutBuffer.cpp" />
<ClCompile Include="..\..\Common\ProgressUtils.cpp" />
<ClCompile Include="..\..\Common\PropId.cpp" />
<ClCompile Include="..\..\Common\StreamBinder.cpp" />
<ClCompile Include="..\..\Common\StreamObjects.cpp" />
<ClCompile Include="..\..\Common\StreamUtils.cpp" />
<ClCompile Include="..\..\Common\UniqBlocks.cpp" />
<ClCompile Include="..\..\Common\VirtThread.cpp" />
<ClCompile Include="..\..\Common\MemBlocks.cpp" />
<ClCompile Include="..\..\Common\ProgressMt.cpp" />
<ClCompile Include="..\..\Common\OutMemStream.cpp" />
<ClCompile Include="..\..\Compress\Bcj2Coder.cpp" />
<ClCompile Include="..\..\Compress\Bcj2Register.cpp" />
<ClCompile Include="..\..\Compress\BcjCoder.cpp" />
<ClCompile Include="..\..\Compress\BcjRegister.cpp" />
<ClCompile Include="..\..\Compress\BranchMisc.cpp" />
<ClCompile Include="..\..\Compress\BranchRegister.cpp" />
<ClCompile Include="..\..\Compress\ByteSwap.cpp" />
<ClCompile Include="..\..\Compress\CopyCoder.cpp" />
<ClCompile Include="..\..\Compress\CopyRegister.cpp" />
<ClCompile Include="..\..\Compress\DeflateDecoder.cpp" />
<ClCompile Include="..\..\Compress\DeflateEncoder.cpp" />
<ClCompile Include="..\..\Compress\Deflate64Register.cpp" />
<ClCompile Include="..\..\Compress\DeflateRegister.cpp" />
<ClCompile Include="..\..\Compress\DeltaFilter.cpp" />
<ClCompile Include="..\..\Compress\BitlDecoder.cpp" />
<ClCompile Include="..\..\Compress\ImplodeDecoder.cpp" />
<ClCompile Include="..\..\Compress\ImplodeHuffmanDecoder.cpp" />
<ClCompile Include="..\..\Compress\LzfseDecoder.cpp" />
<ClCompile Include="..\..\Compress\LzOutWindow.cpp" />
<ClCompile Include="..\..\Compress\Lzma2Decoder.cpp" />
<ClCompile Include="..\..\Compress\Lzma2Encoder.cpp" />
<ClCompile Include="..\..\Compress\Lzma2Register.cpp" />
<ClCompile Include="..\..\Compress\LzmaDecoder.cpp" />
<ClCompile Include="..\..\Compress\LzmaEncoder.cpp" />
<ClCompile Include="..\..\Compress\LzmaRegister.cpp" />
<ClCompile Include="..\..\Compress\XzDecoder.cpp" />
<ClCompile Include="..\..\Compress\XzEncoder.cpp" />
<ClCompile Include="..\..\Compress\PpmdDecoder.cpp" />
<ClCompile Include="..\..\Compress\PpmdZip.cpp" />
<ClCompile Include="..\..\Compress\ShrinkDecoder.cpp" />
<ClCompile Include="..\..\Compress\BZip2Crc.cpp" />
<ClCompile Include="..\..\Compress\BZip2Decoder.cpp" />
<ClCompile Include="..\..\Compress\ZstdDecoder.cpp" />
<ClCompile Include="..\..\UI\Common\ArchiveName.cpp" />
<ClCompile Include="..\..\UI\Common\HashCalc.cpp" />
<ClCompile Include="..\..\UI\Console\ConsoleClose.cpp" />
<ClCompile Include="..\..\UI\Console\OpenCallbackConsole.cpp" />
<ClCompile Include="..\..\UI\Console\PercentPrinter.cpp" />
<ClCompile Include="..\..\UI\Console\UserInputUtils.cpp" />
<ClCompile Include="..\..\UI\NSIS\ExtractCallbackConsole.cpp" />
<ClCompile Include="..\..\UI\NSIS\Main.cpp" />
<ClCompile Include="..\..\UI\NSIS\MainAr.cpp" />
<ClCompile Include="..\..\UI\NSIS\NSISBreak.cpp" />
<ClCompile Include="..\..\UI\NSIS\UserInputUtils2.cpp" />
<ClCompile Include="nsis7z.cpp" />
<ClCompile Include="pluginapi.cpp" />
<ClCompile Include="StdAfx2.cpp">
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader>
<PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">StdAfx.h</PrecompiledHeaderFile>
<PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Release|x64'">StdAfx.h</PrecompiledHeaderFile>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug Unicode|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug Unicode|x64'">Create</PrecompiledHeader>
<PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Debug Unicode|Win32'">
StdAfx.h</PrecompiledHeaderFile>
<PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Debug Unicode|x64'">
StdAfx.h</PrecompiledHeaderFile>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release Unicode|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release Unicode|x64'">Create</PrecompiledHeader>
<PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Release Unicode|Win32'">
StdAfx.h</PrecompiledHeaderFile>
<PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Release Unicode|x64'">
StdAfx.h</PrecompiledHeaderFile>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Create</PrecompiledHeader>
<PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">StdAfx.h</PrecompiledHeaderFile>
<PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">StdAfx.h</PrecompiledHeaderFile>
</ClCompile>
<ClCompile Include="..\..\..\Common\CommandLineParser.cpp" />
<ClCompile Include="..\..\..\Common\CRC.cpp" />
<ClCompile Include="..\..\..\Common\DynLimBuf.cpp" />
<ClCompile Include="..\..\..\Common\IntToString.cpp" />
<ClCompile Include="..\..\..\Common\ListFileUtils.cpp" />
<ClCompile Include="..\..\..\Common\MyString.cpp" />
<ClCompile Include="..\..\..\Common\MyVector.cpp" />
<ClCompile Include="..\..\..\Common\NewHandler.cpp" />
<ClCompile Include="..\..\..\Common\StdInStream.cpp" />
<ClCompile Include="..\..\..\Common\StdOutStream.cpp" />
<ClCompile Include="..\..\..\Common\StringConvert.cpp" />
<ClCompile Include="..\..\..\Common\StringToInt.cpp" />
<ClCompile Include="..\..\..\Common\UTFConvert.cpp" />
<ClCompile Include="..\..\..\Common\Wildcard.cpp" />
<ClCompile Include="..\..\Crypto\HmacSha1.cpp" />
<ClCompile Include="..\..\Crypto\HmacSha256.cpp" />
<ClCompile Include="..\..\Crypto\MyAes.cpp" />
<ClCompile Include="..\..\Crypto\Pbkdf2HmacSha1.cpp" />
<ClCompile Include="..\..\Crypto\RandGen.cpp" />
<ClCompile Include="..\..\Crypto\WzAes.cpp" />
<ClCompile Include="..\..\Crypto\ZipCrypto.cpp" />
<ClCompile Include="..\..\Crypto\ZipStrong.cpp" />
<ClCompile Include="..\..\..\Windows\DLL.cpp" />
<ClCompile Include="..\..\..\Windows\FileDir.cpp" />
<ClCompile Include="..\..\..\Windows\FileFind.cpp" />
<ClCompile Include="..\..\..\Windows\FileIO.cpp" />
<ClCompile Include="..\..\..\Windows\FileName.cpp" />
<ClCompile Include="..\..\..\Windows\MemoryLock.cpp" />
<ClCompile Include="..\..\..\Windows\PropVariant.cpp" />
<ClCompile Include="..\..\..\Windows\Synchronization.cpp" />
<ClCompile Include="..\..\..\Windows\System.cpp" />
<ClCompile Include="..\..\..\Windows\SystemInfo.cpp" />
<ClCompile Include="..\..\Archive\LzmaHandler.cpp" />
<ClCompile Include="..\..\Archive\SplitHandler.cpp" />
<ClCompile Include="..\..\Archive\XzHandler.cpp" />
<ClCompile Include="..\..\Archive\Zip\ZipHandler.cpp" />
<ClCompile Include="..\..\Archive\Zip\ZipHandlerOut.cpp" />
<ClCompile Include="..\..\Archive\Zip\ZipIn.cpp" />
<ClCompile Include="..\..\Archive\Zip\ZipItem.cpp" />
<ClCompile Include="..\..\Archive\Zip\ZipOut.cpp" />
<ClCompile Include="..\..\Archive\Zip\ZipAddCommon.cpp" />
<ClCompile Include="..\..\Archive\Zip\ZipUpdate.cpp" />
<ClCompile Include="..\..\Archive\Zip\ZipRegister.cpp" />
<ClCompile Include="..\..\Archive\Nsis\NsisDecode.cpp" />
<ClCompile Include="..\..\Archive\Nsis\NsisHandler.cpp" />
<ClCompile Include="..\..\Archive\Nsis\NsisIn.cpp" />
<ClCompile Include="..\..\Archive\Nsis\NsisRegister.cpp" />
<ClCompile Include="..\..\UI\Common\ArchiveCommandLine.cpp" />
<ClCompile Include="..\..\UI\Common\ArchiveExtractCallback.cpp" />
<ClCompile Include="..\..\UI\Common\ArchiveOpenCallback.cpp" />
<ClCompile Include="..\..\UI\Common\Bench.cpp" />
<ClCompile Include="..\..\UI\Common\DefaultName.cpp" />
<ClCompile Include="..\..\UI\Common\EnumDirItems.cpp" />
<ClCompile Include="..\..\UI\Common\Extract.cpp" />
<ClCompile Include="..\..\UI\Common\ExtractingFilePath.cpp" />
<ClCompile Include="..\..\UI\Common\LoadCodecs.cpp" />
<ClCompile Include="..\..\UI\Common\OpenArchive.cpp" />
<ClCompile Include="..\..\UI\Common\PropIDUtils.cpp" />
<ClCompile Include="..\..\UI\Common\SetProperties.cpp" />
<ClCompile Include="..\..\UI\Common\SortUtils.cpp" />
<ClCompile Include="..\..\UI\Common\TempFiles.cpp" />
<ClCompile Include="..\..\UI\Common\Update.cpp" />
<ClCompile Include="..\..\UI\Common\UpdateAction.cpp" />
<ClCompile Include="..\..\UI\Common\UpdateCallback.cpp" />
<ClCompile Include="..\..\UI\Common\UpdatePair.cpp" />
<ClCompile Include="..\..\UI\Common\UpdateProduce.cpp" />
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="..\..\..\..\C\7zVersion.rc" />
<ResourceCompile Include="resource.rc" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,929 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="15.0"
xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug Unicode|Win32">
<Configuration>Debug Unicode</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug Unicode|x64">
<Configuration>Debug Unicode</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release Unicode|Win32">
<Configuration>Release Unicode</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release Unicode|x64">
<Configuration>Release Unicode</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<SccProjectName />
<SccLocalPath />
<ProjectGuid>{A284C1EF-6CA9-4984-A25F-83B22C85A5EC}</ProjectGuid>
<WindowsTargetPlatformVersion>10.0.26100.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<PlatformToolset>v145</PlatformToolset>
<UseOfMfc>false</UseOfMfc>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<PlatformToolset>v145</PlatformToolset>
<UseOfMfc>false</UseOfMfc>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Unicode|Win32'"
Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<PlatformToolset>v145</PlatformToolset>
<UseOfMfc>false</UseOfMfc>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Unicode|x64'"
Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<PlatformToolset>v145</PlatformToolset>
<UseOfMfc>false</UseOfMfc>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug Unicode|Win32'"
Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<PlatformToolset>v145</PlatformToolset>
<UseOfMfc>false</UseOfMfc>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug Unicode|x64'"
Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<PlatformToolset>v145</PlatformToolset>
<UseOfMfc>false</UseOfMfc>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<PlatformToolset>v145</PlatformToolset>
<UseOfMfc>false</UseOfMfc>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<PlatformToolset>v145</PlatformToolset>
<UseOfMfc>false</UseOfMfc>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props"
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')"
Label="LocalAppDataPlatform" />
<Import Project="$(VCTargetsPath)Microsoft.Cpp.UpgradeFromVC60.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props"
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')"
Label="LocalAppDataPlatform" />
<Import Project="$(VCTargetsPath)Microsoft.Cpp.UpgradeFromVC60.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release Unicode|Win32'"
Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props"
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')"
Label="LocalAppDataPlatform" />
<Import Project="$(VCTargetsPath)Microsoft.Cpp.UpgradeFromVC60.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release Unicode|x64'"
Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props"
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')"
Label="LocalAppDataPlatform" />
<Import Project="$(VCTargetsPath)Microsoft.Cpp.UpgradeFromVC60.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug Unicode|Win32'"
Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props"
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')"
Label="LocalAppDataPlatform" />
<Import Project="$(VCTargetsPath)Microsoft.Cpp.UpgradeFromVC60.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug Unicode|x64'"
Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props"
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')"
Label="LocalAppDataPlatform" />
<Import Project="$(VCTargetsPath)Microsoft.Cpp.UpgradeFromVC60.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props"
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')"
Label="LocalAppDataPlatform" />
<Import Project="$(VCTargetsPath)Microsoft.Cpp.UpgradeFromVC60.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props"
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')"
Label="LocalAppDataPlatform" />
<Import Project="$(VCTargetsPath)Microsoft.Cpp.UpgradeFromVC60.props" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<LinkIncremental>false</LinkIncremental>
<GenerateManifest>false</GenerateManifest>
<TargetName>nsis7z</TargetName>
<OutDir>$(Configuration)\</OutDir>
<IntDir>$(Configuration)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LinkIncremental>false</LinkIncremental>
<GenerateManifest>false</GenerateManifest>
<TargetName>nsis7z</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug Unicode|Win32'">
<LinkIncremental>true</LinkIncremental>
<GenerateManifest>false</GenerateManifest>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug Unicode|x64'">
<LinkIncremental>true</LinkIncremental>
<GenerateManifest>false</GenerateManifest>
<TargetName>nsis7z</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Unicode|Win32'">
<LinkIncremental>false</LinkIncremental>
<GenerateManifest>false</GenerateManifest>
<TargetName>nsis7z</TargetName>
<OutDir>$(Configuration)\</OutDir>
<IntDir>$(Configuration)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Unicode|x64'">
<LinkIncremental>false</LinkIncremental>
<GenerateManifest>false</GenerateManifest>
<TargetName>nsis7z</TargetName>
<OutDir>$(Platform)\$(Configuration)\</OutDir>
<IntDir>$(Platform)\$(Configuration)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<LinkIncremental>true</LinkIncremental>
<GenerateManifest>false</GenerateManifest>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<LinkIncremental>true</LinkIncremental>
<GenerateManifest>false</GenerateManifest>
<TargetName>nsis7z</TargetName>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<InlineFunctionExpansion>Default</InlineFunctionExpansion>
<StringPooling>true</StringPooling>
<FunctionLevelLinking>true</FunctionLevelLinking>
<Optimization>MinSpace</Optimization>
<WholeProgramOptimization>true</WholeProgramOptimization>
<RuntimeTypeInfo>false</RuntimeTypeInfo>
<SuppressStartupBanner>true</SuppressStartupBanner>
<WarningLevel>Level3</WarningLevel>
<AdditionalIncludeDirectories>..\..\..\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>NDEBUG;WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AssemblerOutput>AssemblyAndMachineCode</AssemblerOutput>
<CallingConvention>FastCall</CallingConvention>
<DebugInformationFormat>None</DebugInformationFormat>
<DisableSpecificWarnings>4100</DisableSpecificWarnings>
</ClCompile>
<Midl>
<TypeLibraryName>.\Release\Alone.tlb</TypeLibraryName>
</Midl>
<ResourceCompile>
<Culture>0x0419</Culture>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ResourceCompile>
<Bscmake>
<SuppressStartupBanner>true</SuppressStartupBanner>
<OutputFile>.\Release\Alone.bsc</OutputFile>
</Bscmake>
<Link>
<SuppressStartupBanner>true</SuppressStartupBanner>
<EntryPointSymbol>
</EntryPointSymbol>
<GenerateDebugInformation>No</GenerateDebugInformation>
<LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<InlineFunctionExpansion>Default</InlineFunctionExpansion>
<StringPooling>true</StringPooling>
<FunctionLevelLinking>true</FunctionLevelLinking>
<Optimization>MinSpace</Optimization>
<WholeProgramOptimization>true</WholeProgramOptimization>
<RuntimeTypeInfo>false</RuntimeTypeInfo>
<SuppressStartupBanner>true</SuppressStartupBanner>
<WarningLevel>Level3</WarningLevel>
<AdditionalIncludeDirectories>..\..\..\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>NDEBUG;WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AssemblerOutput>AssemblyAndMachineCode</AssemblerOutput>
<CallingConvention>FastCall</CallingConvention>
</ClCompile>
<Midl>
<TypeLibraryName>.\Release\Alone.tlb</TypeLibraryName>
</Midl>
<ResourceCompile>
<Culture>0x0419</Culture>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ResourceCompile>
<Bscmake>
<SuppressStartupBanner>true</SuppressStartupBanner>
<OutputFile>.\Release\Alone.bsc</OutputFile>
</Bscmake>
<Link>
<SuppressStartupBanner>true</SuppressStartupBanner>
<EntryPointSymbol>
</EntryPointSymbol>
<LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug Unicode|Win32'">
<ClCompile>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<InlineFunctionExpansion>Default</InlineFunctionExpansion>
<FunctionLevelLinking>false</FunctionLevelLinking>
<Optimization>Disabled</Optimization>
<SuppressStartupBanner>true</SuppressStartupBanner>
<WarningLevel>Level4</WarningLevel>
<MinimalRebuild>true</MinimalRebuild>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
<AdditionalIncludeDirectories>..\..\..\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_DEBUG;UNICODE;WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<CallingConvention>FastCall</CallingConvention>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
</ClCompile>
<Midl>
<TypeLibraryName>.\DebugU\Alone.tlb</TypeLibraryName>
</Midl>
<ResourceCompile>
<Culture>0x0419</Culture>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ResourceCompile>
<Bscmake>
<SuppressStartupBanner>true</SuppressStartupBanner>
<OutputFile>.\DebugU\Alone.bsc</OutputFile>
</Bscmake>
<Link>
<SuppressStartupBanner>true</SuppressStartupBanner>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalDependencies>odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<EntryPointSymbol>
</EntryPointSymbol>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug Unicode|x64'">
<ClCompile>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<InlineFunctionExpansion>Default</InlineFunctionExpansion>
<FunctionLevelLinking>false</FunctionLevelLinking>
<Optimization>Disabled</Optimization>
<SuppressStartupBanner>true</SuppressStartupBanner>
<WarningLevel>Level4</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<AdditionalIncludeDirectories>..\..\..\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_DEBUG;UNICODE;WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<CallingConvention>FastCall</CallingConvention>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
</ClCompile>
<Midl>
<TypeLibraryName>.\DebugU\Alone.tlb</TypeLibraryName>
</Midl>
<ResourceCompile>
<Culture>0x0419</Culture>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ResourceCompile>
<Bscmake>
<SuppressStartupBanner>true</SuppressStartupBanner>
<OutputFile>.\DebugU\Alone.bsc</OutputFile>
</Bscmake>
<Link>
<SuppressStartupBanner>true</SuppressStartupBanner>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalDependencies>odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<EntryPointSymbol>
</EntryPointSymbol>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release Unicode|Win32'">
<ClCompile>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<InlineFunctionExpansion>Default</InlineFunctionExpansion>
<StringPooling>true</StringPooling>
<FunctionLevelLinking>true</FunctionLevelLinking>
<Optimization>MinSpace</Optimization>
<WholeProgramOptimization>true</WholeProgramOptimization>
<RuntimeTypeInfo>false</RuntimeTypeInfo>
<SuppressStartupBanner>true</SuppressStartupBanner>
<WarningLevel>Level4</WarningLevel>
<AdditionalIncludeDirectories>..\..\..\ ;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>NDEBUG;UNICODE;WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<CallingConvention>FastCall</CallingConvention>
<DebugInformationFormat>None</DebugInformationFormat>
<DisableSpecificWarnings>4100</DisableSpecificWarnings>
</ClCompile>
<Midl>
<TypeLibraryName>.\ReleaseU\Alone.tlb</TypeLibraryName>
</Midl>
<ResourceCompile>
<Culture>0x0419</Culture>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ResourceCompile>
<Bscmake>
<SuppressStartupBanner>true</SuppressStartupBanner>
<OutputFile>.\ReleaseU\Alone.bsc</OutputFile>
</Bscmake>
<Link>
<SuppressStartupBanner>true</SuppressStartupBanner>
<EntryPointSymbol>
</EntryPointSymbol>
<GenerateDebugInformation>No</GenerateDebugInformation>
<LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release Unicode|x64'">
<ClCompile>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<InlineFunctionExpansion>Default</InlineFunctionExpansion>
<StringPooling>true</StringPooling>
<FunctionLevelLinking>true</FunctionLevelLinking>
<Optimization>MinSpace</Optimization>
<WholeProgramOptimization>true</WholeProgramOptimization>
<RuntimeTypeInfo>false</RuntimeTypeInfo>
<SuppressStartupBanner>true</SuppressStartupBanner>
<WarningLevel>Level4</WarningLevel>
<AdditionalIncludeDirectories>..\..\..\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>NDEBUG;UNICODE;WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<CallingConvention>FastCall</CallingConvention>
<DebugInformationFormat>None</DebugInformationFormat>
<DisableSpecificWarnings>4100</DisableSpecificWarnings>
</ClCompile>
<Midl>
<TypeLibraryName>.\ReleaseU\Alone.tlb</TypeLibraryName>
</Midl>
<ResourceCompile>
<Culture>0x0419</Culture>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ResourceCompile>
<Bscmake>
<SuppressStartupBanner>true</SuppressStartupBanner>
<OutputFile>.\ReleaseU\Alone.bsc</OutputFile>
</Bscmake>
<Link>
<SuppressStartupBanner>true</SuppressStartupBanner>
<EntryPointSymbol>
</EntryPointSymbol>
<GenerateDebugInformation>No</GenerateDebugInformation>
<LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<InlineFunctionExpansion>Default</InlineFunctionExpansion>
<Optimization>Disabled</Optimization>
<SuppressStartupBanner>true</SuppressStartupBanner>
<WarningLevel>Level3</WarningLevel>
<MinimalRebuild>true</MinimalRebuild>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
<AdditionalIncludeDirectories>..\..\..\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_DEBUG;WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<CallingConvention>FastCall</CallingConvention>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
</ClCompile>
<Midl>
<TypeLibraryName>.\Debug\Alone.tlb</TypeLibraryName>
</Midl>
<ResourceCompile>
<Culture>0x0419</Culture>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ResourceCompile>
<Bscmake>
<SuppressStartupBanner>true</SuppressStartupBanner>
<OutputFile>.\Debug\Alone.bsc</OutputFile>
</Bscmake>
<Link>
<SuppressStartupBanner>true</SuppressStartupBanner>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalDependencies>odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<EntryPointSymbol>
</EntryPointSymbol>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<InlineFunctionExpansion>Default</InlineFunctionExpansion>
<FunctionLevelLinking>false</FunctionLevelLinking>
<Optimization>Disabled</Optimization>
<SuppressStartupBanner>true</SuppressStartupBanner>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<AdditionalIncludeDirectories>..\..\..\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_DEBUG;WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<CallingConvention>FastCall</CallingConvention>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
</ClCompile>
<Midl>
<TypeLibraryName>.\Debug\Alone.tlb</TypeLibraryName>
</Midl>
<ResourceCompile>
<Culture>0x0419</Culture>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ResourceCompile>
<Bscmake>
<SuppressStartupBanner>true</SuppressStartupBanner>
<OutputFile>.\Debug\Alone.bsc</OutputFile>
</Bscmake>
<Link>
<SuppressStartupBanner>true</SuppressStartupBanner>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalDependencies>odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<EntryPointSymbol>
</EntryPointSymbol>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClInclude Include="..\..\..\..\C\7z.h" />
<ClInclude Include="..\..\..\..\C\7zAlloc.h" />
<ClInclude Include="..\..\..\..\C\7zBuf.h" />
<ClInclude Include="..\..\..\..\C\7zCrc.h" />
<ClInclude Include="..\..\..\..\C\7zFile.h" />
<ClInclude Include="..\..\..\..\C\7zTypes.h" />
<ClInclude Include="..\..\..\..\C\7zVersion.h" />
<ClInclude Include="..\..\..\..\C\Aes.h" />
<ClInclude Include="..\..\..\..\C\Alloc.h" />
<ClInclude Include="..\..\..\..\C\Bcj2.h" />
<ClInclude Include="..\..\..\..\C\Bra.h" />
<ClInclude Include="..\..\..\..\C\Compiler.h" />
<ClInclude Include="..\..\..\..\C\CpuArch.h" />
<ClInclude Include="..\..\..\..\C\Delta.h" />
<ClInclude Include="..\..\..\..\C\LzFind.h" />
<ClInclude Include="..\..\..\..\C\LzFindMt.h" />
<ClInclude Include="..\..\..\..\C\LzHash.h" />
<ClInclude Include="..\..\..\..\C\Lzma2Dec.h" />
<ClInclude Include="..\..\..\..\C\Lzma2DecMt.h" />
<ClInclude Include="..\..\..\..\C\Lzma2Enc.h" />
<ClInclude Include="..\..\..\..\C\Lzma86.h" />
<ClInclude Include="..\..\..\..\C\LzmaDec.h" />
<ClInclude Include="..\..\..\..\C\LzmaEnc.h" />
<ClInclude Include="..\..\..\..\C\LzmaLib.h" />
<ClInclude Include="..\..\..\..\C\MtCoder.h" />
<ClInclude Include="..\..\..\..\C\MtDec.h" />
<ClInclude Include="..\..\..\..\C\Ppmd.h" />
<ClInclude Include="..\..\..\..\C\Ppmd7.h" />
<ClInclude Include="..\..\..\..\C\Precomp.h" />
<ClInclude Include="..\..\..\..\C\RotateDefs.h" />
<ClInclude Include="..\..\..\..\C\Sha256.h" />
<ClInclude Include="..\..\..\..\C\Sort.h" />
<ClInclude Include="..\..\..\..\C\Threads.h" />
<ClInclude Include="..\..\..\..\C\Xz.h" />
<ClInclude Include="..\..\..\..\C\XzCrc64.h" />
<ClInclude Include="..\..\..\..\C\XzEnc.h" />
<ClInclude Include="..\..\..\Common\StdAfx.h" />
<ClInclude Include="..\..\..\Windows\COM.h" />
<ClInclude Include="..\..\..\Windows\CommonDialog.h" />
<ClInclude Include="..\..\..\Windows\ErrorMsg.h" />
<ClInclude Include="..\..\..\Windows\FileSystem.h" />
<ClInclude Include="..\..\..\Windows\NtCheck.h" />
<ClInclude Include="..\..\..\Windows\PropVariantConv.h" />
<ClInclude Include="..\..\..\Windows\Registry.h" />
<ClInclude Include="..\..\..\Windows\ResourceString.h" />
<ClInclude Include="..\..\..\Windows\SecurityUtils.h" />
<ClInclude Include="..\..\..\Windows\Shell.h" />
<ClInclude Include="..\..\..\Windows\StdAfx.h" />
<ClInclude Include="..\..\..\Windows\TimeUtils.h" />
<ClInclude Include="..\..\..\Windows\Window.h" />
<ClInclude Include="..\..\Archive\7z\7zCompressionMode.h" />
<ClInclude Include="..\..\Archive\7z\7zDecode.h" />
<ClInclude Include="..\..\Archive\7z\7zEncode.h" />
<ClInclude Include="..\..\Archive\7z\7zFolderInStream.h" />
<ClInclude Include="..\..\Archive\7z\7zHandler.h" />
<ClInclude Include="..\..\Archive\7z\7zHeader.h" />
<ClInclude Include="..\..\Archive\7z\7zIn.h" />
<ClInclude Include="..\..\Archive\7z\7zItem.h" />
<ClInclude Include="..\..\Archive\7z\7zOut.h" />
<ClInclude Include="..\..\Archive\7z\7zProperties.h" />
<ClInclude Include="..\..\Archive\7z\7zSpecStream.h" />
<ClInclude Include="..\..\Archive\7z\7zUpdate.h" />
<ClInclude Include="..\..\Archive\7z\StdAfx.h" />
<ClInclude Include="..\..\Archive\Common\CoderMixer2.h" />
<ClInclude Include="..\..\Archive\Common\DummyOutStream.h" />
<ClInclude Include="..\..\Archive\Common\HandlerOut.h" />
<ClInclude Include="..\..\Archive\Common\InStreamWithCRC.h" />
<ClInclude Include="..\..\Archive\Common\ItemNameUtils.h" />
<ClInclude Include="..\..\Archive\Common\MultiStream.h" />
<ClInclude Include="..\..\Archive\Common\OutStreamWithCRC.h" />
<ClInclude Include="..\..\Archive\Common\ParseProperties.h" />
<ClInclude Include="..\..\Archive\Common\StdAfx.h" />
<ClInclude Include="..\..\Common\CreateCoder.h" />
<ClInclude Include="..\..\Common\CWrappers.h" />
<ClInclude Include="..\..\Common\FilePathAutoRename.h" />
<ClInclude Include="..\..\Common\FileStreams.h" />
<ClInclude Include="..\..\Common\FilterCoder.h" />
<ClInclude Include="..\..\Common\InBuffer.h" />
<ClInclude Include="..\..\Common\InOutTempBuffer.h" />
<ClInclude Include="..\..\Common\LimitedStreams.h" />
<ClInclude Include="..\..\Common\LockedStream.h" />
<ClInclude Include="..\..\Common\MethodId.h" />
<ClInclude Include="..\..\Common\MethodProps.h" />
<ClInclude Include="..\..\Common\OffsetStream.h" />
<ClInclude Include="..\..\Common\OutBuffer.h" />
<ClInclude Include="..\..\Common\ProgressUtils.h" />
<ClInclude Include="..\..\Common\RegisterArc.h" />
<ClInclude Include="..\..\Common\RegisterCodec.h" />
<ClInclude Include="..\..\Common\StdAfx.h" />
<ClInclude Include="..\..\Common\StreamBinder.h" />
<ClInclude Include="..\..\Common\StreamObjects.h" />
<ClInclude Include="..\..\Common\StreamUtils.h" />
<ClInclude Include="..\..\Common\UniqBlocks.h" />
<ClInclude Include="..\..\Common\VirtThread.h" />
<ClInclude Include="..\..\Compress\Bcj2Coder.h" />
<ClInclude Include="..\..\Compress\BcjCoder.h" />
<ClInclude Include="..\..\Compress\BranchMisc.h" />
<ClInclude Include="..\..\Compress\CopyCoder.h" />
<ClInclude Include="..\..\Compress\Lzma2Decoder.h" />
<ClInclude Include="..\..\Compress\Lzma2Encoder.h" />
<ClInclude Include="..\..\Compress\LzmaDecoder.h" />
<ClInclude Include="..\..\Compress\LzmaEncoder.h" />
<ClInclude Include="..\..\Compress\XzDecoder.h" />
<ClInclude Include="..\..\Compress\XzEncoder.h" />
<ClInclude Include="..\..\UI\Common\ArchiveName.h" />
<ClInclude Include="..\..\UI\Common\DirItem.h" />
<ClInclude Include="..\..\UI\Common\ExitCode.h" />
<ClInclude Include="..\..\UI\Common\ExtractMode.h" />
<ClInclude Include="..\..\UI\Common\HashCalc.h" />
<ClInclude Include="..\..\UI\Common\IFileExtractCallback.h" />
<ClInclude Include="..\..\UI\Common\StdAfx.h" />
<ClInclude Include="..\..\UI\Common\ZipRegistry.h" />
<ClInclude Include="..\..\UI\Console\ConsoleClose.h" />
<ClInclude Include="..\..\UI\Console\OpenCallbackConsole.h" />
<ClInclude Include="..\..\UI\Console\PercentPrinter.h" />
<ClInclude Include="..\..\UI\Console\UserInputUtils.h" />
<ClInclude Include="..\..\UI\NSIS\ExtractCallbackConsole.h" />
<ClInclude Include="..\..\UI\NSIS\NSISBreak.h" />
<ClInclude Include="..\..\UI\NSIS\StdAfx.h" />
<ClInclude Include="..\..\UI\NSIS\UserInputUtils2.h" />
<ClInclude Include="api.h" />
<ClInclude Include="nsis_tchar.h" />
<ClInclude Include="pluginapi.h" />
<ClInclude Include="resource.h" />
<ClInclude Include="StdAfx.h" />
<ClInclude Include="..\..\..\Common\AutoPtr.h" />
<ClInclude Include="..\..\..\Common\CommandLineParser.h" />
<ClInclude Include="..\..\..\Common\ComTry.h" />
<ClInclude Include="..\..\..\Common\Defs.h" />
<ClInclude Include="..\..\..\Common\DynamicBuffer.h" />
<ClInclude Include="..\..\..\Common\IntToString.h" />
<ClInclude Include="..\..\..\Common\ListFileUtils.h" />
<ClInclude Include="..\..\..\Common\MyCom.h" />
<ClInclude Include="..\..\..\Common\MyException.h" />
<ClInclude Include="..\..\..\Common\MyGuidDef.h" />
<ClInclude Include="..\..\..\Common\MyInitGuid.h" />
<ClInclude Include="..\..\..\Common\MyString.h" />
<ClInclude Include="..\..\..\Common\MyUnknown.h" />
<ClInclude Include="..\..\..\Common\MyVector.h" />
<ClInclude Include="..\..\..\Common\NewHandler.h" />
<ClInclude Include="..\..\..\Common\StdInStream.h" />
<ClInclude Include="..\..\..\Common\StdOutStream.h" />
<ClInclude Include="..\..\..\Common\StringConvert.h" />
<ClInclude Include="..\..\..\Common\StringToInt.h" />
<ClInclude Include="..\..\..\Common\UTFConvert.h" />
<ClInclude Include="..\..\..\Common\Wildcard.h" />
<ClInclude Include="..\..\..\Windows\Defs.h" />
<ClInclude Include="..\..\..\Windows\DLL.h" />
<ClInclude Include="..\..\..\Windows\FileDir.h" />
<ClInclude Include="..\..\..\Windows\FileFind.h" />
<ClInclude Include="..\..\..\Windows\FileIO.h" />
<ClInclude Include="..\..\..\Windows\FileMapping.h" />
<ClInclude Include="..\..\..\Windows\FileName.h" />
<ClInclude Include="..\..\..\Windows\Handle.h" />
<ClInclude Include="..\..\..\Windows\MemoryLock.h" />
<ClInclude Include="..\..\..\Windows\PropVariant.h" />
<ClInclude Include="..\..\..\Windows\Synchronization.h" />
<ClInclude Include="..\..\..\Windows\System.h" />
<ClInclude Include="..\..\..\Windows\Thread.h" />
<ClInclude Include="..\..\UI\Common\ArchiveCommandLine.h" />
<ClInclude Include="..\..\UI\Common\ArchiveExtractCallback.h" />
<ClInclude Include="..\..\UI\Common\ArchiveOpenCallback.h" />
<ClInclude Include="..\..\UI\Common\Bench.h" />
<ClInclude Include="..\..\UI\Common\DefaultName.h" />
<ClInclude Include="..\..\UI\Common\EnumDirItems.h" />
<ClInclude Include="..\..\UI\Common\Extract.h" />
<ClInclude Include="..\..\UI\Common\ExtractingFilePath.h" />
<ClInclude Include="..\..\UI\Common\LoadCodecs.h" />
<ClInclude Include="..\..\UI\Common\OpenArchive.h" />
<ClInclude Include="..\..\UI\Common\Property.h" />
<ClInclude Include="..\..\UI\Common\PropIDUtils.h" />
<ClInclude Include="..\..\UI\Common\SetProperties.h" />
<ClInclude Include="..\..\UI\Common\SortUtils.h" />
<ClInclude Include="..\..\UI\Common\TempFiles.h" />
<ClInclude Include="..\..\UI\Common\Update.h" />
<ClInclude Include="..\..\UI\Common\UpdateAction.h" />
<ClInclude Include="..\..\UI\Common\UpdateCallback.h" />
<ClInclude Include="..\..\UI\Common\UpdatePair.h" />
<ClInclude Include="..\..\UI\Common\UpdateProduce.h" />
<ClInclude Include="..\..\ICoder.h" />
<ClInclude Include="..\..\IMyUnknown.h" />
<ClInclude Include="..\..\IPassword.h" />
<ClInclude Include="..\..\IProgress.h" />
<ClInclude Include="..\..\IStream.h" />
<ClInclude Include="..\..\PropID.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\..\..\C\7zAlloc.c" />
<ClCompile Include="..\..\..\..\C\7zArcIn.c" />
<ClCompile Include="..\..\..\..\C\7zBuf.c" />
<ClCompile Include="..\..\..\..\C\7zBuf2.c" />
<ClCompile Include="..\..\..\..\C\7zCrc.c" />
<ClCompile Include="..\..\..\..\C\7zCrcOpt.c" />
<ClCompile Include="..\..\..\..\C\7zDec.c" />
<ClCompile Include="..\..\..\..\C\7zFile.c" />
<ClCompile Include="..\..\..\..\C\7zStream.c" />
<ClCompile Include="..\..\..\..\C\Aes.c" />
<ClCompile Include="..\..\..\..\C\AesOpt.c" />
<ClCompile Include="..\..\..\..\C\Alloc.c" />
<ClCompile Include="..\..\..\..\C\Bcj2.c" />
<ClCompile Include="..\..\..\..\C\Bcj2Enc.c" />
<ClCompile Include="..\..\..\..\C\Bra.c" />
<ClCompile Include="..\..\..\..\C\Bra86.c" />
<ClCompile Include="..\..\..\..\C\BraIA64.c" />
<ClCompile Include="..\..\..\..\C\CpuArch.c" />
<ClCompile Include="..\..\..\..\C\Delta.c" />
<ClCompile Include="..\..\..\..\C\LzFind.c" />
<ClCompile Include="..\..\..\..\C\LzFindMt.c" />
<ClCompile Include="..\..\..\..\C\LzFindOpt.c" />
<ClCompile Include="..\..\..\..\C\Lzma2Dec.c" />
<ClCompile Include="..\..\..\..\C\Lzma2DecMt.c" />
<ClCompile Include="..\..\..\..\C\Lzma2Enc.c" />
<ClCompile Include="..\..\..\..\C\Lzma86Dec.c" />
<ClCompile Include="..\..\..\..\C\Lzma86Enc.c" />
<ClCompile Include="..\..\..\..\C\LzmaDec.c" />
<ClCompile Include="..\..\..\..\C\LzmaEnc.c" />
<ClCompile Include="..\..\..\..\C\LzmaLib.c" />
<ClCompile Include="..\..\..\..\C\MtCoder.c" />
<ClCompile Include="..\..\..\..\C\MtDec.c" />
<ClCompile Include="..\..\..\..\C\Ppmd7.c" />
<ClCompile Include="..\..\..\..\C\Ppmd7Dec.c" />
<ClCompile Include="..\..\..\..\C\Ppmd7Enc.c" />
<ClCompile Include="..\..\..\..\C\Ppmd8.c" />
<ClCompile Include="..\..\..\..\C\Ppmd8Dec.c" />
<ClCompile Include="..\..\..\..\C\Ppmd8Enc.c" />
<ClCompile Include="..\..\..\..\C\Sha256.c" />
<ClCompile Include="..\..\..\..\C\Sha256Opt.c" />
<ClCompile Include="..\..\..\..\C\Sha1.c" />
<ClCompile Include="..\..\..\..\C\Sha1Opt.c" />
<ClCompile Include="..\..\..\..\C\Sort.c" />
<ClCompile Include="..\..\..\..\C\SwapBytes.c" />
<ClCompile Include="..\..\..\..\C\Threads.c" />
<ClCompile Include="..\..\..\..\C\Xz.c" />
<ClCompile Include="..\..\..\..\C\XzCrc64.c" />
<ClCompile Include="..\..\..\..\C\XzCrc64Opt.c" />
<ClCompile Include="..\..\..\..\C\XzDec.c" />
<ClCompile Include="..\..\..\..\C\XzEnc.c" />
<ClCompile Include="..\..\..\..\C\XzIn.c" />
<ClCompile Include="..\..\..\..\C\ZstdDec.c" />
<ClCompile Include="..\..\..\..\C\Xxh64.c" />
<ClCompile Include="..\..\..\..\C\HuffEnc.c" />
<ClCompile Include="..\..\..\Windows\CommonDialog.cpp" />
<ClCompile Include="..\..\..\Windows\ErrorMsg.cpp" />
<ClCompile Include="..\..\..\Windows\FileLink.cpp" />
<ClCompile Include="..\..\..\Windows\FileMapping.cpp" />
<ClCompile Include="..\..\..\Windows\FileSystem.cpp" />
<ClCompile Include="..\..\..\Windows\PropVariantConv.cpp" />
<ClCompile Include="..\..\..\Windows\PropVariantUtils.cpp" />
<ClCompile Include="..\..\..\Windows\Registry.cpp" />
<ClCompile Include="..\..\..\Windows\ResourceString.cpp" />
<ClCompile Include="..\..\..\Windows\SecurityUtils.cpp" />
<ClCompile Include="..\..\..\Windows\Shell.cpp" />
<ClCompile Include="..\..\..\Windows\TimeUtils.cpp" />
<ClCompile Include="..\..\..\Windows\Window.cpp" />
<ClCompile Include="..\..\Archive\7z\7zCompressionMode.cpp" />
<ClCompile Include="..\..\Archive\7z\7zDecode.cpp" />
<ClCompile Include="..\..\Archive\7z\7zEncode.cpp" />
<ClCompile Include="..\..\Archive\7z\7zExtract.cpp" />
<ClCompile Include="..\..\Archive\7z\7zFolderInStream.cpp" />
<ClCompile Include="..\..\Archive\7z\7zHandler.cpp" />
<ClCompile Include="..\..\Archive\7z\7zHandlerOut.cpp" />
<ClCompile Include="..\..\Archive\7z\7zHeader.cpp" />
<ClCompile Include="..\..\Archive\7z\7zIn.cpp" />
<ClCompile Include="..\..\Archive\7z\7zOut.cpp" />
<ClCompile Include="..\..\Archive\7z\7zProperties.cpp" />
<ClCompile Include="..\..\Archive\7z\7zRegister.cpp" />
<ClCompile Include="..\..\Archive\7z\7zSpecStream.cpp" />
<ClCompile Include="..\..\Archive\7z\7zUpdate.cpp" />
<ClCompile Include="..\..\Archive\7z\StdAfx.cpp" />
<ClCompile Include="..\..\Archive\Common\CoderMixer2.cpp" />
<ClCompile Include="..\..\Archive\Common\DummyOutStream.cpp" />
<ClCompile Include="..\..\Archive\Common\HandlerOut.cpp" />
<ClCompile Include="..\..\Archive\Common\InStreamWithCRC.cpp" />
<ClCompile Include="..\..\Archive\Common\ItemNameUtils.cpp" />
<ClCompile Include="..\..\Archive\Common\MultiStream.cpp" />
<ClCompile Include="..\..\Archive\Common\OutStreamWithCRC.cpp" />
<ClCompile Include="..\..\Archive\Common\ParseProperties.cpp" />
<ClCompile Include="..\..\Common\CreateCoder.cpp" />
<ClCompile Include="..\..\Common\CWrappers.cpp" />
<ClCompile Include="..\..\Common\FilePathAutoRename.cpp" />
<ClCompile Include="..\..\Common\FileStreams.cpp" />
<ClCompile Include="..\..\Common\FilterCoder.cpp" />
<ClCompile Include="..\..\Common\InBuffer.cpp" />
<ClCompile Include="..\..\Common\InOutTempBuffer.cpp" />
<ClCompile Include="..\..\Common\LimitedStreams.cpp" />
<ClCompile Include="..\..\Common\LockedStream.cpp" />
<ClCompile Include="..\..\Common\MethodId.cpp" />
<ClCompile Include="..\..\Common\MethodProps.cpp" />
<ClCompile Include="..\..\Common\MultiOutStream.cpp" />
<ClCompile Include="..\..\Common\OffsetStream.cpp" />
<ClCompile Include="..\..\Common\OutBuffer.cpp" />
<ClCompile Include="..\..\Common\ProgressUtils.cpp" />
<ClCompile Include="..\..\Common\PropId.cpp" />
<ClCompile Include="..\..\Common\StreamBinder.cpp" />
<ClCompile Include="..\..\Common\StreamObjects.cpp" />
<ClCompile Include="..\..\Common\StreamUtils.cpp" />
<ClCompile Include="..\..\Common\UniqBlocks.cpp" />
<ClCompile Include="..\..\Common\VirtThread.cpp" />
<ClCompile Include="..\..\Common\MemBlocks.cpp" />
<ClCompile Include="..\..\Common\ProgressMt.cpp" />
<ClCompile Include="..\..\Common\OutMemStream.cpp" />
<ClCompile Include="..\..\Compress\Bcj2Coder.cpp" />
<ClCompile Include="..\..\Compress\Bcj2Register.cpp" />
<ClCompile Include="..\..\Compress\BcjCoder.cpp" />
<ClCompile Include="..\..\Compress\BcjRegister.cpp" />
<ClCompile Include="..\..\Compress\BranchMisc.cpp" />
<ClCompile Include="..\..\Compress\BranchRegister.cpp" />
<ClCompile Include="..\..\Compress\ByteSwap.cpp" />
<ClCompile Include="..\..\Compress\CopyCoder.cpp" />
<ClCompile Include="..\..\Compress\CopyRegister.cpp" />
<ClCompile Include="..\..\Compress\DeflateDecoder.cpp" />
<ClCompile Include="..\..\Compress\DeflateEncoder.cpp" />
<ClCompile Include="..\..\Compress\Deflate64Register.cpp" />
<ClCompile Include="..\..\Compress\DeflateRegister.cpp" />
<ClCompile Include="..\..\Compress\DeltaFilter.cpp" />
<ClCompile Include="..\..\Compress\BitlDecoder.cpp" />
<ClCompile Include="..\..\Compress\ImplodeDecoder.cpp" />
<ClCompile Include="..\..\Compress\ImplodeHuffmanDecoder.cpp" />
<ClCompile Include="..\..\Compress\LzfseDecoder.cpp" />
<ClCompile Include="..\..\Compress\LzOutWindow.cpp" />
<ClCompile Include="..\..\Compress\Lzma2Decoder.cpp" />
<ClCompile Include="..\..\Compress\Lzma2Encoder.cpp" />
<ClCompile Include="..\..\Compress\Lzma2Register.cpp" />
<ClCompile Include="..\..\Compress\LzmaDecoder.cpp" />
<ClCompile Include="..\..\Compress\LzmaEncoder.cpp" />
<ClCompile Include="..\..\Compress\LzmaRegister.cpp" />
<ClCompile Include="..\..\Compress\XzDecoder.cpp" />
<ClCompile Include="..\..\Compress\XzEncoder.cpp" />
<ClCompile Include="..\..\Compress\PpmdDecoder.cpp" />
<ClCompile Include="..\..\Compress\PpmdZip.cpp" />
<ClCompile Include="..\..\Compress\ShrinkDecoder.cpp" />
<ClCompile Include="..\..\Compress\BZip2Crc.cpp" />
<ClCompile Include="..\..\Compress\BZip2Decoder.cpp" />
<ClCompile Include="..\..\Compress\ZstdDecoder.cpp" />
<ClCompile Include="..\..\UI\Common\ArchiveName.cpp" />
<ClCompile Include="..\..\UI\Common\HashCalc.cpp" />
<ClCompile Include="..\..\UI\Console\ConsoleClose.cpp" />
<ClCompile Include="..\..\UI\Console\OpenCallbackConsole.cpp" />
<ClCompile Include="..\..\UI\Console\PercentPrinter.cpp" />
<ClCompile Include="..\..\UI\Console\UserInputUtils.cpp" />
<ClCompile Include="..\..\UI\NSIS\ExtractCallbackConsole.cpp" />
<ClCompile Include="..\..\UI\NSIS\Main.cpp" />
<ClCompile Include="..\..\UI\NSIS\MainAr.cpp" />
<ClCompile Include="..\..\UI\NSIS\NSISBreak.cpp" />
<ClCompile Include="..\..\UI\NSIS\UserInputUtils2.cpp" />
<ClCompile Include="nsis7z.cpp" />
<ClCompile Include="pluginapi.cpp" />
<ClCompile Include="StdAfx2.cpp">
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader>
<PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">StdAfx.h</PrecompiledHeaderFile>
<PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Release|x64'">StdAfx.h</PrecompiledHeaderFile>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug Unicode|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug Unicode|x64'">Create</PrecompiledHeader>
<PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Debug Unicode|Win32'">
StdAfx.h</PrecompiledHeaderFile>
<PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Debug Unicode|x64'">
StdAfx.h</PrecompiledHeaderFile>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release Unicode|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release Unicode|x64'">Create</PrecompiledHeader>
<PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Release Unicode|Win32'">
StdAfx.h</PrecompiledHeaderFile>
<PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Release Unicode|x64'">
StdAfx.h</PrecompiledHeaderFile>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Create</PrecompiledHeader>
<PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">StdAfx.h</PrecompiledHeaderFile>
<PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">StdAfx.h</PrecompiledHeaderFile>
</ClCompile>
<ClCompile Include="..\..\..\Common\CommandLineParser.cpp" />
<ClCompile Include="..\..\..\Common\CRC.cpp" />
<ClCompile Include="..\..\..\Common\DynLimBuf.cpp" />
<ClCompile Include="..\..\..\Common\IntToString.cpp" />
<ClCompile Include="..\..\..\Common\ListFileUtils.cpp" />
<ClCompile Include="..\..\..\Common\MyString.cpp" />
<ClCompile Include="..\..\..\Common\MyVector.cpp" />
<ClCompile Include="..\..\..\Common\NewHandler.cpp" />
<ClCompile Include="..\..\..\Common\StdInStream.cpp" />
<ClCompile Include="..\..\..\Common\StdOutStream.cpp" />
<ClCompile Include="..\..\..\Common\StringConvert.cpp" />
<ClCompile Include="..\..\..\Common\StringToInt.cpp" />
<ClCompile Include="..\..\..\Common\UTFConvert.cpp" />
<ClCompile Include="..\..\..\Common\Wildcard.cpp" />
<ClCompile Include="..\..\Crypto\HmacSha1.cpp" />
<ClCompile Include="..\..\Crypto\HmacSha256.cpp" />
<ClCompile Include="..\..\Crypto\MyAes.cpp" />
<ClCompile Include="..\..\Crypto\Pbkdf2HmacSha1.cpp" />
<ClCompile Include="..\..\Crypto\RandGen.cpp" />
<ClCompile Include="..\..\Crypto\WzAes.cpp" />
<ClCompile Include="..\..\Crypto\ZipCrypto.cpp" />
<ClCompile Include="..\..\Crypto\ZipStrong.cpp" />
<ClCompile Include="..\..\..\Windows\DLL.cpp" />
<ClCompile Include="..\..\..\Windows\FileDir.cpp" />
<ClCompile Include="..\..\..\Windows\FileFind.cpp" />
<ClCompile Include="..\..\..\Windows\FileIO.cpp" />
<ClCompile Include="..\..\..\Windows\FileName.cpp" />
<ClCompile Include="..\..\..\Windows\MemoryLock.cpp" />
<ClCompile Include="..\..\..\Windows\PropVariant.cpp" />
<ClCompile Include="..\..\..\Windows\Synchronization.cpp" />
<ClCompile Include="..\..\..\Windows\System.cpp" />
<ClCompile Include="..\..\..\Windows\SystemInfo.cpp" />
<ClCompile Include="..\..\Archive\LzmaHandler.cpp" />
<ClCompile Include="..\..\Archive\SplitHandler.cpp" />
<ClCompile Include="..\..\Archive\XzHandler.cpp" />
<ClCompile Include="..\..\Archive\Zip\ZipHandler.cpp" />
<ClCompile Include="..\..\Archive\Zip\ZipHandlerOut.cpp" />
<ClCompile Include="..\..\Archive\Zip\ZipIn.cpp" />
<ClCompile Include="..\..\Archive\Zip\ZipItem.cpp" />
<ClCompile Include="..\..\Archive\Zip\ZipOut.cpp" />
<ClCompile Include="..\..\Archive\Zip\ZipAddCommon.cpp" />
<ClCompile Include="..\..\Archive\Zip\ZipUpdate.cpp" />
<ClCompile Include="..\..\Archive\Zip\ZipRegister.cpp" />
<ClCompile Include="..\..\Archive\Nsis\NsisDecode.cpp" />
<ClCompile Include="..\..\Archive\Nsis\NsisHandler.cpp" />
<ClCompile Include="..\..\Archive\Nsis\NsisIn.cpp" />
<ClCompile Include="..\..\Archive\Nsis\NsisRegister.cpp" />
<ClCompile Include="..\..\UI\Common\ArchiveCommandLine.cpp" />
<ClCompile Include="..\..\UI\Common\ArchiveExtractCallback.cpp" />
<ClCompile Include="..\..\UI\Common\ArchiveOpenCallback.cpp" />
<ClCompile Include="..\..\UI\Common\Bench.cpp" />
<ClCompile Include="..\..\UI\Common\DefaultName.cpp" />
<ClCompile Include="..\..\UI\Common\EnumDirItems.cpp" />
<ClCompile Include="..\..\UI\Common\Extract.cpp" />
<ClCompile Include="..\..\UI\Common\ExtractingFilePath.cpp" />
<ClCompile Include="..\..\UI\Common\LoadCodecs.cpp" />
<ClCompile Include="..\..\UI\Common\OpenArchive.cpp" />
<ClCompile Include="..\..\UI\Common\PropIDUtils.cpp" />
<ClCompile Include="..\..\UI\Common\SetProperties.cpp" />
<ClCompile Include="..\..\UI\Common\SortUtils.cpp" />
<ClCompile Include="..\..\UI\Common\TempFiles.cpp" />
<ClCompile Include="..\..\UI\Common\Update.cpp" />
<ClCompile Include="..\..\UI\Common\UpdateAction.cpp" />
<ClCompile Include="..\..\UI\Common\UpdateCallback.cpp" />
<ClCompile Include="..\..\UI\Common\UpdatePair.cpp" />
<ClCompile Include="..\..\UI\Common\UpdateProduce.cpp" />
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="..\..\..\..\C\7zVersion.rc" />
<ResourceCompile Include="resource.rc" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>
@@ -0,0 +1,13 @@
// StdAfx.h
#ifndef __STDAFX_H
#define __STDAFX_H
#include "../../../Common/Common.h"
#include <windows.h>
#include <commctrl.h>
#include "../../../Common/MyWindows.h"
#include "../../../Common/NewHandler.h"
#include "pluginapi.h"
#endif
@@ -0,0 +1,3 @@
// StdAfx.cpp
#include "StdAfx.h"
@@ -0,0 +1 @@
#include <winresrc.h>
@@ -0,0 +1,83 @@
/*
* apih
*
* This file is a part of NSIS.
*
* Copyright (C) 1999-2013 Nullsoft and Contributors
*
* Licensed under the zlib/libpng license (the "License");
* you may not use this file except in compliance with the License.
*
* Licence details can be found in the file COPYING.
*
* This software is provided 'as-is', without any express or implied
* warranty.
*/
#ifndef _NSIS_EXEHEAD_API_H_
#define _NSIS_EXEHEAD_API_H_
// Starting with NSIS 2.42, you can check the version of the plugin API in exec_flags->plugin_api_version
// The format is 0xXXXXYYYY where X is the major version and Y is the minor version (MAKELONG(y,x))
// When doing version checks, always remember to use >=, ex: if (pX->exec_flags->plugin_api_version >= NSISPIAPIVER_1_0) {}
#define NSISPIAPIVER_1_0 0x00010000
#define NSISPIAPIVER_CURR NSISPIAPIVER_1_0
// NSIS Plug-In Callback Messages
enum NSPIM
{
NSPIM_UNLOAD, // This is the last message a plugin gets, do final cleanup
NSPIM_GUIUNLOAD, // Called after .onGUIEnd
};
// Prototype for callbacks registered with extra_parameters->RegisterPluginCallback()
// Return NULL for unknown messages
// Should always be __cdecl for future expansion possibilities
typedef UINT_PTR (*NSISPLUGINCALLBACK)(enum NSPIM);
// extra_parameters data structures containing other interesting stuff
// but the stack, variables and HWND passed on to plug-ins.
typedef struct
{
int autoclose;
int all_user_var;
int exec_error;
int abort;
int exec_reboot; // NSIS_SUPPORT_REBOOT
int reboot_called; // NSIS_SUPPORT_REBOOT
int XXX_cur_insttype; // depreacted
int plugin_api_version; // see NSISPIAPIVER_CURR
// used to be XXX_insttype_changed
int silent; // NSIS_CONFIG_SILENT_SUPPORT
int instdir_error;
int rtl;
int errlvl;
int alter_reg_view;
int status_update;
} exec_flags_t;
#ifndef NSISCALL
# define NSISCALL __stdcall
#endif
typedef struct {
exec_flags_t *exec_flags;
int (NSISCALL *ExecuteCodeSegment)(int, HWND);
void (NSISCALL *validate_filename)(TCHAR *);
int (NSISCALL *RegisterPluginCallback)(HMODULE, NSISPLUGINCALLBACK); // returns 0 on success, 1 if already registered and < 0 on errors
} extra_parameters;
// Definitions for page showing plug-ins
// See Ui.c to understand better how they're used
// sent to the outer window to tell it to go to the next inner window
#define WM_NOTIFY_OUTER_NEXT (WM_USER+0x8)
// custom pages should send this message to let NSIS know they're ready
#define WM_NOTIFY_CUSTOM_READY (WM_USER+0xd)
// sent as wParam with WM_NOTIFY_OUTER_NEXT when user cancels - heed its warning
#define NOTIFY_BYE_BYE 'x'
#endif /* _PLUGIN_H_ */
@@ -0,0 +1,190 @@
#include "StdAfx.h"
#include "../../UI/NSIS/ExtractCallbackConsole.h"
#include "Common/StringConvert.h"
#pragma warning(disable: 4100)
#define IDC_PROGRESS 1004
#define IDC_INTROTEXT 1006
#define EXTRACTFUNC(funcname) extern "C" { \
void __declspec(dllexport) __cdecl funcname(HWND hwndParent, int string_size, \
TCHAR *variables, stack_t **stacktop, \
extra_parameters *extra) \
{ \
EXDLL_INIT();\
g_lastVal = -1; \
g_hwndParent=hwndParent; \
HWND hwndDlg = FindWindowEx(g_hwndParent, NULL, TEXT("#32770"), NULL); \
g_hwndProgress = GetDlgItem(hwndDlg, IDC_PROGRESS); \
g_hwndText = GetDlgItem(hwndDlg, IDC_INTROTEXT); \
TCHAR sArchive[1024], *outDir = getuservariable(INST_OUTDIR); \
popstring(sArchive); \
g_pluginExtra = extra; \
#define EXTRACTFUNCEND } }
HINSTANCE g_hInstance2;
HWND g_hwndParent;
HWND g_hwndProgress;
HWND g_hwndText;
extra_parameters *g_pluginExtra;
void DoInitialize();
int DoExtract(LPTSTR archive, LPTSTR dir, bool overwrite, bool expath, ExtractProgressHandler epc, const UStringVector& skipPatterns);
int DoExtractWithFile(LPTSTR archive, LPTSTR dir, bool overwrite, bool expath, ExtractProgressWithFileHandler epc, const UStringVector& skipPatterns);
int g_progressCallback = -1;
int g_lastVal = -1;
TCHAR* g_sDetails;
static void PopSkipPatterns(UStringVector& skipPatterns)
{
TCHAR *buf = new TCHAR[g_stringsize];
while (popstring(buf) == 0 && lstrlen(buf) > 0)
{
#ifdef UNICODE
skipPatterns.Add(UString(buf));
#else
skipPatterns.Add(MultiByteToUnicodeString(AString(buf)));
#endif
}
delete[] buf;
}
int GetPercentComplete(UInt64 completedSize, UInt64 totalSize)
{
if (totalSize == 0) return 0;
const int nsisProgressMax = 30000;
int val = (int)((completedSize*nsisProgressMax)/totalSize);
if (val < 0) return 0;
if (val > nsisProgressMax) return nsisProgressMax;
return val;
}
void SimpleProgressHandler(UInt64 completedSize, UInt64 totalSize)
{
int val = GetPercentComplete(completedSize, totalSize);
if (g_lastVal != val)
SendMessage(g_hwndProgress, PBM_SETPOS, g_lastVal = val, 0);
}
void CallbackProgressHandler(UInt64 completedSize, UInt64 totalSize)
{
int val = 0;
if (totalSize > 0)
{
val = GetPercentComplete(completedSize, totalSize);
static TCHAR buf[32];
wsprintf(buf, TEXT("%lu"), totalSize);
pushstring(buf);
wsprintf(buf, TEXT("%lu"), completedSize);
pushstring(buf);
g_pluginExtra->ExecuteCodeSegment(g_progressCallback-1, 0);
}
if (g_lastVal != val)
SendMessage(g_hwndProgress, PBM_SETPOS, g_lastVal = val, 0);
}
void CallbackFileProgressHandler(UInt64 completedSize, UInt64 totalSize, const wchar_t *fileName)
{
int val = 0;
if (totalSize > 0)
val = GetPercentComplete(completedSize, totalSize);
// Notify NSIS only when a new file starts (filename changes)
if (fileName && fileName[0])
{
static TCHAR fileNameBuf[MAX_PATH];
static TCHAR prevFileNameBuf[MAX_PATH];
static TCHAR buf[32];
lstrcpyn(fileNameBuf, (const TCHAR*)fileName, MAX_PATH);
if (lstrcmp(fileNameBuf, prevFileNameBuf) != 0)
{
lstrcpy(prevFileNameBuf, fileNameBuf);
pushstring(fileNameBuf);
wsprintf(buf, TEXT("%lu"), (DWORD)totalSize);
pushstring(buf);
wsprintf(buf, TEXT("%lu"), (DWORD)completedSize);
pushstring(buf);
g_pluginExtra->ExecuteCodeSegment(g_progressCallback-1, 0);
}
}
if (g_lastVal != val)
SendMessage(g_hwndProgress, PBM_SETPOS, g_lastVal = val, 0);
}
void DetailsProgressHandler(UInt64 completedSize, UInt64 totalSize)
{
int val = 0;
if (totalSize > 0)
{
val = GetPercentComplete(completedSize, totalSize);
TCHAR* buf = new TCHAR[g_stringsize];
TCHAR* buf2 = new TCHAR[g_stringsize];
wsprintf(buf, TEXT("%d%% (%d / %d MB)"), (int)(val?val/300:0), (int)(completedSize?completedSize/(1024*1024):0), (int)(totalSize/(1024*1024)));
wsprintf(buf2, g_sDetails, buf);
SetWindowText(g_hwndText, buf2);
delete[] buf;
delete[] buf2;
}
if (g_lastVal != val)
SendMessage(g_hwndProgress, PBM_SETPOS, g_lastVal = val, 0);
}
EXTRACTFUNC(Extract)
{
UStringVector skipPatterns;
PopSkipPatterns(skipPatterns);
DoExtract(sArchive, outDir, true, true, (ExtractProgressHandler)SimpleProgressHandler, skipPatterns);
}
EXTRACTFUNCEND
EXTRACTFUNC(ExtractWithDetails)
{
g_sDetails = new TCHAR[string_size];
popstring(g_sDetails);
UStringVector skipPatterns;
PopSkipPatterns(skipPatterns);
DoExtract(sArchive, outDir, true, true, (ExtractProgressHandler)DetailsProgressHandler, skipPatterns);
delete[] g_sDetails;
}
EXTRACTFUNCEND
EXTRACTFUNC(ExtractWithCallback)
{
g_progressCallback = popint();
UStringVector skipPatterns;
PopSkipPatterns(skipPatterns);
DoExtract(sArchive, outDir, true, true, (ExtractProgressHandler)CallbackProgressHandler, skipPatterns);
}
EXTRACTFUNCEND
EXTRACTFUNC(ExtractWithFileCallback)
{
g_progressCallback = popint();
UStringVector skipPatterns;
PopSkipPatterns(skipPatterns);
DoExtractWithFile(sArchive, outDir, true, true, CallbackFileProgressHandler, skipPatterns);
}
EXTRACTFUNCEND
extern "C" BOOL WINAPI DllMain(HANDLE hInst, ULONG ul_reason_for_call, LPVOID lpReserved)
{
g_hInstance2=(HINSTANCE)hInst;
if (ul_reason_for_call == DLL_PROCESS_ATTACH)
{
DoInitialize();
}
return TRUE;
}
@@ -0,0 +1,229 @@
/*
* nsis_tchar.h
*
* This file is a part of NSIS.
*
* Copyright (C) 1999-2013 Nullsoft and Contributors
*
* This software is provided 'as-is', without any express or implied
* warranty.
*
* For Unicode support by Jim Park -- 08/30/2007
*/
// Jim Park: Only those we use are listed here.
#pragma once
#ifdef _UNICODE
#ifndef _T
#define __T(x) L ## x
#define _T(x) __T(x)
#define _TEXT(x) __T(x)
#endif
#ifndef _TCHAR_DEFINED
#define _TCHAR_DEFINED
#if !defined(_NATIVE_WCHAR_T_DEFINED) && !defined(_WCHAR_T_DEFINED)
typedef unsigned short TCHAR;
#else
typedef wchar_t TCHAR;
#endif
#endif
// program
#define _tenviron _wenviron
#define __targv __wargv
// printfs
#define _ftprintf fwprintf
#define _sntprintf _snwprintf
#if (defined(_MSC_VER) && (_MSC_VER<=1310)) || defined(__MINGW32__)
# define _stprintf swprintf
#else
# define _stprintf _swprintf
#endif
#define _tprintf wprintf
#define _vftprintf vfwprintf
#define _vsntprintf _vsnwprintf
#if defined(_MSC_VER) && (_MSC_VER<=1310)
# define _vstprintf vswprintf
#else
# define _vstprintf _vswprintf
#endif
// scanfs
#define _tscanf wscanf
#define _stscanf swscanf
// string manipulations
#define _tcscat wcscat
#define _tcschr wcschr
#define _tcsclen wcslen
#define _tcscpy wcscpy
#define _tcsdup _wcsdup
#define _tcslen wcslen
#define _tcsnccpy wcsncpy
#define _tcsncpy wcsncpy
#define _tcsrchr wcsrchr
#define _tcsstr wcsstr
#define _tcstok wcstok
// string comparisons
#define _tcscmp wcscmp
#define _tcsicmp _wcsicmp
#define _tcsncicmp _wcsnicmp
#define _tcsncmp wcsncmp
#define _tcsnicmp _wcsnicmp
// upper / lower
#define _tcslwr _wcslwr
#define _tcsupr _wcsupr
#define _totlower towlower
#define _totupper towupper
// conversions to numbers
#define _tcstoi64 _wcstoi64
#define _tcstol wcstol
#define _tcstoul wcstoul
#define _tstof _wtof
#define _tstoi _wtoi
#define _tstoi64 _wtoi64
#define _ttoi _wtoi
#define _ttoi64 _wtoi64
#define _ttol _wtol
// conversion from numbers to strings
#define _itot _itow
#define _ltot _ltow
#define _i64tot _i64tow
#define _ui64tot _ui64tow
// file manipulations
#define _tfopen _wfopen
#define _topen _wopen
#define _tremove _wremove
#define _tunlink _wunlink
// reading and writing to i/o
#define _fgettc fgetwc
#define _fgetts fgetws
#define _fputts fputws
#define _gettchar getwchar
// directory
#define _tchdir _wchdir
// environment
#define _tgetenv _wgetenv
#define _tsystem _wsystem
// time
#define _tcsftime wcsftime
#else // ANSI
#ifndef _T
#define _T(x) x
#define _TEXT(x) x
#endif
#ifndef _TCHAR_DEFINED
#define _TCHAR_DEFINED
typedef char TCHAR;
#endif
// program
#define _tenviron environ
#define __targv __argv
// printfs
#define _ftprintf fprintf
#define _sntprintf _snprintf
#define _stprintf sprintf
#define _tprintf printf
#define _vftprintf vfprintf
#define _vsntprintf _vsnprintf
#define _vstprintf vsprintf
// scanfs
#define _tscanf scanf
#define _stscanf sscanf
// string manipulations
#define _tcscat strcat
#define _tcschr strchr
#define _tcsclen strlen
#define _tcscnlen strnlen
#define _tcscpy strcpy
#define _tcsdup _strdup
#define _tcslen strlen
#define _tcsnccpy strncpy
#define _tcsrchr strrchr
#define _tcsstr strstr
#define _tcstok strtok
// string comparisons
#define _tcscmp strcmp
#define _tcsicmp _stricmp
#define _tcsncmp strncmp
#define _tcsncicmp _strnicmp
#define _tcsnicmp _strnicmp
// upper / lower
#define _tcslwr _strlwr
#define _tcsupr _strupr
#define _totupper toupper
#define _totlower tolower
// conversions to numbers
#define _tcstol strtol
#define _tcstoul strtoul
#define _tstof atof
#define _tstoi atoi
#define _tstoi64 _atoi64
#define _tstoi64 _atoi64
#define _ttoi atoi
#define _ttoi64 _atoi64
#define _ttol atol
// conversion from numbers to strings
#define _i64tot _i64toa
#define _itot _itoa
#define _ltot _ltoa
#define _ui64tot _ui64toa
// file manipulations
#define _tfopen fopen
#define _topen _open
#define _tremove remove
#define _tunlink _unlink
// reading and writing to i/o
#define _fgettc fgetc
#define _fgetts fgets
#define _fputts fputs
#define _gettchar getchar
// directory
#define _tchdir _chdir
// environment
#define _tgetenv getenv
#define _tsystem system
// time
#define _tcsftime strftime
#endif
// is functions (the same in Unicode / ANSI)
#define _istgraph isgraph
#define _istascii __isascii
#define __TFILE__ _T(__FILE__)
#define __TDATE__ _T(__DATE__)
#define __TTIME__ _T(__TIME__)
@@ -0,0 +1,292 @@
#include "StdAfx.h"
#ifdef _countof
#define COUNTOF _countof
#else
#define COUNTOF(a) (sizeof(a)/sizeof(a[0]))
#endif
unsigned int g_stringsize;
stack_t **g_stacktop;
TCHAR *g_variables;
// utility functions (not required but often useful)
int NSISCALL popstring(TCHAR *str)
{
stack_t *th;
if (!g_stacktop || !*g_stacktop) return 1;
th=(*g_stacktop);
if (str) lstrcpy(str,th->text);
*g_stacktop = th->next;
GlobalFree((HGLOBAL)th);
return 0;
}
int NSISCALL popstringn(TCHAR *str, int maxlen)
{
stack_t *th;
if (!g_stacktop || !*g_stacktop) return 1;
th=(*g_stacktop);
if (str) lstrcpyn(str,th->text,maxlen?maxlen:g_stringsize);
*g_stacktop = th->next;
GlobalFree((HGLOBAL)th);
return 0;
}
void NSISCALL pushstring(const TCHAR *str)
{
stack_t *th;
if (!g_stacktop) return;
th=(stack_t*)GlobalAlloc(GPTR,(sizeof(stack_t)+(g_stringsize)*sizeof(TCHAR)));
lstrcpyn(th->text,str,g_stringsize);
th->next=*g_stacktop;
*g_stacktop=th;
}
TCHAR* NSISCALL getuservariable(const int varnum)
{
if (varnum < 0 || varnum >= __INST_LAST) return NULL;
return g_variables+varnum*g_stringsize;
}
void NSISCALL setuservariable(const int varnum, const TCHAR *var)
{
if (var != NULL && varnum >= 0 && varnum < __INST_LAST)
lstrcpy(g_variables + varnum*g_stringsize, var);
}
#ifdef _UNICODE
int NSISCALL PopStringA(char* ansiStr)
{
wchar_t* wideStr = (wchar_t*) GlobalAlloc(GPTR, g_stringsize*sizeof(wchar_t));
int rval = popstring(wideStr);
WideCharToMultiByte(CP_ACP, 0, wideStr, -1, ansiStr, g_stringsize, NULL, NULL);
GlobalFree((HGLOBAL)wideStr);
return rval;
}
int NSISCALL PopStringNA(char* ansiStr, int maxlen)
{
int realLen = maxlen ? maxlen : g_stringsize;
wchar_t* wideStr = (wchar_t*) GlobalAlloc(GPTR, realLen*sizeof(wchar_t));
int rval = popstringn(wideStr, realLen);
WideCharToMultiByte(CP_ACP, 0, wideStr, -1, ansiStr, realLen, NULL, NULL);
GlobalFree((HGLOBAL)wideStr);
return rval;
}
void NSISCALL PushStringA(const char* ansiStr)
{
wchar_t* wideStr = (wchar_t*) GlobalAlloc(GPTR, g_stringsize*sizeof(wchar_t));
MultiByteToWideChar(CP_ACP, 0, ansiStr, -1, wideStr, g_stringsize);
pushstring(wideStr);
GlobalFree((HGLOBAL)wideStr);
return;
}
void NSISCALL GetUserVariableW(const int varnum, wchar_t* wideStr)
{
lstrcpyW(wideStr, getuservariable(varnum));
}
void NSISCALL GetUserVariableA(const int varnum, char* ansiStr)
{
wchar_t* wideStr = getuservariable(varnum);
WideCharToMultiByte(CP_ACP, 0, wideStr, -1, ansiStr, g_stringsize, NULL, NULL);
}
void NSISCALL SetUserVariableA(const int varnum, const char* ansiStr)
{
if (ansiStr != NULL && varnum >= 0 && varnum < __INST_LAST)
{
wchar_t* wideStr = g_variables + varnum * g_stringsize;
MultiByteToWideChar(CP_ACP, 0, ansiStr, -1, wideStr, g_stringsize);
}
}
#else
// ANSI defs
int NSISCALL PopStringW(wchar_t* wideStr)
{
char* ansiStr = (char*) GlobalAlloc(GPTR, g_stringsize);
int rval = popstring(ansiStr);
MultiByteToWideChar(CP_ACP, 0, ansiStr, -1, wideStr, g_stringsize);
GlobalFree((HGLOBAL)ansiStr);
return rval;
}
int NSISCALL PopStringNW(wchar_t* wideStr, int maxlen)
{
int realLen = maxlen ? maxlen : g_stringsize;
char* ansiStr = (char*) GlobalAlloc(GPTR, realLen);
int rval = popstringn(ansiStr, realLen);
MultiByteToWideChar(CP_ACP, 0, ansiStr, -1, wideStr, realLen);
GlobalFree((HGLOBAL)ansiStr);
return rval;
}
void NSISCALL PushStringW(wchar_t* wideStr)
{
char* ansiStr = (char*) GlobalAlloc(GPTR, g_stringsize);
WideCharToMultiByte(CP_ACP, 0, wideStr, -1, ansiStr, g_stringsize, NULL, NULL);
pushstring(ansiStr);
GlobalFree((HGLOBAL)ansiStr);
}
void NSISCALL GetUserVariableW(const int varnum, wchar_t* wideStr)
{
char* ansiStr = getuservariable(varnum);
MultiByteToWideChar(CP_ACP, 0, ansiStr, -1, wideStr, g_stringsize);
}
void NSISCALL GetUserVariableA(const int varnum, char* ansiStr)
{
lstrcpyA(ansiStr, getuservariable(varnum));
}
void NSISCALL SetUserVariableW(const int varnum, const wchar_t* wideStr)
{
if (wideStr != NULL && varnum >= 0 && varnum < __INST_LAST)
{
char* ansiStr = g_variables + varnum * g_stringsize;
WideCharToMultiByte(CP_ACP, 0, wideStr, -1, ansiStr, g_stringsize, NULL, NULL);
}
}
#endif
// playing with integers
INT_PTR NSISCALL nsishelper_str_to_ptr(const TCHAR *s)
{
INT_PTR v=0;
if (*s == _T('0') && (s[1] == _T('x') || s[1] == _T('X')))
{
s++;
for (;;)
{
int c=*(++s);
if (c >= _T('0') && c <= _T('9')) c-=_T('0');
else if (c >= _T('a') && c <= _T('f')) c-=_T('a')-10;
else if (c >= _T('A') && c <= _T('F')) c-=_T('A')-10;
else break;
v<<=4;
v+=c;
}
}
else if (*s == _T('0') && s[1] <= _T('7') && s[1] >= _T('0'))
{
for (;;)
{
int c=*(++s);
if (c >= _T('0') && c <= _T('7')) c-=_T('0');
else break;
v<<=3;
v+=c;
}
}
else
{
int sign=0;
if (*s == _T('-')) sign++; else s--;
for (;;)
{
int c=*(++s) - _T('0');
if (c < 0 || c > 9) break;
v*=10;
v+=c;
}
if (sign) v = -v;
}
return v;
}
unsigned int NSISCALL myatou(const TCHAR *s)
{
unsigned int v=0;
for (;;)
{
unsigned int c=*s++;
if (c >= _T('0') && c <= _T('9')) c-=_T('0');
else break;
v*=10;
v+=c;
}
return v;
}
int NSISCALL myatoi_or(const TCHAR *s)
{
int v=0;
if (*s == _T('0') && (s[1] == _T('x') || s[1] == _T('X')))
{
s++;
for (;;)
{
int c=*(++s);
if (c >= _T('0') && c <= _T('9')) c-=_T('0');
else if (c >= _T('a') && c <= _T('f')) c-=_T('a')-10;
else if (c >= _T('A') && c <= _T('F')) c-=_T('A')-10;
else break;
v<<=4;
v+=c;
}
}
else if (*s == _T('0') && s[1] <= _T('7') && s[1] >= _T('0'))
{
for (;;)
{
int c=*(++s);
if (c >= _T('0') && c <= _T('7')) c-=_T('0');
else break;
v<<=3;
v+=c;
}
}
else
{
int sign=0;
if (*s == _T('-')) sign++; else s--;
for (;;)
{
int c=*(++s) - _T('0');
if (c < 0 || c > 9) break;
v*=10;
v+=c;
}
if (sign) v = -v;
}
// Support for simple ORed expressions
if (*s == _T('|'))
{
v |= myatoi_or(s+1);
}
return v;
}
INT_PTR NSISCALL popintptr()
{
TCHAR buf[128];
if (popstringn(buf,COUNTOF(buf)))
return 0;
return nsishelper_str_to_ptr(buf);
}
int NSISCALL popint_or()
{
TCHAR buf[128];
if (popstringn(buf,COUNTOF(buf)))
return 0;
return myatoi_or(buf);
}
void NSISCALL pushintptr(INT_PTR value)
{
TCHAR buffer[30];
wsprintf(buffer, sizeof(void*) > 4 ? _T("%Id") : _T("%d"), value);
pushstring(buffer);
}
@@ -0,0 +1,115 @@
#ifndef ___NSIS_PLUGIN__H___
#define ___NSIS_PLUGIN__H___
#ifdef __cplusplus
extern "C" {
#endif
#include "api.h"
#ifdef _UNICODE
#ifndef _T
#define __T(x) L ## x
#define _T(x) __T(x)
#define _TEXT(x) __T(x)
#endif
#else
#ifndef _T
#define _T(x) x
#define _TEXT(x) x
#endif
#endif
#ifndef NSISCALL
# define NSISCALL __stdcall
#endif
#define EXDLL_INIT() { \
g_stringsize=string_size; \
g_stacktop=stacktop; \
g_variables=variables; }
typedef struct _stack_t {
struct _stack_t *next;
TCHAR text[1]; // this should be the length of string_size
} stack_t;
enum
{
INST_0, // $0
INST_1, // $1
INST_2, // $2
INST_3, // $3
INST_4, // $4
INST_5, // $5
INST_6, // $6
INST_7, // $7
INST_8, // $8
INST_9, // $9
INST_R0, // $R0
INST_R1, // $R1
INST_R2, // $R2
INST_R3, // $R3
INST_R4, // $R4
INST_R5, // $R5
INST_R6, // $R6
INST_R7, // $R7
INST_R8, // $R8
INST_R9, // $R9
INST_CMDLINE, // $CMDLINE
INST_INSTDIR, // $INSTDIR
INST_OUTDIR, // $OUTDIR
INST_EXEDIR, // $EXEDIR
INST_LANG, // $LANGUAGE
__INST_LAST
};
extern unsigned int g_stringsize;
extern stack_t **g_stacktop;
extern TCHAR *g_variables;
void NSISCALL pushstring(const TCHAR *str);
void NSISCALL pushintptr(INT_PTR value);
#define pushint(v) pushintptr((INT_PTR)(v))
int NSISCALL popstring(TCHAR *str); // 0 on success, 1 on empty stack
int NSISCALL popstringn(TCHAR *str, int maxlen); // with length limit, pass 0 for g_stringsize
INT_PTR NSISCALL popintptr();
#define popint() ( (int) popintptr() )
int NSISCALL popint_or(); // with support for or'ing (2|4|8)
INT_PTR NSISCALL nsishelper_str_to_ptr(const TCHAR *s);
#define myatoi(s) ( (int) nsishelper_str_to_ptr(s) ) // converts a string to an integer
unsigned int NSISCALL myatou(const TCHAR *s); // converts a string to an unsigned integer, decimal only
int NSISCALL myatoi_or(const TCHAR *s); // with support for or'ing (2|4|8)
TCHAR* NSISCALL getuservariable(const int varnum);
void NSISCALL setuservariable(const int varnum, const TCHAR *var);
#ifdef _UNICODE
#define PopStringW(x) popstring(x)
#define PushStringW(x) pushstring(x)
#define SetUserVariableW(x,y) setuservariable(x,y)
int NSISCALL PopStringA(char* ansiStr);
void NSISCALL PushStringA(const char* ansiStr);
void NSISCALL GetUserVariableW(const int varnum, wchar_t* wideStr);
void NSISCALL GetUserVariableA(const int varnum, char* ansiStr);
void NSISCALL SetUserVariableA(const int varnum, const char* ansiStr);
#else
// ANSI defs
#define PopStringA(x) popstring(x)
#define PushStringA(x) pushstring(x)
#define SetUserVariableA(x,y) setuservariable(x,y)
int NSISCALL PopStringW(wchar_t* wideStr);
void NSISCALL PushStringW(wchar_t* wideStr);
void NSISCALL GetUserVariableW(const int varnum, wchar_t* wideStr);
void NSISCALL GetUserVariableA(const int varnum, char* ansiStr);
void NSISCALL SetUserVariableW(const int varnum, const wchar_t* wideStr);
#endif
#ifdef __cplusplus
}
#endif
#endif//!___NSIS_PLUGIN__H___
@@ -0,0 +1,19 @@
//{{NO_DEPENDENCIES}}
// Microsoft Visual C++ generated include file.
// Used by resource.rc
//
#define MY_VER_BUILD 0
#define DBG_FL 0
#define MY_VER_MAJOR 9
#define MY_VER_MINOR 20
// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 101
#define _APS_NEXT_COMMAND_VALUE 40001
#define _APS_NEXT_CONTROL_VALUE 1000
#define _APS_NEXT_SYMED_VALUE 101
#endif
#endif
@@ -0,0 +1,99 @@
// Microsoft Visual C++ generated resource script.
//
#include "resource.h"
#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#include "afxres.h"
/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
// English (United States) resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//
1 TEXTINCLUDE
BEGIN
"resource.h\0"
END
2 TEXTINCLUDE
BEGIN
"#include ""afxres.h""\r\n"
"\0"
END
3 TEXTINCLUDE
BEGIN
"\r\n"
"\0"
END
#endif // APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Version
//
VS_VERSION_INFO VERSIONINFO
FILEVERSION 25,01,0,0
PRODUCTVERSION 25,01,0,0
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
#else
FILEFLAGS 0x0L
#endif
FILEOS 0x40004L
FILETYPE 0x2L
FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "040904b0"
BEGIN
VALUE "CompanyName", "Igor Pavlov"
VALUE "FileDescription", "7-Zip NSIS Plug-in"
VALUE "FileVersion", "25.01.0.0"
VALUE "InternalName", "nsis7z"
VALUE "LegalCopyright", "Copyright (c) 1999-2025 Igor Pavlov, Nik Medved, Marek Mizanin, Stuart Welch"
VALUE "OriginalFilename", "nsis7z.dll"
VALUE "ProductName", "7-Zip"
VALUE "ProductVersion", "25.01.0.0"
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x409, 1200
END
END
#endif // English (United States) resources
/////////////////////////////////////////////////////////////////////////////
#ifndef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 3 resource.
//
/////////////////////////////////////////////////////////////////////////////
#endif // not APSTUDIO_INVOKED
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

File diff suppressed because it is too large Load Diff
@@ -0,0 +1,29 @@
Microsoft Developer Studio Workspace File, Format Version 6.00
# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
###############################################################################
Project: "SFXCon"=.\SFXCon.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
}}}
###############################################################################
Global:
Package=<5>
{{{
}}}
Package=<3>
{{{
}}}
###############################################################################
@@ -0,0 +1,521 @@
// Main.cpp
#include "StdAfx.h"
#include "../../../../C/CpuArch.h"
#include "../../../../C/DllSecur.h"
#include "../../../Common/MyWindows.h"
#include "../../../Common/MyInitGuid.h"
#include "../../../Common/CommandLineParser.h"
#include "../../../Common/MyException.h"
#ifdef _WIN32
#include "../../../Windows/DLL.h"
#else
#include "../../../Common/StringConvert.h"
#endif
#include "../../../Windows/FileDir.h"
#include "../../../Windows/FileName.h"
#include "../../UI/Common/ExitCode.h"
#include "../../UI/Common/Extract.h"
#include "../../UI/Console/ExtractCallbackConsole.h"
#include "../../UI/Console/List.h"
#include "../../UI/Console/OpenCallbackConsole.h"
#include "../../MyVersion.h"
using namespace NWindows;
using namespace NFile;
using namespace NDir;
using namespace NCommandLineParser;
#ifdef _WIN32
extern
HINSTANCE g_hInstance;
HINSTANCE g_hInstance = NULL;
#endif
extern
int g_CodePage;
int g_CodePage = -1;
extern CStdOutStream *g_StdStream;
static const char * const kCopyrightString =
"\n7-Zip SFX " MY_VERSION_CPU " : " MY_COPYRIGHT_DATE "\n";
static const int kNumSwitches = 6;
namespace NKey {
enum Enum
{
kHelp1 = 0,
kHelp2,
kDisablePercents,
kYes,
kPassword,
kOutputDir
};
}
namespace NRecursedType {
enum EEnum
{
kRecursed,
kWildcardOnlyRecursed,
kNonRecursed
};
}
/*
static const char kRecursedIDChar = 'R';
namespace NRecursedPostCharIndex {
enum EEnum
{
kWildcardRecursionOnly = 0,
kNoRecursion = 1
};
}
static const char kFileListID = '@';
static const char kImmediateNameID = '!';
static const char kSomeCludePostStringMinSize = 2; // at least <@|!><N>ame must be
static const char kSomeCludeAfterRecursedPostStringMinSize = 2; // at least <@|!><N>ame must be
*/
#define SWFRM_3(t, mu, mi) t, mu, mi, NULL
#define SWFRM_1(t) SWFRM_3(t, false, 0)
#define SWFRM_SIMPLE SWFRM_1(NSwitchType::kSimple)
#define SWFRM_STRING_SINGL(mi) SWFRM_3(NSwitchType::kString, false, mi)
static const CSwitchForm kSwitchForms[kNumSwitches] =
{
{ "?", SWFRM_SIMPLE },
{ "H", SWFRM_SIMPLE },
{ "BD", SWFRM_SIMPLE },
{ "Y", SWFRM_SIMPLE },
{ "P", SWFRM_STRING_SINGL(1) },
{ "O", SWFRM_STRING_SINGL(1) },
};
static const int kNumCommandForms = 3;
static const NRecursedType::EEnum kCommandRecursedDefault[kNumCommandForms] =
{
NRecursedType::kRecursed
};
// static const bool kTestExtractRecursedDefault = true;
// static const bool kAddRecursedDefault = false;
static const char * const kUniversalWildcard = "*";
static const char * const kHelpString =
"\nUsage: 7zSFX [<command>] [<switches>...] [<file_name>...]\n"
"\n"
"<Commands>\n"
// " l: List contents of archive\n"
" t: Test integrity of archive\n"
" x: eXtract files with full pathname (default)\n"
"<Switches>\n"
// " -bd Disable percentage indicator\n"
" -o{Directory}: set Output directory\n"
" -p{Password}: set Password\n"
" -y: assume Yes on all queries\n";
// ---------------------------
// exception messages
static const char * const kUserErrorMessage = "Incorrect command line"; // NExitCode::kUserError
// static const char * const kIncorrectListFile = "Incorrect wildcard in listfile";
static const char * const kIncorrectWildcardInCommandLine = "Incorrect wildcard in command line";
// static const CSysString kFileIsNotArchiveMessageBefore = "File \"";
// static const CSysString kFileIsNotArchiveMessageAfter = "\" is not archive";
// static const char * const kProcessArchiveMessage = " archive: ";
static const char * const kCantFindSFX = " cannot find sfx";
namespace NCommandType
{
enum EEnum
{
kTest = 0,
kFullExtract,
kList
};
}
static const char * const g_Commands = "txl";
struct CArchiveCommand
{
NCommandType::EEnum CommandType;
NRecursedType::EEnum DefaultRecursedType() const;
};
static bool ParseArchiveCommand(const UString &commandString, CArchiveCommand &command)
{
UString s = commandString;
s.MakeLower_Ascii();
if (s.Len() != 1)
return false;
if (s[0] >= 0x80)
return false;
int index = FindCharPosInString(g_Commands, (char)s[0]);
if (index < 0)
return false;
command.CommandType = (NCommandType::EEnum)index;
return true;
}
NRecursedType::EEnum CArchiveCommand::DefaultRecursedType() const
{
return kCommandRecursedDefault[CommandType];
}
static void PrintHelp(void)
{
g_StdOut << kHelpString;
}
Z7_ATTR_NORETURN
static void ShowMessageAndThrowException(const char *message, NExitCode::EEnum code)
{
g_StdOut << message << endl;
throw code;
}
Z7_ATTR_NORETURN
static void PrintHelpAndExit() // yyy
{
PrintHelp();
ShowMessageAndThrowException(kUserErrorMessage, NExitCode::kUserError);
}
// ------------------------------------------------------------------
// filenames functions
static bool AddNameToCensor(NWildcard::CCensor &wildcardCensor,
const UString &name, bool include, NRecursedType::EEnum type)
{
/*
if (!IsWildcardFilePathLegal(name))
return false;
*/
const bool isWildcard = DoesNameContainWildcard(name);
bool recursed = false;
switch (type)
{
case NRecursedType::kWildcardOnlyRecursed:
recursed = isWildcard;
break;
case NRecursedType::kRecursed:
recursed = true;
break;
case NRecursedType::kNonRecursed:
recursed = false;
break;
}
NWildcard::CCensorPathProps props;
props.Recursive = recursed;
wildcardCensor.AddPreItem(include, name, props);
return true;
}
static void AddCommandLineWildcardToCensor(NWildcard::CCensor &wildcardCensor,
const UString &name, bool include, NRecursedType::EEnum type)
{
if (!AddNameToCensor(wildcardCensor, name, include, type))
ShowMessageAndThrowException(kIncorrectWildcardInCommandLine, NExitCode::kUserError);
}
#ifndef _WIN32
static void GetArguments(int numArgs, char *args[], UStringVector &parts)
{
parts.Clear();
for (int i = 0; i < numArgs; i++)
{
UString s = MultiByteToUnicodeString(args[i]);
parts.Add(s);
}
}
#endif
int Main2(
#ifndef _WIN32
int numArgs, char *args[]
#endif
);
int Main2(
#ifndef _WIN32
int numArgs, char *args[]
#endif
)
{
#ifdef _WIN32
// do we need load Security DLLs for console program?
LoadSecurityDlls();
#endif
#if defined(_WIN32) && !defined(UNDER_CE)
SetFileApisToOEM();
#endif
#ifdef ENV_HAVE_LOCALE
MY_SetLocale();
#endif
g_StdOut << kCopyrightString;
UStringVector commandStrings;
#ifdef _WIN32
NCommandLineParser::SplitCommandLine(GetCommandLineW(), commandStrings);
#else
GetArguments(numArgs, args, commandStrings);
#endif
#ifdef _WIN32
FString arcPath;
{
FString path;
NDLL::MyGetModuleFileName(path);
if (!MyGetFullPathName(path, arcPath))
{
g_StdOut << "GetFullPathName Error";
return NExitCode::kFatalError;
}
}
#else
if (commandStrings.IsEmpty())
return NExitCode::kFatalError;
const FString arcPath = us2fs(commandStrings.Front());
#endif
#ifndef UNDER_CE
if (commandStrings.Size() > 0)
commandStrings.Delete(0);
#endif
NCommandLineParser::CParser parser;
try
{
if (!parser.ParseStrings(kSwitchForms, kNumSwitches, commandStrings))
{
g_StdOut << "Command line error:" << endl
<< parser.ErrorMessage << endl
<< parser.ErrorLine << endl;
return NExitCode::kUserError;
}
}
catch(...)
{
PrintHelpAndExit();
}
if (parser[NKey::kHelp1].ThereIs || parser[NKey::kHelp2].ThereIs)
{
PrintHelp();
return 0;
}
const UStringVector &nonSwitchStrings = parser.NonSwitchStrings;
unsigned curCommandIndex = 0;
CArchiveCommand command;
if (nonSwitchStrings.IsEmpty())
command.CommandType = NCommandType::kFullExtract;
else
{
const UString &cmd = nonSwitchStrings[curCommandIndex];
if (!ParseArchiveCommand(cmd, command))
{
g_StdOut << "ERROR: Unknown command:" << endl << cmd << endl;
return NExitCode::kUserError;
}
curCommandIndex = 1;
}
NRecursedType::EEnum recursedType;
recursedType = command.DefaultRecursedType();
NWildcard::CCensor wildcardCensor;
{
if (nonSwitchStrings.Size() == curCommandIndex)
AddCommandLineWildcardToCensor(wildcardCensor, (UString)kUniversalWildcard, true, recursedType);
for (; curCommandIndex < nonSwitchStrings.Size(); curCommandIndex++)
{
const UString &s = nonSwitchStrings[curCommandIndex];
if (s.IsEmpty())
throw "Empty file path";
AddCommandLineWildcardToCensor(wildcardCensor, s, true, recursedType);
}
}
const bool yesToAll = parser[NKey::kYes].ThereIs;
// NExtractMode::EEnum extractMode;
// bool isExtractGroupCommand = command.IsFromExtractGroup(extractMode);
const bool passwordEnabled = parser[NKey::kPassword].ThereIs;
UString password;
if (passwordEnabled)
password = parser[NKey::kPassword].PostStrings[0];
if (!NFind::DoesFileExist_FollowLink(arcPath))
throw kCantFindSFX;
FString outputDir;
if (parser[NKey::kOutputDir].ThereIs)
{
outputDir = us2fs(parser[NKey::kOutputDir].PostStrings[0]);
NName::NormalizeDirPathPrefix(outputDir);
}
wildcardCensor.AddPathsToCensor(NWildcard::k_RelatPath);
{
UStringVector v1, v2;
v1.Add(fs2us(arcPath));
v2.Add(fs2us(arcPath));
const NWildcard::CCensorNode &wildcardCensorHead =
wildcardCensor.Pairs.Front().Head;
CCodecs *codecs = new CCodecs;
CMyComPtr<
#ifdef Z7_EXTERNAL_CODECS
ICompressCodecsInfo
#else
IUnknown
#endif
> compressCodecsInfo = codecs;
{
HRESULT result = codecs->Load();
if (result != S_OK)
throw CSystemException(result);
}
if (command.CommandType != NCommandType::kList)
{
CExtractCallbackConsole *ecs = new CExtractCallbackConsole;
CMyComPtr<IFolderArchiveExtractCallback> extractCallback = ecs;
ecs->Init(g_StdStream, &g_StdErr, g_StdStream, false);
#ifndef Z7_NO_CRYPTO
ecs->PasswordIsDefined = passwordEnabled;
ecs->Password = password;
#endif
/*
COpenCallbackConsole openCallback;
openCallback.Init(g_StdStream, g_StdStream);
#ifndef Z7_NO_CRYPTO
openCallback.PasswordIsDefined = passwordEnabled;
openCallback.Password = password;
#endif
*/
CExtractOptions eo;
eo.StdOutMode = false;
eo.YesToAll = yesToAll;
eo.TestMode = command.CommandType == NCommandType::kTest;
eo.PathMode = NExtract::NPathMode::kFullPaths;
eo.OverwriteMode = yesToAll ?
NExtract::NOverwriteMode::kOverwrite :
NExtract::NOverwriteMode::kAsk;
eo.OutputDir = outputDir;
UString errorMessage;
CDecompressStat stat;
HRESULT result = Extract(
codecs, CObjectVector<COpenType>(), CIntVector(),
v1, v2,
wildcardCensorHead,
eo,
ecs, ecs, ecs,
// NULL, // hash
errorMessage, stat);
ecs->ClosePercents();
if (!errorMessage.IsEmpty())
{
(*g_StdStream) << endl << "Error: " << errorMessage;
if (result == S_OK)
result = E_FAIL;
}
if ( 0 != ecs->NumCantOpenArcs
|| 0 != ecs->NumArcsWithError
|| 0 != ecs->NumFileErrors
|| 0 != ecs->NumOpenArcErrors)
{
if (ecs->NumCantOpenArcs != 0)
(*g_StdStream) << endl << "Can't open as archive" << endl;
if (ecs->NumArcsWithError != 0)
(*g_StdStream) << endl << "Archive Errors" << endl;
if (ecs->NumFileErrors != 0)
(*g_StdStream) << endl << "Sub items Errors: " << ecs->NumFileErrors << endl;
if (ecs->NumOpenArcErrors != 0)
(*g_StdStream) << endl << "Open Errors: " << ecs->NumOpenArcErrors << endl;
return NExitCode::kFatalError;
}
if (result != S_OK)
throw CSystemException(result);
}
else
{
throw CSystemException(E_NOTIMPL);
/*
UInt64 numErrors = 0;
UInt64 numWarnings = 0;
HRESULT result = ListArchives(
codecs, CObjectVector<COpenType>(), CIntVector(),
false, // stdInMode
v1, v2,
true, // processAltStreams
false, // showAltStreams
wildcardCensorHead,
true, // enableHeaders
false, // techMode
#ifndef Z7_NO_CRYPTO
passwordEnabled, password,
#endif
numErrors, numWarnings);
if (numErrors > 0)
{
g_StdOut << endl << "Errors: " << numErrors;
return NExitCode::kFatalError;
}
if (result != S_OK)
throw CSystemException(result);
*/
}
}
return 0;
}
@@ -0,0 +1,3 @@
// StdAfx.cpp
#include "StdAfx.h"
@@ -0,0 +1,11 @@
// StdAfx.h
#ifndef ZIP7_INC_STDAFX_H
#define ZIP7_INC_STDAFX_H
#if defined(_MSC_VER) && _MSC_VER >= 1800
#pragma warning(disable : 4464) // relative include path contains '..'
#endif
#include "../../../Common/Common.h"
#endif
@@ -0,0 +1,137 @@
PROG = 7zCon.sfx
MY_CONSOLE = 1
MY_FIXED = 1
CFLAGS = $(CFLAGS) \
-DZ7_EXTRACT_ONLY \
-DZ7_NO_READ_FROM_CODER \
-DZ7_SFX \
-DZ7_NO_LONG_PATH \
-DZ7_NO_LARGE_PAGES \
CURRENT_OBJS = \
$O\SfxCon.obj \
CONSOLE_OBJS = \
$O\ConsoleClose.obj \
$O\ExtractCallbackConsole.obj \
$O\List.obj \
$O\MainAr.obj \
$O\OpenCallbackConsole.obj \
$O\PercentPrinter.obj \
$O\UserInputUtils.obj \
COMMON_OBJS = \
$O\CommandLineParser.obj \
$O\CRC.obj \
$O\IntToString.obj \
$O\MyString.obj \
$O\MyVector.obj \
$O\NewHandler.obj \
$O\StdInStream.obj \
$O\StdOutStream.obj \
$O\StringConvert.obj \
$O\UTFConvert.obj \
$O\Wildcard.obj \
WIN_OBJS = \
$O\DLL.obj \
$O\ErrorMsg.obj \
$O\FileDir.obj \
$O\FileFind.obj \
$O\FileIO.obj \
$O\FileName.obj \
$O\PropVariant.obj \
$O\PropVariantConv.obj \
$O\Synchronization.obj \
$O\System.obj \
$O\TimeUtils.obj \
7ZIP_COMMON_OBJS = \
$O\CreateCoder.obj \
$O\CWrappers.obj \
$O\FilePathAutoRename.obj \
$O\FileStreams.obj \
$O\InBuffer.obj \
$O\FilterCoder.obj \
$O\LimitedStreams.obj \
$O\OutBuffer.obj \
$O\ProgressUtils.obj \
$O\PropId.obj \
$O\StreamBinder.obj \
$O\StreamObjects.obj \
$O\StreamUtils.obj \
$O\VirtThread.obj \
UI_COMMON_OBJS = \
$O\ArchiveExtractCallback.obj \
$O\ArchiveOpenCallback.obj \
$O\DefaultName.obj \
$O\Extract.obj \
$O\ExtractingFilePath.obj \
$O\LoadCodecs.obj \
$O\OpenArchive.obj \
$O\PropIDUtils.obj \
AR_OBJS = \
$O\SplitHandler.obj \
AR_COMMON_OBJS = \
$O\CoderMixer2.obj \
$O\ItemNameUtils.obj \
$O\MultiStream.obj \
$O\OutStreamWithCRC.obj \
7Z_OBJS = \
$O\7zDecode.obj \
$O\7zExtract.obj \
$O\7zHandler.obj \
$O\7zIn.obj \
$O\7zRegister.obj \
COMPRESS_OBJS = \
$O\Bcj2Coder.obj \
$O\Bcj2Register.obj \
$O\BcjCoder.obj \
$O\BcjRegister.obj \
$O\BranchMisc.obj \
$O\BranchRegister.obj \
$O\CopyCoder.obj \
$O\CopyRegister.obj \
$O\DeltaFilter.obj \
$O\Lzma2Decoder.obj \
$O\Lzma2Register.obj \
$O\LzmaDecoder.obj \
$O\LzmaRegister.obj \
$O\PpmdDecoder.obj \
$O\PpmdRegister.obj \
CRYPTO_OBJS = \
$O\7zAes.obj \
$O\7zAesRegister.obj \
$O\MyAes.obj \
C_OBJS = \
$O\7zStream.obj \
$O\Alloc.obj \
$O\Bcj2.obj \
$O\Bra.obj \
$O\Bra86.obj \
$O\BraIA64.obj \
$O\CpuArch.obj \
$O\Delta.obj \
$O\DllSecur.obj \
$O\Lzma2Dec.obj \
$O\Lzma2DecMt.obj \
$O\LzmaDec.obj \
$O\MtDec.obj \
$O\Ppmd7.obj \
$O\Ppmd7Dec.obj \
$O\Threads.obj \
!include "../../Aes.mak"
!include "../../Crc.mak"
!include "../../LzmaDec.mak"
!include "../../Sha256.mak"
!include "../../7zip.mak"
@@ -0,0 +1,215 @@
PROG = 7zCon
# IS_X64 = 1
# USE_ASM = 1
# ST_MODE = 1
include ../../LzmaDec_gcc.mak
LOCAL_FLAGS_ST =
MT_OBJS =
ifdef SystemDrive
IS_MINGW = 1
else
ifdef SYSTEMDRIVE
# ifdef OS
IS_MINGW = 1
endif
endif
ifdef ST_MODE
LOCAL_FLAGS_ST = -DZ7_ST
ifdef IS_MINGW
MT_OBJS = \
$O/Threads.o \
endif
else
MT_OBJS = \
$O/StreamBinder.o \
$O/Synchronization.o \
$O/VirtThread.o \
$O/Threads.o \
endif
LOCAL_FLAGS_SYS =
ifdef IS_MINGW
LOCAL_FLAGS_SYS = \
-DZ7_NO_LONG_PATH \
-DZ7_NO_LARGE_PAGES \
SYS_OBJS = \
$O/DLL.o \
$O/DllSecur.o \
$O/resource.o \
else
SYS_OBJS = \
$O/MyWindows.o \
endif
LOCAL_FLAGS = \
-DZ7_EXTRACT_ONLY \
-DZ7_NO_READ_FROM_CODER \
-DZ7_SFX \
$(LOCAL_FLAGS_ST) \
$(LOCAL_FLAGS_SYS) \
CURRENT_OBJS = \
$O/SfxCon.o \
CONSOLE_OBJS = \
$O/ConsoleClose.o \
$O/ExtractCallbackConsole.o \
$O/List.o \
$O/MainAr.o \
$O/OpenCallbackConsole.o \
$O/PercentPrinter.o \
$O/UserInputUtils.o \
COMMON_OBJS = \
$O/CommandLineParser.o \
$O/CRC.o \
$O/IntToString.o \
$O/MyString.o \
$O/MyVector.o \
$O/NewHandler.o \
$O/Sha256Prepare.o \
$O/StdInStream.o \
$O/StdOutStream.o \
$O/StringConvert.o \
$O/UTFConvert.o \
$O/Wildcard.o \
WIN_OBJS = \
\
$O/ErrorMsg.o \
$O/FileDir.o \
$O/FileFind.o \
$O/FileIO.o \
$O/FileName.o \
$O/PropVariant.o \
$O/PropVariantConv.o \
\
$O/System.o \
$O/TimeUtils.o \
7ZIP_COMMON_OBJS = \
$O/CreateCoder.o \
$O/CWrappers.o \
$O/FilePathAutoRename.o \
$O/FileStreams.o \
$O/InBuffer.o \
$O/FilterCoder.o \
$O/LimitedStreams.o \
$O/OutBuffer.o \
$O/ProgressUtils.o \
$O/PropId.o \
\
$O/StreamObjects.o \
$O/StreamUtils.o \
\
UI_COMMON_OBJS = \
$O/ArchiveExtractCallback.o \
$O/ArchiveOpenCallback.o \
$O/DefaultName.o \
$O/Extract.o \
$O/ExtractingFilePath.o \
$O/LoadCodecs.o \
$O/OpenArchive.o \
$O/PropIDUtils.o \
AR_OBJS = \
$O/SplitHandler.o \
AR_COMMON_OBJS = \
$O/CoderMixer2.o \
$O/ItemNameUtils.o \
$O/MultiStream.o \
$O/OutStreamWithCRC.o \
7Z_OBJS = \
$O/7zDecode.o \
$O/7zExtract.o \
$O/7zHandler.o \
$O/7zIn.o \
$O/7zRegister.o \
COMPRESS_OBJS = \
$O/Bcj2Coder.o \
$O/Bcj2Register.o \
$O/BcjCoder.o \
$O/BcjRegister.o \
$O/BranchMisc.o \
$O/BranchRegister.o \
$O/CopyCoder.o \
$O/CopyRegister.o \
$O/DeltaFilter.o \
$O/Lzma2Decoder.o \
$O/Lzma2Register.o \
$O/LzmaDecoder.o \
$O/LzmaRegister.o \
$O/PpmdDecoder.o \
$O/PpmdRegister.o \
CRYPTO_OBJS = \
$O/7zAes.o \
$O/7zAesRegister.o \
$O/MyAes.o \
C_OBJS = \
$O/7zStream.o \
$O/Alloc.o \
$O/Bcj2.o \
$O/Bra.o \
$O/Bra86.o \
$O/BraIA64.o \
$O/CpuArch.o \
$O/Delta.o \
$O/Lzma2Dec.o \
$O/Lzma2DecMt.o \
$O/LzmaDec.o \
$O/MtDec.o \
$O/Ppmd7.o \
$O/Ppmd7Dec.o \
$O/Sha256.o \
$O/Sha256Opt.o \
$O/7zCrc.o \
$O/7zCrcOpt.o \
$O/Aes.o \
$O/AesOpt.o \
OBJS = \
$(LZMA_DEC_OPT_OBJS) \
$(C_OBJS) \
$(MT_OBJS) \
$(SYS_OBJS) \
$(COMMON_OBJS) \
$(WIN_OBJS) \
$(COMPRESS_OBJS) \
$(CRYPTO_OBJS) \
$(7ZIP_COMMON_OBJS) \
$(AR_OBJS) \
$(AR_COMMON_OBJS) \
$(7Z_OBJS) \
$(UI_COMMON_OBJS) \
$(CONSOLE_OBJS) \
$(CURRENT_OBJS) \
include ../../7zip_gcc.mak
@@ -0,0 +1,9 @@
#include "../../MyVersionInfo.rc"
MY_VERSION_INFO_APP("7z Console SFX", "7z.sfx")
101 ICON "7z.ico"
#ifndef UNDER_CE
1 24 MOVEABLE PURE "../../UI/Console/Console.manifest"
#endif
@@ -0,0 +1,246 @@
// ExtractCallbackSfx.h
#include "StdAfx.h"
#include "../../../Common/Wildcard.h"
#include "../../../Windows/FileDir.h"
#include "../../../Windows/FileFind.h"
#include "../../../Windows/FileName.h"
#include "../../../Windows/PropVariant.h"
#include "ExtractCallbackSfx.h"
using namespace NWindows;
using namespace NFile;
using namespace NDir;
static LPCSTR const kCantDeleteFile = "Cannot delete output file";
static LPCSTR const kCantOpenFile = "Cannot open output file";
static LPCSTR const kUnsupportedMethod = "Unsupported Method";
void CExtractCallbackImp::Init(IInArchive *archiveHandler,
const FString &directoryPath,
const UString &itemDefaultName,
const FILETIME &defaultMTime,
UInt32 defaultAttributes)
{
_message.Empty();
_isCorrupt = false;
_itemDefaultName = itemDefaultName;
_defaultMTime = defaultMTime;
_defaultAttributes = defaultAttributes;
_archiveHandler = archiveHandler;
_directoryPath = directoryPath;
NName::NormalizeDirPathPrefix(_directoryPath);
}
HRESULT CExtractCallbackImp::Open_CheckBreak()
{
#ifndef _NO_PROGRESS
return ProgressDialog.Sync.ProcessStopAndPause();
#else
return S_OK;
#endif
}
HRESULT CExtractCallbackImp::Open_SetTotal(const UInt64 * /* numFiles */, const UInt64 * /* numBytes */)
{
return S_OK;
}
HRESULT CExtractCallbackImp::Open_SetCompleted(const UInt64 * /* numFiles */, const UInt64 * /* numBytes */)
{
#ifndef _NO_PROGRESS
return ProgressDialog.Sync.ProcessStopAndPause();
#else
return S_OK;
#endif
}
HRESULT CExtractCallbackImp::Open_Finished()
{
return S_OK;
}
Z7_COM7F_IMF(CExtractCallbackImp::SetTotal(UInt64 size))
{
#ifndef _NO_PROGRESS
ProgressDialog.Sync.SetProgress(size, 0);
#endif
return S_OK;
}
Z7_COM7F_IMF(CExtractCallbackImp::SetCompleted(const UInt64 *completeValue))
{
#ifndef _NO_PROGRESS
RINOK(ProgressDialog.Sync.ProcessStopAndPause())
if (completeValue != NULL)
ProgressDialog.Sync.SetPos(*completeValue);
#endif
return S_OK;
}
void CExtractCallbackImp::CreateComplexDirectory(const UStringVector &dirPathParts)
{
FString fullPath = _directoryPath;
FOR_VECTOR (i, dirPathParts)
{
fullPath += us2fs(dirPathParts[i]);
CreateDir(fullPath);
fullPath.Add_PathSepar();
}
}
Z7_COM7F_IMF(CExtractCallbackImp::GetStream(UInt32 index,
ISequentialOutStream **outStream, Int32 askExtractMode))
{
#ifndef _NO_PROGRESS
if (ProgressDialog.Sync.GetStopped())
return E_ABORT;
#endif
_outFileStream.Release();
UString fullPath;
{
NCOM::CPropVariant prop;
RINOK(_archiveHandler->GetProperty(index, kpidPath, &prop))
if (prop.vt == VT_EMPTY)
fullPath = _itemDefaultName;
else
{
if (prop.vt != VT_BSTR)
return E_FAIL;
fullPath.SetFromBstr(prop.bstrVal);
}
_filePath = fullPath;
}
if (askExtractMode == NArchive::NExtract::NAskMode::kExtract)
{
NCOM::CPropVariant prop;
RINOK(_archiveHandler->GetProperty(index, kpidAttrib, &prop))
if (prop.vt == VT_EMPTY)
_processedFileInfo.Attributes = _defaultAttributes;
else
{
if (prop.vt != VT_UI4)
return E_FAIL;
_processedFileInfo.Attributes = prop.ulVal;
}
RINOK(_archiveHandler->GetProperty(index, kpidIsDir, &prop))
_processedFileInfo.IsDir = VARIANT_BOOLToBool(prop.boolVal);
bool isAnti = false;
{
NCOM::CPropVariant propTemp;
RINOK(_archiveHandler->GetProperty(index, kpidIsAnti, &propTemp))
if (propTemp.vt == VT_BOOL)
isAnti = VARIANT_BOOLToBool(propTemp.boolVal);
}
RINOK(_archiveHandler->GetProperty(index, kpidMTime, &prop))
switch (prop.vt)
{
case VT_EMPTY: _processedFileInfo.MTime = _defaultMTime; break;
case VT_FILETIME: _processedFileInfo.MTime = prop.filetime; break;
default: return E_FAIL;
}
UStringVector pathParts;
SplitPathToParts(fullPath, pathParts);
if (pathParts.IsEmpty())
return E_FAIL;
UString processedPath = fullPath;
if (!_processedFileInfo.IsDir)
pathParts.DeleteBack();
if (!pathParts.IsEmpty())
{
if (!isAnti)
CreateComplexDirectory(pathParts);
}
FString fullProcessedPath = _directoryPath + us2fs(processedPath);
if (_processedFileInfo.IsDir)
{
_diskFilePath = fullProcessedPath;
if (isAnti)
RemoveDir(_diskFilePath);
else
SetDirTime(_diskFilePath, NULL, NULL, &_processedFileInfo.MTime);
return S_OK;
}
NFind::CFileInfo fileInfo;
if (fileInfo.Find(fullProcessedPath))
{
if (!DeleteFileAlways(fullProcessedPath))
{
_message = kCantDeleteFile;
return E_FAIL;
}
}
if (!isAnti)
{
_outFileStreamSpec = new COutFileStream;
CMyComPtr<ISequentialOutStream> outStreamLoc(_outFileStreamSpec);
if (!_outFileStreamSpec->Create_ALWAYS(fullProcessedPath))
{
_message = kCantOpenFile;
return E_FAIL;
}
_outFileStream = outStreamLoc;
*outStream = outStreamLoc.Detach();
}
_diskFilePath = fullProcessedPath;
}
else
{
*outStream = NULL;
}
return S_OK;
}
Z7_COM7F_IMF(CExtractCallbackImp::PrepareOperation(Int32 askExtractMode))
{
_extractMode = (askExtractMode == NArchive::NExtract::NAskMode::kExtract);
return S_OK;
}
Z7_COM7F_IMF(CExtractCallbackImp::SetOperationResult(Int32 resultEOperationResult))
{
switch (resultEOperationResult)
{
case NArchive::NExtract::NOperationResult::kOK:
break;
default:
{
_outFileStream.Release();
switch (resultEOperationResult)
{
case NArchive::NExtract::NOperationResult::kUnsupportedMethod:
_message = kUnsupportedMethod;
break;
default:
_isCorrupt = true;
}
return E_FAIL;
}
}
if (_outFileStream != NULL)
{
_outFileStreamSpec->SetMTime(&_processedFileInfo.MTime);
RINOK(_outFileStreamSpec->Close())
}
_outFileStream.Release();
if (_extractMode)
SetFileAttrib(_diskFilePath, _processedFileInfo.Attributes);
return S_OK;
}
@@ -0,0 +1,83 @@
// ExtractCallbackSfx.h
#ifndef ZIP7_INC_EXTRACT_CALLBACK_SFX_H
#define ZIP7_INC_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 Z7_final:
public IArchiveExtractCallback,
public IOpenCallbackUI,
public CMyUnknownImp
{
Z7_COM_UNKNOWN_IMP_0
Z7_IFACE_COM7_IMP(IProgress)
Z7_IFACE_COM7_IMP(IArchiveExtractCallback)
Z7_IFACE_IMP(IOpenCallbackUI)
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, NULL);
{
ProgressDialog.SetText(LangString(IDS_PROGRESS_EXTRACTING));
}
ProgressDialog.Show(SW_SHOWNORMAL);
return S_OK;
}
~CExtractCallbackImp() { ProgressDialog.Destroy(); }
#endif
};
#endif
@@ -0,0 +1,135 @@
// ExtractEngine.cpp
#include "StdAfx.h"
#include "../../../Windows/FileDir.h"
#include "../../../Windows/FileName.h"
#include "../../../Windows/Thread.h"
#include "../../UI/Common/OpenArchive.h"
#include "../../UI/FileManager/FormatUtils.h"
#include "../../UI/FileManager/LangUtils.h"
#include "ExtractCallbackSfx.h"
#include "ExtractEngine.h"
using namespace NWindows;
using namespace NFile;
using namespace NDir;
static LPCSTR const kCantFindArchive = "Cannot find archive file";
static LPCSTR const kCantOpenArchive = "Cannot open the file as archive";
struct CThreadExtracting
{
CCodecs *Codecs;
FString FileName;
FString DestFolder;
CExtractCallbackImp *ExtractCallbackSpec;
CMyComPtr<IArchiveExtractCallback> ExtractCallback;
CArchiveLink ArchiveLink;
HRESULT Result;
UString ErrorMessage;
void Process2()
{
NFind::CFileInfo fi;
if (!fi.Find(FileName))
{
ErrorMessage = kCantFindArchive;
Result = E_FAIL;
return;
}
CObjectVector<COpenType> incl;
CIntVector excl;
COpenOptions options;
options.codecs = Codecs;
options.types = &incl;
options.excludedFormats = &excl;
options.filePath = fs2us(FileName);
Result = ArchiveLink.Open2(options, ExtractCallbackSpec);
if (Result != S_OK)
{
ErrorMessage = kCantOpenArchive;
return;
}
FString dirPath = DestFolder;
NName::NormalizeDirPathPrefix(dirPath);
if (!CreateComplexDir(dirPath))
{
ErrorMessage = MyFormatNew(IDS_CANNOT_CREATE_FOLDER, fs2us(dirPath));
Result = E_FAIL;
return;
}
ExtractCallbackSpec->Init(ArchiveLink.GetArchive(), dirPath, (UString)"Default", fi.MTime, 0);
Result = ArchiveLink.GetArchive()->Extract(NULL, (UInt32)(Int32)-1 , BoolToInt(false), ExtractCallback);
}
void Process()
{
try
{
#ifndef _NO_PROGRESS
CProgressCloser closer(ExtractCallbackSpec->ProgressDialog);
#endif
Process2();
}
catch(...) { Result = E_FAIL; }
}
static THREAD_FUNC_DECL MyThreadFunction(void *param)
{
((CThreadExtracting *)param)->Process();
return 0;
}
};
HRESULT ExtractArchive(CCodecs *codecs, const FString &fileName, const FString &destFolder,
bool showProgress, bool &isCorrupt, UString &errorMessage)
{
isCorrupt = false;
CThreadExtracting t;
t.Codecs = codecs;
t.FileName = fileName;
t.DestFolder = destFolder;
t.ExtractCallbackSpec = new CExtractCallbackImp;
t.ExtractCallback = t.ExtractCallbackSpec;
#ifndef _NO_PROGRESS
if (showProgress)
{
t.ExtractCallbackSpec->ProgressDialog.IconID = IDI_ICON;
NWindows::CThread thread;
const WRes wres = thread.Create(CThreadExtracting::MyThreadFunction, &t);
if (wres != 0)
return HRESULT_FROM_WIN32(wres);
UString title;
LangString(IDS_PROGRESS_EXTRACTING, title);
t.ExtractCallbackSpec->StartProgressDialog(title, thread);
}
else
#endif
{
t.Process2();
}
errorMessage = t.ErrorMessage;
if (errorMessage.IsEmpty())
errorMessage = t.ExtractCallbackSpec->_message;
isCorrupt = t.ExtractCallbackSpec->_isCorrupt;
return t.Result;
}
@@ -0,0 +1,11 @@
// ExtractEngine.h
#ifndef ZIP7_INC_EXTRACT_ENGINE_H
#define ZIP7_INC_EXTRACT_ENGINE_H
#include "../../UI/Common/LoadCodecs.h"
HRESULT ExtractArchive(CCodecs *codecs, const FString &fileName, const FString &destFolder,
bool showProgress, bool &isCorrupt, UString &errorMessage);
#endif
@@ -0,0 +1,872 @@
# Microsoft Developer Studio Project File - Name="SFXSetup" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Application" 0x0101
CFG=SFXSetup - Win32 Debug
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "SFXSetup.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "SFXSetup.mak" CFG="SFXSetup - Win32 Debug"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "SFXSetup - Win32 Release" (based on "Win32 (x86) Application")
!MESSAGE "SFXSetup - Win32 Debug" (based on "Win32 (x86) Application")
!MESSAGE "SFXSetup - Win32 ReleaseD" (based on "Win32 (x86) Application")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
MTL=midl.exe
RSC=rc.exe
!IF "$(CFG)" == "SFXSetup - Win32 Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release"
# PROP BASE Intermediate_Dir "Release"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "Release"
# PROP Intermediate_Dir "Release"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /c
# ADD CPP /nologo /Gz /MT /W4 /WX /GX /O1 /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "Z7_EXTRACT_ONLY" /D "Z7_NO_REGISTRY" /D "Z7_SFX" /D "Z7_NO_CRYPTO" /D "Z7_NO_LONG_PATH" /D "Z7_NO_LARGE_PAGES" /Yu"StdAfx.h" /FD /c
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x419 /d "NDEBUG"
# ADD RSC /l 0x419 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386
# ADD LINK32 comctl32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386 /out:"C:\Util\7zS.sfx" /opt:NOWIN98
# SUBTRACT LINK32 /pdb:none
!ELSEIF "$(CFG)" == "SFXSetup - Win32 Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "Debug"
# PROP BASE Intermediate_Dir "Debug"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "Debug"
# PROP Intermediate_Dir "Debug"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /GZ /c
# ADD CPP /nologo /Gz /MTd /W4 /WX /Gm /GX /ZI /Od /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "Z7_EXTRACT_ONLY" /D "Z7_NO_REGISTRY" /D "Z7_SFX" /D "Z7_NO_CRYPTO" /D "Z7_NO_LONG_PATH" /D "Z7_NO_LARGE_PAGES" /Yu"StdAfx.h" /FD /GZ /c
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x419 /d "_DEBUG"
# ADD RSC /l 0x419 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib /nologo /subsystem:windows /debug /machine:I386 /out:"C:\UTIL\7zSfxS.exe" /pdbtype:sept
!ELSEIF "$(CFG)" == "SFXSetup - Win32 ReleaseD"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "ReleaseD"
# PROP BASE Intermediate_Dir "ReleaseD"
# PROP BASE Ignore_Export_Lib 0
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "ReleaseD"
# PROP Intermediate_Dir "ReleaseD"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MD /W3 /GX /O1 /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "Z7_EXTRACT_ONLY" /D "Z7_NO_REGISTRY" /D "Z7_SFX" /Yu"StdAfx.h" /FD /c
# ADD CPP /nologo /Gz /MD /W4 /WX /GX /O1 /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "Z7_EXTRACT_ONLY" /D "Z7_NO_REGISTRY" /D "Z7_SFX" /D "Z7_NO_CRYPTO" /D "Z7_NO_LONG_PATH" /D "Z7_NO_LARGE_PAGES" /Yu"StdAfx.h" /FD /c
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x419 /d "NDEBUG"
# ADD RSC /l 0x419 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 comctl32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386 /out:"C:\UTIL\7zWinSR.exe"
# SUBTRACT BASE LINK32 /debug /nodefaultlib
# ADD LINK32 comctl32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386 /out:"C:\Util\7zSD.sfx" /opt:NOWIN98
# SUBTRACT LINK32 /pdb:none
!ENDIF
# Begin Target
# Name "SFXSetup - Win32 Release"
# Name "SFXSetup - Win32 Debug"
# Name "SFXSetup - Win32 ReleaseD"
# Begin Group "Spec"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\resource.rc
# End Source File
# Begin Source File
SOURCE=.\StdAfx.cpp
# ADD CPP /Yc"StdAfx.h"
# End Source File
# Begin Source File
SOURCE=.\StdAfx.h
# End Source File
# End Group
# Begin Group "Interface"
# PROP Default_Filter ""
# End Group
# Begin Group "7z"
# PROP Default_Filter ""
# Begin Source File
SOURCE=..\..\Archive\7z\7zDecode.cpp
# End Source File
# Begin Source File
SOURCE=..\..\Archive\7z\7zDecode.h
# End Source File
# Begin Source File
SOURCE=..\..\Archive\7z\7zExtract.cpp
# End Source File
# Begin Source File
SOURCE=..\..\Archive\7z\7zHandler.cpp
# End Source File
# Begin Source File
SOURCE=..\..\Archive\7z\7zHandler.h
# End Source File
# Begin Source File
SOURCE=..\..\Archive\7z\7zHeader.h
# End Source File
# Begin Source File
SOURCE=..\..\Archive\7z\7zIn.cpp
# End Source File
# Begin Source File
SOURCE=..\..\Archive\7z\7zIn.h
# End Source File
# Begin Source File
SOURCE=..\..\Archive\7z\7zItem.h
# End Source File
# Begin Source File
SOURCE=..\..\Archive\7z\7zRegister.cpp
# End Source File
# End Group
# Begin Group "Archive Common"
# PROP Default_Filter ""
# Begin Source File
SOURCE=..\..\Archive\Common\CoderMixer2.cpp
# End Source File
# Begin Source File
SOURCE=..\..\Archive\Common\CoderMixer2.h
# End Source File
# Begin Source File
SOURCE=..\..\Archive\Common\ItemNameUtils.cpp
# End Source File
# Begin Source File
SOURCE=..\..\Archive\Common\ItemNameUtils.h
# End Source File
# Begin Source File
SOURCE=..\..\Archive\Common\OutStreamWithCRC.cpp
# End Source File
# Begin Source File
SOURCE=..\..\Archive\Common\OutStreamWithCRC.h
# End Source File
# End Group
# Begin Group "Compress"
# PROP Default_Filter ""
# Begin Source File
SOURCE=..\..\Compress\Bcj2Coder.cpp
# End Source File
# Begin Source File
SOURCE=..\..\Compress\Bcj2Coder.h
# End Source File
# Begin Source File
SOURCE=..\..\Compress\Bcj2Register.cpp
# End Source File
# Begin Source File
SOURCE=..\..\Compress\BcjCoder.cpp
# End Source File
# Begin Source File
SOURCE=..\..\Compress\BcjCoder.h
# End Source File
# Begin Source File
SOURCE=..\..\Compress\BcjRegister.cpp
# End Source File
# Begin Source File
SOURCE=..\..\Compress\BranchMisc.cpp
# End Source File
# Begin Source File
SOURCE=..\..\Compress\BranchMisc.h
# End Source File
# Begin Source File
SOURCE=..\..\Compress\BranchRegister.cpp
# End Source File
# Begin Source File
SOURCE=..\..\Compress\CopyCoder.cpp
# End Source File
# Begin Source File
SOURCE=..\..\Compress\CopyCoder.h
# End Source File
# Begin Source File
SOURCE=..\..\Compress\CopyRegister.cpp
# End Source File
# Begin Source File
SOURCE=..\..\Compress\DeltaFilter.cpp
# End Source File
# Begin Source File
SOURCE=..\..\Compress\Lzma2Decoder.cpp
# End Source File
# Begin Source File
SOURCE=..\..\Compress\Lzma2Decoder.h
# End Source File
# Begin Source File
SOURCE=..\..\Compress\Lzma2Register.cpp
# End Source File
# Begin Source File
SOURCE=..\..\Compress\LzmaDecoder.cpp
# End Source File
# Begin Source File
SOURCE=..\..\Compress\LzmaRegister.cpp
# End Source File
# End Group
# Begin Group "Common"
# PROP Default_Filter ""
# Begin Source File
SOURCE=..\..\..\Common\CommandLineParser.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\Common\CommandLineParser.h
# End Source File
# Begin Source File
SOURCE=..\..\..\Common\Common.h
# End Source File
# Begin Source File
SOURCE=..\..\..\Common\CRC.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\Common\CRC.h
# End Source File
# Begin Source File
SOURCE=..\..\..\Common\IntToString.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\Common\IntToString.h
# End Source File
# Begin Source File
SOURCE=..\..\..\Common\MyCom.h
# End Source File
# Begin Source File
SOURCE=..\..\..\Common\MyString.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\Common\MyString.h
# End Source File
# Begin Source File
SOURCE=..\..\..\Common\MyVector.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\Common\MyVector.h
# End Source File
# Begin Source File
SOURCE=..\..\..\Common\NewHandler.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\Common\NewHandler.h
# End Source File
# Begin Source File
SOURCE=..\..\..\Common\StringConvert.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\Common\StringConvert.h
# End Source File
# Begin Source File
SOURCE=..\..\..\Common\TextConfig.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\Common\TextConfig.h
# End Source File
# Begin Source File
SOURCE=..\..\..\Common\UTFConvert.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\Common\UTFConvert.h
# End Source File
# Begin Source File
SOURCE=..\..\..\Common\Wildcard.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\Common\Wildcard.h
# End Source File
# End Group
# Begin Group "Windows"
# PROP Default_Filter ""
# Begin Group "Control"
# PROP Default_Filter ""
# Begin Source File
SOURCE=..\..\..\Windows\Control\Dialog.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\Windows\Control\Dialog.h
# End Source File
# End Group
# Begin Source File
SOURCE=..\..\..\Windows\DLL.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\Windows\DLL.h
# End Source File
# Begin Source File
SOURCE=..\..\..\Windows\ErrorMsg.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\Windows\ErrorMsg.h
# End Source File
# Begin Source File
SOURCE=..\..\..\Windows\FileDir.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\Windows\FileDir.h
# End Source File
# Begin Source File
SOURCE=..\..\..\Windows\FileFind.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\Windows\FileFind.h
# End Source File
# Begin Source File
SOURCE=..\..\..\Windows\FileIO.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\Windows\FileIO.h
# End Source File
# Begin Source File
SOURCE=..\..\..\Windows\FileName.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\Windows\FileName.h
# End Source File
# Begin Source File
SOURCE=..\..\..\Windows\PropVariant.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\Windows\PropVariant.h
# End Source File
# Begin Source File
SOURCE=..\..\..\Windows\ResourceString.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\Windows\ResourceString.h
# End Source File
# Begin Source File
SOURCE=..\..\..\Windows\Synchronization.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\Windows\Synchronization.h
# End Source File
# Begin Source File
SOURCE=..\..\..\Windows\System.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\Windows\System.h
# End Source File
# Begin Source File
SOURCE=..\..\..\Windows\TimeUtils.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\Windows\TimeUtils.h
# End Source File
# Begin Source File
SOURCE=..\..\..\Windows\Window.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\Windows\Window.h
# End Source File
# End Group
# Begin Group "7zip Common"
# PROP Default_Filter ""
# Begin Source File
SOURCE=..\..\Common\CreateCoder.cpp
# End Source File
# Begin Source File
SOURCE=..\..\Common\CreateCoder.h
# End Source File
# Begin Source File
SOURCE=..\..\Common\CWrappers.cpp
# End Source File
# Begin Source File
SOURCE=..\..\Common\CWrappers.h
# End Source File
# Begin Source File
SOURCE=..\..\Common\FileStreams.cpp
# End Source File
# Begin Source File
SOURCE=..\..\Common\FileStreams.h
# End Source File
# Begin Source File
SOURCE=..\..\Common\FilterCoder.cpp
# End Source File
# Begin Source File
SOURCE=..\..\Common\FilterCoder.h
# End Source File
# Begin Source File
SOURCE=..\..\Common\InBuffer.cpp
# End Source File
# Begin Source File
SOURCE=..\..\Common\InBuffer.h
# End Source File
# Begin Source File
SOURCE=..\..\Common\LimitedStreams.cpp
# End Source File
# Begin Source File
SOURCE=..\..\Common\LimitedStreams.h
# End Source File
# Begin Source File
SOURCE=..\..\Common\OutBuffer.cpp
# End Source File
# Begin Source File
SOURCE=..\..\Common\OutBuffer.h
# End Source File
# Begin Source File
SOURCE=..\..\Common\ProgressUtils.cpp
# End Source File
# Begin Source File
SOURCE=..\..\Common\ProgressUtils.h
# End Source File
# Begin Source File
SOURCE=..\..\Common\PropId.cpp
# End Source File
# Begin Source File
SOURCE=..\..\Common\StreamBinder.cpp
# End Source File
# Begin Source File
SOURCE=..\..\Common\StreamBinder.h
# End Source File
# Begin Source File
SOURCE=..\..\Common\StreamObjects.cpp
# End Source File
# Begin Source File
SOURCE=..\..\Common\StreamObjects.h
# End Source File
# Begin Source File
SOURCE=..\..\Common\StreamUtils.cpp
# End Source File
# Begin Source File
SOURCE=..\..\Common\StreamUtils.h
# End Source File
# Begin Source File
SOURCE=..\..\Common\VirtThread.cpp
# End Source File
# Begin Source File
SOURCE=..\..\Common\VirtThread.h
# End Source File
# End Group
# Begin Group "UI"
# PROP Default_Filter ""
# Begin Group "Explorer"
# PROP Default_Filter ""
# Begin Source File
SOURCE=..\..\UI\Explorer\MyMessages.cpp
# End Source File
# Begin Source File
SOURCE=..\..\UI\Explorer\MyMessages.h
# End Source File
# End Group
# Begin Group "UI Common"
# PROP Default_Filter ""
# Begin Source File
SOURCE=..\..\UI\Common\ArchiveOpenCallback.cpp
# End Source File
# Begin Source File
SOURCE=..\..\UI\Common\ArchiveOpenCallback.h
# End Source File
# Begin Source File
SOURCE=..\..\UI\Common\DefaultName.cpp
# End Source File
# Begin Source File
SOURCE=..\..\UI\Common\DefaultName.h
# End Source File
# Begin Source File
SOURCE=..\..\UI\Common\ExtractMode.h
# End Source File
# Begin Source File
SOURCE=..\..\UI\Common\LoadCodecs.cpp
# End Source File
# Begin Source File
SOURCE=..\..\UI\Common\LoadCodecs.h
# End Source File
# Begin Source File
SOURCE=..\..\UI\Common\OpenArchive.cpp
# End Source File
# Begin Source File
SOURCE=..\..\UI\Common\OpenArchive.h
# End Source File
# End Group
# End Group
# Begin Group "File Manager"
# PROP Default_Filter ""
# Begin Source File
SOURCE=..\..\UI\FileManager\FormatUtils.cpp
# End Source File
# Begin Source File
SOURCE=..\..\UI\FileManager\FormatUtils.h
# End Source File
# Begin Source File
SOURCE=..\..\UI\FileManager\LangUtils.h
# End Source File
# Begin Source File
SOURCE=..\..\UI\FileManager\ProgressDialog.cpp
# End Source File
# Begin Source File
SOURCE=..\..\UI\FileManager\ProgressDialog.h
# End Source File
# End Group
# Begin Group "C"
# PROP Default_Filter ""
# Begin Source File
SOURCE=..\..\..\..\C\7zCrc.c
# SUBTRACT CPP /YX /Yc /Yu
# End Source File
# Begin Source File
SOURCE=..\..\..\..\C\7zCrc.h
# End Source File
# Begin Source File
SOURCE=..\..\..\..\C\7zCrcOpt.c
# SUBTRACT CPP /YX /Yc /Yu
# End Source File
# Begin Source File
SOURCE=..\..\..\..\C\7zStream.c
# SUBTRACT CPP /YX /Yc /Yu
# End Source File
# Begin Source File
SOURCE=..\..\..\..\C\7zTypes.h
# End Source File
# Begin Source File
SOURCE=..\..\..\..\C\7zWindows.h
# End Source File
# Begin Source File
SOURCE=..\..\..\..\C\Alloc.c
# SUBTRACT CPP /YX /Yc /Yu
# End Source File
# Begin Source File
SOURCE=..\..\..\..\C\Alloc.h
# End Source File
# Begin Source File
SOURCE=..\..\..\..\C\Bcj2.c
# SUBTRACT CPP /YX /Yc /Yu
# End Source File
# Begin Source File
SOURCE=..\..\..\..\C\Bcj2.h
# End Source File
# Begin Source File
SOURCE=..\..\..\..\C\Bra.c
# SUBTRACT CPP /YX /Yc /Yu
# End Source File
# Begin Source File
SOURCE=..\..\..\..\C\Bra.h
# End Source File
# Begin Source File
SOURCE=..\..\..\..\C\Bra86.c
# SUBTRACT CPP /YX /Yc /Yu
# End Source File
# Begin Source File
SOURCE=..\..\..\..\C\BraIA64.c
# SUBTRACT CPP /YX /Yc /Yu
# End Source File
# Begin Source File
SOURCE=..\..\..\..\C\Compiler.h
# End Source File
# Begin Source File
SOURCE=..\..\..\..\C\CpuArch.c
# SUBTRACT CPP /YX /Yc /Yu
# End Source File
# Begin Source File
SOURCE=..\..\..\..\C\CpuArch.h
# End Source File
# Begin Source File
SOURCE=..\..\..\..\C\Delta.c
# SUBTRACT CPP /YX /Yc /Yu
# End Source File
# Begin Source File
SOURCE=..\..\..\..\C\Delta.h
# End Source File
# Begin Source File
SOURCE=..\..\..\..\C\DllSecur.c
# SUBTRACT CPP /YX /Yc /Yu
# End Source File
# Begin Source File
SOURCE=..\..\..\..\C\DllSecur.h
# End Source File
# Begin Source File
SOURCE=..\..\..\..\C\Lzma2Dec.c
# SUBTRACT CPP /YX /Yc /Yu
# End Source File
# Begin Source File
SOURCE=..\..\..\..\C\Lzma2Dec.h
# End Source File
# Begin Source File
SOURCE=..\..\..\..\C\Lzma2DecMt.c
# SUBTRACT CPP /YX /Yc /Yu
# End Source File
# Begin Source File
SOURCE=..\..\..\..\C\Lzma2DecMt.h
# End Source File
# Begin Source File
SOURCE=..\..\..\..\C\LzmaDec.c
# SUBTRACT CPP /YX /Yc /Yu
# End Source File
# Begin Source File
SOURCE=..\..\..\..\C\LzmaDec.h
# End Source File
# Begin Source File
SOURCE=..\..\..\..\C\MtDec.c
# SUBTRACT CPP /YX /Yc /Yu
# End Source File
# Begin Source File
SOURCE=..\..\..\..\C\MtDec.h
# End Source File
# Begin Source File
SOURCE=..\..\..\..\C\Threads.c
# SUBTRACT CPP /YX /Yc /Yu
# End Source File
# Begin Source File
SOURCE=..\..\..\..\C\Threads.h
# End Source File
# End Group
# Begin Group "7zip"
# PROP Default_Filter ""
# Begin Source File
SOURCE=..\..\Archive\IArchive.h
# End Source File
# Begin Source File
SOURCE=..\..\ICoder.h
# End Source File
# Begin Source File
SOURCE=..\..\IDecl.h
# End Source File
# Begin Source File
SOURCE=..\..\IPassword.h
# End Source File
# Begin Source File
SOURCE=..\..\IProgress.h
# End Source File
# End Group
# Begin Source File
SOURCE=.\ExtractCallbackSfx.cpp
# End Source File
# Begin Source File
SOURCE=.\ExtractCallbackSfx.h
# End Source File
# Begin Source File
SOURCE=.\ExtractEngine.cpp
# End Source File
# Begin Source File
SOURCE=.\ExtractEngine.h
# End Source File
# Begin Source File
SOURCE=.\setup.ico
# End Source File
# Begin Source File
SOURCE=.\SfxSetup.cpp
# End Source File
# End Target
# End Project
@@ -0,0 +1,29 @@
Microsoft Developer Studio Workspace File, Format Version 6.00
# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
###############################################################################
Project: "SFXSetup"=.\SFXSetup.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
}}}
###############################################################################
Global:
Package=<5>
{{{
}}}
Package=<3>
{{{
}}}
###############################################################################
@@ -0,0 +1,359 @@
// Main.cpp
#include "StdAfx.h"
#include "../../../../C/DllSecur.h"
#include "../../../Common/MyWindows.h"
#include "../../../Common/MyInitGuid.h"
#include "../../../Common/CommandLineParser.h"
#include "../../../Common/StringConvert.h"
#include "../../../Common/TextConfig.h"
#include "../../../Windows/DLL.h"
#include "../../../Windows/ErrorMsg.h"
#include "../../../Windows/FileDir.h"
#include "../../../Windows/FileFind.h"
#include "../../../Windows/FileIO.h"
#include "../../../Windows/FileName.h"
#include "../../../Windows/NtCheck.h"
#include "../../../Windows/ResourceString.h"
#include "../../UI/Explorer/MyMessages.h"
#include "ExtractEngine.h"
#include "resource.h"
using namespace NWindows;
using namespace NFile;
using namespace NDir;
extern
HINSTANCE g_hInstance;
HINSTANCE g_hInstance;
extern
bool g_DisableUserQuestions;
bool g_DisableUserQuestions;
static CFSTR const kTempDirPrefix = FTEXT("7zS");
#define MY_SHELL_EXECUTE
static bool ReadDataString(CFSTR fileName, LPCSTR startID,
LPCSTR endID, AString &stringResult)
{
stringResult.Empty();
NIO::CInFile inFile;
if (!inFile.Open(fileName))
return false;
const size_t kBufferSize = 1 << 12;
Byte buffer[kBufferSize];
const size_t signatureStartSize = MyStringLen(startID + 1);
const size_t signatureEndSize = MyStringLen(endID + 1);
size_t numBytesPrev = 0;
bool writeMode = false;
UInt32 posTotal = 0;
for (;;)
{
const size_t numReadBytes = kBufferSize - numBytesPrev;
size_t processedSize;
if (!inFile.ReadFull(buffer + numBytesPrev, numReadBytes, processedSize))
return false;
if (processedSize == 0)
return true;
numBytesPrev += processedSize;
size_t pos = 0;
for (;;)
{
if (writeMode)
{
if (pos + signatureEndSize > numBytesPrev)
break;
const Byte b = buffer[pos++];
if (b == 0)
return false;
if (b == ';' && memcmp(buffer + pos, endID + 1, signatureEndSize) == 0)
return true;
stringResult += (char)b;
}
else
{
if (pos + signatureStartSize > numBytesPrev)
break;
const Byte b = buffer[pos++];
if (b == ';' && memcmp(buffer + pos, startID + 1, signatureStartSize) == 0)
{
writeMode = true;
pos += signatureStartSize;
}
}
}
posTotal += (UInt32)pos;
if (posTotal > (1 << 21))
return stringResult.IsEmpty();
numBytesPrev -= pos;
memmove(buffer, buffer + pos, numBytesPrev);
}
}
static const char * const kStartID = ",!@Install@!UTF-8!";
static const char * const kEndID = ",!@InstallEnd@!";
#if defined(_WIN32) && defined(_UNICODE) && !defined(_WIN64) && !defined(UNDER_CE)
#define NT_CHECK_FAIL_ACTION ShowErrorMessage(L"Unsupported Windows version"); return 1;
#endif
static void ShowErrorMessageSpec(const UString &name)
{
UString message = NError::MyFormatMessage(::GetLastError());
const int pos = message.Find(L"%1");
if (pos >= 0)
{
message.Delete((unsigned)pos, 2);
message.Insert((unsigned)pos, name);
}
ShowErrorMessage(NULL, message);
}
int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE /* hPrevInstance */,
#ifdef UNDER_CE
LPWSTR
#else
LPSTR
#endif
/* lpCmdLine */,int /* nCmdShow */)
{
g_hInstance = (HINSTANCE)hInstance;
NT_CHECK
#ifdef _WIN32
LoadSecurityDlls();
#endif
// InitCommonControls();
UString archiveName, switches;
#ifdef MY_SHELL_EXECUTE
UString executeFile, executeParameters;
#endif
NCommandLineParser::SplitCommandLine(GetCommandLineW(), archiveName, switches);
FString fullPath;
NDLL::MyGetModuleFileName(fullPath);
switches.Trim();
bool assumeYes = false;
if (switches.IsPrefixedBy_Ascii_NoCase("-y"))
{
assumeYes = true;
switches = switches.Ptr(2);
switches.Trim();
}
AString config;
if (!ReadDataString(fullPath, kStartID, kEndID, config))
{
if (!assumeYes)
ShowErrorMessage(L"Can't load config info");
return 1;
}
UString dirPrefix ("." STRING_PATH_SEPARATOR);
UString appLaunched;
bool showProgress = true;
if (!config.IsEmpty())
{
CObjectVector<CTextConfigPair> pairs;
if (!GetTextConfig(config, pairs))
{
if (!assumeYes)
ShowErrorMessage(L"Config failed");
return 1;
}
const UString friendlyName = GetTextConfigValue(pairs, "Title");
const UString installPrompt = GetTextConfigValue(pairs, "BeginPrompt");
const UString progress = GetTextConfigValue(pairs, "Progress");
if (progress.IsEqualTo_Ascii_NoCase("no"))
showProgress = false;
const int index = FindTextConfigItem(pairs, "Directory");
if (index >= 0)
dirPrefix = pairs[index].String;
if (!installPrompt.IsEmpty() && !assumeYes)
{
if (MessageBoxW(NULL, installPrompt, friendlyName, MB_YESNO |
MB_ICONQUESTION) != IDYES)
return 0;
}
appLaunched = GetTextConfigValue(pairs, "RunProgram");
#ifdef MY_SHELL_EXECUTE
executeFile = GetTextConfigValue(pairs, "ExecuteFile");
executeParameters = GetTextConfigValue(pairs, "ExecuteParameters");
#endif
}
CTempDir tempDir;
if (!tempDir.Create(kTempDirPrefix))
{
if (!assumeYes)
ShowErrorMessage(L"Cannot create temp folder archive");
return 1;
}
CCodecs *codecs = new CCodecs;
CMyComPtr<IUnknown> compressCodecsInfo = codecs;
{
const HRESULT result = codecs->Load();
if (result != S_OK)
{
ShowErrorMessage(L"Cannot load codecs");
return 1;
}
}
const FString tempDirPath = tempDir.GetPath();
// tempDirPath = "M:\\1\\"; // to test low disk space
{
bool isCorrupt = false;
UString errorMessage;
HRESULT result = ExtractArchive(codecs, fullPath, tempDirPath, showProgress,
isCorrupt, errorMessage);
if (result != S_OK)
{
if (!assumeYes)
{
if (result == S_FALSE || isCorrupt)
{
NWindows::MyLoadString(IDS_EXTRACTION_ERROR_MESSAGE, errorMessage);
result = E_FAIL;
}
if (result != E_ABORT)
{
if (errorMessage.IsEmpty())
errorMessage = NError::MyFormatMessage(result);
::MessageBoxW(NULL, errorMessage, NWindows::MyLoadString(IDS_EXTRACTION_ERROR_TITLE), MB_ICONERROR);
}
}
return 1;
}
}
#ifndef UNDER_CE
CCurrentDirRestorer currentDirRestorer;
if (!SetCurrentDir(tempDirPath))
return 1;
#endif
HANDLE hProcess = NULL;
#ifdef MY_SHELL_EXECUTE
if (!executeFile.IsEmpty())
{
CSysString filePath (GetSystemString(executeFile));
SHELLEXECUTEINFO execInfo;
execInfo.cbSize = sizeof(execInfo);
execInfo.fMask = SEE_MASK_NOCLOSEPROCESS
#ifndef UNDER_CE
| SEE_MASK_FLAG_DDEWAIT
#endif
;
execInfo.hwnd = NULL;
execInfo.lpVerb = NULL;
execInfo.lpFile = filePath;
if (!switches.IsEmpty())
{
executeParameters.Add_Space_if_NotEmpty();
executeParameters += switches;
}
const CSysString parametersSys (GetSystemString(executeParameters));
if (parametersSys.IsEmpty())
execInfo.lpParameters = NULL;
else
execInfo.lpParameters = parametersSys;
execInfo.lpDirectory = NULL;
execInfo.nShow = SW_SHOWNORMAL;
execInfo.hProcess = NULL;
/* BOOL success = */ ::ShellExecuteEx(&execInfo);
UINT32 result = (UINT32)(UINT_PTR)execInfo.hInstApp;
if (result <= 32)
{
if (!assumeYes)
ShowErrorMessage(L"Cannot open file");
return 1;
}
hProcess = execInfo.hProcess;
}
else
#endif
{
if (appLaunched.IsEmpty())
{
appLaunched = "setup.exe";
if (!NFind::DoesFileExist_FollowLink(us2fs(appLaunched)))
{
if (!assumeYes)
ShowErrorMessage(L"Cannot find setup.exe");
return 1;
}
}
{
FString s2 = tempDirPath;
NName::NormalizeDirPathPrefix(s2);
appLaunched.Replace(L"%%T" WSTRING_PATH_SEPARATOR, fs2us(s2));
}
const UString appNameForError = appLaunched; // actually we need to rtemove parameters also
appLaunched.Replace(L"%%T", fs2us(tempDirPath));
if (!switches.IsEmpty())
{
appLaunched.Add_Space();
appLaunched += switches;
}
STARTUPINFO startupInfo;
startupInfo.cb = sizeof(startupInfo);
startupInfo.lpReserved = NULL;
startupInfo.lpDesktop = NULL;
startupInfo.lpTitle = NULL;
startupInfo.dwFlags = 0;
startupInfo.cbReserved2 = 0;
startupInfo.lpReserved2 = NULL;
PROCESS_INFORMATION processInformation;
const CSysString appLaunchedSys (GetSystemString(dirPrefix + appLaunched));
const BOOL createResult = CreateProcess(NULL,
appLaunchedSys.Ptr_non_const(),
NULL, NULL, FALSE, 0, NULL, NULL /*tempDir.GetPath() */,
&startupInfo, &processInformation);
if (createResult == 0)
{
if (!assumeYes)
{
// we print name of exe file, if error message is
// ERROR_BAD_EXE_FORMAT: "%1 is not a valid Win32 application".
ShowErrorMessageSpec(appNameForError);
}
return 1;
}
::CloseHandle(processInformation.hThread);
hProcess = processInformation.hProcess;
}
if (hProcess)
{
WaitForSingleObject(hProcess, INFINITE);
::CloseHandle(hProcess);
}
return 0;
}
@@ -0,0 +1,3 @@
// StdAfx.cpp
#include "StdAfx.h"
@@ -0,0 +1,6 @@
// StdAfx.h
#if _MSC_VER >= 1800
#pragma warning(disable : 4464) // relative include path contains '..'
#endif
#include "../../UI/FileManager/StdAfx.h"
@@ -0,0 +1,121 @@
PROG = 7zS.sfx
MY_FIXED = 1
CFLAGS = $(CFLAGS) \
-DZ7_NO_REGISTRY \
-DZ7_EXTRACT_ONLY \
-DZ7_NO_READ_FROM_CODER \
-DZ7_SFX \
-DZ7_NO_CRYPTO \
-DZ7_NO_LONG_PATH \
-DZ7_NO_LARGE_PAGES \
CURRENT_OBJS = \
$O\SfxSetup.obj \
$O\ExtractCallbackSfx.obj \
$O\ExtractEngine.obj \
COMMON_OBJS = \
$O\CommandLineParser.obj \
$O\CRC.obj \
$O\IntToString.obj \
$O\NewHandler.obj \
$O\MyString.obj \
$O\StringConvert.obj \
$O\TextConfig.obj \
$O\UTFConvert.obj \
$O\MyVector.obj \
$O\Wildcard.obj \
WIN_OBJS = \
$O\DLL.obj \
$O\ErrorMsg.obj \
$O\FileDir.obj \
$O\FileFind.obj \
$O\FileIO.obj \
$O\FileName.obj \
$O\PropVariant.obj \
$O\ResourceString.obj \
$O\Synchronization.obj \
$O\System.obj \
$O\TimeUtils.obj \
$O\Window.obj \
WIN_CTRL_OBJS = \
$O\Dialog.obj \
7ZIP_COMMON_OBJS = \
$O\CreateCoder.obj \
$O\CWrappers.obj \
$O\FileStreams.obj \
$O\InBuffer.obj \
$O\FilterCoder.obj \
$O\LimitedStreams.obj \
$O\OutBuffer.obj \
$O\ProgressUtils.obj \
$O\PropId.obj \
$O\StreamBinder.obj \
$O\StreamObjects.obj \
$O\StreamUtils.obj \
$O\VirtThread.obj \
UI_COMMON_OBJS = \
$O\ArchiveOpenCallback.obj \
$O\DefaultName.obj \
$O\LoadCodecs.obj \
$O\OpenArchive.obj \
EXPLORER_OBJS = \
$O\MyMessages.obj \
FM_OBJS = \
$O\FormatUtils.obj \
$O\ProgressDialog.obj \
AR_COMMON_OBJS = \
$O\CoderMixer2.obj \
$O\ItemNameUtils.obj \
$O\OutStreamWithCRC.obj \
7Z_OBJS = \
$O\7zDecode.obj \
$O\7zExtract.obj \
$O\7zHandler.obj \
$O\7zIn.obj \
$O\7zRegister.obj \
COMPRESS_OBJS = \
$O\Bcj2Coder.obj \
$O\Bcj2Register.obj \
$O\BcjCoder.obj \
$O\BcjRegister.obj \
$O\BranchMisc.obj \
$O\BranchRegister.obj \
$O\CopyCoder.obj \
$O\CopyRegister.obj \
$O\DeltaFilter.obj \
$O\Lzma2Decoder.obj \
$O\Lzma2Register.obj \
$O\LzmaDecoder.obj \
$O\LzmaRegister.obj \
C_OBJS = \
$O\7zStream.obj \
$O\Alloc.obj \
$O\Bcj2.obj \
$O\Bra.obj \
$O\Bra86.obj \
$O\BraIA64.obj \
$O\CpuArch.obj \
$O\Delta.obj \
$O\DllSecur.obj \
$O\Lzma2Dec.obj \
$O\Lzma2DecMt.obj \
$O\LzmaDec.obj \
$O\MtDec.obj \
$O\Threads.obj \
!include "../../Crc.mak"
!include "../../LzmaDec.mak"
!include "../../7zip.mak"
@@ -0,0 +1,6 @@
#define IDI_ICON 1
#define IDS_EXTRACTION_ERROR_TITLE 7
#define IDS_EXTRACTION_ERROR_MESSAGE 8
#define IDS_CANNOT_CREATE_FOLDER 3003
#define IDS_PROGRESS_EXTRACTING 3300
@@ -0,0 +1,16 @@
#include "../../MyVersionInfo.rc"
#include "resource.h"
MY_VERSION_INFO_APP("7z Setup SFX", "7zS.sfx")
IDI_ICON ICON "setup.ico"
STRINGTABLE
BEGIN
IDS_EXTRACTION_ERROR_TITLE "Extraction Failed"
IDS_EXTRACTION_ERROR_MESSAGE "File is corrupt"
IDS_CANNOT_CREATE_FOLDER "Cannot create folder '{0}'"
IDS_PROGRESS_EXTRACTING "Extracting"
END
#include "../../UI/FileManager/ProgressDialog.rc"
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

File diff suppressed because it is too large Load Diff
@@ -0,0 +1,29 @@
Microsoft Developer Studio Workspace File, Format Version 6.00
# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
###############################################################################
Project: "SFXWin"=.\SFXWin.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
}}}
###############################################################################
Global:
Package=<5>
{{{
}}}
Package=<3>
{{{
}}}
###############################################################################
@@ -0,0 +1,268 @@
// Main.cpp
#include "StdAfx.h"
#include "../../../Common/MyWindows.h"
#if defined(__MINGW32__) || defined(__MINGW64__)
#include <shlwapi.h>
#else
#include <Shlwapi.h>
#endif
#include "../../../../C/DllSecur.h"
#include "../../../Common/MyInitGuid.h"
#include "../../../Common/CommandLineParser.h"
#include "../../../Common/StringConvert.h"
#include "../../../Windows/DLL.h"
#include "../../../Windows/ErrorMsg.h"
#include "../../../Windows/FileDir.h"
#include "../../../Windows/FileName.h"
#include "../../../Windows/NtCheck.h"
#include "../../../Windows/ResourceString.h"
#include "../../ICoder.h"
#include "../../IPassword.h"
#include "../../Archive/IArchive.h"
#include "../../UI/Common/Extract.h"
#include "../../UI/Common/ExitCode.h"
#include "../../UI/Explorer/MyMessages.h"
#include "../../UI/FileManager/MyWindowsNew.h"
#include "../../UI/GUI/ExtractGUI.h"
#include "../../UI/GUI/ExtractRes.h"
using namespace NWindows;
using namespace NFile;
using namespace NDir;
extern
HINSTANCE g_hInstance;
HINSTANCE g_hInstance;
extern
bool g_DisableUserQuestions;
bool g_DisableUserQuestions;
#ifndef UNDER_CE
#if !defined(Z7_WIN32_WINNT_MIN) || Z7_WIN32_WINNT_MIN < 0x0500 // win2000
#define Z7_USE_DYN_ComCtl32Version
#endif
#ifdef Z7_USE_DYN_ComCtl32Version
Z7_DIAGNOSTIC_IGNORE_CAST_FUNCTION
static DWORD GetDllVersion(LPCTSTR dllName)
{
DWORD dwVersion = 0;
const HINSTANCE hinstDll = LoadLibrary(dllName);
if (hinstDll)
{
const
DLLGETVERSIONPROC func_DllGetVersion = Z7_GET_PROC_ADDRESS(
DLLGETVERSIONPROC, hinstDll, "DllGetVersion");
if (func_DllGetVersion)
{
DLLVERSIONINFO dvi;
ZeroMemory(&dvi, sizeof(dvi));
dvi.cbSize = sizeof(dvi);
const HRESULT hr = func_DllGetVersion(&dvi);
if (SUCCEEDED(hr))
dwVersion = (DWORD)MAKELONG(dvi.dwMinorVersion, dvi.dwMajorVersion);
}
FreeLibrary(hinstDll);
}
return dwVersion;
}
#endif
#endif
extern
bool g_LVN_ITEMACTIVATE_Support;
bool g_LVN_ITEMACTIVATE_Support = true;
static const wchar_t * const kUnknownExceptionMessage = L"ERROR: Unknown Error!";
static void ErrorMessageForHRESULT(HRESULT res)
{
ShowErrorMessage(HResultToMessage(res));
}
static int APIENTRY WinMain2()
{
// OleInitialize is required for ProgressBar in TaskBar.
#ifndef UNDER_CE
OleInitialize(NULL);
#endif
#ifndef UNDER_CE
#ifdef Z7_USE_DYN_ComCtl32Version
{
const DWORD g_ComCtl32Version = ::GetDllVersion(TEXT("comctl32.dll"));
g_LVN_ITEMACTIVATE_Support = (g_ComCtl32Version >= MAKELONG(71, 4));
}
#endif
#endif
UString password;
bool assumeYes = false;
bool outputFolderDefined = false;
FString outputFolder;
UStringVector commandStrings;
NCommandLineParser::SplitCommandLine(GetCommandLineW(), commandStrings);
#ifndef UNDER_CE
if (commandStrings.Size() > 0)
commandStrings.Delete(0);
#endif
FOR_VECTOR (i, commandStrings)
{
const UString &s = commandStrings[i];
if (s.Len() > 1 && s[0] == '-')
{
const wchar_t c = MyCharLower_Ascii(s[1]);
if (c == 'y')
{
assumeYes = true;
if (s.Len() != 2)
{
ShowErrorMessage(L"Bad command");
return 1;
}
}
else if (c == 'o')
{
outputFolder = us2fs(s.Ptr(2));
NName::NormalizeDirPathPrefix(outputFolder);
outputFolderDefined = !outputFolder.IsEmpty();
}
else if (c == 'p')
{
password = s.Ptr(2);
}
}
}
g_DisableUserQuestions = assumeYes;
FString path;
NDLL::MyGetModuleFileName(path);
FString fullPath;
if (!MyGetFullPathName(path, fullPath))
{
ShowErrorMessage(L"Error 1329484");
return 1;
}
CCodecs *codecs = new CCodecs;
CMyComPtr<IUnknown> compressCodecsInfo = codecs;
HRESULT result = codecs->Load();
if (result != S_OK)
{
ErrorMessageForHRESULT(result);
return 1;
}
// COpenCallbackGUI openCallback;
// openCallback.PasswordIsDefined = !password.IsEmpty();
// openCallback.Password = password;
CExtractCallbackImp *ecs = new CExtractCallbackImp;
CMyComPtr<IFolderArchiveExtractCallback> extractCallback = ecs;
ecs->Init();
#ifndef Z7_NO_CRYPTO
ecs->PasswordIsDefined = !password.IsEmpty();
ecs->Password = password;
#endif
CExtractOptions eo;
FString dirPrefix;
if (!GetOnlyDirPrefix(path, dirPrefix))
{
ShowErrorMessage(L"Error 1329485");
return 1;
}
eo.OutputDir = outputFolderDefined ? outputFolder : dirPrefix;
eo.YesToAll = assumeYes;
eo.OverwriteMode = assumeYes ?
NExtract::NOverwriteMode::kOverwrite :
NExtract::NOverwriteMode::kAsk;
eo.PathMode = NExtract::NPathMode::kFullPaths;
eo.TestMode = false;
UStringVector v1, v2;
v1.Add(fs2us(fullPath));
v2.Add(fs2us(fullPath));
NWildcard::CCensorNode wildcardCensor;
wildcardCensor.Add_Wildcard();
bool messageWasDisplayed = false;
result = ExtractGUI(codecs,
CObjectVector<COpenType>(), CIntVector(),
v1, v2,
wildcardCensor, eo, (assumeYes ? false: true), messageWasDisplayed, ecs);
if (result == S_OK)
{
if (!ecs->IsOK())
return NExitCode::kFatalError;
return 0;
}
if (result == E_ABORT)
return NExitCode::kUserBreak;
if (!messageWasDisplayed)
{
if (result == S_FALSE)
ShowErrorMessage(L"Error in archive");
else
ErrorMessageForHRESULT(result);
}
if (result == E_OUTOFMEMORY)
return NExitCode::kMemoryError;
return NExitCode::kFatalError;
}
#if defined(_WIN32) && defined(_UNICODE) && !defined(_WIN64) && !defined(UNDER_CE)
#define NT_CHECK_FAIL_ACTION ShowErrorMessage(L"Unsupported Windows version"); return NExitCode::kFatalError;
#endif
int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE /* hPrevInstance */,
#ifdef UNDER_CE
LPWSTR
#else
LPSTR
#endif
/* lpCmdLine */, int /* nCmdShow */)
{
g_hInstance = (HINSTANCE)hInstance;
NT_CHECK
try
{
#ifdef _WIN32
LoadSecurityDlls();
#endif
return WinMain2();
}
catch(const CNewException &)
{
ErrorMessageForHRESULT(E_OUTOFMEMORY);
return NExitCode::kMemoryError;
}
catch(...)
{
ShowErrorMessage(kUnknownExceptionMessage);
return NExitCode::kFatalError;
}
}
@@ -0,0 +1,3 @@
// StdAfx.cpp
#include "StdAfx.h"
@@ -0,0 +1,6 @@
// StdAfx.h
#if _MSC_VER >= 1800
#pragma warning(disable : 4464) // relative include path contains '..'
#endif
#include "../../UI/FileManager/StdAfx.h"

Some files were not shown because too many files have changed in this diff Show More