OSDN Git Service

Merge from rev.7128:7151
authorsdottaka <none@none>
Sun, 23 May 2010 12:58:54 +0000 (21:58 +0900)
committersdottaka <none@none>
Sun, 23 May 2010 12:58:54 +0000 (21:58 +0900)
36 files changed:
1  2 
ArchiveSupport/Merge7z/Merge7z453.cpp
ArchiveSupport/Merge7z/Merge7z457.dsp
ArchiveSupport/Merge7z/Merge7z457.dsw
ArchiveSupport/Merge7z/Merge7z458.dsp
ArchiveSupport/Merge7z/Merge7z465.dsp
ArchiveSupport/Merge7z/Merge7z465X64.vcproj
ArchiveSupport/Merge7z/Merge7zCommon.cpp
ArchiveSupport/Merge7z/Merge7zCommon.h
ArchiveSupport/Merge7z/Merge7zCommon453.cpp
ArchiveSupport/Merge7z/Merge7zCommon453.h
ArchiveSupport/Merge7z/readme.txt
ArchiveSupport/Merge7z/revision.txt
ArchiveSupport/Merge7z/revision453.txt
ArchiveSupport/Merge7zInstaller/Files.rc2
ArchiveSupport/Merge7zInstaller/Installer.cpp
ArchiveSupport/Merge7zInstaller/Installer.rc
Installer/InnoSetup/WinMerge.iss
Src/7zCommon.cpp
Src/AnsiConvert.cpp
Src/Common/UnicodeString.cpp
Src/Common/coretools.cpp
Src/CompareEngines/TimeSizeCompare.cpp
Src/DiffFileData.cpp
Src/FileTextEncoding.cpp
Src/FileTextEncoding.h
Src/FilterList.cpp
Src/HexMergeDoc.cpp
Src/HexMergeDoc.h
Src/HexMergeFrm.cpp
Src/HexMergeFrm.h
Src/HexMergeView.cpp
Src/MergeDiffDetailView.cpp
Src/MergeEditView.cpp
Src/codepage_detect.cpp
Src/stringdiffs.cpp
Translations/WinMerge/English.pot

 -/*/Merge7z453.cpp\r
 -\r
 -Copyright (c) Jochen Neubeck\r
 -\r
 -This library is free software; you can redistribute it and/or\r
 -modify it under the terms of the GNU Lesser General Public\r
 -License as published by the Free Software Foundation; either\r
 -version 2.1 of the License, or (at your option) any later version.\r
 -\r
 -This library is distributed in the hope that it will be useful,\r
 -but WITHOUT ANY WARRANTY; without even the implied warranty of\r
 -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\r
 -Lesser General Public License for more details.\r
 -\r
 -You should have received a copy of the GNU Lesser General Public\r
 -License along with this library; if not, write to the Free Software\r
 -Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA\r
 -\r
 -Please mind 2. b) of the GNU LGPL terms, and log your changes below.\r
 -\r
 -DATE:         BY:                                     DESCRIPTION:\r
 -==========    ==================      ================================================\r
 -2007-08-30    Jochen Neubeck          Branched from Merge7z409.cpp\r
 -*/\r
 -\r
 -#include "stdafx.h"\r
 -\r
 -#define INITGUID\r
 -#include <initguid.h>\r
 -\r
 -#include "Merge7zCommon.h"\r
 -\r
 -#include "7zip/UI/FileManager/OpenCallback.h"\r
 -#include "7zip/UI/FileManager/ExtractCallback.h"\r
 -\r
 -#include "7zip/UI/Common/ArchiveExtractCallback.h"\r
 -#include "7zip/UI/GUI/UpdateCallbackGUI.h"\r
 -\r
 -#include "Windows/Thread.h"\r
 -\r
 -/**\r
 - * @brief Extraction thread\r
 - */\r
 -class CThreadExtracting : CThread\r
 -{\r
 -protected:\r
 -      THREAD_FUNC_RET_TYPE Process()\r
 -      {\r
 -              ExtractCallbackSpec->ProgressDialog.WaitCreating();\r
 -              result = Archive->Extract(indices, numItems, false, ArchiveExtractCallback);\r
 -              ExtractCallbackSpec->ProgressDialog.MyClose();\r
 -              return 0;\r
 -      }\r
 -      static THREAD_FUNC_RET_TYPE WINAPI Process(void *param)\r
 -      {\r
 -              return ((CThreadExtracting *)param)->Process();\r
 -      }\r
 -      CExtractCallbackImp *ExtractCallbackSpec;\r
 -      IInArchive *Archive;\r
 -      IArchiveExtractCallback *ArchiveExtractCallback;\r
 -      const UINT32 *indices;\r
 -      UINT32 numItems;\r
 -public:\r
 -      HRESULT result;\r
 -\r
 -      CThreadExtracting\r
 -      (\r
 -              CExtractCallbackImp *ExtractCallbackSpec,\r
 -              IInArchive *Archive,\r
 -              IArchiveExtractCallback *ArchiveExtractCallback,\r
 -              const CSysString &title,\r
 -              const UINT32 *indices = 0,\r
 -              UINT32 numItems = -1\r
 -      ):\r
 -              ExtractCallbackSpec(ExtractCallbackSpec),\r
 -              Archive(Archive),\r
 -              ArchiveExtractCallback(ArchiveExtractCallback),\r
 -              indices(indices),\r
 -              numItems(numItems)\r
 -      {\r
 -              result = E_FAIL;\r
 -              if (HRESULT hr = Create(Process, this))\r
 -              {\r
 -                      Complain(hr, NULL);\r
 -              }\r
 -              ExtractCallbackSpec->StartProgressDialog(GetUnicodeString(title));\r
 -      }\r
 -};\r
 -\r
 -/**\r
 - * @brief Initialize Inspector\r
 - */\r
 -Format7zDLL::Interface::Inspector::Inspector(Format7zDLL::Interface *format, LPCTSTR path)\r
 -: format(format), archive(0), file(0), callback(0), path(path), ustrDefaultName(GetUnicodeString(path))\r
 -{\r
 -}\r
 -\r
 -/**\r
 - * @brief Initialize Inspector\r
 - */\r
 -void Format7zDLL::Interface::Inspector::Init(HWND hwndParent)\r
 -{\r
 -      format->GetDefaultName(hwndParent, ustrDefaultName);\r
 -      COpenArchiveCallback *callbackImpl = new COpenArchiveCallback;\r
 -      //COpenCallbackImp *callbackImpl = new COpenCallbackImp;\r
 -      (archive = format->GetInArchive()) -> AddRef();\r
 -      (file = new CInFileStream) -> AddRef();\r
 -      (callback = callbackImpl) -> AddRef();\r
 -      callbackImpl->PasswordIsDefined = false;\r
 -      callbackImpl->ParentWindow = hwndParent;\r
 -      /*CMyComBSTR password;\r
 -      callback->CryptoGetTextPassword(&password);*/\r
 -      if COMPLAIN(!NFile::NFind::FindFile(path, fileInfo))\r
 -      {\r
 -              Complain(ERROR_FILE_NOT_FOUND, path);\r
 -      }\r
 -      if COMPLAIN(!file->Open(path))\r
 -      {\r
 -              Complain(ERROR_OPEN_FAILED, path);\r
 -      }\r
 -      if COMPLAIN(archive->Open(file, 0, callback) != S_OK)\r
 -      {\r
 -              Complain(ERROR_CANT_ACCESS_FILE, path);\r
 -      }\r
 -      passwordIsDefined = callbackImpl->PasswordIsDefined;\r
 -      password = callbackImpl->Password;\r
 -}\r
 -\r
 -/**\r
 - * @brief Extract set of items specified by index\r
 - */\r
 -HRESULT Format7zDLL::Interface::Inspector::Extract(HWND hwndParent, LPCTSTR folder, const UINT32 *indices, UINT32 numItems)\r
 -{\r
 -      CArchiveExtractCallback *extractCallbackSpec = 0;\r
 -      CExtractCallbackImp *extractCallbackSpec2 = 0;\r
 -      HRESULT result = 0;\r
 -      try\r
 -      {\r
 -              if (*folder)\r
 -              {\r
 -                      if COMPLAIN(!NFile::NDirectory::CreateComplexDirectory(folder))\r
 -                      {\r
 -                              Complain(ERROR_CANNOT_MAKE, folder);\r
 -                      }\r
 -              }\r
 -\r
 -              (extractCallbackSpec2 = new CExtractCallbackImp) -> AddRef();\r
 -\r
 -              extractCallbackSpec2->Init();\r
 -\r
 -              extractCallbackSpec2->ParentWindow = hwndParent;\r
 -              extractCallbackSpec2->OverwriteMode = NExtract::NOverwriteMode::kWithoutPrompt;\r
 -              extractCallbackSpec2->PasswordIsDefined = passwordIsDefined;\r
 -              extractCallbackSpec2->Password = password;\r
 -\r
 -              extractCallbackSpec2->ProgressDialog.MainWindow = 0;\r
 -              (extractCallbackSpec = new CArchiveExtractCallback) -> AddRef();\r
 -\r
 -              extractCallbackSpec->InitForMulti\r
 -              (\r
 -                      false,\r
 -                      NExtract::NPathMode::kFullPathnames,\r
 -                      NExtract::NOverwriteMode::kWithoutPrompt\r
 -              );\r
 -              extractCallbackSpec->Init\r
 -              (\r
 -                      archive, \r
 -                      extractCallbackSpec2,\r
 -                      false,                                                                                  //stdOutMode\r
 -                      GetUnicodeString(folder),\r
 -                      UStringVector(),\r
 -                      ustrDefaultName,\r
 -                      fileInfo.LastWriteTime,\r
 -                      fileInfo.Attributes,\r
 -                      (UInt64)(Int64)-1\r
 -              );\r
 -\r
 -              result = CThreadExtracting\r
 -              (\r
 -                      extractCallbackSpec2,\r
 -                      archive,\r
 -                      extractCallbackSpec,\r
 -                      PathFindFileName(path),\r
 -                      indices,\r
 -                      numItems\r
 -              ).result;\r
 -\r
 -              if COMPLAIN(extractCallbackSpec->_numErrors)\r
 -              {\r
 -                      //      There is no canned system message for this one, so it won't\r
 -                      //      localize. I can't help it.\r
 -                      Complain(_T("%s:\n%I64u error(s)"), path, extractCallbackSpec->_numErrors);\r
 -              }\r
 -              if COMPLAIN(result != S_OK && result != E_ABORT)\r
 -              {\r
 -                      Complain(result, path);\r
 -              }\r
 -      }\r
 -      catch (Complain *complain)\r
 -      {\r
 -              result = complain->Alert(hwndParent);\r
 -      }\r
 -      Release(static_cast<IArchiveExtractCallback*>(extractCallbackSpec));\r
 -      Release(static_cast<IFolderArchiveExtractCallback*>(extractCallbackSpec2));\r
 -      return result;\r
 -}\r
 -\r
 -/**\r
 - * @brief Compression thread\r
 - */\r
 -class CThreadUpdateCompress : CThread\r
 -{\r
 -protected:\r
 -      THREAD_FUNC_RET_TYPE Process()\r
 -      {\r
 -              updateCallbackGUI->ProgressDialog.WaitCreating();\r
 -              result = outArchive->UpdateItems(file, numItems, updateCallbackSpec);\r
 -              updateCallbackGUI->ProgressDialog.MyClose();\r
 -              return 0;\r
 -      }\r
 -      static THREAD_FUNC_RET_TYPE WINAPI Process(void *param)\r
 -      {\r
 -              return ((CThreadUpdateCompress *)param)->Process();\r
 -      }\r
 -      CUpdateCallbackGUI *updateCallbackGUI;\r
 -      IOutArchive *outArchive;\r
 -      CArchiveUpdateCallback *updateCallbackSpec;\r
 -      COutFileStream *file;\r
 -public:\r
 -      HRESULT result;\r
 -      UINT32 numItems;\r
 -      CThreadUpdateCompress\r
 -      (\r
 -              CUpdateCallbackGUI *updateCallbackGUI,\r
 -              IOutArchive *outArchive,\r
 -              CArchiveUpdateCallback *updateCallbackSpec,\r
 -              UINT32 numItems,\r
 -              COutFileStream *file,\r
 -              const CSysString &title\r
 -      ):\r
 -              updateCallbackGUI(updateCallbackGUI),\r
 -              outArchive(outArchive),\r
 -              updateCallbackSpec(updateCallbackSpec),\r
 -              numItems(numItems),\r
 -              file(file)\r
 -      {\r
 -              result = E_FAIL;\r
 -              if (HRESULT hr = Create(Process, this))\r
 -              {\r
 -                      Complain(hr, NULL);\r
 -              }\r
 -              updateCallbackGUI->StartProgressDialog(GetUnicodeString(title));\r
 -      }\r
 -};\r
 -\r
 -/**\r
 - * @brief Construct Updater\r
 - */\r
 -Format7zDLL::Interface::Updater::Updater(Format7zDLL::Interface *format, LPCTSTR path)\r
 -: format(format), outArchive(0), file(0), path(path)\r
 -{\r
 -}\r
 -\r
 -/**\r
 - * @brief Initialize Updater\r
 - */\r
 -void Format7zDLL::Interface::Updater::Init(HWND hwndParent)\r
 -{\r
 -      (outArchive = format->GetOutArchive()) -> AddRef();\r
 -      (file = new COutFileStream) -> AddRef();\r
 -      if COMPLAIN(!file->Create(path, true))\r
 -      {\r
 -              Complain(ERROR_CANNOT_MAKE, path);\r
 -      }\r
 -}\r
 -\r
 -/**\r
 - * @brief Commit update\r
 - */\r
 -HRESULT Format7zDLL::Interface::Updater::Commit(HWND hwndParent)\r
 -{\r
 -      CArchiveUpdateCallback *updateCallbackSpec = 0;\r
 -      CUpdateCallbackGUI *updateCallbackGUI = 0;\r
 -      HRESULT result = 0;\r
 -      try\r
 -      {\r
 -              //      Ref counts are not always accurate with 7-Zip.\r
 -              //      An extra AddRef() ensures that interfaces remain valid until they\r
 -              //      are explicitly released at the end of this function.\r
 -              (updateCallbackSpec = new CArchiveUpdateCallback) -> AddRef();\r
 -              (updateCallbackGUI = new CUpdateCallbackGUI);// -> AddRef();\r
 -\r
 -              // No items in dest archive. We always recreate the dest archive\r
 -              // Build the operationChain. One element per item\r
 -              CObjectVector<CUpdatePair2> operationChain;\r
 -              CUpdatePair2 pair2;\r
 -              pair2.IsAnti = false;\r
 -              pair2.ExistInArchive = false;\r
 -              pair2.ExistOnDisk = true;\r
 -              pair2.NewData = pair2.NewProperties = true;\r
 -\r
 -              operationChain.Reserve(dirItems.Size());\r
 -              int i;\r
 -              for (i = 0 ; i < dirItems.Size() ; i++)\r
 -              {\r
 -                      pair2.DirItemIndex = i;\r
 -                      operationChain.Add(pair2);\r
 -              }\r
 -\r
 -              /* The following code may or may not help implement update on existing\r
 -              /* archives, which is currently not supported.\r
 -              UINT32 fileTimeType;\r
 -              outArchive->GetFileTimeType(&fileTimeType);\r
 -\r
 -              CObjectVector<CUpdatePair> updatePairs;\r
 -              GetUpdatePairInfoList(dirItems, archiveItems, NFileTimeType::EEnum(fileTimeType), updatePairs); // must be done only once!!!\r
 -  \r
 -              CObjectVector<CUpdatePair2> operationChain;\r
 -              UpdateProduce(dirItems, archiveItems, updatePairs, NUpdateArchive::kAddActionSet, operationChain);*/\r
 -\r
 -              // Now compress...\r
 -              updateCallbackSpec->DirItems = &dirItems;\r
 -              updateCallbackSpec->ArchiveItems = &archiveItems;\r
 -              updateCallbackSpec->UpdatePairs = &operationChain;\r
 -              updateCallbackSpec->Callback = updateCallbackGUI;\r
 -\r
 -              result = CThreadUpdateCompress\r
 -              (\r
 -                      updateCallbackGUI,\r
 -                      outArchive,\r
 -                      updateCallbackSpec,\r
 -                      operationChain.Size(),\r
 -                      file,\r
 -                      PathFindFileName(path)\r
 -              ).result;\r
 -\r
 -              //result = outArchive->UpdateItems(file, operationChain.Size(), updateCallbackSpec);\r
 -              if COMPLAIN(result != S_OK && result != E_ABORT)\r
 -              {\r
 -                      Complain(result, path);\r
 -              }\r
 -      }\r
 -      catch (Complain *complain)\r
 -      {\r
 -              result = complain->Alert(hwndParent);\r
 -      }\r
 -      //      Always release interfaces in this order, or else all hell will break\r
 -      //      loose!\r
 -      Release(static_cast<IArchiveUpdateCallback*>(updateCallbackSpec));\r
 -      delete updateCallbackGUI;\r
 -      return result;\r
 -}\r
 +/*/Merge7z453.cpp
 +
 +Copyright (c) Jochen Neubeck
 +
 +This library is free software; you can redistribute it and/or
 +modify it under the terms of the GNU Lesser General Public
 +License as published by the Free Software Foundation; either
 +version 2.1 of the License, or (at your option) any later version.
 +
 +This library is distributed in the hope that it will be useful,
 +but WITHOUT ANY WARRANTY; without even the implied warranty of
 +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 +Lesser General Public License for more details.
 +
 +You should have received a copy of the GNU Lesser General Public
 +License along with this library; if not, write to the Free Software
 +Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 +
 +Please mind 2. b) of the GNU LGPL terms, and log your changes below.
 +
 +DATE:         BY:                                     DESCRIPTION:
 +==========    ==================      ================================================
 +2007-08-30    Jochen Neubeck          Branched from Merge7z409.cpp
 +*/
 +
 +#include "stdafx.h"
 +
 +#define INITGUID
 +#include <initguid.h>
 +
- #include "Merge7zCommon.h"
++#include "Merge7zCommon453.h"
 +
 +#include "7zip/UI/FileManager/OpenCallback.h"
 +#include "7zip/UI/FileManager/ExtractCallback.h"
 +
 +#include "7zip/UI/Common/ArchiveExtractCallback.h"
 +#include "7zip/UI/GUI/UpdateCallbackGUI.h"
 +
 +#include "Windows/Thread.h"
 +
 +/**
 + * @brief Extraction thread
 + */
 +class CThreadExtracting : NWindows::CThread
 +{
 +protected:
 +      THREAD_FUNC_RET_TYPE Process()
 +      {
 +              ExtractCallbackSpec->ProgressDialog.WaitCreating();
 +              result = Archive->Extract(indices, numItems, false, ArchiveExtractCallback);
 +              ExtractCallbackSpec->ProgressDialog.MyClose();
 +              return 0;
 +      }
 +      static THREAD_FUNC_RET_TYPE WINAPI Process(void *param)
 +      {
 +              return ((CThreadExtracting *)param)->Process();
 +      }
 +      CExtractCallbackImp *ExtractCallbackSpec;
 +      IInArchive *Archive;
 +      IArchiveExtractCallback *ArchiveExtractCallback;
 +      const UINT32 *indices;
 +      UINT32 numItems;
 +public:
 +      HRESULT result;
 +
 +      CThreadExtracting
 +      (
 +              CExtractCallbackImp *ExtractCallbackSpec,
 +              IInArchive *Archive,
 +              IArchiveExtractCallback *ArchiveExtractCallback,
 +              const CSysString &title,
 +              const UINT32 *indices = 0,
 +              UINT32 numItems = -1
 +      ):
 +              ExtractCallbackSpec(ExtractCallbackSpec),
 +              Archive(Archive),
 +              ArchiveExtractCallback(ArchiveExtractCallback),
 +              indices(indices),
 +              numItems(numItems)
 +      {
 +              result = E_FAIL;
 +              if (HRESULT hr = Create(Process, this))
 +              {
 +                      Complain(hr, NULL);
 +              }
 +              ExtractCallbackSpec->StartProgressDialog(GetUnicodeString(title));
 +      }
 +};
 +
 +/**
 + * @brief Initialize Inspector
 + */
 +Format7zDLL::Interface::Inspector::Inspector(Format7zDLL::Interface *format, LPCTSTR path)
 +: format(format), archive(0), file(0), callback(0), path(path), ustrDefaultName(GetUnicodeString(path))
 +{
 +}
 +
 +/**
 + * @brief Initialize Inspector
 + */
 +void Format7zDLL::Interface::Inspector::Init(HWND hwndParent)
 +{
 +      format->GetDefaultName(hwndParent, ustrDefaultName);
 +      COpenArchiveCallback *callbackImpl = new COpenArchiveCallback;
 +      //COpenCallbackImp *callbackImpl = new COpenCallbackImp;
 +      (archive = format->GetInArchive()) -> AddRef();
 +      (file = new CInFileStream) -> AddRef();
 +      (callback = callbackImpl) -> AddRef();
 +      callbackImpl->PasswordIsDefined = false;
 +      callbackImpl->ParentWindow = hwndParent;
 +      /*CMyComBSTR password;
 +      callback->CryptoGetTextPassword(&password);*/
 +      if COMPLAIN(!NFile::NFind::FindFile(path, fileInfo))
 +      {
 +              Complain(ERROR_FILE_NOT_FOUND, path);
 +      }
 +      if COMPLAIN(!file->Open(path))
 +      {
 +              Complain(ERROR_OPEN_FAILED, path);
 +      }
 +      if COMPLAIN(archive->Open(file, 0, callback) != S_OK)
 +      {
 +              Complain(ERROR_CANT_ACCESS_FILE, path);
 +      }
 +      passwordIsDefined = callbackImpl->PasswordIsDefined;
 +      password = callbackImpl->Password;
 +}
 +
 +/**
 + * @brief Extract set of items specified by index
 + */
 +HRESULT Format7zDLL::Interface::Inspector::Extract(HWND hwndParent, LPCTSTR folder, const UINT32 *indices, UINT32 numItems)
 +{
 +      CArchiveExtractCallback *extractCallbackSpec = 0;
 +      CExtractCallbackImp *extractCallbackSpec2 = 0;
 +      HRESULT result = 0;
 +      try
 +      {
 +              if (*folder)
 +              {
 +                      if COMPLAIN(!NFile::NDirectory::CreateComplexDirectory(folder))
 +                      {
 +                              Complain(ERROR_CANNOT_MAKE, folder);
 +                      }
 +              }
 +
 +              (extractCallbackSpec2 = new CExtractCallbackImp) -> AddRef();
 +
 +              extractCallbackSpec2->Init();
 +
 +              extractCallbackSpec2->ParentWindow = hwndParent;
 +              extractCallbackSpec2->OverwriteMode = NExtract::NOverwriteMode::kWithoutPrompt;
 +              extractCallbackSpec2->PasswordIsDefined = passwordIsDefined;
 +              extractCallbackSpec2->Password = password;
 +
 +              extractCallbackSpec2->ProgressDialog.MainWindow = 0;
 +              (extractCallbackSpec = new CArchiveExtractCallback) -> AddRef();
 +
 +              extractCallbackSpec->InitForMulti
 +              (
 +                      false,
 +                      NExtract::NPathMode::kFullPathnames,
 +                      NExtract::NOverwriteMode::kWithoutPrompt
 +              );
 +              extractCallbackSpec->Init
 +              (
 +                      archive, 
 +                      extractCallbackSpec2,
 +                      false,                                                                                  //stdOutMode
 +                      GetUnicodeString(folder),
 +                      UStringVector(),
 +                      ustrDefaultName,
 +                      fileInfo.LastWriteTime,
 +                      fileInfo.Attributes,
 +                      (UInt64)(Int64)-1
 +              );
 +
 +              result = CThreadExtracting
 +              (
 +                      extractCallbackSpec2,
 +                      archive,
 +                      extractCallbackSpec,
 +                      PathFindFileName(path),
 +                      indices,
 +                      numItems
 +              ).result;
 +
 +              if COMPLAIN(extractCallbackSpec->_numErrors)
 +              {
 +                      //      There is no canned system message for this one, so it won't
 +                      //      localize. I can't help it.
 +                      Complain(_T("%s:\n%I64u error(s)"), path, extractCallbackSpec->_numErrors);
 +              }
 +              if COMPLAIN(result != S_OK && result != E_ABORT)
 +              {
 +                      Complain(result, path);
 +              }
 +      }
 +      catch (Complain *complain)
 +      {
 +              result = complain->Alert(hwndParent);
 +      }
 +      Release(static_cast<IArchiveExtractCallback*>(extractCallbackSpec));
 +      Release(static_cast<IFolderArchiveExtractCallback*>(extractCallbackSpec2));
 +      return result;
 +}
 +
 +/**
 + * @brief Compression thread
 + */
 +class CThreadUpdateCompress : NWindows::CThread
 +{
 +protected:
 +      THREAD_FUNC_RET_TYPE Process()
 +      {
 +              updateCallbackGUI->ProgressDialog.WaitCreating();
 +              result = outArchive->UpdateItems(file, numItems, updateCallbackSpec);
 +              updateCallbackGUI->ProgressDialog.MyClose();
 +              return 0;
 +      }
 +      static THREAD_FUNC_RET_TYPE WINAPI Process(void *param)
 +      {
 +              return ((CThreadUpdateCompress *)param)->Process();
 +      }
 +      CUpdateCallbackGUI *updateCallbackGUI;
 +      IOutArchive *outArchive;
 +      CArchiveUpdateCallback *updateCallbackSpec;
 +      COutFileStream *file;
 +public:
 +      HRESULT result;
 +      UINT32 numItems;
 +      CThreadUpdateCompress
 +      (
 +              CUpdateCallbackGUI *updateCallbackGUI,
 +              IOutArchive *outArchive,
 +              CArchiveUpdateCallback *updateCallbackSpec,
 +              UINT32 numItems,
 +              COutFileStream *file,
 +              const CSysString &title
 +      ):
 +              updateCallbackGUI(updateCallbackGUI),
 +              outArchive(outArchive),
 +              updateCallbackSpec(updateCallbackSpec),
 +              numItems(numItems),
 +              file(file)
 +      {
 +              result = E_FAIL;
 +              if (HRESULT hr = Create(Process, this))
 +              {
 +                      Complain(hr, NULL);
 +              }
 +              updateCallbackGUI->StartProgressDialog(GetUnicodeString(title));
 +      }
 +};
 +
 +/**
 + * @brief Construct Updater
 + */
 +Format7zDLL::Interface::Updater::Updater(Format7zDLL::Interface *format, LPCTSTR path)
 +: format(format), outArchive(0), file(0), path(path)
 +{
 +}
 +
 +/**
 + * @brief Initialize Updater
 + */
 +void Format7zDLL::Interface::Updater::Init(HWND hwndParent)
 +{
 +      (outArchive = format->GetOutArchive()) -> AddRef();
 +      (file = new COutFileStream) -> AddRef();
 +      if COMPLAIN(!file->Create(path, true))
 +      {
 +              Complain(ERROR_CANNOT_MAKE, path);
 +      }
 +}
 +
 +/**
 + * @brief Commit update
 + */
 +HRESULT Format7zDLL::Interface::Updater::Commit(HWND hwndParent)
 +{
 +      CArchiveUpdateCallback *updateCallbackSpec = 0;
 +      CUpdateCallbackGUI *updateCallbackGUI = 0;
 +      HRESULT result = 0;
 +      try
 +      {
 +              //      Ref counts are not always accurate with 7-Zip.
 +              //      An extra AddRef() ensures that interfaces remain valid until they
 +              //      are explicitly released at the end of this function.
 +              (updateCallbackSpec = new CArchiveUpdateCallback) -> AddRef();
 +              (updateCallbackGUI = new CUpdateCallbackGUI);// -> AddRef();
 +
 +              // No items in dest archive. We always recreate the dest archive
 +              // Build the operationChain. One element per item
 +              CObjectVector<CUpdatePair2> operationChain;
 +              CUpdatePair2 pair2;
 +              pair2.IsAnti = false;
 +              pair2.ExistInArchive = false;
 +              pair2.ExistOnDisk = true;
 +              pair2.NewData = pair2.NewProperties = true;
 +
 +              operationChain.Reserve(dirItems.Size());
 +              int i;
 +              for (i = 0 ; i < dirItems.Size() ; i++)
 +              {
 +                      pair2.DirItemIndex = i;
 +                      operationChain.Add(pair2);
 +              }
 +
 +              /* The following code may or may not help implement update on existing
 +              /* archives, which is currently not supported.
 +              UINT32 fileTimeType;
 +              outArchive->GetFileTimeType(&fileTimeType);
 +
 +              CObjectVector<CUpdatePair> updatePairs;
 +              GetUpdatePairInfoList(dirItems, archiveItems, NFileTimeType::EEnum(fileTimeType), updatePairs); // must be done only once!!!
 +  
 +              CObjectVector<CUpdatePair2> operationChain;
 +              UpdateProduce(dirItems, archiveItems, updatePairs, NUpdateArchive::kAddActionSet, operationChain);*/
 +
 +              // Now compress...
 +              updateCallbackSpec->DirItems = &dirItems;
 +              updateCallbackSpec->ArchiveItems = &archiveItems;
 +              updateCallbackSpec->UpdatePairs = &operationChain;
 +              updateCallbackSpec->Callback = updateCallbackGUI;
 +
 +              result = CThreadUpdateCompress
 +              (
 +                      updateCallbackGUI,
 +                      outArchive,
 +                      updateCallbackSpec,
 +                      operationChain.Size(),
 +                      file,
 +                      PathFindFileName(path)
 +              ).result;
 +
 +              //result = outArchive->UpdateItems(file, operationChain.Size(), updateCallbackSpec);
 +              if COMPLAIN(result != S_OK && result != E_ABORT)
 +              {
 +                      Complain(result, path);
 +              }
 +      }
 +      catch (Complain *complain)
 +      {
 +              result = complain->Alert(hwndParent);
 +      }
 +      //      Always release interfaces in this order, or else all hell will break
 +      //      loose!
 +      Release(static_cast<IArchiveUpdateCallback*>(updateCallbackSpec));
 +      delete updateCallbackGUI;
 +      return result;
 +}
@@@ -164,11 -164,11 +164,11 @@@ SOURCE=.\Merge7z453.cp
  # End Source File\r
  # Begin Source File\r
  \r
--SOURCE=.\Merge7zCommon.cpp\r
++SOURCE=.\Merge7zCommon453.cpp\r
  # End Source File\r
  # Begin Source File\r
  \r
--SOURCE=.\Merge7zCommon.h\r
++SOURCE=.\Merge7zCommon453.h\r
  # End Source File\r
  # Begin Source File\r
  \r
index 02d03db,0000000..6db2678
mode 100644,000000..100644
--- /dev/null
@@@ -1,29 -1,0 +1,29 @@@
- Microsoft Developer Studio Workspace File, Format Version 6.00
- # \8cx\8d\90\82±\82ÌÜ°¸½Íß°½ Ì§²Ù \82ð\95Ò\8fW\82Ü\82½\82Í\8dí\8f\9c\82µ\82È\82¢\82Å\82­\82¾\82³\82¢!
- ###############################################################################
- Project: "Merge7z457"=".\Merge7z457.dsp" - Package Owner=<4>
- Package=<5>
- {{{
- }}}
- Package=<4>
- {{{
- }}}
- ###############################################################################
- Global:
- Package=<5>
- {{{
- }}}
- Package=<3>
- {{{
- }}}
- ###############################################################################
++Microsoft Developer Studio Workspace File, Format Version 6.00\r
++# \8cx\8d\90\82±\82ÌÜ°¸½Íß°½ Ì§²Ù \82ð\95Ò\8fW\82Ü\82½\82Í\8dí\8f\9c\82µ\82È\82¢\82Å\82­\82¾\82³\82¢!\r
++\r
++###############################################################################\r
++\r
++Project: "Merge7z457"=".\Merge7z457.dsp" - Package Owner=<4>\r
++\r
++Package=<5>\r
++{{{\r
++}}}\r
++\r
++Package=<4>\r
++{{{\r
++}}}\r
++\r
++###############################################################################\r
++\r
++Global:\r
++\r
++Package=<5>\r
++{{{\r
++}}}\r
++\r
++Package=<3>\r
++{{{\r
++}}}\r
++\r
++###############################################################################\r
++\r
@@@ -164,11 -164,11 +164,11 @@@ SOURCE=.\Merge7z453.cp
  # End Source File\r
  # Begin Source File\r
  \r
--SOURCE=.\Merge7zCommon.cpp\r
++SOURCE=.\Merge7zCommon453.cpp\r
  # End Source File\r
  # Begin Source File\r
  \r
--SOURCE=.\Merge7zCommon.h\r
++SOURCE=.\Merge7zCommon453.h\r
  # End Source File\r
  # Begin Source File\r
  \r
index 0000000,0000000..7214757
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,601 @@@
++# Microsoft Developer Studio Project File - Name="Merge7z465" - Package Owner=<4>\r
++# Microsoft Developer Studio Generated Build File, Format Version 6.00\r
++# ** \95Ò\8fW\82µ\82È\82¢\82Å\82­\82¾\82³\82¢ **\r
++\r
++# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102\r
++\r
++CFG=Merge7z465 - Win32 UnicodeDebug\r
++!MESSAGE \82±\82ê\82Í\97L\8cø\82ÈÒ²¸Ì§²Ù\82Å\82Í\82 \82è\82Ü\82¹\82ñ\81\82±\82ÌÌßÛ¼Þª¸Ä\82ðËÞÙÄÞ\82·\82é\82½\82ß\82É\82Í NMAKE \82ð\8eg\97p\82µ\82Ä\82­\82¾\82³\82¢\81B\r
++!MESSAGE [Ò²¸Ì§²Ù\82Ì´¸½Îß°Ä] ºÏÝÄÞ\82ð\8eg\97p\82µ\82Ä\8eÀ\8ds\82µ\82Ä\82­\82¾\82³\82¢\r
++!MESSAGE \r
++!MESSAGE NMAKE /f "Merge7z465.mak".\r
++!MESSAGE \r
++!MESSAGE NMAKE \82Ì\8eÀ\8ds\8e\9e\82É\8d\\90¬\82ð\8ew\92è\82Å\82«\82Ü\82·\r
++!MESSAGE ºÏÝÄޠײÝ\8fã\82ÅϸÛ\82Ì\90Ý\92è\82ð\92è\8b`\82µ\82Ü\82·\81B\97á:\r
++!MESSAGE \r
++!MESSAGE NMAKE /f "Merge7z465.mak" CFG="Merge7z465 - Win32 UnicodeDebug"\r
++!MESSAGE \r
++!MESSAGE \91I\91ð\89Â\94\\82ÈËÞÙÄÞ Ó°ÄÞ:\r
++!MESSAGE \r
++!MESSAGE "Merge7z465 - Win32 Release" ("Win32 (x86) Dynamic-Link Library" \97p)\r
++!MESSAGE "Merge7z465 - Win32 Debug" ("Win32 (x86) Dynamic-Link Library" \97p)\r
++!MESSAGE "Merge7z465 - Win32 UnicodeDebug" ("Win32 (x86) Dynamic-Link Library" \97p)\r
++!MESSAGE "Merge7z465 - Win32 UnicodeRelease" ("Win32 (x86) Dynamic-Link Library" \97p)\r
++!MESSAGE \r
++\r
++# Begin Project\r
++# PROP AllowPerConfigDependencies 0\r
++# PROP Scc_ProjName ""\r
++# PROP Scc_LocalPath ""\r
++CPP=cl.exe\r
++MTL=midl.exe\r
++RSC=rc.exe\r
++\r
++!IF  "$(CFG)" == "Merge7z465 - Win32 Release"\r
++\r
++# PROP BASE Use_MFC 0\r
++# PROP BASE Use_Debug_Libraries 0\r
++# PROP BASE Output_Dir "Release"\r
++# PROP BASE Intermediate_Dir "Release"\r
++# PROP BASE Target_Dir ""\r
++# PROP Use_MFC 0\r
++# PROP Use_Debug_Libraries 0\r
++# PROP Output_Dir "..\BuildTmp\Merge7z465___Win32_Release"\r
++# PROP Intermediate_Dir "..\BuildTmp\Merge7z465___Win32_Release"\r
++# PROP Ignore_Export_Lib 0\r
++# PROP Target_Dir ""\r
++# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "MERGE7Z310_EXPORTS" /YX /FD /c\r
++# ADD CPP /nologo /MT /W3 /GX /O1 /I "$(SRC7Z)\7z465" /I "$(SRC7Z)\7z465\CPP" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "Merge7z465_EXPORTS" /FR /Yu"stdafx.h" /FD /c\r
++# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32\r
++# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32\r
++# ADD BASE RSC /l 0x407 /d "NDEBUG"\r
++# ADD RSC /l 0x407 /d "NDEBUG"\r
++BSC32=bscmake.exe\r
++# ADD BASE BSC32 /nologo\r
++# ADD BSC32 /nologo\r
++LINK32=link.exe\r
++# 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 /dll /machine:I386\r
++# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib shlwapi.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /pdb:none /machine:I386 /out:"../../Build/MergeRelease/Merge7z465.dll"\r
++\r
++!ELSEIF  "$(CFG)" == "Merge7z465 - Win32 Debug"\r
++\r
++# PROP BASE Use_MFC 0\r
++# PROP BASE Use_Debug_Libraries 1\r
++# PROP BASE Output_Dir "Debug"\r
++# PROP BASE Intermediate_Dir "Debug"\r
++# PROP BASE Target_Dir ""\r
++# PROP Use_MFC 0\r
++# PROP Use_Debug_Libraries 1\r
++# PROP Output_Dir "..\BuildTmp\Merge7z465___Win32_Debug"\r
++# PROP Intermediate_Dir "..\BuildTmp\Merge7z465___Win32_Debug"\r
++# PROP Ignore_Export_Lib 0\r
++# PROP Target_Dir ""\r
++# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "MERGE7Z310_EXPORTS" /YX /FD /GZ /c\r
++# ADD CPP /nologo /MTd /W3 /vd0 /GX /Z7 /Od /I "$(SRC7Z)\7z465" /I "$(SRC7Z)\7z465\CPP" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "Merge7z465_EXPORTS" /FR /Yu"stdafx.h" /FD /GZ /c\r
++# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32\r
++# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32\r
++# ADD BASE RSC /l 0x407 /d "_DEBUG"\r
++# ADD RSC /l 0x407 /d "_DEBUG"\r
++BSC32=bscmake.exe\r
++# ADD BASE BSC32 /nologo\r
++# ADD BSC32 /nologo\r
++LINK32=link.exe\r
++# 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 /dll /debug /machine:I386 /pdbtype:sept\r
++# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib shlwapi.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /incremental:no /pdb:"../../Build/MergeDebug/Merge7z465.pdb" /debug /machine:I386 /out:"../../Build/MergeDebug/Merge7z465.dll"\r
++# SUBTRACT LINK32 /pdb:none /map\r
++\r
++!ELSEIF  "$(CFG)" == "Merge7z465 - Win32 UnicodeDebug"\r
++\r
++# PROP BASE Use_MFC 0\r
++# PROP BASE Use_Debug_Libraries 1\r
++# PROP BASE Output_Dir "..\BuildTmp\Merge7z465___Win32_UnicodeDebug"\r
++# PROP BASE Intermediate_Dir "..\BuildTmp\Merge7z465___Win32_UnicodeDebug"\r
++# PROP BASE Ignore_Export_Lib 0\r
++# PROP BASE Target_Dir ""\r
++# PROP Use_MFC 0\r
++# PROP Use_Debug_Libraries 1\r
++# PROP Output_Dir "..\BuildTmp\Merge7z465___Win32_UnicodeDebug"\r
++# PROP Intermediate_Dir "..\BuildTmp\Merge7z465___Win32_UnicodeDebug"\r
++# PROP Ignore_Export_Lib 0\r
++# PROP Target_Dir ""\r
++# ADD BASE CPP /nologo /MTd /W3 /vd0 /GX /Z7 /Od /I "$(SRC7Z)\7z465" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "MERGE7Z310_EXPORTS" /FR /Yu"stdafx.h" /FD /GZ /c\r
++# ADD CPP /nologo /MTd /W3 /vd0 /GX /Z7 /Od /I "$(SRC7Z)\7z465" /I "$(SRC7Z)\7z465\CPP" /D "Merge7z465_EXPORTS" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_USRDLL" /D "UNICODE" /D "_UNICODE" /FR /Yu"stdafx.h" /FD /GZ /c\r
++# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32\r
++# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32\r
++# ADD BASE RSC /l 0x407 /d "_DEBUG"\r
++# ADD RSC /l 0x407 /d "_DEBUG"\r
++BSC32=bscmake.exe\r
++# ADD BASE BSC32 /nologo\r
++# ADD BSC32 /nologo\r
++LINK32=link.exe\r
++# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shlwapi.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /pdb:none /map /debug /machine:I386 /out:"../../Build/MergeDebug/Merge7z465.dll"\r
++# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib shlwapi.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /incremental:no /pdb:"../../Build/MergeUnicodeDebug/Merge7z465U.pdb" /debug /machine:I386 /out:"../../Build/MergeUnicodeDebug/Merge7z465U.dll"\r
++# SUBTRACT LINK32 /pdb:none /map\r
++\r
++!ELSEIF  "$(CFG)" == "Merge7z465 - Win32 UnicodeRelease"\r
++\r
++# PROP BASE Use_MFC 0\r
++# PROP BASE Use_Debug_Libraries 0\r
++# PROP BASE Output_Dir "..\BuildTmp\Merge7z465___Win32_UnicodeRelease"\r
++# PROP BASE Intermediate_Dir "..\BuildTmp\Merge7z465___Win32_UnicodeRelease"\r
++# PROP BASE Ignore_Export_Lib 0\r
++# PROP BASE Target_Dir ""\r
++# PROP Use_MFC 0\r
++# PROP Use_Debug_Libraries 0\r
++# PROP Output_Dir "..\BuildTmp\Merge7z465___Win32_UnicodeRelease"\r
++# PROP Intermediate_Dir "..\BuildTmp\Merge7z465___Win32_UnicodeRelease"\r
++# PROP Ignore_Export_Lib 0\r
++# PROP Target_Dir ""\r
++# ADD BASE CPP /nologo /MT /W3 /GX /O2 /I "$(SRC7Z)\7z465" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "MERGE7Z310_EXPORTS" /Yu"stdafx.h" /FD /c\r
++# ADD CPP /nologo /MT /W3 /GX /O1 /I "$(SRC7Z)\7z465\CPP" /D "Merge7z465_EXPORTS" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_USRDLL" /D "UNICODE" /D "_UNICODE" /Yu"stdafx.h" /FD /c\r
++# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32\r
++# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32\r
++# ADD BASE RSC /l 0x407 /d "NDEBUG"\r
++# ADD RSC /l 0x407 /d "NDEBUG"\r
++BSC32=bscmake.exe\r
++# ADD BASE BSC32 /nologo\r
++# ADD BSC32 /nologo\r
++LINK32=link.exe\r
++# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shlwapi.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /pdb:none /machine:I386 /out:"../../Build/MergeRelease/Merge7z465.dll"\r
++# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib shlwapi.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /pdb:none /machine:I386 /out:"../../Build/MergeUnicodeRelease/Merge7z465U.dll"\r
++\r
++!ENDIF \r
++\r
++# Begin Target\r
++\r
++# Name "Merge7z465 - Win32 Release"\r
++# Name "Merge7z465 - Win32 Debug"\r
++# Name "Merge7z465 - Win32 UnicodeDebug"\r
++# Name "Merge7z465 - Win32 UnicodeRelease"\r
++# Begin Group "Quellcodedateien"\r
++\r
++# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"\r
++# Begin Source File\r
++\r
++SOURCE=.\Merge7z.def\r
++# End Source File\r
++# Begin Source File\r
++\r
++SOURCE=.\Merge7z.h\r
++# End Source File\r
++# Begin Source File\r
++\r
++SOURCE=.\Merge7z459.cpp\r
++# End Source File\r
++# Begin Source File\r
++\r
++SOURCE=.\Merge7zCommon.cpp\r
++# End Source File\r
++# Begin Source File\r
++\r
++SOURCE=.\Merge7zCommon.h\r
++# End Source File\r
++# Begin Source File\r
++\r
++SOURCE=.\StdAfx.cpp\r
++# ADD CPP /Yc"stdafx.h"\r
++# End Source File\r
++# Begin Source File\r
++\r
++SOURCE=.\StdAfx.h\r
++# End Source File\r
++# Begin Source File\r
++\r
++SOURCE=.\tools.cpp\r
++# End Source File\r
++# Begin Source File\r
++\r
++SOURCE=.\tools.h\r
++# End Source File\r
++# End Group\r
++# Begin Group "Header-Dateien"\r
++\r
++# PROP Default_Filter "h;hpp;hxx;hm;inl"\r
++# End Group\r
++# Begin Group "Ressourcendateien"\r
++\r
++# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"\r
++# Begin Source File\r
++\r
++SOURCE="$(SRC7Z)\7z465\CPP\7zip\Ui\Gui\FM.ico"\r
++# End Source File\r
++# Begin Source File\r
++\r
++SOURCE="$(SRC7Z)\7z465\CPP\7zip\UI\GUI\resource.h"\r
++# End Source File\r
++# Begin Source File\r
++\r
++SOURCE="$(SRC7Z)\7z465\CPP\7zip\Ui\Gui\resource.rc"\r
++# End Source File\r
++# End Group\r
++# Begin Group "Windows"\r
++\r
++# PROP Default_Filter ""\r
++# Begin Source File\r
++\r
++SOURCE="$(SRC7Z)\7z465\CPP\Windows\DLL.cpp"\r
++# End Source File\r
++# Begin Source File\r
++\r
++SOURCE="$(SRC7Z)\7z465\CPP\Windows\DLL.h"\r
++# End Source File\r
++# Begin Source File\r
++\r
++SOURCE="$(SRC7Z)\7z465\CPP\Windows\Error.cpp"\r
++# End Source File\r
++# Begin Source File\r
++\r
++SOURCE="$(SRC7Z)\7z465\CPP\Windows\Error.h"\r
++# End Source File\r
++# Begin Source File\r
++\r
++SOURCE="$(SRC7Z)\7z465\CPP\Windows\FileIO.cpp"\r
++# End Source File\r
++# Begin Source File\r
++\r
++SOURCE="$(SRC7Z)\7z465\CPP\Windows\FileIO.h"\r
++# End Source File\r
++# Begin Source File\r
++\r
++SOURCE="$(SRC7Z)\7z465\CPP\Windows\PropVariant.cpp"\r
++# End Source File\r
++# Begin Source File\r
++\r
++SOURCE="$(SRC7Z)\7z465\CPP\Windows\PropVariant.h"\r
++# End Source File\r
++# Begin Source File\r
++\r
++SOURCE="$(SRC7Z)\7z465\CPP\Windows\PropVariantConversions.cpp"\r
++# End Source File\r
++# Begin Source File\r
++\r
++SOURCE="$(SRC7Z)\7z465\CPP\Windows\PropVariantConversions.h"\r
++# End Source File\r
++# Begin Source File\r
++\r
++SOURCE="$(SRC7Z)\7z465\CPP\Windows\ResourceString.cpp"\r
++# End Source File\r
++# Begin Source File\r
++\r
++SOURCE="$(SRC7Z)\7z465\CPP\Windows\ResourceString.h"\r
++# End Source File\r
++# Begin Source File\r
++\r
++SOURCE="$(SRC7Z)\7z465\CPP\Windows\Synchronization.cpp"\r
++# End Source File\r
++# Begin Source File\r
++\r
++SOURCE="$(SRC7Z)\7z465\CPP\Windows\Synchronization.h"\r
++# End Source File\r
++# End Group\r
++# Begin Group "Common"\r
++\r
++# PROP Default_Filter ""\r
++# Begin Source File\r
++\r
++SOURCE="$(SRC7Z)\7z465\CPP\Common\IntToString.cpp"\r
++# End Source File\r
++# Begin Source File\r
++\r
++SOURCE="$(SRC7Z)\7z465\CPP\Common\IntToString.h"\r
++# End Source File\r
++# Begin Source File\r
++\r
++SOURCE="$(SRC7Z)\7z465\CPP\Common\Lang.cpp"\r
++# End Source File\r
++# Begin Source File\r
++\r
++SOURCE="$(SRC7Z)\7z465\CPP\Common\Lang.h"\r
++# End Source File\r
++# Begin Source File\r
++\r
++SOURCE="$(SRC7Z)\7z465\CPP\Common\MyString.cpp"\r
++# End Source File\r
++# Begin Source File\r
++\r
++SOURCE="$(SRC7Z)\7z465\CPP\Common\MyString.h"\r
++# End Source File\r
++# Begin Source File\r
++\r
++SOURCE="$(SRC7Z)\7z465\CPP\Common\StdInStream.cpp"\r
++# End Source File\r
++# Begin Source File\r
++\r
++SOURCE="$(SRC7Z)\7z465\CPP\Common\StdInStream.h"\r
++# End Source File\r
++# Begin Source File\r
++\r
++SOURCE="$(SRC7Z)\7z465\CPP\Common\StringConvert.cpp"\r
++# End Source File\r
++# Begin Source File\r
++\r
++SOURCE="$(SRC7Z)\7z465\CPP\Common\StringConvert.h"\r
++# End Source File\r
++# Begin Source File\r
++\r
++SOURCE="$(SRC7Z)\7z465\CPP\Common\StringToInt.cpp"\r
++# End Source File\r
++# Begin Source File\r
++\r
++SOURCE="$(SRC7Z)\7z465\CPP\Common\StringToInt.h"\r
++# End Source File\r
++# Begin Source File\r
++\r
++SOURCE="$(SRC7Z)\7z465\CPP\Common\TextConfig.cpp"\r
++# End Source File\r
++# Begin Source File\r
++\r
++SOURCE="$(SRC7Z)\7z465\CPP\Common\TextConfig.h"\r
++# End Source File\r
++# Begin Source File\r
++\r
++SOURCE="$(SRC7Z)\7z465\CPP\Common\UTFConvert.cpp"\r
++# End Source File\r
++# Begin Source File\r
++\r
++SOURCE="$(SRC7Z)\7z465\CPP\Common\UTFConvert.h"\r
++# End Source File\r
++# End Group\r
++# Begin Group "7zip Common"\r
++\r
++# PROP Default_Filter ""\r
++# Begin Source File\r
++\r
++SOURCE="$(SRC7Z)\7z465\CPP\7zip\Ui\Common\ArchiveExtractCallback.cpp"\r
++# End Source File\r
++# Begin Source File\r
++\r
++SOURCE="$(SRC7Z)\7z465\CPP\7zip\UI\Common\ArchiveExtractCallback.h"\r
++# End Source File\r
++# Begin Source File\r
++\r
++SOURCE="$(SRC7Z)\7z465\CPP\7zip\UI\Common\ArchiveOpenCallback.cpp"\r
++# End Source File\r
++# Begin Source File\r
++\r
++SOURCE="$(SRC7Z)\7z465\CPP\7zip\UI\Common\ArchiveOpenCallback.h"\r
++# End Source File\r
++# Begin Source File\r
++\r
++SOURCE="$(SRC7Z)\7z465\CPP\7zip\UI\Common\DefaultName.cpp"\r
++# End Source File\r
++# Begin Source File\r
++\r
++SOURCE="$(SRC7Z)\7z465\CPP\7zip\UI\Common\DefaultName.h"\r
++# End Source File\r
++# Begin Source File\r
++\r
++SOURCE="$(SRC7Z)\7z465\CPP\Windows\Control\Dialog.cpp"\r
++# End Source File\r
++# Begin Source File\r
++\r
++SOURCE="$(SRC7Z)\7z465\CPP\Windows\Control\Dialog.h"\r
++# End Source File\r
++# Begin Source File\r
++\r
++SOURCE="..\..\..\..\..\7-zip\7z465\CPP\7zip\UI\Common\EnumDirItems.cpp"\r
++# End Source File\r
++# Begin Source File\r
++\r
++SOURCE="..\..\..\..\..\7-zip\7z465\CPP\7zip\UI\Common\EnumDirItems.h"\r
++# End Source File\r
++# Begin Source File\r
++\r
++SOURCE="$(SRC7Z)\7z465\CPP\7zip\UI\FileManager\ExtractCallback.cpp"\r
++# End Source File\r
++# Begin Source File\r
++\r
++SOURCE="$(SRC7Z)\7z465\CPP\7zip\UI\FileManager\ExtractCallback.h"\r
++# End Source File\r
++# Begin Source File\r
++\r
++SOURCE="$(SRC7Z)\7z465\CPP\7zip\Common\FileStreams.cpp"\r
++# End Source File\r
++# Begin Source File\r
++\r
++SOURCE="$(SRC7Z)\7z465\CPP\7zip\Common\FileStreams.h"\r
++# End Source File\r
++# Begin Source File\r
++\r
++SOURCE="$(SRC7Z)\7z465\CPP\7zip\UI\FileManager\FormatUtils.cpp"\r
++# End Source File\r
++# Begin Source File\r
++\r
++SOURCE="$(SRC7Z)\7z465\CPP\7zip\UI\FileManager\FormatUtils.h"\r
++# End Source File\r
++# Begin Source File\r
++\r
++SOURCE="$(SRC7Z)\7z465\CPP\7zip\UI\FileManager\LangUtils.cpp"\r
++# End Source File\r
++# Begin Source File\r
++\r
++SOURCE="$(SRC7Z)\7z465\CPP\7zip\UI\FileManager\LangUtils.h"\r
++# End Source File\r
++# Begin Source File\r
++\r
++SOURCE="$(SRC7Z)\7z465\CPP\Windows\Control\ListView.cpp"\r
++# End Source File\r
++# Begin Source File\r
++\r
++SOURCE="$(SRC7Z)\7z465\CPP\Windows\Control\ListView.h"\r
++# End Source File\r
++# Begin Source File\r
++\r
++SOURCE="$(SRC7Z)\7z465\CPP\7zip\UI\Common\LoadCodecs.cpp"\r
++# End Source File\r
++# Begin Source File\r
++\r
++SOURCE="$(SRC7Z)\7z465\CPP\7zip\UI\Common\LoadCodecs.h"\r
++# End Source File\r
++# Begin Source File\r
++\r
++SOURCE="$(SRC7Z)\7z465\CPP\7zip\UI\FileManager\MessagesDialog.cpp"\r
++# End Source File\r
++# Begin Source File\r
++\r
++SOURCE="$(SRC7Z)\7z465\CPP\7zip\UI\FileManager\MessagesDialog.h"\r
++# End Source File\r
++# Begin Source File\r
++\r
++SOURCE="$(SRC7Z)\7z465\CPP\7zip\UI\Common\OpenArchive.cpp"\r
++# End Source File\r
++# Begin Source File\r
++\r
++SOURCE="$(SRC7Z)\7z465\CPP\7zip\UI\Common\OpenArchive.h"\r
++# End Source File\r
++# Begin Source File\r
++\r
++SOURCE="$(SRC7Z)\7z465\CPP\7zip\UI\FileManager\OpenCallback.cpp"\r
++# End Source File\r
++# Begin Source File\r
++\r
++SOURCE="$(SRC7Z)\7z465\CPP\7zip\UI\FileManager\OpenCallback.h"\r
++# End Source File\r
++# Begin Source File\r
++\r
++SOURCE="$(SRC7Z)\7z465\CPP\7zip\UI\FileManager\OverwriteDialog.cpp"\r
++# End Source File\r
++# Begin Source File\r
++\r
++SOURCE="$(SRC7Z)\7z465\CPP\7zip\UI\FileManager\OverwriteDialog.h"\r
++# End Source File\r
++# Begin Source File\r
++\r
++SOURCE="$(SRC7Z)\7z465\CPP\7zip\UI\FileManager\PasswordDialog.cpp"\r
++# End Source File\r
++# Begin Source File\r
++\r
++SOURCE="$(SRC7Z)\7z465\CPP\7zip\UI\FileManager\PasswordDialog.h"\r
++# End Source File\r
++# Begin Source File\r
++\r
++SOURCE="$(SRC7Z)\7z465\CPP\7zip\UI\FileManager\ProgramLocation.cpp"\r
++# End Source File\r
++# Begin Source File\r
++\r
++SOURCE="$(SRC7Z)\7z465\CPP\7zip\UI\FileManager\ProgramLocation.h"\r
++# End Source File\r
++# Begin Source File\r
++\r
++SOURCE="$(SRC7Z)\7z465\CPP\7zip\UI\FileManager\ProgressDialog2.cpp"\r
++# End Source File\r
++# Begin Source File\r
++\r
++SOURCE="$(SRC7Z)\7z465\CPP\7zip\Common\ProgressUtils.cpp"\r
++# End Source File\r
++# Begin Source File\r
++\r
++SOURCE="$(SRC7Z)\7z465\CPP\7zip\Common\ProgressUtils.h"\r
++# End Source File\r
++# Begin Source File\r
++\r
++SOURCE="$(SRC7Z)\7z465\CPP\7zip\Common\StreamUtils.cpp"\r
++# End Source File\r
++# Begin Source File\r
++\r
++SOURCE="$(SRC7Z)\7z465\CPP\7zip\Common\StreamUtils.h"\r
++# End Source File\r
++# Begin Source File\r
++\r
++SOURCE="$(SRC7Z)\7z465\CPP\7zip\UI\Common\UpdateCallback.cpp"\r
++# End Source File\r
++# Begin Source File\r
++\r
++SOURCE="$(SRC7Z)\7z465\CPP\7zip\UI\Common\UpdateCallback.h"\r
++# End Source File\r
++# Begin Source File\r
++\r
++SOURCE="$(SRC7Z)\7z465\CPP\7zip\UI\GUI\UpdateCallbackGUI.cpp"\r
++# End Source File\r
++# Begin Source File\r
++\r
++SOURCE="$(SRC7Z)\7z465\CPP\7zip\UI\GUI\UpdateCallbackGUI.h"\r
++# End Source File\r
++# Begin Source File\r
++\r
++SOURCE="$(SRC7Z)\7z465\CPP\Windows\Window.cpp"\r
++# End Source File\r
++# Begin Source File\r
++\r
++SOURCE="$(SRC7Z)\7z465\CPP\Windows\Window.h"\r
++# End Source File\r
++# End Group\r
++# Begin Group "Extract"\r
++\r
++# PROP Default_Filter ""\r
++# Begin Source File\r
++\r
++SOURCE="$(SRC7Z)\7z465\CPP\7zip\Ui\Common\ExtractingFilePath.cpp"\r
++# End Source File\r
++# Begin Source File\r
++\r
++SOURCE="$(SRC7Z)\7z465\CPP\7zip\UI\Common\ExtractingFilePath.h"\r
++# End Source File\r
++# Begin Source File\r
++\r
++SOURCE="$(SRC7Z)\7z465\CPP\Windows\FileDir.cpp"\r
++# End Source File\r
++# Begin Source File\r
++\r
++SOURCE="$(SRC7Z)\7z465\CPP\Windows\FileDir.h"\r
++# End Source File\r
++# Begin Source File\r
++\r
++SOURCE="$(SRC7Z)\7z465\CPP\Windows\FileFind.cpp"\r
++# End Source File\r
++# Begin Source File\r
++\r
++SOURCE="$(SRC7Z)\7z465\CPP\Windows\FileFind.h"\r
++# End Source File\r
++# Begin Source File\r
++\r
++SOURCE="$(SRC7Z)\7z465\CPP\Windows\FileName.cpp"\r
++# End Source File\r
++# Begin Source File\r
++\r
++SOURCE="$(SRC7Z)\7z465\CPP\Windows\FileName.h"\r
++# End Source File\r
++# Begin Source File\r
++\r
++SOURCE="$(SRC7Z)\7z465\CPP\7zip\Common\FilePathAutoRename.cpp"\r
++# End Source File\r
++# Begin Source File\r
++\r
++SOURCE="$(SRC7Z)\7z465\CPP\7zip\Common\FilePathAutoRename.h"\r
++# End Source File\r
++# Begin Source File\r
++\r
++SOURCE="$(SRC7Z)\7z465\CPP\Common\MyVector.cpp"\r
++# End Source File\r
++# Begin Source File\r
++\r
++SOURCE="$(SRC7Z)\7z465\CPP\Common\MyVector.h"\r
++# End Source File\r
++# Begin Source File\r
++\r
++SOURCE="$(SRC7Z)\7z465\CPP\Common\Wildcard.cpp"\r
++# End Source File\r
++# Begin Source File\r
++\r
++SOURCE="$(SRC7Z)\7z465\CPP\Common\Wildcard.h"\r
++# End Source File\r
++# End Group\r
++# Begin Group "C"\r
++\r
++# PROP Default_Filter ""\r
++# Begin Source File\r
++\r
++SOURCE="$(SRC7Z)\7z465\C\Threads.c"\r
++# SUBTRACT CPP /YX /Yc /Yu\r
++# End Source File\r
++# End Group\r
++# Begin Source File\r
++\r
++SOURCE="$(SRC7Z)\7z465\CPP\7zip\Ui\Gui\7zG.exe.manifest"\r
++# End Source File\r
++# Begin Source File\r
++\r
++SOURCE=.\revision.txt\r
++# End Source File\r
++# End Target\r
++# End Project\r
index 0000000,0000000..be3738f
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,4657 @@@
++<?xml version="1.0" encoding="shift_jis"?>\r
++<VisualStudioProject\r
++      ProjectType="Visual C++"\r
++      Version="9.00"\r
++      Name="Merge7z465"\r
++      ProjectGUID="{34C32ABA-B317-406A-9F7A-598550CB855C}"\r
++      RootNamespace="Merge7z465"\r
++      TargetFrameworkVersion="0"\r
++      >\r
++      <Platforms>\r
++              <Platform\r
++                      Name="Win32"\r
++              />\r
++              <Platform\r
++                      Name="x64"\r
++              />\r
++      </Platforms>\r
++      <ToolFiles>\r
++      </ToolFiles>\r
++      <Configurations>\r
++              <Configuration\r
++                      Name="Release|Win32"\r
++                      OutputDirectory=".\..\BuildTmp\Merge7z465___Win32_Release"\r
++                      IntermediateDirectory=".\..\BuildTmp\Merge7z465___Win32_Release"\r
++                      ConfigurationType="2"\r
++                      InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"\r
++                      UseOfMFC="0"\r
++                      ATLMinimizesCRunTimeLibraryUsage="false"\r
++                      CharacterSet="2"\r
++                      >\r
++                      <Tool\r
++                              Name="VCPreBuildEventTool"\r
++                      />\r
++                      <Tool\r
++                              Name="VCCustomBuildTool"\r
++                      />\r
++                      <Tool\r
++                              Name="VCXMLDataGeneratorTool"\r
++                      />\r
++                      <Tool\r
++                              Name="VCWebServiceProxyGeneratorTool"\r
++                      />\r
++                      <Tool\r
++                              Name="VCMIDLTool"\r
++                              PreprocessorDefinitions="NDEBUG"\r
++                              MkTypLibCompatible="true"\r
++                              SuppressStartupBanner="true"\r
++                              TargetEnvironment="1"\r
++                              TypeLibraryName=".\..\BuildTmp\Merge7z465___Win32_Release/Merge7z465.tlb"\r
++                              HeaderFileName=""\r
++                      />\r
++                      <Tool\r
++                              Name="VCCLCompilerTool"\r
++                              Optimization="1"\r
++                              InlineFunctionExpansion="1"\r
++                              AdditionalIncludeDirectories="$(SRC7Z)\7z465,$(SRC7Z)\7z465\CPP"\r
++                              PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;Merge7z465_EXPORTS"\r
++                              StringPooling="true"\r
++                              RuntimeLibrary="0"\r
++                              EnableFunctionLevelLinking="true"\r
++                              UsePrecompiledHeader="2"\r
++                              PrecompiledHeaderThrough="stdafx.h"\r
++                              PrecompiledHeaderFile=".\..\BuildTmp\Merge7z465___Win32_Release/Merge7z465.pch"\r
++                              AssemblerListingLocation=".\..\BuildTmp\Merge7z465___Win32_Release/"\r
++                              ObjectFile=".\..\BuildTmp\Merge7z465___Win32_Release/"\r
++                              ProgramDataBaseFileName=".\..\BuildTmp\Merge7z465___Win32_Release/"\r
++                              BrowseInformation="1"\r
++                              WarningLevel="3"\r
++                              SuppressStartupBanner="true"\r
++                      />\r
++                      <Tool\r
++                              Name="VCManagedResourceCompilerTool"\r
++                      />\r
++                      <Tool\r
++                              Name="VCResourceCompilerTool"\r
++                              PreprocessorDefinitions="NDEBUG"\r
++                              Culture="1031"\r
++                      />\r
++                      <Tool\r
++                              Name="VCPreLinkEventTool"\r
++                      />\r
++                      <Tool\r
++                              Name="VCLinkerTool"\r
++                              AdditionalDependencies="shlwapi.lib odbc32.lib odbccp32.lib"\r
++                              OutputFile="../../Build/MergeRelease/Merge7z465.dll"\r
++                              LinkIncremental="1"\r
++                              SuppressStartupBanner="true"\r
++                              ModuleDefinitionFile=".\Merge7z.def"\r
++                              RandomizedBaseAddress="1"\r
++                              DataExecutionPrevention="0"\r
++                              ImportLibrary=".\..\BuildTmp\Merge7z465___Win32_Release/Merge7z465.lib"\r
++                              TargetMachine="1"\r
++                      />\r
++                      <Tool\r
++                              Name="VCALinkTool"\r
++                      />\r
++                      <Tool\r
++                              Name="VCManifestTool"\r
++                      />\r
++                      <Tool\r
++                              Name="VCXDCMakeTool"\r
++                      />\r
++                      <Tool\r
++                              Name="VCBscMakeTool"\r
++                              SuppressStartupBanner="true"\r
++                              OutputFile=".\..\BuildTmp\Merge7z465___Win32_Release/Merge7z465.bsc"\r
++                      />\r
++                      <Tool\r
++                              Name="VCFxCopTool"\r
++                      />\r
++                      <Tool\r
++                              Name="VCAppVerifierTool"\r
++                      />\r
++                      <Tool\r
++                              Name="VCPostBuildEventTool"\r
++                      />\r
++              </Configuration>\r
++              <Configuration\r
++                      Name="Release|x64"\r
++                      OutputDirectory="$(PlatformName)\$(ConfigurationName)"\r
++                      IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"\r
++                      ConfigurationType="2"\r
++                      InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"\r
++                      UseOfMFC="0"\r
++                      ATLMinimizesCRunTimeLibraryUsage="false"\r
++                      CharacterSet="2"\r
++                      >\r
++                      <Tool\r
++                              Name="VCPreBuildEventTool"\r
++                      />\r
++                      <Tool\r
++                              Name="VCCustomBuildTool"\r
++                      />\r
++                      <Tool\r
++                              Name="VCXMLDataGeneratorTool"\r
++                      />\r
++                      <Tool\r
++                              Name="VCWebServiceProxyGeneratorTool"\r
++                      />\r
++                      <Tool\r
++                              Name="VCMIDLTool"\r
++                              PreprocessorDefinitions="NDEBUG"\r
++                              MkTypLibCompatible="true"\r
++                              SuppressStartupBanner="true"\r
++                              TargetEnvironment="3"\r
++                              TypeLibraryName=".\..\BuildTmp\Merge7z465___Win32_Release/Merge7z465.tlb"\r
++                              HeaderFileName=""\r
++                      />\r
++                      <Tool\r
++                              Name="VCCLCompilerTool"\r
++                              Optimization="1"\r
++                              InlineFunctionExpansion="1"\r
++                              AdditionalIncludeDirectories="$(SRC7Z)\7z465,$(SRC7Z)\7z465\CPP"\r
++                              PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;Merge7z465_EXPORTS"\r
++                              StringPooling="true"\r
++                              RuntimeLibrary="0"\r
++                              EnableFunctionLevelLinking="true"\r
++                              UsePrecompiledHeader="2"\r
++                              PrecompiledHeaderThrough="stdafx.h"\r
++                              PrecompiledHeaderFile=".\..\BuildTmp\Merge7z465___Win32_Release/Merge7z465.pch"\r
++                              AssemblerListingLocation=".\..\BuildTmp\Merge7z465___Win32_Release/"\r
++                              ObjectFile=".\..\BuildTmp\Merge7z465___Win32_Release/"\r
++                              ProgramDataBaseFileName=".\..\BuildTmp\Merge7z465___Win32_Release/"\r
++                              BrowseInformation="1"\r
++                              WarningLevel="3"\r
++                              SuppressStartupBanner="true"\r
++                      />\r
++                      <Tool\r
++                              Name="VCManagedResourceCompilerTool"\r
++                      />\r
++                      <Tool\r
++                              Name="VCResourceCompilerTool"\r
++                              PreprocessorDefinitions="NDEBUG"\r
++                              Culture="1031"\r
++                      />\r
++                      <Tool\r
++                              Name="VCPreLinkEventTool"\r
++                      />\r
++                      <Tool\r
++                              Name="VCLinkerTool"\r
++                              AdditionalDependencies="shlwapi.lib odbc32.lib odbccp32.lib"\r
++                              OutputFile="../../Build/X64/MergeRelease/Merge7z465.dll"\r
++                              LinkIncremental="1"\r
++                              SuppressStartupBanner="true"\r
++                              ModuleDefinitionFile=".\Merge7z.def"\r
++                              RandomizedBaseAddress="1"\r
++                              DataExecutionPrevention="0"\r
++                              ImportLibrary=".\..\BuildTmp\Merge7z465___Win32_Release/Merge7z465.lib"\r
++                              TargetMachine="17"\r
++                      />\r
++                      <Tool\r
++                              Name="VCALinkTool"\r
++                      />\r
++                      <Tool\r
++                              Name="VCManifestTool"\r
++                      />\r
++                      <Tool\r
++                              Name="VCXDCMakeTool"\r
++                      />\r
++                      <Tool\r
++                              Name="VCBscMakeTool"\r
++                              SuppressStartupBanner="true"\r
++                              OutputFile=".\..\BuildTmp\Merge7z465___Win32_Release/Merge7z465.bsc"\r
++                      />\r
++                      <Tool\r
++                              Name="VCFxCopTool"\r
++                      />\r
++                      <Tool\r
++                              Name="VCAppVerifierTool"\r
++                      />\r
++                      <Tool\r
++                              Name="VCPostBuildEventTool"\r
++                      />\r
++              </Configuration>\r
++              <Configuration\r
++                      Name="UnicodeRelease|Win32"\r
++                      OutputDirectory=".\..\BuildTmp\Merge7z465___Win32_UnicodeRelease"\r
++                      IntermediateDirectory=".\..\BuildTmp\Merge7z465___Win32_UnicodeRelease"\r
++                      ConfigurationType="2"\r
++                      InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"\r
++                      UseOfMFC="0"\r
++                      ATLMinimizesCRunTimeLibraryUsage="false"\r
++                      CharacterSet="1"\r
++                      >\r
++                      <Tool\r
++                              Name="VCPreBuildEventTool"\r
++                      />\r
++                      <Tool\r
++                              Name="VCCustomBuildTool"\r
++                      />\r
++                      <Tool\r
++                              Name="VCXMLDataGeneratorTool"\r
++                      />\r
++                      <Tool\r
++                              Name="VCWebServiceProxyGeneratorTool"\r
++                      />\r
++                      <Tool\r
++                              Name="VCMIDLTool"\r
++                              PreprocessorDefinitions="NDEBUG"\r
++                              MkTypLibCompatible="true"\r
++                              SuppressStartupBanner="true"\r
++                              TargetEnvironment="1"\r
++                              TypeLibraryName=".\..\BuildTmp\Merge7z465___Win32_UnicodeRelease/Merge7z465.tlb"\r
++                              HeaderFileName=""\r
++                      />\r
++                      <Tool\r
++                              Name="VCCLCompilerTool"\r
++                              Optimization="1"\r
++                              InlineFunctionExpansion="1"\r
++                              AdditionalIncludeDirectories="$(SRC7Z)\7z465\CPP"\r
++                              PreprocessorDefinitions="Merge7z465_EXPORTS;WIN32;NDEBUG;_WINDOWS;_USRDLL;UNICODE"\r
++                              StringPooling="true"\r
++                              RuntimeLibrary="0"\r
++                              EnableFunctionLevelLinking="true"\r
++                              UsePrecompiledHeader="2"\r
++                              PrecompiledHeaderThrough="stdafx.h"\r
++                              PrecompiledHeaderFile=".\..\BuildTmp\Merge7z465___Win32_UnicodeRelease/Merge7z465.pch"\r
++                              AssemblerListingLocation=".\..\BuildTmp\Merge7z465___Win32_UnicodeRelease/"\r
++                              ObjectFile=".\..\BuildTmp\Merge7z465___Win32_UnicodeRelease/"\r
++                              ProgramDataBaseFileName=".\..\BuildTmp\Merge7z465___Win32_UnicodeRelease/"\r
++                              WarningLevel="3"\r
++                              SuppressStartupBanner="true"\r
++                      />\r
++                      <Tool\r
++                              Name="VCManagedResourceCompilerTool"\r
++                      />\r
++                      <Tool\r
++                              Name="VCResourceCompilerTool"\r
++                              PreprocessorDefinitions="NDEBUG"\r
++                              Culture="1031"\r
++                      />\r
++                      <Tool\r
++                              Name="VCPreLinkEventTool"\r
++                      />\r
++                      <Tool\r
++                              Name="VCLinkerTool"\r
++                              AdditionalDependencies="shlwapi.lib odbc32.lib odbccp32.lib"\r
++                              OutputFile="../../Build/MergeUnicodeRelease/Merge7z465U.dll"\r
++                              LinkIncremental="1"\r
++                              SuppressStartupBanner="true"\r
++                              ModuleDefinitionFile=".\Merge7z.def"\r
++                              RandomizedBaseAddress="1"\r
++                              DataExecutionPrevention="0"\r
++                              ImportLibrary=".\..\BuildTmp\Merge7z465___Win32_UnicodeRelease/Merge7z465U.lib"\r
++                              TargetMachine="1"\r
++                      />\r
++                      <Tool\r
++                              Name="VCALinkTool"\r
++                      />\r
++                      <Tool\r
++                              Name="VCManifestTool"\r
++                      />\r
++                      <Tool\r
++                              Name="VCXDCMakeTool"\r
++                      />\r
++                      <Tool\r
++                              Name="VCBscMakeTool"\r
++                              SuppressStartupBanner="true"\r
++                              OutputFile=".\..\BuildTmp\Merge7z465___Win32_UnicodeRelease/Merge7z465.bsc"\r
++                      />\r
++                      <Tool\r
++                              Name="VCFxCopTool"\r
++                      />\r
++                      <Tool\r
++                              Name="VCAppVerifierTool"\r
++                      />\r
++                      <Tool\r
++                              Name="VCPostBuildEventTool"\r
++                      />\r
++              </Configuration>\r
++              <Configuration\r
++                      Name="UnicodeRelease|x64"\r
++                      OutputDirectory="$(PlatformName)\$(ConfigurationName)"\r
++                      IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"\r
++                      ConfigurationType="2"\r
++                      InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"\r
++                      UseOfMFC="0"\r
++                      ATLMinimizesCRunTimeLibraryUsage="false"\r
++                      CharacterSet="1"\r
++                      >\r
++                      <Tool\r
++                              Name="VCPreBuildEventTool"\r
++                      />\r
++                      <Tool\r
++                              Name="VCCustomBuildTool"\r
++                      />\r
++                      <Tool\r
++                              Name="VCXMLDataGeneratorTool"\r
++                      />\r
++                      <Tool\r
++                              Name="VCWebServiceProxyGeneratorTool"\r
++                      />\r
++                      <Tool\r
++                              Name="VCMIDLTool"\r
++                              PreprocessorDefinitions="NDEBUG"\r
++                              MkTypLibCompatible="true"\r
++                              SuppressStartupBanner="true"\r
++                              TargetEnvironment="3"\r
++                              TypeLibraryName=".\..\BuildTmp\Merge7z465___Win32_UnicodeRelease/Merge7z465.tlb"\r
++                              HeaderFileName=""\r
++                      />\r
++                      <Tool\r
++                              Name="VCCLCompilerTool"\r
++                              Optimization="1"\r
++                              InlineFunctionExpansion="1"\r
++                              AdditionalIncludeDirectories="$(SRC7Z)\7z465\CPP"\r
++                              PreprocessorDefinitions="Merge7z465_EXPORTS;WIN32;NDEBUG;_WINDOWS;_USRDLL;UNICODE"\r
++                              StringPooling="true"\r
++                              RuntimeLibrary="0"\r
++                              EnableFunctionLevelLinking="true"\r
++                              UsePrecompiledHeader="2"\r
++                              PrecompiledHeaderThrough="stdafx.h"\r
++                              PrecompiledHeaderFile=".\..\BuildTmp\Merge7z465___Win32_UnicodeRelease/Merge7z465.pch"\r
++                              AssemblerListingLocation=".\..\BuildTmp\Merge7z465___Win32_UnicodeRelease/"\r
++                              ObjectFile=".\..\BuildTmp\Merge7z465___Win32_UnicodeRelease/"\r
++                              ProgramDataBaseFileName=".\..\BuildTmp\Merge7z465___Win32_UnicodeRelease/"\r
++                              WarningLevel="3"\r
++                              SuppressStartupBanner="true"\r
++                      />\r
++                      <Tool\r
++                              Name="VCManagedResourceCompilerTool"\r
++                      />\r
++                      <Tool\r
++                              Name="VCResourceCompilerTool"\r
++                              PreprocessorDefinitions="NDEBUG"\r
++                              Culture="1031"\r
++                      />\r
++                      <Tool\r
++                              Name="VCPreLinkEventTool"\r
++                      />\r
++                      <Tool\r
++                              Name="VCLinkerTool"\r
++                              AdditionalDependencies="shlwapi.lib odbc32.lib odbccp32.lib"\r
++                              OutputFile="../../Build/X64/MergeUnicodeRelease/Merge7z465U.dll"\r
++                              LinkIncremental="1"\r
++                              SuppressStartupBanner="true"\r
++                              ModuleDefinitionFile=".\Merge7z.def"\r
++                              RandomizedBaseAddress="1"\r
++                              DataExecutionPrevention="0"\r
++                              ImportLibrary=".\..\BuildTmp\Merge7z465___Win32_UnicodeRelease/Merge7z465U.lib"\r
++                              TargetMachine="17"\r
++                      />\r
++                      <Tool\r
++                              Name="VCALinkTool"\r
++                      />\r
++                      <Tool\r
++                              Name="VCManifestTool"\r
++                      />\r
++                      <Tool\r
++                              Name="VCXDCMakeTool"\r
++                      />\r
++                      <Tool\r
++                              Name="VCBscMakeTool"\r
++                              SuppressStartupBanner="true"\r
++                              OutputFile=".\..\BuildTmp\Merge7z465___Win32_UnicodeRelease/Merge7z465.bsc"\r
++                      />\r
++                      <Tool\r
++                              Name="VCFxCopTool"\r
++                      />\r
++                      <Tool\r
++                              Name="VCAppVerifierTool"\r
++                      />\r
++                      <Tool\r
++                              Name="VCPostBuildEventTool"\r
++                      />\r
++              </Configuration>\r
++              <Configuration\r
++                      Name="Debug|Win32"\r
++                      OutputDirectory=".\..\BuildTmp\Merge7z465___Win32_Debug"\r
++                      IntermediateDirectory=".\..\BuildTmp\Merge7z465___Win32_Debug"\r
++                      ConfigurationType="2"\r
++                      InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"\r
++                      UseOfMFC="0"\r
++                      ATLMinimizesCRunTimeLibraryUsage="false"\r
++                      CharacterSet="2"\r
++                      >\r
++                      <Tool\r
++                              Name="VCPreBuildEventTool"\r
++                      />\r
++                      <Tool\r
++                              Name="VCCustomBuildTool"\r
++                      />\r
++                      <Tool\r
++                              Name="VCXMLDataGeneratorTool"\r
++                      />\r
++                      <Tool\r
++                              Name="VCWebServiceProxyGeneratorTool"\r
++                      />\r
++                      <Tool\r
++                              Name="VCMIDLTool"\r
++                              PreprocessorDefinitions="_DEBUG"\r
++                              MkTypLibCompatible="true"\r
++                              SuppressStartupBanner="true"\r
++                              TargetEnvironment="1"\r
++                              TypeLibraryName=".\..\BuildTmp\Merge7z465___Win32_Debug/Merge7z465.tlb"\r
++                              HeaderFileName=""\r
++                      />\r
++                      <Tool\r
++                              Name="VCCLCompilerTool"\r
++                              Optimization="0"\r
++                              AdditionalIncludeDirectories="$(SRC7Z)\7z465,$(SRC7Z)\7z465\CPP"\r
++                              PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;Merge7z465_EXPORTS"\r
++                              BasicRuntimeChecks="3"\r
++                              RuntimeLibrary="1"\r
++                              UsePrecompiledHeader="2"\r
++                              PrecompiledHeaderThrough="stdafx.h"\r
++                              PrecompiledHeaderFile=".\..\BuildTmp\Merge7z465___Win32_Debug/Merge7z465.pch"\r
++                              AssemblerListingLocation=".\..\BuildTmp\Merge7z465___Win32_Debug/"\r
++                              ObjectFile=".\..\BuildTmp\Merge7z465___Win32_Debug/"\r
++                              ProgramDataBaseFileName=".\..\BuildTmp\Merge7z465___Win32_Debug/"\r
++                              BrowseInformation="1"\r
++                              WarningLevel="3"\r
++                              SuppressStartupBanner="true"\r
++                              DebugInformationFormat="1"\r
++                      />\r
++                      <Tool\r
++                              Name="VCManagedResourceCompilerTool"\r
++                      />\r
++                      <Tool\r
++                              Name="VCResourceCompilerTool"\r
++                              PreprocessorDefinitions="_DEBUG"\r
++                              Culture="1031"\r
++                      />\r
++                      <Tool\r
++                              Name="VCPreLinkEventTool"\r
++                      />\r
++                      <Tool\r
++                              Name="VCLinkerTool"\r
++                              AdditionalDependencies="shlwapi.lib odbc32.lib odbccp32.lib"\r
++                              OutputFile="../../Build/MergeDebug/Merge7z465.dll"\r
++                              LinkIncremental="1"\r
++                              SuppressStartupBanner="true"\r
++                              ModuleDefinitionFile=".\Merge7z.def"\r
++                              GenerateDebugInformation="true"\r
++                              ProgramDatabaseFile="../../Build/MergeDebug/Merge7z465.pdb"\r
++                              RandomizedBaseAddress="1"\r
++                              DataExecutionPrevention="0"\r
++                              ImportLibrary=".\..\BuildTmp\Merge7z465___Win32_Debug/Merge7z465.lib"\r
++                              TargetMachine="1"\r
++                      />\r
++                      <Tool\r
++                              Name="VCALinkTool"\r
++                      />\r
++                      <Tool\r
++                              Name="VCManifestTool"\r
++                      />\r
++                      <Tool\r
++                              Name="VCXDCMakeTool"\r
++                      />\r
++                      <Tool\r
++                              Name="VCBscMakeTool"\r
++                              SuppressStartupBanner="true"\r
++                              OutputFile=".\..\BuildTmp\Merge7z465___Win32_Debug/Merge7z465.bsc"\r
++                      />\r
++                      <Tool\r
++                              Name="VCFxCopTool"\r
++                      />\r
++                      <Tool\r
++                              Name="VCAppVerifierTool"\r
++                      />\r
++                      <Tool\r
++                              Name="VCPostBuildEventTool"\r
++                      />\r
++              </Configuration>\r
++              <Configuration\r
++                      Name="Debug|x64"\r
++                      OutputDirectory="$(PlatformName)\$(ConfigurationName)"\r
++                      IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"\r
++                      ConfigurationType="2"\r
++                      InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"\r
++                      UseOfMFC="0"\r
++                      ATLMinimizesCRunTimeLibraryUsage="false"\r
++                      CharacterSet="2"\r
++                      >\r
++                      <Tool\r
++                              Name="VCPreBuildEventTool"\r
++                      />\r
++                      <Tool\r
++                              Name="VCCustomBuildTool"\r
++                      />\r
++                      <Tool\r
++                              Name="VCXMLDataGeneratorTool"\r
++                      />\r
++                      <Tool\r
++                              Name="VCWebServiceProxyGeneratorTool"\r
++                      />\r
++                      <Tool\r
++                              Name="VCMIDLTool"\r
++                              PreprocessorDefinitions="_DEBUG"\r
++                              MkTypLibCompatible="true"\r
++                              SuppressStartupBanner="true"\r
++                              TargetEnvironment="3"\r
++                              TypeLibraryName=".\..\BuildTmp\Merge7z465___Win32_Debug/Merge7z465.tlb"\r
++                              HeaderFileName=""\r
++                      />\r
++                      <Tool\r
++                              Name="VCCLCompilerTool"\r
++                              Optimization="0"\r
++                              AdditionalIncludeDirectories="$(SRC7Z)\7z465,$(SRC7Z)\7z465\CPP"\r
++                              PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;Merge7z465_EXPORTS"\r
++                              BasicRuntimeChecks="3"\r
++                              RuntimeLibrary="1"\r
++                              UsePrecompiledHeader="2"\r
++                              PrecompiledHeaderThrough="stdafx.h"\r
++                              PrecompiledHeaderFile=".\..\BuildTmp\Merge7z465___Win32_Debug/Merge7z465.pch"\r
++                              AssemblerListingLocation=".\..\BuildTmp\Merge7z465___Win32_Debug/"\r
++                              ObjectFile=".\..\BuildTmp\Merge7z465___Win32_Debug/"\r
++                              ProgramDataBaseFileName=".\..\BuildTmp\Merge7z465___Win32_Debug/"\r
++                              BrowseInformation="1"\r
++                              WarningLevel="3"\r
++                              SuppressStartupBanner="true"\r
++                              DebugInformationFormat="1"\r
++                      />\r
++                      <Tool\r
++                              Name="VCManagedResourceCompilerTool"\r
++                      />\r
++                      <Tool\r
++                              Name="VCResourceCompilerTool"\r
++                              PreprocessorDefinitions="_DEBUG"\r
++                              Culture="1031"\r
++                      />\r
++                      <Tool\r
++                              Name="VCPreLinkEventTool"\r
++                      />\r
++                      <Tool\r
++                              Name="VCLinkerTool"\r
++                              AdditionalDependencies="shlwapi.lib odbc32.lib odbccp32.lib"\r
++                              OutputFile="../../Build/X64/MergeDebug/Merge7z465.dll"\r
++                              LinkIncremental="1"\r
++                              SuppressStartupBanner="true"\r
++                              ModuleDefinitionFile=".\Merge7z.def"\r
++                              GenerateDebugInformation="true"\r
++                              ProgramDatabaseFile="../../Build/MergeDebug/Merge7z465.pdb"\r
++                              RandomizedBaseAddress="1"\r
++                              DataExecutionPrevention="0"\r
++                              ImportLibrary=".\..\BuildTmp\Merge7z465___Win32_Debug/Merge7z465.lib"\r
++                              TargetMachine="17"\r
++                      />\r
++                      <Tool\r
++                              Name="VCALinkTool"\r
++                      />\r
++                      <Tool\r
++                              Name="VCManifestTool"\r
++                      />\r
++                      <Tool\r
++                              Name="VCXDCMakeTool"\r
++                      />\r
++                      <Tool\r
++                              Name="VCBscMakeTool"\r
++                              SuppressStartupBanner="true"\r
++                              OutputFile=".\..\BuildTmp\Merge7z465___Win32_Debug/Merge7z465.bsc"\r
++                      />\r
++                      <Tool\r
++                              Name="VCFxCopTool"\r
++                      />\r
++                      <Tool\r
++                              Name="VCAppVerifierTool"\r
++                      />\r
++                      <Tool\r
++                              Name="VCPostBuildEventTool"\r
++                      />\r
++              </Configuration>\r
++              <Configuration\r
++                      Name="UnicodeDebug|Win32"\r
++                      OutputDirectory=".\..\BuildTmp\Merge7z465___Win32_UnicodeDebug"\r
++                      IntermediateDirectory=".\..\BuildTmp\Merge7z465___Win32_UnicodeDebug"\r
++                      ConfigurationType="2"\r
++                      InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"\r
++                      UseOfMFC="0"\r
++                      ATLMinimizesCRunTimeLibraryUsage="false"\r
++                      CharacterSet="1"\r
++                      >\r
++                      <Tool\r
++                              Name="VCPreBuildEventTool"\r
++                      />\r
++                      <Tool\r
++                              Name="VCCustomBuildTool"\r
++                      />\r
++                      <Tool\r
++                              Name="VCXMLDataGeneratorTool"\r
++                      />\r
++                      <Tool\r
++                              Name="VCWebServiceProxyGeneratorTool"\r
++                      />\r
++                      <Tool\r
++                              Name="VCMIDLTool"\r
++                              PreprocessorDefinitions="_DEBUG"\r
++                              MkTypLibCompatible="true"\r
++                              SuppressStartupBanner="true"\r
++                              TargetEnvironment="1"\r
++                              TypeLibraryName=".\..\BuildTmp\Merge7z465___Win32_UnicodeDebug/Merge7z465.tlb"\r
++                              HeaderFileName=""\r
++                      />\r
++                      <Tool\r
++                              Name="VCCLCompilerTool"\r
++                              Optimization="0"\r
++                              AdditionalIncludeDirectories="$(SRC7Z)\7z465,$(SRC7Z)\7z465\CPP"\r
++                              PreprocessorDefinitions="Merge7z465_EXPORTS;WIN32;_DEBUG;_WINDOWS;_USRDLL;UNICODE"\r
++                              BasicRuntimeChecks="3"\r
++                              RuntimeLibrary="1"\r
++                              UsePrecompiledHeader="2"\r
++                              PrecompiledHeaderThrough="stdafx.h"\r
++                              PrecompiledHeaderFile=".\..\BuildTmp\Merge7z465___Win32_UnicodeDebug/Merge7z465.pch"\r
++                              AssemblerListingLocation=".\..\BuildTmp\Merge7z465___Win32_UnicodeDebug/"\r
++                              ObjectFile=".\..\BuildTmp\Merge7z465___Win32_UnicodeDebug/"\r
++                              ProgramDataBaseFileName=".\..\BuildTmp\Merge7z465___Win32_UnicodeDebug/"\r
++                              BrowseInformation="1"\r
++                              WarningLevel="3"\r
++                              SuppressStartupBanner="true"\r
++                              DebugInformationFormat="1"\r
++                      />\r
++                      <Tool\r
++                              Name="VCManagedResourceCompilerTool"\r
++                      />\r
++                      <Tool\r
++                              Name="VCResourceCompilerTool"\r
++                              PreprocessorDefinitions="_DEBUG"\r
++                              Culture="1031"\r
++                      />\r
++                      <Tool\r
++                              Name="VCPreLinkEventTool"\r
++                      />\r
++                      <Tool\r
++                              Name="VCLinkerTool"\r
++                              AdditionalDependencies="shlwapi.lib odbc32.lib odbccp32.lib"\r
++                              OutputFile="../../Build/MergeUnicodeDebug/Merge7z465U.dll"\r
++                              LinkIncremental="1"\r
++                              SuppressStartupBanner="true"\r
++                              ModuleDefinitionFile=".\Merge7z.def"\r
++                              GenerateDebugInformation="true"\r
++                              ProgramDatabaseFile="../../Build/MergeUnicodeDebug/Merge7z465U.pdb"\r
++                              RandomizedBaseAddress="1"\r
++                              DataExecutionPrevention="0"\r
++                              ImportLibrary=".\..\BuildTmp\Merge7z465___Win32_UnicodeDebug/Merge7z465U.lib"\r
++                              TargetMachine="1"\r
++                      />\r
++                      <Tool\r
++                              Name="VCALinkTool"\r
++                      />\r
++                      <Tool\r
++                              Name="VCManifestTool"\r
++                      />\r
++                      <Tool\r
++                              Name="VCXDCMakeTool"\r
++                      />\r
++                      <Tool\r
++                              Name="VCBscMakeTool"\r
++                              SuppressStartupBanner="true"\r
++                              OutputFile=".\..\BuildTmp\Merge7z465___Win32_UnicodeDebug/Merge7z465.bsc"\r
++                      />\r
++                      <Tool\r
++                              Name="VCFxCopTool"\r
++                      />\r
++                      <Tool\r
++                              Name="VCAppVerifierTool"\r
++                      />\r
++                      <Tool\r
++                              Name="VCPostBuildEventTool"\r
++                      />\r
++              </Configuration>\r
++              <Configuration\r
++                      Name="UnicodeDebug|x64"\r
++                      OutputDirectory="$(PlatformName)\$(ConfigurationName)"\r
++                      IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"\r
++                      ConfigurationType="2"\r
++                      InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"\r
++                      UseOfMFC="0"\r
++                      ATLMinimizesCRunTimeLibraryUsage="false"\r
++                      CharacterSet="1"\r
++                      >\r
++                      <Tool\r
++                              Name="VCPreBuildEventTool"\r
++                      />\r
++                      <Tool\r
++                              Name="VCCustomBuildTool"\r
++                      />\r
++                      <Tool\r
++                              Name="VCXMLDataGeneratorTool"\r
++                      />\r
++                      <Tool\r
++                              Name="VCWebServiceProxyGeneratorTool"\r
++                      />\r
++                      <Tool\r
++                              Name="VCMIDLTool"\r
++                              PreprocessorDefinitions="_DEBUG"\r
++                              MkTypLibCompatible="true"\r
++                              SuppressStartupBanner="true"\r
++                              TargetEnvironment="3"\r
++                              TypeLibraryName=".\..\BuildTmp\Merge7z465___Win32_UnicodeDebug/Merge7z465.tlb"\r
++                              HeaderFileName=""\r
++                      />\r
++                      <Tool\r
++                              Name="VCCLCompilerTool"\r
++                              Optimization="0"\r
++                              AdditionalIncludeDirectories="$(SRC7Z)\7z465,$(SRC7Z)\7z465\CPP"\r
++                              PreprocessorDefinitions="Merge7z465_EXPORTS;WIN32;_DEBUG;_WINDOWS;_USRDLL;UNICODE"\r
++                              BasicRuntimeChecks="3"\r
++                              RuntimeLibrary="1"\r
++                              UsePrecompiledHeader="2"\r
++                              PrecompiledHeaderThrough="stdafx.h"\r
++                              PrecompiledHeaderFile=".\..\BuildTmp\Merge7z465___Win32_UnicodeDebug/Merge7z465.pch"\r
++                              AssemblerListingLocation=".\..\BuildTmp\Merge7z465___Win32_UnicodeDebug/"\r
++                              ObjectFile=".\..\BuildTmp\Merge7z465___Win32_UnicodeDebug/"\r
++                              ProgramDataBaseFileName=".\..\BuildTmp\Merge7z465___Win32_UnicodeDebug/"\r
++                              BrowseInformation="1"\r
++                              WarningLevel="3"\r
++                              SuppressStartupBanner="true"\r
++                              DebugInformationFormat="1"\r
++                      />\r
++                      <Tool\r
++                              Name="VCManagedResourceCompilerTool"\r
++                      />\r
++                      <Tool\r
++                              Name="VCResourceCompilerTool"\r
++                              PreprocessorDefinitions="_DEBUG"\r
++                              Culture="1031"\r
++                      />\r
++                      <Tool\r
++                              Name="VCPreLinkEventTool"\r
++                      />\r
++                      <Tool\r
++                              Name="VCLinkerTool"\r
++                              AdditionalDependencies="shlwapi.lib odbc32.lib odbccp32.lib"\r
++                              OutputFile="../../Build/X64/MergeUnicodeDebug/Merge7z465U.dll"\r
++                              LinkIncremental="1"\r
++                              SuppressStartupBanner="true"\r
++                              ModuleDefinitionFile=".\Merge7z.def"\r
++                              GenerateDebugInformation="true"\r
++                              ProgramDatabaseFile="../../Build/MergeUnicodeDebug/Merge7z465U.pdb"\r
++                              RandomizedBaseAddress="1"\r
++                              DataExecutionPrevention="0"\r
++                              ImportLibrary=".\..\BuildTmp\Merge7z465___Win32_UnicodeDebug/Merge7z465U.lib"\r
++                              TargetMachine="17"\r
++                      />\r
++                      <Tool\r
++                              Name="VCALinkTool"\r
++                      />\r
++                      <Tool\r
++                              Name="VCManifestTool"\r
++                      />\r
++                      <Tool\r
++                              Name="VCXDCMakeTool"\r
++                      />\r
++                      <Tool\r
++                              Name="VCBscMakeTool"\r
++                              SuppressStartupBanner="true"\r
++                              OutputFile=".\..\BuildTmp\Merge7z465___Win32_UnicodeDebug/Merge7z465.bsc"\r
++                      />\r
++                      <Tool\r
++                              Name="VCFxCopTool"\r
++                      />\r
++                      <Tool\r
++                              Name="VCAppVerifierTool"\r
++                      />\r
++                      <Tool\r
++                              Name="VCPostBuildEventTool"\r
++                      />\r
++              </Configuration>\r
++      </Configurations>\r
++      <References>\r
++      </References>\r
++      <Files>\r
++              <Filter\r
++                      Name="Quellcodedateien"\r
++                      Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"\r
++                      >\r
++                      <File\r
++                              RelativePath="Merge7z.def"\r
++                              >\r
++                      </File>\r
++                      <File\r
++                              RelativePath="Merge7z.h"\r
++                              >\r
++                      </File>\r
++                      <File\r
++                              RelativePath=".\Merge7z459.cpp"\r
++                              >\r
++                      </File>\r
++                      <File\r
++                              RelativePath="Merge7zCommon.cpp"\r
++                              >\r
++                              <FileConfiguration\r
++                                      Name="Release|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Release|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeRelease|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeRelease|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Debug|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Debug|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeDebug|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeDebug|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                      </File>\r
++                      <File\r
++                              RelativePath="Merge7zCommon.h"\r
++                              >\r
++                      </File>\r
++                      <File\r
++                              RelativePath="StdAfx.cpp"\r
++                              >\r
++                              <FileConfiguration\r
++                                      Name="Release|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                              UsePrecompiledHeader="1"\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Release|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                              UsePrecompiledHeader="1"\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeRelease|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                              UsePrecompiledHeader="1"\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeRelease|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                              UsePrecompiledHeader="1"\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Debug|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                              UsePrecompiledHeader="1"\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Debug|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                              UsePrecompiledHeader="1"\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeDebug|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                              UsePrecompiledHeader="1"\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeDebug|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                              UsePrecompiledHeader="1"\r
++                                      />\r
++                              </FileConfiguration>\r
++                      </File>\r
++                      <File\r
++                              RelativePath="StdAfx.h"\r
++                              >\r
++                      </File>\r
++                      <File\r
++                              RelativePath="tools.cpp"\r
++                              >\r
++                              <FileConfiguration\r
++                                      Name="Release|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Release|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeRelease|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeRelease|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Debug|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Debug|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeDebug|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeDebug|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                      </File>\r
++                      <File\r
++                              RelativePath="tools.h"\r
++                              >\r
++                      </File>\r
++              </Filter>\r
++              <Filter\r
++                      Name="Ressourcendateien"\r
++                      Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"\r
++                      >\r
++                      <File\r
++                              RelativePath="$(SRC7Z)\7z465\CPP\7zip\Ui\Gui\FM.ico"\r
++                              >\r
++                      </File>\r
++                      <File\r
++                              RelativePath="$(SRC7Z)\7z465\CPP\7zip\UI\GUI\resource.h"\r
++                              >\r
++                      </File>\r
++                      <File\r
++                              RelativePath="$(SRC7Z)\7z465\CPP\7zip\Ui\Gui\resource.rc"\r
++                              >\r
++                              <FileConfiguration\r
++                                      Name="Release|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCResourceCompilerTool"\r
++                                              PreprocessorDefinitions=""\r
++                                              AdditionalIncludeDirectories="$(SRC7Z)\7z465\CPP\7zip\Ui\Gui"\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Release|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCResourceCompilerTool"\r
++                                              PreprocessorDefinitions=""\r
++                                              AdditionalIncludeDirectories="$(SRC7Z)\7z465\CPP\7zip\Ui\Gui"\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeRelease|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCResourceCompilerTool"\r
++                                              PreprocessorDefinitions=""\r
++                                              AdditionalIncludeDirectories="$(SRC7Z)\7z465\CPP\7zip\Ui\Gui"\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeRelease|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCResourceCompilerTool"\r
++                                              PreprocessorDefinitions=""\r
++                                              AdditionalIncludeDirectories="$(SRC7Z)\7z465\CPP\7zip\Ui\Gui"\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Debug|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCResourceCompilerTool"\r
++                                              PreprocessorDefinitions=""\r
++                                              AdditionalIncludeDirectories="$(SRC7Z)\7z465\CPP\7zip\Ui\Gui"\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Debug|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCResourceCompilerTool"\r
++                                              PreprocessorDefinitions=""\r
++                                              AdditionalIncludeDirectories="$(SRC7Z)\7z465\CPP\7zip\Ui\Gui"\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeDebug|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCResourceCompilerTool"\r
++                                              PreprocessorDefinitions=""\r
++                                              AdditionalIncludeDirectories="$(SRC7Z)\7z465\CPP\7zip\Ui\Gui"\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeDebug|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCResourceCompilerTool"\r
++                                              PreprocessorDefinitions=""\r
++                                              AdditionalIncludeDirectories="$(SRC7Z)\7z465\CPP\7zip\Ui\Gui"\r
++                                      />\r
++                              </FileConfiguration>\r
++                      </File>\r
++              </Filter>\r
++              <Filter\r
++                      Name="Windows"\r
++                      >\r
++                      <File\r
++                              RelativePath="$(SRC7Z)\7z465\CPP\Windows\DLL.cpp"\r
++                              >\r
++                              <FileConfiguration\r
++                                      Name="Release|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Release|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeRelease|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeRelease|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Debug|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Debug|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeDebug|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeDebug|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                      </File>\r
++                      <File\r
++                              RelativePath="$(SRC7Z)\7z465\CPP\Windows\DLL.h"\r
++                              >\r
++                      </File>\r
++                      <File\r
++                              RelativePath="$(SRC7Z)\7z465\CPP\Windows\Error.cpp"\r
++                              >\r
++                              <FileConfiguration\r
++                                      Name="Release|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Release|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeRelease|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeRelease|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Debug|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Debug|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeDebug|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeDebug|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                      </File>\r
++                      <File\r
++                              RelativePath="$(SRC7Z)\7z465\CPP\Windows\Error.h"\r
++                              >\r
++                      </File>\r
++                      <File\r
++                              RelativePath="$(SRC7Z)\7z465\CPP\Windows\FileIO.cpp"\r
++                              >\r
++                              <FileConfiguration\r
++                                      Name="Release|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Release|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeRelease|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeRelease|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Debug|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Debug|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeDebug|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeDebug|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                      </File>\r
++                      <File\r
++                              RelativePath="$(SRC7Z)\7z465\CPP\Windows\FileIO.h"\r
++                              >\r
++                      </File>\r
++                      <File\r
++                              RelativePath="$(SRC7Z)\7z465\CPP\Windows\PropVariant.cpp"\r
++                              >\r
++                              <FileConfiguration\r
++                                      Name="Release|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Release|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeRelease|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeRelease|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Debug|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Debug|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeDebug|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeDebug|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                      </File>\r
++                      <File\r
++                              RelativePath="$(SRC7Z)\7z465\CPP\Windows\PropVariant.h"\r
++                              >\r
++                      </File>\r
++                      <File\r
++                              RelativePath="$(SRC7Z)\7z465\CPP\Windows\PropVariantConversions.cpp"\r
++                              >\r
++                              <FileConfiguration\r
++                                      Name="Release|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Release|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeRelease|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeRelease|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Debug|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Debug|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeDebug|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeDebug|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                      </File>\r
++                      <File\r
++                              RelativePath="$(SRC7Z)\7z465\CPP\Windows\PropVariantConversions.h"\r
++                              >\r
++                      </File>\r
++                      <File\r
++                              RelativePath="$(SRC7Z)\7z465\CPP\Windows\ResourceString.cpp"\r
++                              >\r
++                              <FileConfiguration\r
++                                      Name="Release|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Release|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeRelease|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeRelease|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Debug|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Debug|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeDebug|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeDebug|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                      </File>\r
++                      <File\r
++                              RelativePath="$(SRC7Z)\7z465\CPP\Windows\ResourceString.h"\r
++                              >\r
++                      </File>\r
++                      <File\r
++                              RelativePath="$(SRC7Z)\7z465\CPP\Windows\Synchronization.cpp"\r
++                              >\r
++                              <FileConfiguration\r
++                                      Name="Release|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Release|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeRelease|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeRelease|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Debug|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Debug|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeDebug|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeDebug|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                      </File>\r
++                      <File\r
++                              RelativePath="$(SRC7Z)\7z465\CPP\Windows\Synchronization.h"\r
++                              >\r
++                      </File>\r
++              </Filter>\r
++              <Filter\r
++                      Name="Common"\r
++                      >\r
++                      <File\r
++                              RelativePath="$(SRC7Z)\7z465\CPP\Common\IntToString.cpp"\r
++                              >\r
++                              <FileConfiguration\r
++                                      Name="Release|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Release|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeRelease|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeRelease|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Debug|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Debug|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeDebug|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeDebug|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                      </File>\r
++                      <File\r
++                              RelativePath="$(SRC7Z)\7z465\CPP\Common\IntToString.h"\r
++                              >\r
++                      </File>\r
++                      <File\r
++                              RelativePath="$(SRC7Z)\7z465\CPP\Common\Lang.cpp"\r
++                              >\r
++                              <FileConfiguration\r
++                                      Name="Release|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Release|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeRelease|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeRelease|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Debug|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Debug|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeDebug|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeDebug|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                      </File>\r
++                      <File\r
++                              RelativePath="$(SRC7Z)\7z465\CPP\Common\Lang.h"\r
++                              >\r
++                      </File>\r
++                      <File\r
++                              RelativePath="$(SRC7Z)\7z465\CPP\Common\MyString.cpp"\r
++                              >\r
++                              <FileConfiguration\r
++                                      Name="Release|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Release|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeRelease|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeRelease|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Debug|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Debug|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeDebug|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeDebug|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                      </File>\r
++                      <File\r
++                              RelativePath="$(SRC7Z)\7z465\CPP\Common\MyString.h"\r
++                              >\r
++                      </File>\r
++                      <File\r
++                              RelativePath="$(SRC7Z)\7z465\CPP\Common\StdInStream.cpp"\r
++                              >\r
++                              <FileConfiguration\r
++                                      Name="Release|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Release|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeRelease|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeRelease|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Debug|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Debug|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeDebug|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeDebug|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                      </File>\r
++                      <File\r
++                              RelativePath="$(SRC7Z)\7z465\CPP\Common\StdInStream.h"\r
++                              >\r
++                      </File>\r
++                      <File\r
++                              RelativePath="$(SRC7Z)\7z465\CPP\Common\StringConvert.cpp"\r
++                              >\r
++                              <FileConfiguration\r
++                                      Name="Release|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Release|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeRelease|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeRelease|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Debug|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Debug|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeDebug|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeDebug|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                      </File>\r
++                      <File\r
++                              RelativePath="$(SRC7Z)\7z465\CPP\Common\StringConvert.h"\r
++                              >\r
++                      </File>\r
++                      <File\r
++                              RelativePath="$(SRC7Z)\7z465\CPP\Common\StringToInt.cpp"\r
++                              >\r
++                              <FileConfiguration\r
++                                      Name="Release|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Release|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeRelease|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeRelease|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Debug|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Debug|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeDebug|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeDebug|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                      </File>\r
++                      <File\r
++                              RelativePath="$(SRC7Z)\7z465\CPP\Common\StringToInt.h"\r
++                              >\r
++                      </File>\r
++                      <File\r
++                              RelativePath="$(SRC7Z)\7z465\CPP\Common\TextConfig.cpp"\r
++                              >\r
++                              <FileConfiguration\r
++                                      Name="Release|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Release|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeRelease|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeRelease|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Debug|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Debug|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeDebug|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeDebug|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                      </File>\r
++                      <File\r
++                              RelativePath="$(SRC7Z)\7z465\CPP\Common\TextConfig.h"\r
++                              >\r
++                      </File>\r
++                      <File\r
++                              RelativePath="$(SRC7Z)\7z465\CPP\Common\UTFConvert.cpp"\r
++                              >\r
++                              <FileConfiguration\r
++                                      Name="Release|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Release|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeRelease|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeRelease|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Debug|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Debug|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeDebug|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeDebug|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                      </File>\r
++                      <File\r
++                              RelativePath="$(SRC7Z)\7z465\CPP\Common\UTFConvert.h"\r
++                              >\r
++                      </File>\r
++              </Filter>\r
++              <Filter\r
++                      Name="7zip Common"\r
++                      >\r
++                      <File\r
++                              RelativePath="$(SRC7Z)\7z465\CPP\7zip\Ui\Common\ArchiveExtractCallback.cpp"\r
++                              >\r
++                              <FileConfiguration\r
++                                      Name="Release|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Release|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeRelease|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeRelease|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Debug|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Debug|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeDebug|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeDebug|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                      </File>\r
++                      <File\r
++                              RelativePath="$(SRC7Z)\7z465\CPP\7zip\UI\Common\ArchiveExtractCallback.h"\r
++                              >\r
++                      </File>\r
++                      <File\r
++                              RelativePath="$(SRC7Z)\7z465\CPP\7zip\UI\Common\ArchiveOpenCallback.cpp"\r
++                              >\r
++                              <FileConfiguration\r
++                                      Name="Release|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Release|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeRelease|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeRelease|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Debug|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Debug|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeDebug|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeDebug|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                      </File>\r
++                      <File\r
++                              RelativePath="$(SRC7Z)\7z465\CPP\7zip\UI\Common\ArchiveOpenCallback.h"\r
++                              >\r
++                      </File>\r
++                      <File\r
++                              RelativePath="$(SRC7Z)\7z465\CPP\7zip\UI\Common\DefaultName.cpp"\r
++                              >\r
++                              <FileConfiguration\r
++                                      Name="Release|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Release|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeRelease|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeRelease|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Debug|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Debug|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeDebug|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeDebug|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                      </File>\r
++                      <File\r
++                              RelativePath="$(SRC7Z)\7z465\CPP\7zip\UI\Common\DefaultName.h"\r
++                              >\r
++                      </File>\r
++                      <File\r
++                              RelativePath="$(SRC7Z)\7z465\CPP\Windows\Control\Dialog.cpp"\r
++                              >\r
++                              <FileConfiguration\r
++                                      Name="Release|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Release|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeRelease|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeRelease|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Debug|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Debug|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeDebug|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeDebug|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                      </File>\r
++                      <File\r
++                              RelativePath="$(SRC7Z)\7z465\CPP\Windows\Control\Dialog.h"\r
++                              >\r
++                      </File>\r
++                      <File\r
++                              RelativePath="..\..\..\..\..\7-zip\7z465\CPP\7zip\UI\Common\EnumDirItems.cpp"\r
++                              >\r
++                      </File>\r
++                      <File\r
++                              RelativePath="..\..\..\..\..\7-zip\7z465\CPP\7zip\UI\Common\EnumDirItems.h"\r
++                              >\r
++                      </File>\r
++                      <File\r
++                              RelativePath="$(SRC7Z)\7z465\CPP\7zip\UI\FileManager\ExtractCallback.cpp"\r
++                              >\r
++                              <FileConfiguration\r
++                                      Name="Release|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Release|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeRelease|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeRelease|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Debug|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Debug|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeDebug|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeDebug|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                      </File>\r
++                      <File\r
++                              RelativePath="$(SRC7Z)\7z465\CPP\7zip\UI\FileManager\ExtractCallback.h"\r
++                              >\r
++                      </File>\r
++                      <File\r
++                              RelativePath="$(SRC7Z)\7z465\CPP\7zip\Common\FileStreams.cpp"\r
++                              >\r
++                              <FileConfiguration\r
++                                      Name="Release|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Release|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeRelease|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeRelease|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Debug|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Debug|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeDebug|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeDebug|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                      </File>\r
++                      <File\r
++                              RelativePath="$(SRC7Z)\7z465\CPP\7zip\Common\FileStreams.h"\r
++                              >\r
++                      </File>\r
++                      <File\r
++                              RelativePath="$(SRC7Z)\7z465\CPP\7zip\UI\FileManager\FormatUtils.cpp"\r
++                              >\r
++                              <FileConfiguration\r
++                                      Name="Release|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Release|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeRelease|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeRelease|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Debug|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Debug|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeDebug|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeDebug|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                      </File>\r
++                      <File\r
++                              RelativePath="$(SRC7Z)\7z465\CPP\7zip\UI\FileManager\FormatUtils.h"\r
++                              >\r
++                      </File>\r
++                      <File\r
++                              RelativePath="$(SRC7Z)\7z465\CPP\7zip\UI\FileManager\LangUtils.cpp"\r
++                              >\r
++                              <FileConfiguration\r
++                                      Name="Release|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Release|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeRelease|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeRelease|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Debug|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Debug|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeDebug|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeDebug|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                      </File>\r
++                      <File\r
++                              RelativePath="$(SRC7Z)\7z465\CPP\7zip\UI\FileManager\LangUtils.h"\r
++                              >\r
++                      </File>\r
++                      <File\r
++                              RelativePath="..\..\..\..\..\7-zip\7z465\CPP\Windows\Control\ListView.cpp"\r
++                              >\r
++                      </File>\r
++                      <File\r
++                              RelativePath="..\..\..\..\..\7-zip\7z465\CPP\Windows\Control\ListView.h"\r
++                              >\r
++                      </File>\r
++                      <File\r
++                              RelativePath="..\..\..\..\..\7-zip\7z465\CPP\7zip\UI\Common\LoadCodecs.cpp"\r
++                              >\r
++                      </File>\r
++                      <File\r
++                              RelativePath="..\..\..\..\..\7-zip\7z465\CPP\7zip\UI\Common\LoadCodecs.h"\r
++                              >\r
++                      </File>\r
++                      <File\r
++                              RelativePath="$(SRC7Z)\7z465\CPP\7zip\UI\FileManager\MessagesDialog.cpp"\r
++                              >\r
++                              <FileConfiguration\r
++                                      Name="Release|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Release|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeRelease|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeRelease|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Debug|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Debug|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeDebug|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeDebug|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                      </File>\r
++                      <File\r
++                              RelativePath="$(SRC7Z)\7z465\CPP\7zip\UI\FileManager\MessagesDialog.h"\r
++                              >\r
++                      </File>\r
++                      <File\r
++                              RelativePath="$(SRC7Z)\7z465\CPP\7zip\UI\Common\OpenArchive.cpp"\r
++                              >\r
++                              <FileConfiguration\r
++                                      Name="Release|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Release|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeRelease|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeRelease|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Debug|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Debug|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeDebug|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeDebug|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                      </File>\r
++                      <File\r
++                              RelativePath="$(SRC7Z)\7z465\CPP\7zip\UI\Common\OpenArchive.h"\r
++                              >\r
++                      </File>\r
++                      <File\r
++                              RelativePath="$(SRC7Z)\7z465\CPP\7zip\UI\FileManager\OpenCallback.cpp"\r
++                              >\r
++                              <FileConfiguration\r
++                                      Name="Release|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Release|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeRelease|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeRelease|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Debug|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Debug|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeDebug|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeDebug|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                      </File>\r
++                      <File\r
++                              RelativePath="$(SRC7Z)\7z465\CPP\7zip\UI\FileManager\OpenCallback.h"\r
++                              >\r
++                      </File>\r
++                      <File\r
++                              RelativePath="$(SRC7Z)\7z465\CPP\7zip\UI\FileManager\OverwriteDialog.cpp"\r
++                              >\r
++                              <FileConfiguration\r
++                                      Name="Release|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Release|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeRelease|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeRelease|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Debug|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Debug|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeDebug|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeDebug|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                      </File>\r
++                      <File\r
++                              RelativePath="$(SRC7Z)\7z465\CPP\7zip\UI\FileManager\OverwriteDialog.h"\r
++                              >\r
++                      </File>\r
++                      <File\r
++                              RelativePath="$(SRC7Z)\7z465\CPP\7zip\UI\FileManager\PasswordDialog.cpp"\r
++                              >\r
++                              <FileConfiguration\r
++                                      Name="Release|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Release|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeRelease|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeRelease|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Debug|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Debug|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeDebug|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeDebug|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                      </File>\r
++                      <File\r
++                              RelativePath="$(SRC7Z)\7z465\CPP\7zip\UI\FileManager\PasswordDialog.h"\r
++                              >\r
++                      </File>\r
++                      <File\r
++                              RelativePath="$(SRC7Z)\7z465\CPP\7zip\UI\FileManager\ProgramLocation.cpp"\r
++                              >\r
++                              <FileConfiguration\r
++                                      Name="Release|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Release|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeRelease|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeRelease|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Debug|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Debug|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeDebug|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeDebug|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                      </File>\r
++                      <File\r
++                              RelativePath="$(SRC7Z)\7z465\CPP\7zip\UI\FileManager\ProgramLocation.h"\r
++                              >\r
++                      </File>\r
++                      <File\r
++                              RelativePath="$(SRC7Z)\7z465\CPP\7zip\UI\FileManager\ProgressDialog2.cpp"\r
++                              >\r
++                              <FileConfiguration\r
++                                      Name="Release|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Release|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeRelease|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeRelease|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Debug|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Debug|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeDebug|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeDebug|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                      </File>\r
++                      <File\r
++                              RelativePath="$(SRC7Z)\7z465\CPP\7zip\Common\ProgressUtils.cpp"\r
++                              >\r
++                              <FileConfiguration\r
++                                      Name="Release|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Release|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeRelease|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeRelease|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Debug|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Debug|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeDebug|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeDebug|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                      </File>\r
++                      <File\r
++                              RelativePath="$(SRC7Z)\7z465\CPP\7zip\Common\ProgressUtils.h"\r
++                              >\r
++                      </File>\r
++                      <File\r
++                              RelativePath="$(SRC7Z)\7z465\CPP\7zip\Common\StreamUtils.cpp"\r
++                              >\r
++                              <FileConfiguration\r
++                                      Name="Release|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Release|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeRelease|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeRelease|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Debug|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Debug|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeDebug|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeDebug|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                      </File>\r
++                      <File\r
++                              RelativePath="$(SRC7Z)\7z465\CPP\7zip\Common\StreamUtils.h"\r
++                              >\r
++                      </File>\r
++                      <File\r
++                              RelativePath="$(SRC7Z)\7z465\CPP\7zip\UI\Common\UpdateCallback.cpp"\r
++                              >\r
++                              <FileConfiguration\r
++                                      Name="Release|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Release|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeRelease|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeRelease|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Debug|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Debug|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeDebug|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeDebug|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                      </File>\r
++                      <File\r
++                              RelativePath="$(SRC7Z)\7z465\CPP\7zip\UI\Common\UpdateCallback.h"\r
++                              >\r
++                      </File>\r
++                      <File\r
++                              RelativePath="$(SRC7Z)\7z465\CPP\7zip\UI\GUI\UpdateCallbackGUI.cpp"\r
++                              >\r
++                              <FileConfiguration\r
++                                      Name="Release|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Release|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeRelease|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeRelease|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Debug|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Debug|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeDebug|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeDebug|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                      </File>\r
++                      <File\r
++                              RelativePath="$(SRC7Z)\7z465\CPP\7zip\UI\GUI\UpdateCallbackGUI.h"\r
++                              >\r
++                      </File>\r
++                      <File\r
++                              RelativePath="$(SRC7Z)\7z465\CPP\Windows\Window.cpp"\r
++                              >\r
++                              <FileConfiguration\r
++                                      Name="Release|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Release|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeRelease|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeRelease|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Debug|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Debug|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeDebug|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeDebug|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                      </File>\r
++                      <File\r
++                              RelativePath="$(SRC7Z)\7z465\CPP\Windows\Window.h"\r
++                              >\r
++                      </File>\r
++              </Filter>\r
++              <Filter\r
++                      Name="Extract"\r
++                      >\r
++                      <File\r
++                              RelativePath="$(SRC7Z)\7z465\CPP\7zip\Ui\Common\ExtractingFilePath.cpp"\r
++                              >\r
++                              <FileConfiguration\r
++                                      Name="Release|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Release|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeRelease|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeRelease|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Debug|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Debug|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeDebug|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeDebug|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                      </File>\r
++                      <File\r
++                              RelativePath="$(SRC7Z)\7z465\CPP\7zip\UI\Common\ExtractingFilePath.h"\r
++                              >\r
++                      </File>\r
++                      <File\r
++                              RelativePath="$(SRC7Z)\7z465\CPP\Windows\FileDir.cpp"\r
++                              >\r
++                              <FileConfiguration\r
++                                      Name="Release|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Release|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeRelease|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeRelease|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Debug|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Debug|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeDebug|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeDebug|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                      </File>\r
++                      <File\r
++                              RelativePath="$(SRC7Z)\7z465\CPP\Windows\FileDir.h"\r
++                              >\r
++                      </File>\r
++                      <File\r
++                              RelativePath="$(SRC7Z)\7z465\CPP\Windows\FileFind.cpp"\r
++                              >\r
++                              <FileConfiguration\r
++                                      Name="Release|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Release|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeRelease|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeRelease|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Debug|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Debug|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeDebug|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeDebug|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                      </File>\r
++                      <File\r
++                              RelativePath="$(SRC7Z)\7z465\CPP\Windows\FileFind.h"\r
++                              >\r
++                      </File>\r
++                      <File\r
++                              RelativePath="$(SRC7Z)\7z465\CPP\Windows\FileName.cpp"\r
++                              >\r
++                              <FileConfiguration\r
++                                      Name="Release|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Release|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeRelease|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeRelease|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Debug|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Debug|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeDebug|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeDebug|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                      </File>\r
++                      <File\r
++                              RelativePath="$(SRC7Z)\7z465\CPP\Windows\FileName.h"\r
++                              >\r
++                      </File>\r
++                      <File\r
++                              RelativePath="$(SRC7Z)\7z465\CPP\7zip\Common\FilePathAutoRename.cpp"\r
++                              >\r
++                              <FileConfiguration\r
++                                      Name="Release|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Release|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeRelease|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeRelease|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Debug|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Debug|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeDebug|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeDebug|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                      </File>\r
++                      <File\r
++                              RelativePath="$(SRC7Z)\7z465\CPP\7zip\Common\FilePathAutoRename.h"\r
++                              >\r
++                      </File>\r
++                      <File\r
++                              RelativePath="$(SRC7Z)\7z465\CPP\Common\MyVector.cpp"\r
++                              >\r
++                              <FileConfiguration\r
++                                      Name="Release|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Release|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeRelease|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeRelease|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Debug|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Debug|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeDebug|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeDebug|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                      </File>\r
++                      <File\r
++                              RelativePath="$(SRC7Z)\7z465\CPP\Common\MyVector.h"\r
++                              >\r
++                      </File>\r
++                      <File\r
++                              RelativePath="$(SRC7Z)\7z465\CPP\Common\Wildcard.cpp"\r
++                              >\r
++                              <FileConfiguration\r
++                                      Name="Release|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Release|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeRelease|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeRelease|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Debug|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Debug|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeDebug|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeDebug|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                      />\r
++                              </FileConfiguration>\r
++                      </File>\r
++                      <File\r
++                              RelativePath="$(SRC7Z)\7z465\CPP\Common\Wildcard.h"\r
++                              >\r
++                      </File>\r
++              </Filter>\r
++              <Filter\r
++                      Name="C"\r
++                      >\r
++                      <File\r
++                              RelativePath="$(SRC7Z)\7z465\C\Threads.c"\r
++                              >\r
++                              <FileConfiguration\r
++                                      Name="Release|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                              UsePrecompiledHeader="0"\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Release|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                              UsePrecompiledHeader="0"\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeRelease|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                              UsePrecompiledHeader="0"\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeRelease|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                              UsePrecompiledHeader="0"\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Debug|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                              UsePrecompiledHeader="0"\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="Debug|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                              UsePrecompiledHeader="0"\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeDebug|Win32"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                              UsePrecompiledHeader="0"\r
++                                      />\r
++                              </FileConfiguration>\r
++                              <FileConfiguration\r
++                                      Name="UnicodeDebug|x64"\r
++                                      >\r
++                                      <Tool\r
++                                              Name="VCCLCompilerTool"\r
++                                              AdditionalIncludeDirectories=""\r
++                                              PreprocessorDefinitions=""\r
++                                              UsePrecompiledHeader="0"\r
++                                      />\r
++                              </FileConfiguration>\r
++                      </File>\r
++              </Filter>\r
++              <Filter\r
++                      Name="Header-Dateien"\r
++                      Filter="h;hpp;hxx;hm;inl"\r
++                      >\r
++              </Filter>\r
++              <File\r
++                      RelativePath="$(SRC7Z)\7z465\CPP\7zip\Ui\Gui\7zG.exe.manifest"\r
++                      >\r
++              </File>\r
++              <File\r
++                      RelativePath="revision.txt"\r
++                      >\r
++              </File>\r
++      </Files>\r
++      <Globals>\r
++      </Globals>\r
++</VisualStudioProject>\r
--/* Merge7zCommon.cpp: Provide a handy C++ interface to access 7Zip services
-- * Copyright (c) 2003 Jochen Tucht
-- *
-- * License:   This program is free software; you can redistribute it and/or modify
-- *                    it under the terms of the GNU General Public License as published by
-- *                    the Free Software Foundation; either version 2 of the License, or
-- *                    (at your option) any later version.
-- *
-- *                    This program is distributed in the hope that it will be useful,
-- *                    but WITHOUT ANY WARRANTY; without even the implied warranty of
-- *                    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-- *                    GNU General Public License for more details.
-- *
-- *                    You should have received a copy of the GNU General Public License
-- *                    along with this program; if not, write to the Free Software
-- *                    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-- *
-- * Remarks:   This file contains the presumably version-independent parts of
-- *                    Merge7z code. Version specific code resides in Merge7zXXX.cpp.
--
--Please mind 2. a) of the GNU General Public License, and log your changes below.
--
--DATE:         BY:                                     DESCRIPTION:
--==========    ==================      ================================================
--2003-12-09    Jochen Tucht            Created
--2003-12-16    Jochen Tucht            GuessFormat() now checks for directory
--2004-03-18    Jochen Tucht            Experimental DllGetVersion() based on rcsid.
--2004-10-10    Jochen Tucht            DllGetVersion() based on new REVISION.TXT
--2005-01-15    Jochen Tucht            Changed as explained in revision.txt
--2005-02-26    Jochen Tucht            Changed as explained in revision.txt
--2005-03-19    Jochen Tucht            Changed as explained in revision.txt
--2005-06-22    Jochen Tucht            Treat .ear and .war like .zip
--2005-07-05    Jochen Tucht            Add missing .tbz2
--2005-08-20    Jochen Tucht            Option to guess archive format by signature.
--                                                              EnumerateDirectory() in EnumDirItems.cpp has
--                                                              somewhat changed so I can no longer use it.
--2005-10-02    Jochen Tucht            Add CHM format
--2005-11-19    Jochen Tucht            Minor changes to build against 7z430 beta
--2006-06-28    Jochen Neubeck          Add ISO format (introduced with 7z436 beta)
--                                                              Add NSIS format (introduced with 7z440 beta)
--2007-01-27    Jochen Neubeck          Unassociate .exe filename extension from NSIS
--                                                              format due to undesired side effect on WinMerge
--2007-04-20    Jochen Neubeck          Cope with 7z445's revised plugin system
--2007-07-13    Jochen Neubeck          Pass MSI files to CAB handler
--2007-08-25    Jochen Neubeck          Add COM format (introduced with 7z452 beta)
--                                                              This format also handles MSI files, which are
--                                                              therefore no longer passed to the CAB handler.
--2007-09-01    Jochen Neubeck          No longer #include "LangUtils.h", which has
--                                                              moved to a different location as of 7z453 beta.
--2007-12-22    Jochen Neubeck          Unassociate .001 filename extension
 -2008-08-03    Jochen Neubeck          Add LZMA format (introduced with 7z458 beta)
 -2010-04-24    Jochen Neubeck          New formats introduced with 7z459 beta:
 -                                                              XAR, MUB, HFS, DMG, ELF (not sure if they work)
--*/
--
--#include "stdafx.h"
--#include "Merge7zCommon.h"
--
--void ReloadLang(); //Implemented in /*/FileManager/LangUtils.cpp
--
--using namespace NWindows;
--using namespace NFile;
--using namespace NName;
--
--void AddDirFileInfo(
--      const UString &prefix, 
--      const UString &fullPathName,
--      NFind::CFileInfoW &fileInfo, 
-       CObjectVector<CDirItem> &dirItems)
 -      CDirItems &dirItems)
--{
--      CDirItem item;
-       item.Attributes = fileInfo.Attributes;
 -      item.Attrib = fileInfo.Attrib;
--      item.Size = fileInfo.Size;
-       item.CreationTime = fileInfo.CreationTime;
-       item.LastAccessTime = fileInfo.LastAccessTime;
-       item.LastWriteTime = fileInfo.LastWriteTime;
-       item.Name = prefix + fileInfo.Name;
-       item.FullPath = fullPathName;
-       dirItems.Add(item);
 -      item.CTime = fileInfo.CTime;
 -      item.ATime = fileInfo.ATime;
 -      item.MTime = fileInfo.MTime;
 -      //UString
 -      item.LogParent = dirItems.AddPrefix(-1, -1, prefix + fileInfo.Name);
 -      item.PhyParent = dirItems.AddPrefix(-1, -1, fullPathName);
 -      //item.Name = prefix + fileInfo.Name;
 -      //item.FullPath = fullPathName;
 -      dirItems.Items.Add(item);
--}
--
--static void EnumerateDirectory(
--      const UString &baseFolderPrefix,
--      const UString &directory, 
--      const UString &prefix,
-       CObjectVector<CDirItem> &dirItems)
 -      CDirItems &dirItems)
--{
--      NFind::CEnumeratorW enumerator(baseFolderPrefix + directory + wchar_t(kAnyStringWildcard));
--      NFind::CFileInfoW fileInfo;
--      while (enumerator.Next(fileInfo))
--      { 
--              AddDirFileInfo(prefix, directory + fileInfo.Name, fileInfo, dirItems);
-               if (fileInfo.IsDirectory())
 -              if (fileInfo.IsDir())
--              {
--                      EnumerateDirectory(baseFolderPrefix, directory + fileInfo.Name + wchar_t(kDirDelimiter),
--                      prefix + fileInfo.Name + wchar_t(kDirDelimiter), dirItems);
--              }
--      }
--}
--
--HINSTANCE g_hInstance;
--#ifndef _UNICODE
--bool g_IsNT = false;
--static bool IsItWindowsNT()
--{
--  OSVERSIONINFO versionInfo;
--  versionInfo.dwOSVersionInfoSize = sizeof(versionInfo);
--  if (!::GetVersionEx(&versionInfo)) 
--    return false;
--  return (versionInfo.dwPlatformId == VER_PLATFORM_WIN32_NT);
--}
--#endif
--
--DWORD g_dwFlags;
--CHAR g_cPath7z[MAX_PATH];
--
--/**
-- * @brief Dll entry point
-- */
--BOOL APIENTRY DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID)
--{
--      if (dwReason == DLL_PROCESS_ATTACH)
--      {
--              g_hInstance = hInstance;
--#             ifndef _UNICODE
--              g_IsNT = IsItWindowsNT();
--#             endif
--      }
--      return TRUE;
--}
--
--/**
-- * @brief Load a dll and import a number of functions.
-- */
--static HMODULE DllProxyHelper(LPCSTR *proxy, ...)
--{
--      HMODULE handle = NULL;
--      if (LPCSTR name = *proxy)
--      {
--              if (proxy[1] && proxy[1] != name)
--              {
--                      char path[MAX_PATH];
--                      FormatMessageA
--                      (
--                              FORMAT_MESSAGE_FROM_STRING|FORMAT_MESSAGE_ARGUMENT_ARRAY,
--                              name,
--                              0,
--                              0,
--                              path,
--                              sizeof path,
--                              (va_list *)(&proxy + 1)
--                      );
--                      handle = LoadLibraryA(path);
--                      if (handle)
--                      {
-                               LPCSTR *export = proxy;
 -                              LPCSTR *p = proxy;
--                              *proxy = NULL;
-                               while ((name = *++export) != NULL)
 -                              while ((name = *++p) != NULL)
--                              {
-                                       *export = (LPCSTR)GetProcAddress(handle, name);
-                                       if (*export == NULL)
 -                                      *p = (LPCSTR)GetProcAddress(handle, name);
 -                                      if (*p == NULL)
--                                      {
--                                              *proxy = proxy[1] = name;
-                                               export = proxy + 2;
 -                                              p = proxy + 2;
--                                              break;
--                                      }
--                              }
-                               *export = (LPCSTR)handle;
 -                              *p = (LPCSTR)handle;
--                      }
--              }
--              if ((name = *proxy) != NULL)
--              {
--                      DWORD dwError = ERROR_MOD_NOT_FOUND;
--                      HMODULE hContext = NULL;
--                      if (proxy[1] == name)
--                      {
--                              dwError = ERROR_PROC_NOT_FOUND;
--                              hContext = (HMODULE)proxy[2];
--                      }
--                      Complain(dwError, GetSystemString(name), hContext);
--              }
--      }
--      return handle;
--}
--
--/**
-- * @brief Ask archiver dll for an interface of given class.
-- */
--HRESULT Format7zDLL::Interface::CreateObject(const GUID *interfaceID, void **outObject)
--{
--      PROPVARIANT value;
--      HRESULT result = proxy->GetHandlerProperty(NArchive::kClassID, &value);
--      if SUCCEEDED(result)
--      {
--              if (value.vt != VT_BSTR || SysStringByteLen(value.bstrVal) != sizeof(GUID))
--              {
--                      result = DISP_E_TYPEMISMATCH;
--              }
--              else
--              {
--                      result = proxy->CreateObject((const CLSID *)value.bstrVal, interfaceID, outObject);
--              }
--              VariantClear((VARIANT *)&value);
--      }
--      return result;
--}
--
--/**
-- * @brief Ask archiver dll for an instance of IInArchive.
-- */
--IInArchive *Format7zDLL::Interface::GetInArchive()
--{
--      void *pv;
--      if COMPLAIN(CreateObject(&IID_IInArchive, &pv) != S_OK)
--      {
--              Complain(RPC_S_INTERFACE_NOT_FOUND, _T("IInArchive"), proxy.handle);
--      }
--      return static_cast<IInArchive *>(pv);
--}
--
--/**
-- * @brief Ask archiver dll for an instance of IOutArchive.
-- */
--IOutArchive *Format7zDLL::Interface::GetOutArchive()
--{
--      void *pv;
--      if COMPLAIN(CreateObject(&IID_IOutArchive, &pv) != S_OK)
--      {
--              Complain(RPC_S_INTERFACE_NOT_FOUND, _T("IOutArchive"), proxy.handle);
--      }
--      return static_cast<IOutArchive *>(pv);
--}
--
--/**
-- * @brief Extraction method accessible from outside
-- */
--HRESULT Format7zDLL::Interface::DeCompressArchive(HWND hwndParent, LPCTSTR path, LPCTSTR folder)
--{
--      HRESULT result = E_FAIL;
--      if (Merge7z::Format::Inspector *inspector = Open(hwndParent, path))
--      {
--              if (CMyComBSTR(GetHandlerAddExtension(hwndParent)).Length())
--              {
--                      //Most handlers seem to be happy with missing index array, but rpm
--                      //handler doesn't know how to "extract all" and needs index array
--                      //even for the one and only file inside (which is .cpio.gz).
--                      static const UINT32 indices[1] = {0};
--                      result = inspector->Extract(hwndParent, folder, indices, 1);
--              }
--              else
--              {
--                      result = inspector->Extract(hwndParent, folder);
--              }
--              inspector->Free();
--      }
--      return result;
--}
--
--/**
-- * @brief Open archive for inspection.
-- */
--Merge7z::Format::Inspector *Format7zDLL::Interface::Open(HWND hwndParent, LPCTSTR path)
--{
--      Inspector *inspector = new Inspector(this, path);
--      try
--      {
--              inspector->Init(hwndParent);
--      }
--      catch (Complain *complain)
--      {
--              complain->Alert(hwndParent);
--              inspector->Free();
--              inspector = 0;
--      }
--      return inspector;
--}
--
--/**
-- * @brief Prepare inspection interface for iteration.
-- */
--UINT32 Format7zDLL::Interface::Inspector::Open()
--{
--      UINT32 numItems = 0;
--      archive->GetNumberOfItems(&numItems);
--      return numItems;
--}
--
--/**
-- * @brief free inspection interface.
-- */
--void Format7zDLL::Interface::Inspector::Free()
--{
--      Release(archive);
--      Release(static_cast<IInStream *>(file));
--      Release(callback);
--      delete this;
--}
--
--HRESULT Format7zDLL::Interface::Inspector::GetProperty(UINT32 index, PROPID propID, PROPVARIANT *value, VARTYPE vt)
--{
--      VariantInit((VARIANT *)value);
--      HRESULT result = archive->GetProperty(index, propID, value);
--      if (SUCCEEDED(result) && value->vt != vt)
--      {
--              VariantClear((VARIANT *)value);
--              result = DISP_E_TYPEMISMATCH;
--      }
--      return result;
--}
--
--BSTR Format7zDLL::Interface::Inspector::GetPath(UINT32 index)
--{
--      PROPVARIANT value;
--      return SUCCEEDED(GetProperty(index, kpidPath, &value, VT_BSTR)) ? value.bstrVal : 0;
--}
--
--BSTR Format7zDLL::Interface::Inspector::GetName(UINT32 index)
--{
--      PROPVARIANT value;
--      return SUCCEEDED(GetProperty(index, kpidName, &value, VT_BSTR)) ? value.bstrVal : 0;
--}
--
--BSTR Format7zDLL::Interface::Inspector::GetExtension(UINT32 index)
--{
--      PROPVARIANT value;
--      return SUCCEEDED(GetProperty(index, kpidExtension, &value, VT_BSTR)) ? value.bstrVal : 0;
--}
--
--VARIANT_BOOL Format7zDLL::Interface::Inspector::IsFolder(UINT32 index)
--{
--      PROPVARIANT value;
-       return SUCCEEDED(GetProperty(index, kpidIsFolder, &value, VT_BOOL)) ? value.boolVal : 0;
 -      return SUCCEEDED(GetProperty(index, kpidIsDir, &value, VT_BOOL)) ? value.boolVal : 0;
--}
--
--FILETIME Format7zDLL::Interface::Inspector::LastWriteTime(UINT32 index)
--{
--      static const FILETIME invalid = { 0, 0 };
--      PROPVARIANT value;
-       return SUCCEEDED(GetProperty(index, kpidLastWriteTime, &value, VT_FILETIME)) ? value.filetime : invalid;
 -      return SUCCEEDED(GetProperty(index, kpidMTime, &value, VT_FILETIME)) ? value.filetime : invalid;
--}
--
--void Format7zDLL::Interface::GetDefaultName(HWND hwndParent, UString &ustrDefaultName)
--{
--      int dot = ustrDefaultName.ReverseFind('.');
--      int slash = ustrDefaultName.ReverseFind('\\');
--      if (dot > slash)
--      {
--              LPCWSTR pchExtension = ustrDefaultName;
--              pchExtension += dot + 1;
--              static const OLECHAR wBlank[] = L" ";
--              CMyComBSTR bstrHandlerExtension = GetHandlerExtension(hwndParent);
--              CMyComBSTR bstrHandlerAddExtension = GetHandlerAddExtension(hwndParent);
--              LPWSTR pchHandlerExtension = bstrHandlerExtension.m_str;
--              LPWSTR pchHandlerAddExtension = bstrHandlerAddExtension.m_str;
--              while (int cchHandlerAddExtension = StrCSpnW(pchHandlerAddExtension += StrSpnW(pchHandlerAddExtension, wBlank), wBlank))
--              {
--                      int cchHandlerExtension = StrCSpnW(pchHandlerExtension += StrSpnW(pchHandlerExtension, wBlank), wBlank);
--                      if (StrIsIntlEqualW(FALSE, pchExtension, pchHandlerExtension, cchHandlerExtension) && pchExtension[cchHandlerExtension] == 0)
--                      {
--                              pchHandlerAddExtension[cchHandlerAddExtension] = '\0'; // will also stop iteration
--                              ustrDefaultName.ReleaseBuffer(dot);
--                              if (*pchHandlerAddExtension == '.') // consider != '*'
--                              {
--                                      ustrDefaultName += pchHandlerAddExtension;
--                                      dot += cchHandlerAddExtension; // make ReleaseBuffer(dot) below a NOP
--                              }
--                      }
--                      pchHandlerExtension += cchHandlerExtension;
--                      pchHandlerAddExtension += cchHandlerAddExtension;
--              }
--              ustrDefaultName.ReleaseBuffer(dot);
--              ustrDefaultName.Delete(0, slash + 1);
--      }
--      else
--      {
--              ustrDefaultName = L"noname";
--      }
--}
--
--BSTR Format7zDLL::Interface::GetDefaultName(HWND hwndParent, LPCTSTR path)
--{
--      UString ustrDefaultName = GetUnicodeString(path);
--      GetDefaultName(hwndParent, ustrDefaultName);
--      return SysAllocString(ustrDefaultName);
--}
--
--BSTR Format7zDLL::Interface::Inspector::GetDefaultName()
--{
--      //UString ustrDefaultName = GetUnicodeString(path);
--      return SysAllocString(ustrDefaultName);
--}
--
--/**
-- * @brief Open archive for update.
-- */
--Merge7z::Format::Updater *Format7zDLL::Interface::Update(HWND hwndParent, LPCTSTR path)
--{
--      Updater *updater = new Updater(this, path);
--      try
--      {
--              updater->Init(hwndParent);
--      }
--      catch (Complain *complain)
--      {
--              complain->Alert(hwndParent);
--              updater->Free();
--              updater = 0;
--      }
--      return updater;
--}
--
--/**
-- * @brief Add item to updater
-- */
--UINT32 Format7zDLL::Interface::Updater::Add(Merge7z::DirItemEnumerator::Item &etorItem)
--{
--      // fill in the default values from the enumerator
--      CDirItem item;
 -      UString Name = GetUnicodeString(etorItem.Name);
 -      UString FullPath = GetUnicodeString(etorItem.FullPath);
--      if (etorItem.Mask.Item & etorItem.Mask.Name)
-               item.Name = GetUnicodeString(etorItem.Name);
 -              //item.Name = GetUnicodeString(etorItem.Name);
 -              item.LogParent = dirItems.AddPrefix(-1, -1, Name);
--      if (etorItem.Mask.Item & etorItem.Mask.FullPath)
-               item.FullPath = GetUnicodeString(etorItem.FullPath);
 -              //item.FullPath = GetUnicodeString(etorItem.FullPath);
 -              item.PhyParent = dirItems.AddPrefix(-1, -1, FullPath);
--      if (etorItem.Mask.Item & etorItem.Mask.Attributes)
-               item.Attributes = etorItem.Attributes;
 -              item.Attrib = etorItem.Attributes;
--      if (etorItem.Mask.Item & etorItem.Mask.Size)
--              item.Size = etorItem.Size;
--      if (etorItem.Mask.Item & etorItem.Mask.CreationTime)
-               item.CreationTime = etorItem.CreationTime;
 -              item.CTime = etorItem.CreationTime;
--      if (etorItem.Mask.Item & etorItem.Mask.LastAccessTime)
-               item.LastAccessTime = etorItem.LastAccessTime;
 -              item.ATime = etorItem.LastAccessTime;
--      if (etorItem.Mask.Item & etorItem.Mask.LastWriteTime)
-               item.LastWriteTime = etorItem.LastWriteTime;
 -              item.MTime = etorItem.LastWriteTime;
--      if (etorItem.Mask.Item && (etorItem.Mask.Item & (etorItem.Mask.NeedFindFile|etorItem.Mask.CheckIfPresent)) != etorItem.Mask.NeedFindFile)
--      {
--              // Check the info from the disk
--              NFile::NFind::CFileInfoW fileInfo;
-               if (NFile::NFind::FindFile(item.FullPath, fileInfo))
 -              if (NFile::NFind::CFindFile().FindFirst(FullPath, fileInfo))
--              {
--                      if (!(etorItem.Mask.Item & etorItem.Mask.Name))
--                              item.Name = fileInfo.Name;
--                      if (!(etorItem.Mask.Item & etorItem.Mask.Attributes))
-                               item.Attributes = fileInfo.Attributes;
 -                              item.Attrib = fileInfo.Attrib;
--                      if (!(etorItem.Mask.Item & etorItem.Mask.Size))
--                              item.Size = fileInfo.Size;
--                      if (!(etorItem.Mask.Item & etorItem.Mask.CreationTime))
-                               item.CreationTime = fileInfo.CreationTime;
 -                              item.CTime = fileInfo.CTime;
--                      if (!(etorItem.Mask.Item & etorItem.Mask.LastAccessTime))
-                               item.LastAccessTime = fileInfo.LastAccessTime;
 -                              item.ATime = fileInfo.ATime;
--                      if (!(etorItem.Mask.Item & etorItem.Mask.LastWriteTime))
-                               item.LastWriteTime = fileInfo.LastWriteTime;
 -                              item.MTime = fileInfo.MTime;
--              }
--              else
--              {
--                      // file not valid, forget it
--                      etorItem.Mask.Item = 0;
--              }
--      }
--      if (etorItem.Mask.Item)
--      {
--              // No check from disk, simply use info from enumerators (risky)
--              // Why risky? This is not at all obvious.
-               dirItems.Add(item);
 -              dirItems.Items.Add(item);
--              // Recurse into directories (call a function of 7zip)
-               if ((etorItem.Mask.Item & etorItem.Mask.Recurse) && (item.Attributes & FILE_ATTRIBUTE_DIRECTORY))
 -              if ((etorItem.Mask.Item & etorItem.Mask.Recurse) && (item.Attrib & FILE_ATTRIBUTE_DIRECTORY))
--              {
-                       EnumerateDirectory(UString(), item.FullPath + L'\\',
-                                       item.Name + L'\\', dirItems);
 -                      EnumerateDirectory(UString(), FullPath + L'\\',
 -                                      Name + L'\\', dirItems);
--              }
--      }
--      return etorItem.Mask.Item;
--}
--
--/**
-- * @brief free updater interface.
-- */
--void Format7zDLL::Interface::Updater::Free()
--{
--      Release(outArchive);
--      Release(static_cast<IOutStream *>(file));
--      delete this;
--}
--
--/**
-- * @brief Compression method accessible from outside
-- *
-- * @note See CAgent::DoOperation (in 7zip source) for model
-- */
--HRESULT Format7zDLL::Interface::CompressArchive(HWND hwndParent, LPCTSTR path, Merge7z::DirItemEnumerator *etor)
--{
--      HRESULT result = E_FAIL;
--      if (Merge7z::Format::Updater *updater = Update(hwndParent, path))
--      {
--              UINT count = etor->Open();
--              while (count--)
--              {
--                      Merge7z::DirItemEnumerator::Item etorItem;
--                      etorItem.Mask.Item = 0;
--                      Merge7z::Envelope *envelope = etor->Enum(etorItem);
-                       updater->Add(etorItem);
 -                      if (etorItem.Mask.Item != 0)
 -                      {
 -                              updater->Add(etorItem);
 -                      }
--                      if (envelope)
--                      {
--                              envelope->Free();
--                      }
--              }
--              result = updater->Commit(hwndParent);
--              updater->Free();
--      }
--      return result;
--}
--
--/**
-- * @brief get handler property identified by given propID
-- */
--HRESULT Format7zDLL::Interface::GetHandlerProperty(HWND hwndParent, PROPID propID, PROPVARIANT *value, VARTYPE vt)
--{
--      VariantInit((VARIANT *)value);
--      HRESULT result = DISP_E_EXCEPTION;
--      try
--      {
--              result = proxy->GetHandlerProperty(propID, value);
--              if (SUCCEEDED(result) && value->vt != vt)
--              {
--                      VariantClear((VARIANT *)value);
--                      result = DISP_E_TYPEMISMATCH;
--              }
--      }
--      catch (Complain *complain)
--      {
--              complain->Alert(hwndParent);
--      }
--      return result;
--}
--
--/**
-- * @brief get Name handler property
-- */
--BSTR Format7zDLL::Interface::GetHandlerName(HWND hwndParent)
--{
--      PROPVARIANT value;
--      return SUCCEEDED(GetHandlerProperty(hwndParent, NArchive::kName, &value, VT_BSTR)) ? value.bstrVal : 0;
--}
--
--/**
-- * @brief get ClassID handler property
-- */
--BSTR Format7zDLL::Interface::GetHandlerClassID(HWND hwndParent)
--{
--      PROPVARIANT value;
--      return SUCCEEDED(GetHandlerProperty(hwndParent, NArchive::kClassID, &value, VT_BSTR)) ? value.bstrVal : 0;
--}
--
--/**
-- * @brief get Extension handler property
-- */
--BSTR Format7zDLL::Interface::GetHandlerExtension(HWND hwndParent)
--{
--      PROPVARIANT value;
--      return SUCCEEDED(GetHandlerProperty(hwndParent, NArchive::kExtension, &value, VT_BSTR)) ? value.bstrVal : 0;
--}
--
--/**
-- * @brief get AddExtension handler property
-- */
--BSTR Format7zDLL::Interface::GetHandlerAddExtension(HWND hwndParent)
--{
--      PROPVARIANT value;
--      return SUCCEEDED(GetHandlerProperty(hwndParent, NArchive::kAddExtension, &value, VT_BSTR)) ? value.bstrVal : 0;
--}
--
--/**
-- * @brief get Update handler property
-- */
--VARIANT_BOOL Format7zDLL::Interface::GetHandlerUpdate(HWND hwndParent)
--{
--      PROPVARIANT value;
--      return SUCCEEDED(GetHandlerProperty(hwndParent, NArchive::kUpdate, &value, VT_BOOL)) ? value.boolVal : 0;
--}
--
--/**
-- * @brief get KeepName handler property
-- */
--VARIANT_BOOL Format7zDLL::Interface::GetHandlerKeepName(HWND hwndParent)
--{
--      PROPVARIANT value;
--      return SUCCEEDED(GetHandlerProperty(hwndParent, NArchive::kKeepName, &value, VT_BOOL)) ? value.boolVal : 0;
--}
--
--/**
-- * @brief Initialize the library.
-- */
--int Merge7z::Initialize(DWORD dwFlags)
--{
--      g_dwFlags = dwFlags;
--      if (dwFlags & Initialize::Local7z)
--      {
--              GetModuleFileNameA(g_hInstance, g_cPath7z, sizeof g_cPath7z);
--              PathRemoveFileSpecA(g_cPath7z);
--      }
--      else
--      {
--              DWORD type = 0;
--              DWORD size = sizeof g_cPath7z;
--              SHGetValueA(HKEY_LOCAL_MACHINE, "Software\\7-Zip", "Path", &type, g_cPath7z, &size);
--      }
--      PathAddBackslashA(g_cPath7z);
--      if (WORD wLangID = HIWORD(dwFlags))
--      {
--              LoadLang(MAKEINTATOM(wLangID));
--      }
--      return 0;
--}
--
--Format7zDLL::Interface *Format7zDLL::Interface::head = NULL;
--
--/**
-- * @brief Access archiver dll functions through proxy.
-  */
- #if MY_VER_MAJOR * 100 + MY_VER_MINOR < 445
- /**
-  * @brief 7-Zip 4.15+: IsArchiveItemFolder(), needed by CArchiveExtractCallback,
-  * used to reside in OpenArchive.cpp, which has been removed from Merge7z in an
-  * attempt to reduce dependencies (actually got rid of four cpp files).
-  * 7-Zip 4.45+: OpenArchive.cpp included again - no more secondary dependencies.
-- */
- static HRESULT IsArchiveItemProp(IInArchive *archive, UINT32 index, PROPID propID, bool &result)
- {
-       NCOM::CPropVariant prop;
-       RINOK(archive->GetProperty(index, propID, &prop));
-       if(prop.vt == VT_BOOL)
-               result = VARIANT_BOOLToBool(prop.boolVal);
-       else if (prop.vt == VT_EMPTY)
-               result = false;
-       else
-               return E_FAIL;
-       return S_OK;
- }
- HRESULT IsArchiveItemFolder(IInArchive *archive, UINT32 index, bool &result)
- {
-       return IsArchiveItemProp(archive, index, kpidIsFolder, result);
- }
- HRESULT IsArchiveItemAnti(IInArchive *archive, UINT32 index, bool &result)
- {
-       return IsArchiveItemProp(archive, index, kpidIsAnti, result);
- }
- static const char aCreateObject[] = "CreateObject";
- static const char aGetHandlerProperty[] = "GetHandlerProperty";
- struct Format7zDLL::Proxy *Format7zDLL::Proxy::operator->()
- {
-       DllProxyHelper(&aModule, g_cPath7z);
-       return this;
- }
- #define       DEFINE_FORMAT(name, id, dll, extension, signature) \
-               Format7zDLL::Proxy PROXY_##name = \
-               { \
-                       "%1Formats\\" dll, \
-                       aCreateObject, \
-                       aGetHandlerProperty, \
-                       (HMODULE)0, \
-                       signature extension + sizeof signature extension - sizeof extension, \
-                       sizeof signature extension - sizeof extension \
-               }; \
-               Format7zDLL::Interface name = PROXY_##name;
- #else
--
--#define CLS_ARC_ID_ITEM(cls) ((cls).Data4[5])
--
--Format7zDLL::Proxy::Handle Format7zDLL::Proxy::handle =
--{
--      "%1!s!7z.dll",
--      "CreateObject",
--      "GetHandlerProperty2",
--      "GetNumberOfFormats",
--      (HMODULE)0
--};
--
--struct Format7zDLL::Proxy *Format7zDLL::Proxy::operator->()
--{
--      DllProxyHelper(&handle.aModule, g_cPath7z);
--      if (formatIndex < 0)
--      {
--              GUID clsId =
--              {
--                      0x23170F69, 0x40C1, 0x278A,
--                      0x10, 0x00, 0x00, 0x01, 0x10, (BYTE)-formatIndex, 0x00, 0x00
--              };
--              UINT32 i = 0;
--              handle.GetNumberOfFormats(&i);
--              while (i)
--              {
--                      PROPVARIANT value;
--                      ::VariantInit((LPVARIANT)&value);
--                      if (SUCCEEDED(handle.GetHandlerProperty2(--i, NArchive::kClassID, &value)) &&
--                              value.vt == VT_BSTR &&
--                              SysStringByteLen(value.bstrVal) == sizeof(GUID) &&
--                              IsEqualGUID(clsId, *value.puuid))
--                      {
--                              formatIndex = i;
--                              i = 0;
--                      }
--                      ::VariantClear((LPVARIANT)&value);
--              }
--              if (formatIndex < 0)
--              {
--                      TCHAR szArcID[4];
--                      wsprintf(szArcID, _T("%02x"), (UINT)CLS_ARC_ID_ITEM(clsId));
--                      Complain(RPC_S_INTERFACE_NOT_FOUND, szArcID, handle);
--              }
--      }
--      return this;
--}
--
--STDMETHODIMP Format7zDLL::Proxy::CreateObject(const GUID *clsID, const GUID *interfaceID, void **outObject)
--{
--      return handle.CreateObject(clsID, interfaceID, outObject);
--}
--
--STDMETHODIMP Format7zDLL::Proxy::GetHandlerProperty(PROPID propID, PROPVARIANT *value)
--{
--      return handle.GetHandlerProperty2(formatIndex, propID, value);
--}
--
- #define       DEFINE_FORMAT(name, id, dll, extension, signature) \
 -#define       DEFINE_FORMAT(name, id, extension, signature) \
--              Format7zDLL::Proxy PROXY_##name = \
--              { \
--                      -0x##id, \
-                       signature extension + sizeof signature extension - sizeof extension, \
-                       sizeof signature extension - sizeof extension \
 -                      0, \
 -                      sizeof signature extension - sizeof extension, \
 -                      '@', \
 -                      signature extension + sizeof signature extension - sizeof extension \
--              }; \
--              Format7zDLL::Interface name = PROXY_##name;
- #endif
--
- DEFINE_FORMAT(CFormat7z,              07, "7Z.DLL",           "7z", "@7z\xBC\xAF\x27\x1C");
- DEFINE_FORMAT(CArjHandler,            04, "ARJ.DLL",          "arj", "@\x60\xEA");
- DEFINE_FORMAT(CBZip2Handler,  02, "BZ2.DLL",          "bz2 tbz2", "@BZh");
- DEFINE_FORMAT(CCabHandler,            08, "CAB.DLL",          "cab", "@MSCF");
- DEFINE_FORMAT(CCpioHandler,           ED, "CPIO.DLL",         "cpio", "");
- DEFINE_FORMAT(CDebHandler,            EC, "DEB.DLL",          "deb", "@!<arch>\n");
- DEFINE_FORMAT(CLzhHandler,            06, "LZH.DLL",          "lzh lha", "@@@-l@@-");//"@-l" doesn't work because signature starts at offset 2
- DEFINE_FORMAT(CGZipHandler,           EF, "GZ.DLL",           "gz tgz", "@\x1F\x8B");
- DEFINE_FORMAT(CRarHandler,            03, "RAR.DLL",          "rar", "@Rar!\x1a\x07\x00");
- DEFINE_FORMAT(CRpmHandler,            EB, "RPM.DLL",          "rpm", "");
- DEFINE_FORMAT(CTarHandler,            EE, "TAR.DLL",          "tar", "");
- DEFINE_FORMAT(CZHandler,              05, "Z.DLL",            "z", "@\x1F\x9D");
- DEFINE_FORMAT(CZipHandler,            01, "ZIP.DLL",          "zip jar war ear xpi", "@PK\x03\x04");
- DEFINE_FORMAT(CChmHandler,            E9, "CHM.DLL",          "chm chi chq chw hxs hxi hxr hxq hxw lit", "@ITSF");
- DEFINE_FORMAT(CIsoHandler,            E7, "ISO.DLL",          "iso", "");
- DEFINE_FORMAT(CNsisHandler,           09, "NSIS.DLL",         "", "@@@@@\xEF\xBE\xAD\xDENullsoftInst");
 -DEFINE_FORMAT(CFormat7z,              07, "7z", "7z\xBC\xAF\x27\x1C");
 -DEFINE_FORMAT(CArjHandler,            04, "arj", "\x60\xEA");
 -DEFINE_FORMAT(CBZip2Handler,  02, "bz2 tbz2", "BZh");
 -DEFINE_FORMAT(CCabHandler,            08, "cab", "MSCF");
 -DEFINE_FORMAT(CCpioHandler,           ED, "cpio", "");
 -DEFINE_FORMAT(CDebHandler,            EC, "deb", "!<arch>\n");
 -DEFINE_FORMAT(CLzhHandler,            06, "lzh lha", "@@-l@@-");//"@-l" doesn't work because signature starts at offset 2
 -DEFINE_FORMAT(CGZipHandler,           EF, "gz tgz", "\x1F\x8B");
 -DEFINE_FORMAT(CRarHandler,            03, "rar", "Rar!\x1a\x07\x00");
 -DEFINE_FORMAT(CRpmHandler,            EB, "rpm", "");
 -DEFINE_FORMAT(CTarHandler,            EE, "tar", "");
 -DEFINE_FORMAT(CZHandler,              05, "z", "\x1F\x9D");
 -DEFINE_FORMAT(CZipHandler,            01, "zip jar war ear xpi", "PK\x03\x04");
 -DEFINE_FORMAT(CChmHandler,            E9, "chm chi chq chw hxs hxi hxr hxq hxw lit", "ITSF");
 -DEFINE_FORMAT(CIsoHandler,            E7, "iso", "");
 -DEFINE_FORMAT(CNsisHandler,           09, "", "@@@@\xEF\xBE\xAD\xDENullsoftInst");
--#if MY_VER_MAJOR * 100 + MY_VER_MINOR >= 449
- DEFINE_FORMAT(CWimHandler,            E6, "WIM.DLL",          "wim swm", "@MSWIM\x00\x00\x00");
 -DEFINE_FORMAT(CWimHandler,            E6, "wim swm", "MSWIM\x00\x00\x00");
--#endif
--#if MY_VER_MAJOR * 100 + MY_VER_MINOR >= 452
- DEFINE_FORMAT(CComHandler,            E5, "COM.DLL",          "", "@\xD0\xCF\x11\xE0\xA1\xB1\x1A\xE1");
 -DEFINE_FORMAT(CComHandler,            E5, "", "\xD0\xCF\x11\xE0\xA1\xB1\x1A\xE1");
--#endif
--#if MY_VER_MAJOR * 100 + MY_VER_MINOR >= 458
- DEFINE_FORMAT(CLzmaHandler,           0A, "LZMA.DLL",         "lzma lzma86", "");
 -DEFINE_FORMAT(CLzmaHandler,           0A, "lzma lzma86", "");
 -#endif
 -#if MY_VER_MAJOR * 100 + MY_VER_MINOR >= 459
 -DEFINE_FORMAT(CXarHandler,            E1, "", "xar!\x00\x1C");
 -DEFINE_FORMAT(CMubHandler,            E2, "mub", "");
 -DEFINE_FORMAT(CHfsHandler,            E3, "hfs", "");
 -DEFINE_FORMAT(CDmgHandler,            E4, "dmg", "");
 -DEFINE_FORMAT(CElfHandler,            DE, "elf", "");
--#endif
--
--/**
-- * @brief Construct Merge7z interface.
-- */
--Merge7z::Merge7z():
--Format7z(CFormat7z),
--ZipHandler(CZipHandler),
--RarHandler(CRarHandler),
--BZip2Handler(CBZip2Handler),
--TarHandler(CTarHandler)
--{
--}
--
--/**
-- * @brief Figure out which archiver dll to use for a given archive.
-- */
--Merge7z::Format *Merge7z::GuessFormat(LPCTSTR path)
--{
--      if (g_dwFlags & Initialize::GuessFormatBySignature)
--              return GuessFormatBySignature(path, g_dwFlags & Initialize::GuessFormatByExtension ? path : 0);
--      return GuessFormatByExtension(path);
--}
--
--/**
-- * @brief Figure out which archiver dll to use for a given archive.
-- */
--Merge7z::Format *Merge7z::GuessFormatByExtension(LPCTSTR path)
--{
--      SZ_EXTENSION ext;
--      if (PathIsDirectory(path))
--              return 0;
--      return GuessFormatEx(GetExtension(path, ext), 0, 0);
--}
--
--/**
-- * @brief Figure out which archiver dll to use for a given archive.
-- */
--Merge7z::Format *Merge7z::GuessFormatBySignature(LPCTSTR path, LPCTSTR extension)
--{
--      SZ_EXTENSION ext;
--      CH_SIGNATURE sig;
--      if (PathIsDirectory(path))
--              return 0;
--      return GuessFormatEx(GetExtension(extension, ext), sig, GetSignature(path, sig));
--}
--
--/**
-- * @brief Figure out which archiver dll to use for a given archive.
-- */
--Merge7z::Format *Merge7z::GuessFormatEx(LPCSTR ext, LPCH sig, int cchSig)
--{
--      Format7zDLL::Interface *pFormat = Format7zDLL::Interface::head;
--      Format7zDLL::Interface *pFormatByExtension = 0;
--      while (pFormat)
--      {
--              static const char aBlank[] = " ";
--              LPCSTR pchExtension = pFormat->proxy.extension;
-               int cchExtension = pFormat->proxy.signature;
 -              int cchExtension = pFormat->proxy.sig_count;
--              if (cchSig > 0 && cchExtension)
--              {
--                      LPCSTR pchSignature = pchExtension - cchExtension;
-                       char joker = *pchSignature++;
-                       --cchExtension;
 -                      char joker = pFormat->proxy.sig_joker;
 -                      size_t begin = pFormat->proxy.sig_begin;
--                      if (cchSig >= cchExtension)
--                      {
--                              while (cchExtension--)
--                              {
--                                      char expected = pchSignature[cchExtension];
-                                       if (expected != joker && sig[cchExtension] != expected)
 -                                      if (expected != joker && sig[begin + cchExtension] != expected)
--                                              break;
--                              }
--                              if (cchExtension == -1)
--                                      return pFormat;
--                      }
--              }
--              else while
--              (
--                      ext
--              &&      pFormatByExtension == 0
--              &&      (cchExtension = StrCSpnA(pchExtension += StrSpnA(pchExtension, aBlank), aBlank)) != 0
--              )
--              {
--                      if (StrIsIntlEqualA(FALSE, pchExtension, ext, cchExtension) && ext[cchExtension] == '\0')
--                      {
--                              pFormatByExtension = pFormat;
--                      }
--                      pchExtension += cchExtension;
--              }
--              pFormat = pFormat->next;
--      }
--      return pFormat ? pFormat : pFormatByExtension;
--}
--
--/**
-- * @brief Get filename extension as ANSI characters.
-- */
--LPCSTR Merge7z::GetExtension(LPCTSTR path, SZ_EXTENSION ext)
--{
--      if (path == NULL)
--              return NULL;
--      path = PathFindExtension(path);
--#ifdef UNICODE
--      return WideCharToMultiByte(CP_ACP, 0, path, -1, ext, sizeof(SZ_EXTENSION), 0, 0) > 1 ? ext + 1 : 0;
--#else
--      ext[sizeof(SZ_EXTENSION) - 2] = '\0';
--      lstrcpynA(ext, path, sizeof(SZ_EXTENSION));
--      return ext[0] != '\0' && ext[sizeof(SZ_EXTENSION) - 2] == '\0' ? ext + 1 : 0;
--#endif
--}
--
--/**
-- * @brief Read start signature from given file.
-- */
--DWORD Merge7z::GetSignature(LPCTSTR path, CH_SIGNATURE sig)
--{
--      if (sig == NULL)
--              return sizeof(CH_SIGNATURE);
--      DWORD cchSig = 0;
--      HANDLE h = CreateFile(path, GENERIC_READ, FILE_SHARE_READ|FILE_SHARE_WRITE, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
--      if (h != INVALID_HANDLE_VALUE)
--      {
--              ReadFile(h, sig, sizeof(CH_SIGNATURE), &cchSig, 0);
--              if (cchSig >= 64 && MAKEWORD(sig[0],sig[1]) == IMAGE_DOS_SIGNATURE)
--              {
--                      DWORD offset = 
--                      (
--                              LPDWORD(sig)[5] //DOS CS:IP
--                      ?       512UL * (LPWORD(sig)[1] ? LPWORD(sig)[2] - 1 : LPWORD(sig)[2]) + LPWORD(sig)[1]
--                      :       LPDWORD(sig)[15]
--                      );
--                      if (SetFilePointer(h, offset, 0, FILE_BEGIN) == offset)
--                      {
--                              ReadFile(h, sig, sizeof(CH_SIGNATURE), &cchSig, 0);
--                              if (cchSig >= 4 + sizeof(IMAGE_FILE_HEADER) && MAKELONG(MAKEWORD(sig[0],sig[1]), MAKEWORD(sig[2],sig[3])) == MAKELONG(MAKEWORD('P','E'), 0))
--                              {
--                                      cchSig = 0;
--                                      IMAGE_FILE_HEADER *pImageFileHeader = (IMAGE_FILE_HEADER *) (sig + 4);
--                                      offset += 4 + sizeof(IMAGE_FILE_HEADER) + pImageFileHeader->SizeOfOptionalHeader;
--                                      if (SetFilePointer(h, offset, 0, FILE_BEGIN) == offset)
--                                      {
--                                              int iSection = pImageFileHeader->NumberOfSections;
--                                              while (iSection--)
--                                              {
--                                                      IMAGE_SECTION_HEADER ImageSectionHeader;
--                                                      DWORD cbImageSectionHeader = 0;
--                                                      ReadFile(h, &ImageSectionHeader, sizeof ImageSectionHeader, &cbImageSectionHeader, 0);
--                                                      if (cbImageSectionHeader != sizeof ImageSectionHeader)
--                                                              break;
--                                                      if (memcmp(ImageSectionHeader.Name, "_winzip_", 8) == 0)
--                                                      {
--                                                              // looks like WinZip Self-Extractor
--                                                              memcpy(sig, "PK\x03\x04", cchSig = 4);
--                                                              break;
--                                                      }
--                                                      DWORD ahead = ImageSectionHeader.PointerToRawData + ImageSectionHeader.SizeOfRawData;
--                                                      if (offset < ahead)
--                                                              offset = ahead;
--                                              }
--                                              if (iSection == -1 && SetFilePointer(h, offset, 0, FILE_BEGIN) == offset)
--                                              {
--                                                      ReadFile(h, sig, sizeof(CH_SIGNATURE), &cchSig, 0);
--                                              }
--                                      }
--                              }
--                      }
--              }
--              CloseHandle(h);
--      }
--      return cchSig;
--}
--
--/**
-- * @brief Load language file for 7-Zip UIs.
-- */
--
--static CSysString g_LangPath;
--
--LPCTSTR Merge7z::LoadLang(LPCTSTR langFile)
--{
--      TCHAR langFileGuess[8];
--      if (HIWORD(langFile) == 0)
--      {
--              langFileGuess[0] = '\0';
--              if (int cchLng = GetLocaleInfo(LCID(langFile), LOCALE_SISO639LANGNAME, langFileGuess, 4))
--              {
--                      langFileGuess[cchLng - 1] = '-';
--                      GetLocaleInfo(LCID(langFile), LOCALE_SISO3166CTRYNAME, langFileGuess + cchLng, 4);
--                      langFile = langFileGuess;
--              }
--      }
--      g_LangPath = GetSystemString(g_cPath7z);
--      g_LangPath += TEXT("Lang\\");
--      g_LangPath += langFile;
--      int slash = g_LangPath.ReverseFind('\\');
--      int minus = g_LangPath.ReverseFind('-');
--      int dot = g_LangPath.ReverseFind('.');
--      if (dot <= slash)
--      {
--              dot = g_LangPath.Length();
--              g_LangPath += TEXT(".txt");
--      }
--      if (minus > slash && !PathFileExists(g_LangPath))
--      {
--              // 2nd chance: filename == language code
--              CSysString Region = g_LangPath.Mid(minus, dot - minus);
--              Region.Replace('-', '\\');
--              g_LangPath.Delete(minus, dot - minus);
--              if (!PathFileExists(g_LangPath))
--              {
--                      // 3rd chance: filename == region code (Norwegian)
--                      g_LangPath.Delete(slash, minus - slash);
--                      g_LangPath.Insert(slash, Region);
--              }
--      }
--      ReloadLang();
--      return g_LangPath;
--}
--
--/**
-- * @brief Override ReadRegLang to return path set by Merge7z::LoadLang().
-- * This is global 7-Zip function otherwise defined in RegistryUtils.cpp.
-- * Exclude RegistryUtils.cpp from build to avoid link-time collision.
-- */
--
--void ReadRegLang(UString &langFile)
--{
--      langFile = GetUnicodeString(g_LangPath);
--}
--
--void SaveRegLang(const UString &langFile)
--{
--}
--
--/**
-- * @brief Export instance of Merge7z interface.
-- */
--EXTERN_C
--{
--      __declspec(dllexport) Merge7z Merge7z;
--}
--
--EXTERN_C HRESULT CALLBACK DllGetVersion(DLLVERSIONINFO *pdvi)
--{
--      // Compute dwBuild from revision.txt
--      static const DWORD dwBuild =
--      (
--              sizeof""
--#             define VERSION(MAJOR,MINOR)
--#             include "revision.txt"
--#             undef VERSION
--      );
--      C_ASSERT(dwBuild == DllBuild_Merge7z);
--      // Compute dwVersion from revision.txt
--      static const DWORD dwVersion =
--      (
--              0*sizeof""
--#             define VERSION(MAJOR,MINOR) , MAKELONG(MINOR,MAJOR) + 0*sizeof""
--#             include "revision.txt"
--#             undef VERSION
--      );
--      static const DLLVERSIONINFO dvi =
--      {
--              sizeof dvi,
--              HIWORD(dwVersion), LOWORD(dwVersion), dwBuild, DLLVER_PLATFORM_WINDOWS
--      };
--      CopyMemory(pdvi, &dvi, pdvi->cbSize < dvi.cbSize ? pdvi->cbSize : dvi.cbSize);
--      return S_OK;
--}
++/* Merge7zCommon.cpp: Provide a handy C++ interface to access 7Zip services\r
++ * Copyright (c) 2003 Jochen Tucht\r
++ *\r
++ * License:   This program is free software; you can redistribute it and/or modify\r
++ *                    it under the terms of the GNU General Public License as published by\r
++ *                    the Free Software Foundation; either version 2 of the License, or\r
++ *                    (at your option) any later version.\r
++ *\r
++ *                    This program is distributed in the hope that it will be useful,\r
++ *                    but WITHOUT ANY WARRANTY; without even the implied warranty of\r
++ *                    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r
++ *                    GNU General Public License for more details.\r
++ *\r
++ *                    You should have received a copy of the GNU General Public License\r
++ *                    along with this program; if not, write to the Free Software\r
++ *                    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.\r
++ *\r
++ * Remarks:   This file contains the presumably version-independent parts of\r
++ *                    Merge7z code. Version specific code resides in Merge7zXXX.cpp.\r
++\r
++Please mind 2. a) of the GNU General Public License, and log your changes below.\r
++\r
++DATE:         BY:                                     DESCRIPTION:\r
++==========    ==================      ================================================\r
++2003-12-09    Jochen Tucht            Created\r
++2003-12-16    Jochen Tucht            GuessFormat() now checks for directory\r
++2004-03-18    Jochen Tucht            Experimental DllGetVersion() based on rcsid.\r
++2004-10-10    Jochen Tucht            DllGetVersion() based on new REVISION.TXT\r
++2005-01-15    Jochen Tucht            Changed as explained in revision.txt\r
++2005-02-26    Jochen Tucht            Changed as explained in revision.txt\r
++2005-03-19    Jochen Tucht            Changed as explained in revision.txt\r
++2005-06-22    Jochen Tucht            Treat .ear and .war like .zip\r
++2005-07-05    Jochen Tucht            Add missing .tbz2\r
++2005-08-20    Jochen Tucht            Option to guess archive format by signature.\r
++                                                              EnumerateDirectory() in EnumDirItems.cpp has\r
++                                                              somewhat changed so I can no longer use it.\r
++2005-10-02    Jochen Tucht            Add CHM format\r
++2005-11-19    Jochen Tucht            Minor changes to build against 7z430 beta\r
++2006-06-28    Jochen Neubeck          Add ISO format (introduced with 7z436 beta)\r
++                                                              Add NSIS format (introduced with 7z440 beta)\r
++2007-01-27    Jochen Neubeck          Unassociate .exe filename extension from NSIS\r
++                                                              format due to undesired side effect on WinMerge\r
++2007-04-20    Jochen Neubeck          Cope with 7z445's revised plugin system\r
++2007-07-13    Jochen Neubeck          Pass MSI files to CAB handler\r
++2007-08-25    Jochen Neubeck          Add COM format (introduced with 7z452 beta)\r
++                                                              This format also handles MSI files, which are\r
++                                                              therefore no longer passed to the CAB handler.\r
++2007-09-01    Jochen Neubeck          No longer #include "LangUtils.h", which has\r
++                                                              moved to a different location as of 7z453 beta.\r
++2007-12-22    Jochen Neubeck          Unassociate .001 filename extension\r
++2008-08-03    Jochen Neubeck          Add LZMA format (introduced with 7z458 beta)\r
++2010-04-24    Jochen Neubeck          New formats introduced with 7z459 beta:\r
++                                                              XAR, MUB, HFS, DMG, ELF (not sure if they work)\r
++*/\r
++\r
++#include "stdafx.h"\r
++#include "Merge7zCommon.h"\r
++\r
++void ReloadLang(); //Implemented in /*/FileManager/LangUtils.cpp\r
++\r
++using namespace NWindows;\r
++using namespace NFile;\r
++using namespace NName;\r
++\r
++void AddDirFileInfo(\r
++      const UString &prefix, \r
++      const UString &fullPathName,\r
++      NFind::CFileInfoW &fileInfo, \r
++      CDirItems &dirItems)\r
++{\r
++      CDirItem item;\r
++      item.Attrib = fileInfo.Attrib;\r
++      item.Size = fileInfo.Size;\r
++      item.CTime = fileInfo.CTime;\r
++      item.ATime = fileInfo.ATime;\r
++      item.MTime = fileInfo.MTime;\r
++      //UString\r
++      item.LogParent = dirItems.AddPrefix(-1, -1, prefix + fileInfo.Name);\r
++      item.PhyParent = dirItems.AddPrefix(-1, -1, fullPathName);\r
++      //item.Name = prefix + fileInfo.Name;\r
++      //item.FullPath = fullPathName;\r
++      dirItems.Items.Add(item);\r
++}\r
++\r
++static void EnumerateDirectory(\r
++      const UString &baseFolderPrefix,\r
++      const UString &directory, \r
++      const UString &prefix,\r
++      CDirItems &dirItems)\r
++{\r
++      NFind::CEnumeratorW enumerator(baseFolderPrefix + directory + wchar_t(kAnyStringWildcard));\r
++      NFind::CFileInfoW fileInfo;\r
++      while (enumerator.Next(fileInfo))\r
++      { \r
++              AddDirFileInfo(prefix, directory + fileInfo.Name, fileInfo, dirItems);\r
++              if (fileInfo.IsDir())\r
++              {\r
++                      EnumerateDirectory(baseFolderPrefix, directory + fileInfo.Name + wchar_t(kDirDelimiter),\r
++                      prefix + fileInfo.Name + wchar_t(kDirDelimiter), dirItems);\r
++              }\r
++      }\r
++}\r
++\r
++HINSTANCE g_hInstance;\r
++#ifndef _UNICODE\r
++bool g_IsNT = false;\r
++static bool IsItWindowsNT()\r
++{\r
++  OSVERSIONINFO versionInfo;\r
++  versionInfo.dwOSVersionInfoSize = sizeof(versionInfo);\r
++  if (!::GetVersionEx(&versionInfo)) \r
++    return false;\r
++  return (versionInfo.dwPlatformId == VER_PLATFORM_WIN32_NT);\r
++}\r
++#endif\r
++\r
++DWORD g_dwFlags;\r
++CHAR g_cPath7z[MAX_PATH];\r
++\r
++/**\r
++ * @brief Dll entry point\r
++ */\r
++BOOL APIENTRY DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID)\r
++{\r
++      if (dwReason == DLL_PROCESS_ATTACH)\r
++      {\r
++              g_hInstance = hInstance;\r
++#             ifndef _UNICODE\r
++              g_IsNT = IsItWindowsNT();\r
++#             endif\r
++      }\r
++      return TRUE;\r
++}\r
++\r
++/**\r
++ * @brief Load a dll and import a number of functions.\r
++ */\r
++static HMODULE DllProxyHelper(LPCSTR *proxy, ...)\r
++{\r
++      HMODULE handle = NULL;\r
++      if (LPCSTR name = *proxy)\r
++      {\r
++              if (proxy[1] && proxy[1] != name)\r
++              {\r
++                      char path[MAX_PATH];\r
++                      FormatMessageA\r
++                      (\r
++                              FORMAT_MESSAGE_FROM_STRING|FORMAT_MESSAGE_ARGUMENT_ARRAY,\r
++                              name,\r
++                              0,\r
++                              0,\r
++                              path,\r
++                              sizeof path,\r
++                              (va_list *)(&proxy + 1)\r
++                      );\r
++                      handle = LoadLibraryA(path);\r
++                      if (handle)\r
++                      {\r
++                              LPCSTR *p = proxy;\r
++                              *proxy = NULL;\r
++                              while ((name = *++p) != NULL)\r
++                              {\r
++                                      *p = (LPCSTR)GetProcAddress(handle, name);\r
++                                      if (*p == NULL)\r
++                                      {\r
++                                              *proxy = proxy[1] = name;\r
++                                              p = proxy + 2;\r
++                                              break;\r
++                                      }\r
++                              }\r
++                              *p = (LPCSTR)handle;\r
++                      }\r
++              }\r
++              if ((name = *proxy) != NULL)\r
++              {\r
++                      DWORD dwError = ERROR_MOD_NOT_FOUND;\r
++                      HMODULE hContext = NULL;\r
++                      if (proxy[1] == name)\r
++                      {\r
++                              dwError = ERROR_PROC_NOT_FOUND;\r
++                              hContext = (HMODULE)proxy[2];\r
++                      }\r
++                      Complain(dwError, GetSystemString(name), hContext);\r
++              }\r
++      }\r
++      return handle;\r
++}\r
++\r
++/**\r
++ * @brief Ask archiver dll for an interface of given class.\r
++ */\r
++HRESULT Format7zDLL::Interface::CreateObject(const GUID *interfaceID, void **outObject)\r
++{\r
++      PROPVARIANT value;\r
++      HRESULT result = proxy->GetHandlerProperty(NArchive::kClassID, &value);\r
++      if SUCCEEDED(result)\r
++      {\r
++              if (value.vt != VT_BSTR || SysStringByteLen(value.bstrVal) != sizeof(GUID))\r
++              {\r
++                      result = DISP_E_TYPEMISMATCH;\r
++              }\r
++              else\r
++              {\r
++                      result = proxy->CreateObject((const CLSID *)value.bstrVal, interfaceID, outObject);\r
++              }\r
++              VariantClear((VARIANT *)&value);\r
++      }\r
++      return result;\r
++}\r
++\r
++/**\r
++ * @brief Ask archiver dll for an instance of IInArchive.\r
++ */\r
++IInArchive *Format7zDLL::Interface::GetInArchive()\r
++{\r
++      void *pv;\r
++      if COMPLAIN(CreateObject(&IID_IInArchive, &pv) != S_OK)\r
++      {\r
++              Complain(RPC_S_INTERFACE_NOT_FOUND, _T("IInArchive"), proxy.handle);\r
++      }\r
++      return static_cast<IInArchive *>(pv);\r
++}\r
++\r
++/**\r
++ * @brief Ask archiver dll for an instance of IOutArchive.\r
++ */\r
++IOutArchive *Format7zDLL::Interface::GetOutArchive()\r
++{\r
++      void *pv;\r
++      if COMPLAIN(CreateObject(&IID_IOutArchive, &pv) != S_OK)\r
++      {\r
++              Complain(RPC_S_INTERFACE_NOT_FOUND, _T("IOutArchive"), proxy.handle);\r
++      }\r
++      return static_cast<IOutArchive *>(pv);\r
++}\r
++\r
++/**\r
++ * @brief Extraction method accessible from outside\r
++ */\r
++HRESULT Format7zDLL::Interface::DeCompressArchive(HWND hwndParent, LPCTSTR path, LPCTSTR folder)\r
++{\r
++      HRESULT result = E_FAIL;\r
++      if (Merge7z::Format::Inspector *inspector = Open(hwndParent, path))\r
++      {\r
++              if (CMyComBSTR(GetHandlerAddExtension(hwndParent)).Length())\r
++              {\r
++                      //Most handlers seem to be happy with missing index array, but rpm\r
++                      //handler doesn't know how to "extract all" and needs index array\r
++                      //even for the one and only file inside (which is .cpio.gz).\r
++                      static const UINT32 indices[1] = {0};\r
++                      result = inspector->Extract(hwndParent, folder, indices, 1);\r
++              }\r
++              else\r
++              {\r
++                      result = inspector->Extract(hwndParent, folder);\r
++              }\r
++              inspector->Free();\r
++      }\r
++      return result;\r
++}\r
++\r
++/**\r
++ * @brief Open archive for inspection.\r
++ */\r
++Merge7z::Format::Inspector *Format7zDLL::Interface::Open(HWND hwndParent, LPCTSTR path)\r
++{\r
++      Inspector *inspector = new Inspector(this, path);\r
++      try\r
++      {\r
++              inspector->Init(hwndParent);\r
++      }\r
++      catch (Complain *complain)\r
++      {\r
++              complain->Alert(hwndParent);\r
++              inspector->Free();\r
++              inspector = 0;\r
++      }\r
++      return inspector;\r
++}\r
++\r
++/**\r
++ * @brief Prepare inspection interface for iteration.\r
++ */\r
++UINT32 Format7zDLL::Interface::Inspector::Open()\r
++{\r
++      UINT32 numItems = 0;\r
++      archive->GetNumberOfItems(&numItems);\r
++      return numItems;\r
++}\r
++\r
++/**\r
++ * @brief free inspection interface.\r
++ */\r
++void Format7zDLL::Interface::Inspector::Free()\r
++{\r
++      Release(archive);\r
++      Release(static_cast<IInStream *>(file));\r
++      Release(callback);\r
++      delete this;\r
++}\r
++\r
++HRESULT Format7zDLL::Interface::Inspector::GetProperty(UINT32 index, PROPID propID, PROPVARIANT *value, VARTYPE vt)\r
++{\r
++      VariantInit((VARIANT *)value);\r
++      HRESULT result = archive->GetProperty(index, propID, value);\r
++      if (SUCCEEDED(result) && value->vt != vt)\r
++      {\r
++              VariantClear((VARIANT *)value);\r
++              result = DISP_E_TYPEMISMATCH;\r
++      }\r
++      return result;\r
++}\r
++\r
++BSTR Format7zDLL::Interface::Inspector::GetPath(UINT32 index)\r
++{\r
++      PROPVARIANT value;\r
++      return SUCCEEDED(GetProperty(index, kpidPath, &value, VT_BSTR)) ? value.bstrVal : 0;\r
++}\r
++\r
++BSTR Format7zDLL::Interface::Inspector::GetName(UINT32 index)\r
++{\r
++      PROPVARIANT value;\r
++      return SUCCEEDED(GetProperty(index, kpidName, &value, VT_BSTR)) ? value.bstrVal : 0;\r
++}\r
++\r
++BSTR Format7zDLL::Interface::Inspector::GetExtension(UINT32 index)\r
++{\r
++      PROPVARIANT value;\r
++      return SUCCEEDED(GetProperty(index, kpidExtension, &value, VT_BSTR)) ? value.bstrVal : 0;\r
++}\r
++\r
++VARIANT_BOOL Format7zDLL::Interface::Inspector::IsFolder(UINT32 index)\r
++{\r
++      PROPVARIANT value;\r
++      return SUCCEEDED(GetProperty(index, kpidIsDir, &value, VT_BOOL)) ? value.boolVal : 0;\r
++}\r
++\r
++FILETIME Format7zDLL::Interface::Inspector::LastWriteTime(UINT32 index)\r
++{\r
++      static const FILETIME invalid = { 0, 0 };\r
++      PROPVARIANT value;\r
++      return SUCCEEDED(GetProperty(index, kpidMTime, &value, VT_FILETIME)) ? value.filetime : invalid;\r
++}\r
++\r
++void Format7zDLL::Interface::GetDefaultName(HWND hwndParent, UString &ustrDefaultName)\r
++{\r
++      int dot = ustrDefaultName.ReverseFind('.');\r
++      int slash = ustrDefaultName.ReverseFind('\\');\r
++      if (dot > slash)\r
++      {\r
++              LPCWSTR pchExtension = ustrDefaultName;\r
++              pchExtension += dot + 1;\r
++              static const OLECHAR wBlank[] = L" ";\r
++              CMyComBSTR bstrHandlerExtension = GetHandlerExtension(hwndParent);\r
++              CMyComBSTR bstrHandlerAddExtension = GetHandlerAddExtension(hwndParent);\r
++              LPWSTR pchHandlerExtension = bstrHandlerExtension.m_str;\r
++              LPWSTR pchHandlerAddExtension = bstrHandlerAddExtension.m_str;\r
++              while (int cchHandlerAddExtension = StrCSpnW(pchHandlerAddExtension += StrSpnW(pchHandlerAddExtension, wBlank), wBlank))\r
++              {\r
++                      int cchHandlerExtension = StrCSpnW(pchHandlerExtension += StrSpnW(pchHandlerExtension, wBlank), wBlank);\r
++                      if (StrIsIntlEqualW(FALSE, pchExtension, pchHandlerExtension, cchHandlerExtension) && pchExtension[cchHandlerExtension] == 0)\r
++                      {\r
++                              pchHandlerAddExtension[cchHandlerAddExtension] = '\0'; // will also stop iteration\r
++                              ustrDefaultName.ReleaseBuffer(dot);\r
++                              if (*pchHandlerAddExtension == '.') // consider != '*'\r
++                              {\r
++                                      ustrDefaultName += pchHandlerAddExtension;\r
++                                      dot += cchHandlerAddExtension; // make ReleaseBuffer(dot) below a NOP\r
++                              }\r
++                      }\r
++                      pchHandlerExtension += cchHandlerExtension;\r
++                      pchHandlerAddExtension += cchHandlerAddExtension;\r
++              }\r
++              ustrDefaultName.ReleaseBuffer(dot);\r
++              ustrDefaultName.Delete(0, slash + 1);\r
++      }\r
++      else\r
++      {\r
++              ustrDefaultName = L"noname";\r
++      }\r
++}\r
++\r
++BSTR Format7zDLL::Interface::GetDefaultName(HWND hwndParent, LPCTSTR path)\r
++{\r
++      UString ustrDefaultName = GetUnicodeString(path);\r
++      GetDefaultName(hwndParent, ustrDefaultName);\r
++      return SysAllocString(ustrDefaultName);\r
++}\r
++\r
++BSTR Format7zDLL::Interface::Inspector::GetDefaultName()\r
++{\r
++      //UString ustrDefaultName = GetUnicodeString(path);\r
++      return SysAllocString(ustrDefaultName);\r
++}\r
++\r
++/**\r
++ * @brief Open archive for update.\r
++ */\r
++Merge7z::Format::Updater *Format7zDLL::Interface::Update(HWND hwndParent, LPCTSTR path)\r
++{\r
++      Updater *updater = new Updater(this, path);\r
++      try\r
++      {\r
++              updater->Init(hwndParent);\r
++      }\r
++      catch (Complain *complain)\r
++      {\r
++              complain->Alert(hwndParent);\r
++              updater->Free();\r
++              updater = 0;\r
++      }\r
++      return updater;\r
++}\r
++\r
++/**\r
++ * @brief Add item to updater\r
++ */\r
++UINT32 Format7zDLL::Interface::Updater::Add(Merge7z::DirItemEnumerator::Item &etorItem)\r
++{\r
++      // fill in the default values from the enumerator\r
++      CDirItem item;\r
++      UString Name = GetUnicodeString(etorItem.Name);\r
++      UString FullPath = GetUnicodeString(etorItem.FullPath);\r
++      if (etorItem.Mask.Item & etorItem.Mask.Name)\r
++              //item.Name = GetUnicodeString(etorItem.Name);\r
++              item.LogParent = dirItems.AddPrefix(-1, -1, Name);\r
++      if (etorItem.Mask.Item & etorItem.Mask.FullPath)\r
++              //item.FullPath = GetUnicodeString(etorItem.FullPath);\r
++              item.PhyParent = dirItems.AddPrefix(-1, -1, FullPath);\r
++      if (etorItem.Mask.Item & etorItem.Mask.Attributes)\r
++              item.Attrib = etorItem.Attributes;\r
++      if (etorItem.Mask.Item & etorItem.Mask.Size)\r
++              item.Size = etorItem.Size;\r
++      if (etorItem.Mask.Item & etorItem.Mask.CreationTime)\r
++              item.CTime = etorItem.CreationTime;\r
++      if (etorItem.Mask.Item & etorItem.Mask.LastAccessTime)\r
++              item.ATime = etorItem.LastAccessTime;\r
++      if (etorItem.Mask.Item & etorItem.Mask.LastWriteTime)\r
++              item.MTime = etorItem.LastWriteTime;\r
++      if (etorItem.Mask.Item && (etorItem.Mask.Item & (etorItem.Mask.NeedFindFile|etorItem.Mask.CheckIfPresent)) != etorItem.Mask.NeedFindFile)\r
++      {\r
++              // Check the info from the disk\r
++              NFile::NFind::CFileInfoW fileInfo;\r
++              if (NFile::NFind::CFindFile().FindFirst(FullPath, fileInfo))\r
++              {\r
++                      if (!(etorItem.Mask.Item & etorItem.Mask.Name))\r
++                              item.Name = fileInfo.Name;\r
++                      if (!(etorItem.Mask.Item & etorItem.Mask.Attributes))\r
++                              item.Attrib = fileInfo.Attrib;\r
++                      if (!(etorItem.Mask.Item & etorItem.Mask.Size))\r
++                              item.Size = fileInfo.Size;\r
++                      if (!(etorItem.Mask.Item & etorItem.Mask.CreationTime))\r
++                              item.CTime = fileInfo.CTime;\r
++                      if (!(etorItem.Mask.Item & etorItem.Mask.LastAccessTime))\r
++                              item.ATime = fileInfo.ATime;\r
++                      if (!(etorItem.Mask.Item & etorItem.Mask.LastWriteTime))\r
++                              item.MTime = fileInfo.MTime;\r
++              }\r
++              else\r
++              {\r
++                      // file not valid, forget it\r
++                      etorItem.Mask.Item = 0;\r
++              }\r
++      }\r
++      if (etorItem.Mask.Item)\r
++      {\r
++              // No check from disk, simply use info from enumerators (risky)\r
++              // Why risky? This is not at all obvious.\r
++              dirItems.Items.Add(item);\r
++              // Recurse into directories (call a function of 7zip)\r
++              if ((etorItem.Mask.Item & etorItem.Mask.Recurse) && (item.Attrib & FILE_ATTRIBUTE_DIRECTORY))\r
++              {\r
++                      EnumerateDirectory(UString(), FullPath + L'\\',\r
++                                      Name + L'\\', dirItems);\r
++              }\r
++      }\r
++      return etorItem.Mask.Item;\r
++}\r
++\r
++/**\r
++ * @brief free updater interface.\r
++ */\r
++void Format7zDLL::Interface::Updater::Free()\r
++{\r
++      Release(outArchive);\r
++      Release(static_cast<IOutStream *>(file));\r
++      delete this;\r
++}\r
++\r
++/**\r
++ * @brief Compression method accessible from outside\r
++ *\r
++ * @note See CAgent::DoOperation (in 7zip source) for model\r
++ */\r
++HRESULT Format7zDLL::Interface::CompressArchive(HWND hwndParent, LPCTSTR path, Merge7z::DirItemEnumerator *etor)\r
++{\r
++      HRESULT result = E_FAIL;\r
++      if (Merge7z::Format::Updater *updater = Update(hwndParent, path))\r
++      {\r
++              UINT count = etor->Open();\r
++              while (count--)\r
++              {\r
++                      Merge7z::DirItemEnumerator::Item etorItem;\r
++                      etorItem.Mask.Item = 0;\r
++                      Merge7z::Envelope *envelope = etor->Enum(etorItem);\r
++                      if (etorItem.Mask.Item != 0)\r
++                      {\r
++                              updater->Add(etorItem);\r
++                      }\r
++                      if (envelope)\r
++                      {\r
++                              envelope->Free();\r
++                      }\r
++              }\r
++              result = updater->Commit(hwndParent);\r
++              updater->Free();\r
++      }\r
++      return result;\r
++}\r
++\r
++/**\r
++ * @brief get handler property identified by given propID\r
++ */\r
++HRESULT Format7zDLL::Interface::GetHandlerProperty(HWND hwndParent, PROPID propID, PROPVARIANT *value, VARTYPE vt)\r
++{\r
++      VariantInit((VARIANT *)value);\r
++      HRESULT result = DISP_E_EXCEPTION;\r
++      try\r
++      {\r
++              result = proxy->GetHandlerProperty(propID, value);\r
++              if (SUCCEEDED(result) && value->vt != vt)\r
++              {\r
++                      VariantClear((VARIANT *)value);\r
++                      result = DISP_E_TYPEMISMATCH;\r
++              }\r
++      }\r
++      catch (Complain *complain)\r
++      {\r
++              complain->Alert(hwndParent);\r
++      }\r
++      return result;\r
++}\r
++\r
++/**\r
++ * @brief get Name handler property\r
++ */\r
++BSTR Format7zDLL::Interface::GetHandlerName(HWND hwndParent)\r
++{\r
++      PROPVARIANT value;\r
++      return SUCCEEDED(GetHandlerProperty(hwndParent, NArchive::kName, &value, VT_BSTR)) ? value.bstrVal : 0;\r
++}\r
++\r
++/**\r
++ * @brief get ClassID handler property\r
++ */\r
++BSTR Format7zDLL::Interface::GetHandlerClassID(HWND hwndParent)\r
++{\r
++      PROPVARIANT value;\r
++      return SUCCEEDED(GetHandlerProperty(hwndParent, NArchive::kClassID, &value, VT_BSTR)) ? value.bstrVal : 0;\r
++}\r
++\r
++/**\r
++ * @brief get Extension handler property\r
++ */\r
++BSTR Format7zDLL::Interface::GetHandlerExtension(HWND hwndParent)\r
++{\r
++      PROPVARIANT value;\r
++      return SUCCEEDED(GetHandlerProperty(hwndParent, NArchive::kExtension, &value, VT_BSTR)) ? value.bstrVal : 0;\r
++}\r
++\r
++/**\r
++ * @brief get AddExtension handler property\r
++ */\r
++BSTR Format7zDLL::Interface::GetHandlerAddExtension(HWND hwndParent)\r
++{\r
++      PROPVARIANT value;\r
++      return SUCCEEDED(GetHandlerProperty(hwndParent, NArchive::kAddExtension, &value, VT_BSTR)) ? value.bstrVal : 0;\r
++}\r
++\r
++/**\r
++ * @brief get Update handler property\r
++ */\r
++VARIANT_BOOL Format7zDLL::Interface::GetHandlerUpdate(HWND hwndParent)\r
++{\r
++      PROPVARIANT value;\r
++      return SUCCEEDED(GetHandlerProperty(hwndParent, NArchive::kUpdate, &value, VT_BOOL)) ? value.boolVal : 0;\r
++}\r
++\r
++/**\r
++ * @brief get KeepName handler property\r
++ */\r
++VARIANT_BOOL Format7zDLL::Interface::GetHandlerKeepName(HWND hwndParent)\r
++{\r
++      PROPVARIANT value;\r
++      return SUCCEEDED(GetHandlerProperty(hwndParent, NArchive::kKeepName, &value, VT_BOOL)) ? value.boolVal : 0;\r
++}\r
++\r
++/**\r
++ * @brief Initialize the library.\r
++ */\r
++int Merge7z::Initialize(DWORD dwFlags)\r
++{\r
++      g_dwFlags = dwFlags;\r
++      if (dwFlags & Initialize::Local7z)\r
++      {\r
++              GetModuleFileNameA(g_hInstance, g_cPath7z, sizeof g_cPath7z);\r
++              PathRemoveFileSpecA(g_cPath7z);\r
++      }\r
++      else\r
++      {\r
++              DWORD type = 0;\r
++              DWORD size = sizeof g_cPath7z;\r
++              SHGetValueA(HKEY_LOCAL_MACHINE, "Software\\7-Zip", "Path", &type, g_cPath7z, &size);\r
++      }\r
++      PathAddBackslashA(g_cPath7z);\r
++      if (WORD wLangID = HIWORD(dwFlags))\r
++      {\r
++              LoadLang(MAKEINTATOM(wLangID));\r
++      }\r
++      return 0;\r
++}\r
++\r
++Format7zDLL::Interface *Format7zDLL::Interface::head = NULL;\r
++\r
++/**\r
++ * @brief Access archiver dll functions through proxy.\r
++ */\r
++\r
++#else\r
++//DEFINE_FORMAT(CFtpHandler,          "FTP.DLL",              "ftp", "");\r
++\r
++#define CLS_ARC_ID_ITEM(cls) ((cls).Data4[5])\r
++\r
++Format7zDLL::Proxy::Handle Format7zDLL::Proxy::handle =\r
++{\r
++      "%1!s!7z.dll",\r
++      "CreateObject",\r
++      "GetHandlerProperty2",\r
++      "GetNumberOfFormats",\r
++      (HMODULE)0\r
++};\r
++\r
++struct Format7zDLL::Proxy *Format7zDLL::Proxy::operator->()\r
++{\r
++      DllProxyHelper(&handle.aModule, g_cPath7z);\r
++      if (formatIndex < 0)\r
++      {\r
++              GUID clsId =\r
++              {\r
++                      0x23170F69, 0x40C1, 0x278A,\r
++                      0x10, 0x00, 0x00, 0x01, 0x10, (BYTE)-formatIndex, 0x00, 0x00\r
++              };\r
++              UINT32 i = 0;\r
++              handle.GetNumberOfFormats(&i);\r
++              while (i)\r
++              {\r
++                      PROPVARIANT value;\r
++                      ::VariantInit((LPVARIANT)&value);\r
++                      if (SUCCEEDED(handle.GetHandlerProperty2(--i, NArchive::kClassID, &value)) &&\r
++                              value.vt == VT_BSTR &&\r
++                              SysStringByteLen(value.bstrVal) == sizeof(GUID) &&\r
++                              IsEqualGUID(clsId, *value.puuid))\r
++                      {\r
++                              formatIndex = i;\r
++                              i = 0;\r
++                      }\r
++                      ::VariantClear((LPVARIANT)&value);\r
++              }\r
++              if (formatIndex < 0)\r
++              {\r
++                      TCHAR szArcID[4];\r
++                      wsprintf(szArcID, _T("%02x"), (UINT)CLS_ARC_ID_ITEM(clsId));\r
++                      Complain(RPC_S_INTERFACE_NOT_FOUND, szArcID, handle);\r
++              }\r
++      }\r
++      return this;\r
++}\r
++\r
++STDMETHODIMP Format7zDLL::Proxy::CreateObject(const GUID *clsID, const GUID *interfaceID, void **outObject)\r
++{\r
++      return handle.CreateObject(clsID, interfaceID, outObject);\r
++}\r
++\r
++STDMETHODIMP Format7zDLL::Proxy::GetHandlerProperty(PROPID propID, PROPVARIANT *value)\r
++{\r
++      return handle.GetHandlerProperty2(formatIndex, propID, value);\r
++}\r
++\r
++#define       DEFINE_FORMAT(name, id, extension, signature) \\r
++              Format7zDLL::Proxy PROXY_##name = \\r
++              { \\r
++                      -0x##id, \\r
++                      0, \\r
++                      sizeof signature extension - sizeof extension, \\r
++                      '@', \\r
++                      signature extension + sizeof signature extension - sizeof extension \\r
++              }; \\r
++              Format7zDLL::Interface name = PROXY_##name;\r
++\r
++DEFINE_FORMAT(CFormat7z,              07, "7z", "7z\xBC\xAF\x27\x1C");\r
++DEFINE_FORMAT(CArjHandler,            04, "arj", "\x60\xEA");\r
++DEFINE_FORMAT(CBZip2Handler,  02, "bz2 tbz2", "BZh");\r
++DEFINE_FORMAT(CCabHandler,            08, "cab", "MSCF");\r
++DEFINE_FORMAT(CCpioHandler,           ED, "cpio", "");\r
++DEFINE_FORMAT(CDebHandler,            EC, "deb", "!<arch>\n");\r
++DEFINE_FORMAT(CLzhHandler,            06, "lzh lha", "@@-l@@-");//"@-l" doesn't work because signature starts at offset 2\r
++DEFINE_FORMAT(CGZipHandler,           EF, "gz tgz", "\x1F\x8B");\r
++DEFINE_FORMAT(CRarHandler,            03, "rar", "Rar!\x1a\x07\x00");\r
++DEFINE_FORMAT(CRpmHandler,            EB, "rpm", "");\r
++DEFINE_FORMAT(CTarHandler,            EE, "tar", "");\r
++DEFINE_FORMAT(CZHandler,              05, "z", "\x1F\x9D");\r
++DEFINE_FORMAT(CZipHandler,            01, "zip jar war ear xpi", "PK\x03\x04");\r
++DEFINE_FORMAT(CChmHandler,            E9, "chm chi chq chw hxs hxi hxr hxq hxw lit", "ITSF");\r
++DEFINE_FORMAT(CIsoHandler,            E7, "iso", "");\r
++DEFINE_FORMAT(CNsisHandler,           09, "", "@@@@\xEF\xBE\xAD\xDENullsoftInst");\r
++#if MY_VER_MAJOR * 100 + MY_VER_MINOR >= 449\r
++DEFINE_FORMAT(CWimHandler,            E6, "wim swm", "MSWIM\x00\x00\x00");\r
++#endif\r
++#if MY_VER_MAJOR * 100 + MY_VER_MINOR >= 452\r
++DEFINE_FORMAT(CComHandler,            E5, "", "\xD0\xCF\x11\xE0\xA1\xB1\x1A\xE1");\r
++#endif\r
++#if MY_VER_MAJOR * 100 + MY_VER_MINOR >= 458\r
++DEFINE_FORMAT(CLzmaHandler,           0A, "lzma lzma86", "");\r
++#endif\r
++#if MY_VER_MAJOR * 100 + MY_VER_MINOR >= 459\r
++DEFINE_FORMAT(CXarHandler,            E1, "", "xar!\x00\x1C");\r
++DEFINE_FORMAT(CMubHandler,            E2, "mub", "");\r
++DEFINE_FORMAT(CHfsHandler,            E3, "hfs", "");\r
++DEFINE_FORMAT(CDmgHandler,            E4, "dmg", "");\r
++DEFINE_FORMAT(CElfHandler,            DE, "elf", "");\r
++#endif\r
++\r
++/**\r
++ * @brief Construct Merge7z interface.\r
++ */\r
++Merge7z::Merge7z():\r
++Format7z(CFormat7z),\r
++ZipHandler(CZipHandler),\r
++RarHandler(CRarHandler),\r
++BZip2Handler(CBZip2Handler),\r
++TarHandler(CTarHandler)\r
++{\r
++}\r
++\r
++/**\r
++ * @brief Figure out which archiver dll to use for a given archive.\r
++ */\r
++Merge7z::Format *Merge7z::GuessFormat(LPCTSTR path)\r
++{\r
++      if (g_dwFlags & Initialize::GuessFormatBySignature)\r
++              return GuessFormatBySignature(path, g_dwFlags & Initialize::GuessFormatByExtension ? path : 0);\r
++      return GuessFormatByExtension(path);\r
++}\r
++\r
++/**\r
++ * @brief Figure out which archiver dll to use for a given archive.\r
++ */\r
++Merge7z::Format *Merge7z::GuessFormatByExtension(LPCTSTR path)\r
++{\r
++      SZ_EXTENSION ext;\r
++      if (PathIsDirectory(path))\r
++              return 0;\r
++      return GuessFormatEx(GetExtension(path, ext), 0, 0);\r
++}\r
++\r
++/**\r
++ * @brief Figure out which archiver dll to use for a given archive.\r
++ */\r
++Merge7z::Format *Merge7z::GuessFormatBySignature(LPCTSTR path, LPCTSTR extension)\r
++{\r
++      SZ_EXTENSION ext;\r
++      CH_SIGNATURE sig;\r
++      if (PathIsDirectory(path))\r
++              return 0;\r
++      return GuessFormatEx(GetExtension(extension, ext), sig, GetSignature(path, sig));\r
++}\r
++\r
++/**\r
++ * @brief Figure out which archiver dll to use for a given archive.\r
++ */\r
++Merge7z::Format *Merge7z::GuessFormatEx(LPCSTR ext, LPCH sig, int cchSig)\r
++{\r
++      Format7zDLL::Interface *pFormat = Format7zDLL::Interface::head;\r
++      Format7zDLL::Interface *pFormatByExtension = 0;\r
++      while (pFormat)\r
++      {\r
++              static const char aBlank[] = " ";\r
++              LPCSTR pchExtension = pFormat->proxy.extension;\r
++              int cchExtension = pFormat->proxy.sig_count;\r
++              if (cchSig > 0 && cchExtension)\r
++              {\r
++                      LPCSTR pchSignature = pchExtension - cchExtension;\r
++                      char joker = pFormat->proxy.sig_joker;\r
++                      size_t begin = pFormat->proxy.sig_begin;\r
++                      if (cchSig >= cchExtension)\r
++                      {\r
++                              while (cchExtension--)\r
++                              {\r
++                                      char expected = pchSignature[cchExtension];\r
++                                      if (expected != joker && sig[begin + cchExtension] != expected)\r
++                                              break;\r
++                              }\r
++                              if (cchExtension == -1)\r
++                                      return pFormat;\r
++                      }\r
++              }\r
++              else while\r
++              (\r
++                      ext\r
++              &&      pFormatByExtension == 0\r
++              &&      (cchExtension = StrCSpnA(pchExtension += StrSpnA(pchExtension, aBlank), aBlank)) != 0\r
++              )\r
++              {\r
++                      if (StrIsIntlEqualA(FALSE, pchExtension, ext, cchExtension) && ext[cchExtension] == '\0')\r
++                      {\r
++                              pFormatByExtension = pFormat;\r
++                      }\r
++                      pchExtension += cchExtension;\r
++              }\r
++              pFormat = pFormat->next;\r
++      }\r
++      return pFormat ? pFormat : pFormatByExtension;\r
++}\r
++\r
++/**\r
++ * @brief Get filename extension as ANSI characters.\r
++ */\r
++LPCSTR Merge7z::GetExtension(LPCTSTR path, SZ_EXTENSION ext)\r
++{\r
++      if (path == NULL)\r
++              return NULL;\r
++      path = PathFindExtension(path);\r
++#ifdef UNICODE\r
++      return WideCharToMultiByte(CP_ACP, 0, path, -1, ext, sizeof(SZ_EXTENSION), 0, 0) > 1 ? ext + 1 : 0;\r
++#else\r
++      ext[sizeof(SZ_EXTENSION) - 2] = '\0';\r
++      lstrcpynA(ext, path, sizeof(SZ_EXTENSION));\r
++      return ext[0] != '\0' && ext[sizeof(SZ_EXTENSION) - 2] == '\0' ? ext + 1 : 0;\r
++#endif\r
++}\r
++\r
++/**\r
++ * @brief Read start signature from given file.\r
++ */\r
++DWORD Merge7z::GetSignature(LPCTSTR path, CH_SIGNATURE sig)\r
++{\r
++      if (sig == NULL)\r
++              return sizeof(CH_SIGNATURE);\r
++      DWORD cchSig = 0;\r
++      HANDLE h = CreateFile(path, GENERIC_READ, FILE_SHARE_READ|FILE_SHARE_WRITE, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);\r
++      if (h != INVALID_HANDLE_VALUE)\r
++      {\r
++              ReadFile(h, sig, sizeof(CH_SIGNATURE), &cchSig, 0);\r
++              if (cchSig >= 64 && MAKEWORD(sig[0],sig[1]) == IMAGE_DOS_SIGNATURE)\r
++              {\r
++                      DWORD offset = \r
++                      (\r
++                              LPDWORD(sig)[5] //DOS CS:IP\r
++                      ?       512UL * (LPWORD(sig)[1] ? LPWORD(sig)[2] - 1 : LPWORD(sig)[2]) + LPWORD(sig)[1]\r
++                      :       LPDWORD(sig)[15]\r
++                      );\r
++                      if (SetFilePointer(h, offset, 0, FILE_BEGIN) == offset)\r
++                      {\r
++                              ReadFile(h, sig, sizeof(CH_SIGNATURE), &cchSig, 0);\r
++                              if (cchSig >= 4 + sizeof(IMAGE_FILE_HEADER) && MAKELONG(MAKEWORD(sig[0],sig[1]), MAKEWORD(sig[2],sig[3])) == MAKELONG(MAKEWORD('P','E'), 0))\r
++                              {\r
++                                      cchSig = 0;\r
++                                      IMAGE_FILE_HEADER *pImageFileHeader = (IMAGE_FILE_HEADER *) (sig + 4);\r
++                                      offset += 4 + sizeof(IMAGE_FILE_HEADER) + pImageFileHeader->SizeOfOptionalHeader;\r
++                                      if (SetFilePointer(h, offset, 0, FILE_BEGIN) == offset)\r
++                                      {\r
++                                              int iSection = pImageFileHeader->NumberOfSections;\r
++                                              while (iSection--)\r
++                                              {\r
++                                                      IMAGE_SECTION_HEADER ImageSectionHeader;\r
++                                                      DWORD cbImageSectionHeader = 0;\r
++                                                      ReadFile(h, &ImageSectionHeader, sizeof ImageSectionHeader, &cbImageSectionHeader, 0);\r
++                                                      if (cbImageSectionHeader != sizeof ImageSectionHeader)\r
++                                                              break;\r
++                                                      if (memcmp(ImageSectionHeader.Name, "_winzip_", 8) == 0)\r
++                                                      {\r
++                                                              // looks like WinZip Self-Extractor\r
++                                                              memcpy(sig, "PK\x03\x04", cchSig = 4);\r
++                                                              break;\r
++                                                      }\r
++                                                      DWORD ahead = ImageSectionHeader.PointerToRawData + ImageSectionHeader.SizeOfRawData;\r
++                                                      if (offset < ahead)\r
++                                                              offset = ahead;\r
++                                              }\r
++                                              if (iSection == -1 && SetFilePointer(h, offset, 0, FILE_BEGIN) == offset)\r
++                                              {\r
++                                                      ReadFile(h, sig, sizeof(CH_SIGNATURE), &cchSig, 0);\r
++                                              }\r
++                                      }\r
++                              }\r
++                      }\r
++              }\r
++              CloseHandle(h);\r
++      }\r
++      return cchSig;\r
++}\r
++\r
++/**\r
++ * @brief Load language file for 7-Zip UIs.\r
++ */\r
++\r
++static CSysString g_LangPath;\r
++\r
++LPCTSTR Merge7z::LoadLang(LPCTSTR langFile)\r
++{\r
++      TCHAR langFileGuess[8];\r
++      if (HIWORD(langFile) == 0)\r
++      {\r
++              langFileGuess[0] = '\0';\r
++              if (int cchLng = GetLocaleInfo(LCID(langFile), LOCALE_SISO639LANGNAME, langFileGuess, 4))\r
++              {\r
++                      langFileGuess[cchLng - 1] = '-';\r
++                      GetLocaleInfo(LCID(langFile), LOCALE_SISO3166CTRYNAME, langFileGuess + cchLng, 4);\r
++                      langFile = langFileGuess;\r
++              }\r
++      }\r
++      g_LangPath = GetSystemString(g_cPath7z);\r
++      g_LangPath += TEXT("Lang\\");\r
++      g_LangPath += langFile;\r
++      int slash = g_LangPath.ReverseFind('\\');\r
++      int minus = g_LangPath.ReverseFind('-');\r
++      int dot = g_LangPath.ReverseFind('.');\r
++      if (dot <= slash)\r
++      {\r
++              dot = g_LangPath.Length();\r
++              g_LangPath += TEXT(".txt");\r
++      }\r
++      if (minus > slash && !PathFileExists(g_LangPath))\r
++      {\r
++              // 2nd chance: filename == language code\r
++              CSysString Region = g_LangPath.Mid(minus, dot - minus);\r
++              Region.Replace('-', '\\');\r
++              g_LangPath.Delete(minus, dot - minus);\r
++              if (!PathFileExists(g_LangPath))\r
++              {\r
++                      // 3rd chance: filename == region code (Norwegian)\r
++                      g_LangPath.Delete(slash, minus - slash);\r
++                      g_LangPath.Insert(slash, Region);\r
++              }\r
++      }\r
++      ReloadLang();\r
++      return g_LangPath;\r
++}\r
++\r
++/**\r
++ * @brief Override ReadRegLang to return path set by Merge7z::LoadLang().\r
++ * This is global 7-Zip function otherwise defined in RegistryUtils.cpp.\r
++ * Exclude RegistryUtils.cpp from build to avoid link-time collision.\r
++ */\r
++\r
++void ReadRegLang(UString &langFile)\r
++{\r
++      langFile = GetUnicodeString(g_LangPath);\r
++}\r
++\r
++void SaveRegLang(const UString &langFile)\r
++{\r
++}\r
++\r
++/**\r
++ * @brief Export instance of Merge7z interface.\r
++ */\r
++EXTERN_C\r
++{\r
++      __declspec(dllexport) Merge7z Merge7z;\r
++}\r
++\r
++EXTERN_C HRESULT CALLBACK DllGetVersion(DLLVERSIONINFO *pdvi)\r
++{\r
++      // Compute dwBuild from revision.txt\r
++      static const DWORD dwBuild =\r
++      (\r
++              sizeof""\r
++#             define VERSION(MAJOR,MINOR)\r
++#             include "revision.txt"\r
++#             undef VERSION\r
++      );\r
++      C_ASSERT(dwBuild == DllBuild_Merge7z);\r
++      // Compute dwVersion from revision.txt\r
++      static const DWORD dwVersion =\r
++      (\r
++              0*sizeof""\r
++#             define VERSION(MAJOR,MINOR) , MAKELONG(MINOR,MAJOR) + 0*sizeof""\r
++#             include "revision.txt"\r
++#             undef VERSION\r
++      );\r
++      static const DLLVERSIONINFO dvi =\r
++      {\r
++              sizeof dvi,\r
++              HIWORD(dwVersion), LOWORD(dwVersion), dwBuild, DLLVER_PLATFORM_WINDOWS\r
++      };\r
++      CopyMemory(pdvi, &dvi, pdvi->cbSize < dvi.cbSize ? pdvi->cbSize : dvi.cbSize);\r
++      return S_OK;\r
++}\r
--// includes from 7-Zip sources
--
--#include "7zip/MyVersion.h"
--#include "7zip/Archive/IArchive.h"
--#include "Common/StringConvert.h"
--#include "Windows/PropVariant.h"
--#include "Windows/PropVariantConversions.h"
--#include "Windows/FileDir.h"
--#include "Windows/FileFind.h"
--
--#include "7zip/UI/Common/DirItem.h"
--#include "7zip/Common/FileStreams.h"
--
--// Merge7z includes
--#include "tools.h"
- #define DllBuild_Merge7z 27
 -#define DllBuild_Merge7z 28
--#define DLLPSTUB /##/
--#include "Merge7z.h"
--
--typedef char SZ_EXTENSION[8];
- typedef char CH_SIGNATURE[64]; //MAX(4 + IMAGE_SIZEOF_FILE_HEADER, 64)
 -typedef char CH_SIGNATURE[512]; //MAX(4 + IMAGE_SIZEOF_FILE_HEADER, 512)
--
--using namespace NWindows;
--
--extern HINSTANCE g_hInstance;
--extern DWORD g_dwFlags;
--extern CHAR g_cPath7z[MAX_PATH];
--
--struct Format7zDLL
--{
--      struct Proxy;
--      interface Interface;
- };
- #if MY_VER_MAJOR * 100 + MY_VER_MINOR < 445
- struct Format7zDLL::Proxy
- {
-       const char *aModule;
-       union
-       {
-               const char *aCreateObject;
-               HRESULT(STDAPICALLTYPE*CreateObject)(const GUID *clsID, const GUID *interfaceID, void **outObject);
-       };
-       union
-       {
-               const char *aGetHandlerProperty;
-               HRESULT(STDAPICALLTYPE*GetHandlerProperty)(PROPID propID, PROPVARIANT *value);
-       };
-       HMODULE handle;
-       const char *extension;
-       size_t signature;
-       struct Proxy *operator->();
--};
- #else
--
--struct Format7zDLL::Proxy
--{
--      INT32 formatIndex;
 -      WORD sig_begin;
 -      BYTE sig_count;
 -      char sig_joker;
--      const char *extension;
-       size_t signature;
--      STDMETHODIMP CreateObject(const GUID *clsID, const GUID *interfaceID, void **outObject);
--      STDMETHODIMP GetHandlerProperty(PROPID propID, PROPVARIANT *value);
--      static struct Handle
--      {
--              const char *aModule;
--              union
--              {
--                      const char *aCreateObject;
--                      HRESULT(STDAPICALLTYPE*CreateObject)(const GUID *clsID, const GUID *interfaceID, void **outObject);
--              };
--              union
--              {
--                      const char *aGetHandlerProperty2;
--                      HRESULT(STDAPICALLTYPE*GetHandlerProperty2)(UINT32 formatIndex, PROPID propID, PROPVARIANT *value);
--              };
--              union
--              {
--                      const char *aGetNumberOfFormats;
--                      HRESULT(STDAPICALLTYPE*GetNumberOfFormats)(UINT32 *numFormats);
--              };
--              HMODULE handle;
--              operator HMODULE() { return handle; }
--      } handle;
--      struct Proxy *operator->();
--};
- #endif
--
--interface Format7zDLL::Interface : Merge7z::Format
--{
--      Proxy &proxy;
--      static Interface *head;
--      Interface *next;
--      Interface(Proxy &proxy):proxy(proxy), next(head)
--      {
--              head = this;
--      }
--      void GetDefaultName(HWND, UString &);
--      virtual HRESULT CreateObject(const GUID *interfaceID, void **outObject);
--      virtual IInArchive *GetInArchive();
--      virtual HRESULT DeCompressArchive(HWND, LPCTSTR path, LPCTSTR folder);
--      virtual IOutArchive *GetOutArchive();
--      virtual HRESULT CompressArchive(HWND, LPCTSTR path, Merge7z::DirItemEnumerator *);
--      interface Inspector : Merge7z::Format::Inspector
--      {
--              virtual void Free();
--              virtual UINT32 Open();
--              virtual HRESULT Extract(HWND, LPCTSTR folder, const UINT32 *indices = 0, UINT32 numItems = -1);
--              virtual HRESULT GetProperty(UINT32, PROPID, PROPVARIANT *, VARTYPE);
--              virtual BSTR GetPath(UINT32);
--              virtual BSTR GetName(UINT32);
--              virtual BSTR GetExtension(UINT32);
--              virtual VARIANT_BOOL IsFolder(UINT32);
--              virtual FILETIME LastWriteTime(UINT32);
--              virtual BSTR GetDefaultName();
--              Format7zDLL::Interface *const format;
--              IInArchive *archive;
--              CInFileStream *file;
--              IArchiveOpenCallback *callback;
--              CSysString const path;
--              UString ustrDefaultName;
--              bool passwordIsDefined;
--              UString password;
--              NFile::NFind::CFileInfo fileInfo;
--              Inspector(Format7zDLL::Interface *, LPCTSTR);
--              void Init(HWND);
--      };
--      virtual Merge7z::Format::Inspector *Open(HWND, LPCTSTR);
--      interface Updater : Merge7z::Format::Updater
--      {
--              virtual void Free();
--              virtual UINT32 Add(Merge7z::DirItemEnumerator::Item &);
--              virtual HRESULT Commit(HWND);
--              Format7zDLL::Interface *const format;
--              IOutArchive *outArchive;
--              COutFileStream *file;
--              CSysString const path;
-               CObjectVector<CDirItem> dirItems;
-               CObjectVector<CArchiveItem> archiveItems;
 -              //CObjectVector<CDirItem> dirItems;
 -              CDirItems dirItems;
 -              CObjectVector<CArcItem> archiveItems;
--              Updater(Format7zDLL::Interface *, LPCTSTR);
--              void Init(HWND);
--      };
--      virtual Merge7z::Format::Updater *Update(HWND, LPCTSTR);
--      virtual HRESULT GetHandlerProperty(HWND, PROPID, PROPVARIANT *, VARTYPE);
--      virtual BSTR GetHandlerName(HWND);
--      virtual BSTR GetHandlerClassID(HWND);
--      virtual BSTR GetHandlerExtension(HWND);
--      virtual BSTR GetHandlerAddExtension(HWND);
--      virtual VARIANT_BOOL GetHandlerUpdate(HWND);
--      virtual VARIANT_BOOL GetHandlerKeepName(HWND);
--      virtual BSTR GetDefaultName(HWND, LPCTSTR);
--};
++// includes from 7-Zip sources\r
++\r
++#include "7zip/MyVersion.h"\r
++#include "7zip/Archive/IArchive.h"\r
++#include "Common/StringConvert.h"\r
++#include "Windows/PropVariant.h"\r
++#include "Windows/PropVariantConversions.h"\r
++#include "Windows/FileDir.h"\r
++#include "Windows/FileFind.h"\r
++\r
++#include "7zip/UI/Common/DirItem.h"\r
++#include "7zip/Common/FileStreams.h"\r
++\r
++// Merge7z includes\r
++#include "tools.h"\r
++#define DllBuild_Merge7z 28\r
++#define DLLPSTUB /##/\r
++#include "Merge7z.h"\r
++\r
++typedef char SZ_EXTENSION[8];\r
++typedef char CH_SIGNATURE[512]; //MAX(4 + IMAGE_SIZEOF_FILE_HEADER, 512)\r
++\r
++using namespace NWindows;\r
++\r
++extern HINSTANCE g_hInstance;\r
++extern DWORD g_dwFlags;\r
++extern CHAR g_cPath7z[MAX_PATH];\r
++\r
++struct Format7zDLL\r
++{\r
++      struct Proxy;\r
++      interface Interface;\r
++};\r
++\r
++struct Format7zDLL::Proxy\r
++{\r
++      INT32 formatIndex;\r
++      WORD sig_begin;\r
++      BYTE sig_count;\r
++      char sig_joker;\r
++      const char *extension;\r
++      STDMETHODIMP CreateObject(const GUID *clsID, const GUID *interfaceID, void **outObject);\r
++      STDMETHODIMP GetHandlerProperty(PROPID propID, PROPVARIANT *value);\r
++      static struct Handle\r
++      {\r
++              const char *aModule;\r
++              union\r
++              {\r
++                      const char *aCreateObject;\r
++                      HRESULT(STDAPICALLTYPE*CreateObject)(const GUID *clsID, const GUID *interfaceID, void **outObject);\r
++              };\r
++              union\r
++              {\r
++                      const char *aGetHandlerProperty2;\r
++                      HRESULT(STDAPICALLTYPE*GetHandlerProperty2)(UINT32 formatIndex, PROPID propID, PROPVARIANT *value);\r
++              };\r
++              union\r
++              {\r
++                      const char *aGetNumberOfFormats;\r
++                      HRESULT(STDAPICALLTYPE*GetNumberOfFormats)(UINT32 *numFormats);\r
++              };\r
++              HMODULE handle;\r
++              operator HMODULE() { return handle; }\r
++      } handle;\r
++      struct Proxy *operator->();\r
++};\r
++\r
++interface Format7zDLL::Interface : Merge7z::Format\r
++{\r
++      Proxy &proxy;\r
++      static Interface *head;\r
++      Interface *next;\r
++      Interface(Proxy &proxy):proxy(proxy), next(head)\r
++      {\r
++              head = this;\r
++      }\r
++      void GetDefaultName(HWND, UString &);\r
++      virtual HRESULT CreateObject(const GUID *interfaceID, void **outObject);\r
++      virtual IInArchive *GetInArchive();\r
++      virtual HRESULT DeCompressArchive(HWND, LPCTSTR path, LPCTSTR folder);\r
++      virtual IOutArchive *GetOutArchive();\r
++      virtual HRESULT CompressArchive(HWND, LPCTSTR path, Merge7z::DirItemEnumerator *);\r
++      interface Inspector : Merge7z::Format::Inspector\r
++      {\r
++              virtual void Free();\r
++              virtual UINT32 Open();\r
++              virtual HRESULT Extract(HWND, LPCTSTR folder, const UINT32 *indices = 0, UINT32 numItems = -1);\r
++              virtual HRESULT GetProperty(UINT32, PROPID, PROPVARIANT *, VARTYPE);\r
++              virtual BSTR GetPath(UINT32);\r
++              virtual BSTR GetName(UINT32);\r
++              virtual BSTR GetExtension(UINT32);\r
++              virtual VARIANT_BOOL IsFolder(UINT32);\r
++              virtual FILETIME LastWriteTime(UINT32);\r
++              virtual BSTR GetDefaultName();\r
++              Format7zDLL::Interface *const format;\r
++              IInArchive *archive;\r
++              CInFileStream *file;\r
++              IArchiveOpenCallback *callback;\r
++              CSysString const path;\r
++              UString ustrDefaultName;\r
++              bool passwordIsDefined;\r
++              UString password;\r
++              NFile::NFind::CFileInfo fileInfo;\r
++              Inspector(Format7zDLL::Interface *, LPCTSTR);\r
++              void Init(HWND);\r
++      };\r
++      virtual Merge7z::Format::Inspector *Open(HWND, LPCTSTR);\r
++      interface Updater : Merge7z::Format::Updater\r
++      {\r
++              virtual void Free();\r
++              virtual UINT32 Add(Merge7z::DirItemEnumerator::Item &);\r
++              virtual HRESULT Commit(HWND);\r
++              Format7zDLL::Interface *const format;\r
++              IOutArchive *outArchive;\r
++              COutFileStream *file;\r
++              CSysString const path;\r
++              //CObjectVector<CDirItem> dirItems;\r
++              CDirItems dirItems;\r
++              CObjectVector<CArcItem> archiveItems;\r
++              Updater(Format7zDLL::Interface *, LPCTSTR);\r
++              void Init(HWND);\r
++      };\r
++      virtual Merge7z::Format::Updater *Update(HWND, LPCTSTR);\r
++      virtual HRESULT GetHandlerProperty(HWND, PROPID, PROPVARIANT *, VARTYPE);\r
++      virtual BSTR GetHandlerName(HWND);\r
++      virtual BSTR GetHandlerClassID(HWND);\r
++      virtual BSTR GetHandlerExtension(HWND);\r
++      virtual BSTR GetHandlerAddExtension(HWND);\r
++      virtual VARIANT_BOOL GetHandlerUpdate(HWND);\r
++      virtual VARIANT_BOOL GetHandlerKeepName(HWND);\r
++      virtual BSTR GetDefaultName(HWND, LPCTSTR);\r
++};\r
index 0000000,0000000..0f9a9d9
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,1030 @@@
++/* Merge7zCommon.cpp: Provide a handy C++ interface to access 7Zip services
++ * Copyright (c) 2003 Jochen Tucht
++ *
++ * License:   This program is free software; you can redistribute it and/or modify
++ *                    it under the terms of the GNU General Public License as published by
++ *                    the Free Software Foundation; either version 2 of the License, or
++ *                    (at your option) any later version.
++ *
++ *                    This program is distributed in the hope that it will be useful,
++ *                    but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *                    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ *                    GNU General Public License for more details.
++ *
++ *                    You should have received a copy of the GNU General Public License
++ *                    along with this program; if not, write to the Free Software
++ *                    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ *
++ * Remarks:   This file contains the presumably version-independent parts of
++ *                    Merge7z code. Version specific code resides in Merge7zXXX.cpp.
++
++Please mind 2. a) of the GNU General Public License, and log your changes below.
++
++DATE:         BY:                                     DESCRIPTION:
++==========    ==================      ================================================
++2003-12-09    Jochen Tucht            Created
++2003-12-16    Jochen Tucht            GuessFormat() now checks for directory
++2004-03-18    Jochen Tucht            Experimental DllGetVersion() based on rcsid.
++2004-10-10    Jochen Tucht            DllGetVersion() based on new REVISION.TXT
++2005-01-15    Jochen Tucht            Changed as explained in revision.txt
++2005-02-26    Jochen Tucht            Changed as explained in revision.txt
++2005-03-19    Jochen Tucht            Changed as explained in revision.txt
++2005-06-22    Jochen Tucht            Treat .ear and .war like .zip
++2005-07-05    Jochen Tucht            Add missing .tbz2
++2005-08-20    Jochen Tucht            Option to guess archive format by signature.
++                                                              EnumerateDirectory() in EnumDirItems.cpp has
++                                                              somewhat changed so I can no longer use it.
++2005-10-02    Jochen Tucht            Add CHM format
++2005-11-19    Jochen Tucht            Minor changes to build against 7z430 beta
++2006-06-28    Jochen Neubeck          Add ISO format (introduced with 7z436 beta)
++                                                              Add NSIS format (introduced with 7z440 beta)
++2007-01-27    Jochen Neubeck          Unassociate .exe filename extension from NSIS
++                                                              format due to undesired side effect on WinMerge
++2007-04-20    Jochen Neubeck          Cope with 7z445's revised plugin system
++2007-07-13    Jochen Neubeck          Pass MSI files to CAB handler
++2007-08-25    Jochen Neubeck          Add COM format (introduced with 7z452 beta)
++                                                              This format also handles MSI files, which are
++                                                              therefore no longer passed to the CAB handler.
++2007-09-01    Jochen Neubeck          No longer #include "LangUtils.h", which has
++                                                              moved to a different location as of 7z453 beta.
++2007-12-22    Jochen Neubeck          Unassociate .001 filename extension
++*/
++
++#include "stdafx.h"
++#include "Merge7zCommon453.h"
++
++void ReloadLang(); //Implemented in /*/FileManager/LangUtils.cpp
++
++using namespace NWindows;
++using namespace NFile;
++using namespace NName;
++
++void AddDirFileInfo(
++      const UString &prefix, 
++      const UString &fullPathName,
++      NFind::CFileInfoW &fileInfo, 
++      CObjectVector<CDirItem> &dirItems)
++{
++      CDirItem item;
++      item.Attributes = fileInfo.Attributes;
++      item.Size = fileInfo.Size;
++      item.CreationTime = fileInfo.CreationTime;
++      item.LastAccessTime = fileInfo.LastAccessTime;
++      item.LastWriteTime = fileInfo.LastWriteTime;
++      item.Name = prefix + fileInfo.Name;
++      item.FullPath = fullPathName;
++      dirItems.Add(item);
++}
++
++static void EnumerateDirectory(
++      const UString &baseFolderPrefix,
++      const UString &directory, 
++      const UString &prefix,
++      CObjectVector<CDirItem> &dirItems)
++{
++      NFind::CEnumeratorW enumerator(baseFolderPrefix + directory + wchar_t(kAnyStringWildcard));
++      NFind::CFileInfoW fileInfo;
++      while (enumerator.Next(fileInfo))
++      { 
++              AddDirFileInfo(prefix, directory + fileInfo.Name, fileInfo, dirItems);
++              if (fileInfo.IsDirectory())
++              {
++                      EnumerateDirectory(baseFolderPrefix, directory + fileInfo.Name + wchar_t(kDirDelimiter),
++                      prefix + fileInfo.Name + wchar_t(kDirDelimiter), dirItems);
++              }
++      }
++}
++
++HINSTANCE g_hInstance;
++#ifndef _UNICODE
++bool g_IsNT = false;
++static bool IsItWindowsNT()
++{
++  OSVERSIONINFO versionInfo;
++  versionInfo.dwOSVersionInfoSize = sizeof(versionInfo);
++  if (!::GetVersionEx(&versionInfo)) 
++    return false;
++  return (versionInfo.dwPlatformId == VER_PLATFORM_WIN32_NT);
++}
++#endif
++
++DWORD g_dwFlags;
++CHAR g_cPath7z[MAX_PATH];
++
++/**
++ * @brief Dll entry point
++ */
++BOOL APIENTRY DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID)
++{
++      if (dwReason == DLL_PROCESS_ATTACH)
++      {
++              g_hInstance = hInstance;
++#             ifndef _UNICODE
++              g_IsNT = IsItWindowsNT();
++#             endif
++      }
++      return TRUE;
++}
++
++/**
++ * @brief Load a dll and import a number of functions.
++ */
++static HMODULE DllProxyHelper(LPCSTR *proxy, ...)
++{
++      HMODULE handle = NULL;
++      if (LPCSTR name = *proxy)
++      {
++              if (proxy[1] && proxy[1] != name)
++              {
++                      char path[MAX_PATH];
++                      FormatMessageA
++                      (
++                              FORMAT_MESSAGE_FROM_STRING|FORMAT_MESSAGE_ARGUMENT_ARRAY,
++                              name,
++                              0,
++                              0,
++                              path,
++                              sizeof path,
++                              (va_list *)(&proxy + 1)
++                      );
++                      handle = LoadLibraryA(path);
++                      if (handle)
++                      {
++                              LPCSTR *export = proxy;
++                              *proxy = NULL;
++                              while ((name = *++export) != NULL)
++                              {
++                                      *export = (LPCSTR)GetProcAddress(handle, name);
++                                      if (*export == NULL)
++                                      {
++                                              *proxy = proxy[1] = name;
++                                              export = proxy + 2;
++                                              break;
++                                      }
++                              }
++                              *export = (LPCSTR)handle;
++                      }
++              }
++              if ((name = *proxy) != NULL)
++              {
++                      DWORD dwError = ERROR_MOD_NOT_FOUND;
++                      HMODULE hContext = NULL;
++                      if (proxy[1] == name)
++                      {
++                              dwError = ERROR_PROC_NOT_FOUND;
++                              hContext = (HMODULE)proxy[2];
++                      }
++                      Complain(dwError, GetSystemString(name), hContext);
++              }
++      }
++      return handle;
++}
++
++/**
++ * @brief Ask archiver dll for an interface of given class.
++ */
++HRESULT Format7zDLL::Interface::CreateObject(const GUID *interfaceID, void **outObject)
++{
++      PROPVARIANT value;
++      HRESULT result = proxy->GetHandlerProperty(NArchive::kClassID, &value);
++      if SUCCEEDED(result)
++      {
++              if (value.vt != VT_BSTR || SysStringByteLen(value.bstrVal) != sizeof(GUID))
++              {
++                      result = DISP_E_TYPEMISMATCH;
++              }
++              else
++              {
++                      result = proxy->CreateObject((const CLSID *)value.bstrVal, interfaceID, outObject);
++              }
++              VariantClear((VARIANT *)&value);
++      }
++      return result;
++}
++
++/**
++ * @brief Ask archiver dll for an instance of IInArchive.
++ */
++IInArchive *Format7zDLL::Interface::GetInArchive()
++{
++      void *pv;
++      if COMPLAIN(CreateObject(&IID_IInArchive, &pv) != S_OK)
++      {
++              Complain(RPC_S_INTERFACE_NOT_FOUND, _T("IInArchive"), proxy.handle);
++      }
++      return static_cast<IInArchive *>(pv);
++}
++
++/**
++ * @brief Ask archiver dll for an instance of IOutArchive.
++ */
++IOutArchive *Format7zDLL::Interface::GetOutArchive()
++{
++      void *pv;
++      if COMPLAIN(CreateObject(&IID_IOutArchive, &pv) != S_OK)
++      {
++              Complain(RPC_S_INTERFACE_NOT_FOUND, _T("IOutArchive"), proxy.handle);
++      }
++      return static_cast<IOutArchive *>(pv);
++}
++
++/**
++ * @brief Extraction method accessible from outside
++ */
++HRESULT Format7zDLL::Interface::DeCompressArchive(HWND hwndParent, LPCTSTR path, LPCTSTR folder)
++{
++      HRESULT result = E_FAIL;
++      if (Merge7z::Format::Inspector *inspector = Open(hwndParent, path))
++      {
++              if (CMyComBSTR(GetHandlerAddExtension(hwndParent)).Length())
++              {
++                      //Most handlers seem to be happy with missing index array, but rpm
++                      //handler doesn't know how to "extract all" and needs index array
++                      //even for the one and only file inside (which is .cpio.gz).
++                      static const UINT32 indices[1] = {0};
++                      result = inspector->Extract(hwndParent, folder, indices, 1);
++              }
++              else
++              {
++                      result = inspector->Extract(hwndParent, folder);
++              }
++              inspector->Free();
++      }
++      return result;
++}
++
++/**
++ * @brief Open archive for inspection.
++ */
++Merge7z::Format::Inspector *Format7zDLL::Interface::Open(HWND hwndParent, LPCTSTR path)
++{
++      Inspector *inspector = new Inspector(this, path);
++      try
++      {
++              inspector->Init(hwndParent);
++      }
++      catch (Complain *complain)
++      {
++              complain->Alert(hwndParent);
++              inspector->Free();
++              inspector = 0;
++      }
++      return inspector;
++}
++
++/**
++ * @brief Prepare inspection interface for iteration.
++ */
++UINT32 Format7zDLL::Interface::Inspector::Open()
++{
++      UINT32 numItems = 0;
++      archive->GetNumberOfItems(&numItems);
++      return numItems;
++}
++
++/**
++ * @brief free inspection interface.
++ */
++void Format7zDLL::Interface::Inspector::Free()
++{
++      Release(archive);
++      Release(static_cast<IInStream *>(file));
++      Release(callback);
++      delete this;
++}
++
++HRESULT Format7zDLL::Interface::Inspector::GetProperty(UINT32 index, PROPID propID, PROPVARIANT *value, VARTYPE vt)
++{
++      VariantInit((VARIANT *)value);
++      HRESULT result = archive->GetProperty(index, propID, value);
++      if (SUCCEEDED(result) && value->vt != vt)
++      {
++              VariantClear((VARIANT *)value);
++              result = DISP_E_TYPEMISMATCH;
++      }
++      return result;
++}
++
++BSTR Format7zDLL::Interface::Inspector::GetPath(UINT32 index)
++{
++      PROPVARIANT value;
++      return SUCCEEDED(GetProperty(index, kpidPath, &value, VT_BSTR)) ? value.bstrVal : 0;
++}
++
++BSTR Format7zDLL::Interface::Inspector::GetName(UINT32 index)
++{
++      PROPVARIANT value;
++      return SUCCEEDED(GetProperty(index, kpidName, &value, VT_BSTR)) ? value.bstrVal : 0;
++}
++
++BSTR Format7zDLL::Interface::Inspector::GetExtension(UINT32 index)
++{
++      PROPVARIANT value;
++      return SUCCEEDED(GetProperty(index, kpidExtension, &value, VT_BSTR)) ? value.bstrVal : 0;
++}
++
++VARIANT_BOOL Format7zDLL::Interface::Inspector::IsFolder(UINT32 index)
++{
++      PROPVARIANT value;
++      return SUCCEEDED(GetProperty(index, kpidIsFolder, &value, VT_BOOL)) ? value.boolVal : 0;
++}
++
++FILETIME Format7zDLL::Interface::Inspector::LastWriteTime(UINT32 index)
++{
++      static const FILETIME invalid = { 0, 0 };
++      PROPVARIANT value;
++      return SUCCEEDED(GetProperty(index, kpidLastWriteTime, &value, VT_FILETIME)) ? value.filetime : invalid;
++}
++
++void Format7zDLL::Interface::GetDefaultName(HWND hwndParent, UString &ustrDefaultName)
++{
++      int dot = ustrDefaultName.ReverseFind('.');
++      int slash = ustrDefaultName.ReverseFind('\\');
++      if (dot > slash)
++      {
++              LPCWSTR pchExtension = ustrDefaultName;
++              pchExtension += dot + 1;
++              static const OLECHAR wBlank[] = L" ";
++              CMyComBSTR bstrHandlerExtension = GetHandlerExtension(hwndParent);
++              CMyComBSTR bstrHandlerAddExtension = GetHandlerAddExtension(hwndParent);
++              LPWSTR pchHandlerExtension = bstrHandlerExtension.m_str;
++              LPWSTR pchHandlerAddExtension = bstrHandlerAddExtension.m_str;
++              while (int cchHandlerAddExtension = StrCSpnW(pchHandlerAddExtension += StrSpnW(pchHandlerAddExtension, wBlank), wBlank))
++              {
++                      int cchHandlerExtension = StrCSpnW(pchHandlerExtension += StrSpnW(pchHandlerExtension, wBlank), wBlank);
++                      if (StrIsIntlEqualW(FALSE, pchExtension, pchHandlerExtension, cchHandlerExtension) && pchExtension[cchHandlerExtension] == 0)
++                      {
++                              pchHandlerAddExtension[cchHandlerAddExtension] = '\0'; // will also stop iteration
++                              ustrDefaultName.ReleaseBuffer(dot);
++                              if (*pchHandlerAddExtension == '.') // consider != '*'
++                              {
++                                      ustrDefaultName += pchHandlerAddExtension;
++                                      dot += cchHandlerAddExtension; // make ReleaseBuffer(dot) below a NOP
++                              }
++                      }
++                      pchHandlerExtension += cchHandlerExtension;
++                      pchHandlerAddExtension += cchHandlerAddExtension;
++              }
++              ustrDefaultName.ReleaseBuffer(dot);
++              ustrDefaultName.Delete(0, slash + 1);
++      }
++      else
++      {
++              ustrDefaultName = L"noname";
++      }
++}
++
++BSTR Format7zDLL::Interface::GetDefaultName(HWND hwndParent, LPCTSTR path)
++{
++      UString ustrDefaultName = GetUnicodeString(path);
++      GetDefaultName(hwndParent, ustrDefaultName);
++      return SysAllocString(ustrDefaultName);
++}
++
++BSTR Format7zDLL::Interface::Inspector::GetDefaultName()
++{
++      //UString ustrDefaultName = GetUnicodeString(path);
++      return SysAllocString(ustrDefaultName);
++}
++
++/**
++ * @brief Open archive for update.
++ */
++Merge7z::Format::Updater *Format7zDLL::Interface::Update(HWND hwndParent, LPCTSTR path)
++{
++      Updater *updater = new Updater(this, path);
++      try
++      {
++              updater->Init(hwndParent);
++      }
++      catch (Complain *complain)
++      {
++              complain->Alert(hwndParent);
++              updater->Free();
++              updater = 0;
++      }
++      return updater;
++}
++
++/**
++ * @brief Add item to updater
++ */
++UINT32 Format7zDLL::Interface::Updater::Add(Merge7z::DirItemEnumerator::Item &etorItem)
++{
++      // fill in the default values from the enumerator
++      CDirItem item;
++      if (etorItem.Mask.Item & etorItem.Mask.Name)
++              item.Name = GetUnicodeString(etorItem.Name);
++      if (etorItem.Mask.Item & etorItem.Mask.FullPath)
++              item.FullPath = GetUnicodeString(etorItem.FullPath);
++      if (etorItem.Mask.Item & etorItem.Mask.Attributes)
++              item.Attributes = etorItem.Attributes;
++      if (etorItem.Mask.Item & etorItem.Mask.Size)
++              item.Size = etorItem.Size;
++      if (etorItem.Mask.Item & etorItem.Mask.CreationTime)
++              item.CreationTime = etorItem.CreationTime;
++      if (etorItem.Mask.Item & etorItem.Mask.LastAccessTime)
++              item.LastAccessTime = etorItem.LastAccessTime;
++      if (etorItem.Mask.Item & etorItem.Mask.LastWriteTime)
++              item.LastWriteTime = etorItem.LastWriteTime;
++      if (etorItem.Mask.Item && (etorItem.Mask.Item & (etorItem.Mask.NeedFindFile|etorItem.Mask.CheckIfPresent)) != etorItem.Mask.NeedFindFile)
++      {
++              // Check the info from the disk
++              NFile::NFind::CFileInfoW fileInfo;
++              if (NFile::NFind::FindFile(item.FullPath, fileInfo))
++              {
++                      if (!(etorItem.Mask.Item & etorItem.Mask.Name))
++                              item.Name = fileInfo.Name;
++                      if (!(etorItem.Mask.Item & etorItem.Mask.Attributes))
++                              item.Attributes = fileInfo.Attributes;
++                      if (!(etorItem.Mask.Item & etorItem.Mask.Size))
++                              item.Size = fileInfo.Size;
++                      if (!(etorItem.Mask.Item & etorItem.Mask.CreationTime))
++                              item.CreationTime = fileInfo.CreationTime;
++                      if (!(etorItem.Mask.Item & etorItem.Mask.LastAccessTime))
++                              item.LastAccessTime = fileInfo.LastAccessTime;
++                      if (!(etorItem.Mask.Item & etorItem.Mask.LastWriteTime))
++                              item.LastWriteTime = fileInfo.LastWriteTime;
++              }
++              else
++              {
++                      // file not valid, forget it
++                      etorItem.Mask.Item = 0;
++              }
++      }
++      if (etorItem.Mask.Item)
++      {
++              // No check from disk, simply use info from enumerators (risky)
++              // Why risky? This is not at all obvious.
++              dirItems.Add(item);
++              // Recurse into directories (call a function of 7zip)
++              if ((etorItem.Mask.Item & etorItem.Mask.Recurse) && (item.Attributes & FILE_ATTRIBUTE_DIRECTORY))
++              {
++                      EnumerateDirectory(UString(), item.FullPath + L'\\',
++                                      item.Name + L'\\', dirItems);
++              }
++      }
++      return etorItem.Mask.Item;
++}
++
++/**
++ * @brief free updater interface.
++ */
++void Format7zDLL::Interface::Updater::Free()
++{
++      Release(outArchive);
++      Release(static_cast<IOutStream *>(file));
++      delete this;
++}
++
++/**
++ * @brief Compression method accessible from outside
++ *
++ * @note See CAgent::DoOperation (in 7zip source) for model
++ */
++HRESULT Format7zDLL::Interface::CompressArchive(HWND hwndParent, LPCTSTR path, Merge7z::DirItemEnumerator *etor)
++{
++      HRESULT result = E_FAIL;
++      if (Merge7z::Format::Updater *updater = Update(hwndParent, path))
++      {
++              UINT count = etor->Open();
++              while (count--)
++              {
++                      Merge7z::DirItemEnumerator::Item etorItem;
++                      etorItem.Mask.Item = 0;
++                      Merge7z::Envelope *envelope = etor->Enum(etorItem);
++                              updater->Add(etorItem);
++                      if (envelope)
++                      {
++                              envelope->Free();
++                      }
++              }
++              result = updater->Commit(hwndParent);
++              updater->Free();
++      }
++      return result;
++}
++
++/**
++ * @brief get handler property identified by given propID
++ */
++HRESULT Format7zDLL::Interface::GetHandlerProperty(HWND hwndParent, PROPID propID, PROPVARIANT *value, VARTYPE vt)
++{
++      VariantInit((VARIANT *)value);
++      HRESULT result = DISP_E_EXCEPTION;
++      try
++      {
++              result = proxy->GetHandlerProperty(propID, value);
++              if (SUCCEEDED(result) && value->vt != vt)
++              {
++                      VariantClear((VARIANT *)value);
++                      result = DISP_E_TYPEMISMATCH;
++              }
++      }
++      catch (Complain *complain)
++      {
++              complain->Alert(hwndParent);
++      }
++      return result;
++}
++
++/**
++ * @brief get Name handler property
++ */
++BSTR Format7zDLL::Interface::GetHandlerName(HWND hwndParent)
++{
++      PROPVARIANT value;
++      return SUCCEEDED(GetHandlerProperty(hwndParent, NArchive::kName, &value, VT_BSTR)) ? value.bstrVal : 0;
++}
++
++/**
++ * @brief get ClassID handler property
++ */
++BSTR Format7zDLL::Interface::GetHandlerClassID(HWND hwndParent)
++{
++      PROPVARIANT value;
++      return SUCCEEDED(GetHandlerProperty(hwndParent, NArchive::kClassID, &value, VT_BSTR)) ? value.bstrVal : 0;
++}
++
++/**
++ * @brief get Extension handler property
++ */
++BSTR Format7zDLL::Interface::GetHandlerExtension(HWND hwndParent)
++{
++      PROPVARIANT value;
++      return SUCCEEDED(GetHandlerProperty(hwndParent, NArchive::kExtension, &value, VT_BSTR)) ? value.bstrVal : 0;
++}
++
++/**
++ * @brief get AddExtension handler property
++ */
++BSTR Format7zDLL::Interface::GetHandlerAddExtension(HWND hwndParent)
++{
++      PROPVARIANT value;
++      return SUCCEEDED(GetHandlerProperty(hwndParent, NArchive::kAddExtension, &value, VT_BSTR)) ? value.bstrVal : 0;
++}
++
++/**
++ * @brief get Update handler property
++ */
++VARIANT_BOOL Format7zDLL::Interface::GetHandlerUpdate(HWND hwndParent)
++{
++      PROPVARIANT value;
++      return SUCCEEDED(GetHandlerProperty(hwndParent, NArchive::kUpdate, &value, VT_BOOL)) ? value.boolVal : 0;
++}
++
++/**
++ * @brief get KeepName handler property
++ */
++VARIANT_BOOL Format7zDLL::Interface::GetHandlerKeepName(HWND hwndParent)
++{
++      PROPVARIANT value;
++      return SUCCEEDED(GetHandlerProperty(hwndParent, NArchive::kKeepName, &value, VT_BOOL)) ? value.boolVal : 0;
++}
++
++/**
++ * @brief Initialize the library.
++ */
++int Merge7z::Initialize(DWORD dwFlags)
++{
++      g_dwFlags = dwFlags;
++      if (dwFlags & Initialize::Local7z)
++      {
++              GetModuleFileNameA(g_hInstance, g_cPath7z, sizeof g_cPath7z);
++              PathRemoveFileSpecA(g_cPath7z);
++      }
++      else
++      {
++              DWORD type = 0;
++              DWORD size = sizeof g_cPath7z;
++              SHGetValueA(HKEY_LOCAL_MACHINE, "Software\\7-Zip", "Path", &type, g_cPath7z, &size);
++      }
++      PathAddBackslashA(g_cPath7z);
++      if (WORD wLangID = HIWORD(dwFlags))
++      {
++              LoadLang(MAKEINTATOM(wLangID));
++      }
++      return 0;
++}
++
++Format7zDLL::Interface *Format7zDLL::Interface::head = NULL;
++
++/**
++ * @brief Access archiver dll functions through proxy.
++ */
++#if MY_VER_MAJOR * 100 + MY_VER_MINOR < 445
++
++/**
++ * @brief 7-Zip 4.15+: IsArchiveItemFolder(), needed by CArchiveExtractCallback,
++ * used to reside in OpenArchive.cpp, which has been removed from Merge7z in an
++ * attempt to reduce dependencies (actually got rid of four cpp files).
++ * 7-Zip 4.45+: OpenArchive.cpp included again - no more secondary dependencies.
++ */
++static HRESULT IsArchiveItemProp(IInArchive *archive, UINT32 index, PROPID propID, bool &result)
++{
++      NCOM::CPropVariant prop;
++      RINOK(archive->GetProperty(index, propID, &prop));
++      if(prop.vt == VT_BOOL)
++              result = VARIANT_BOOLToBool(prop.boolVal);
++      else if (prop.vt == VT_EMPTY)
++              result = false;
++      else
++              return E_FAIL;
++      return S_OK;
++}
++
++HRESULT IsArchiveItemFolder(IInArchive *archive, UINT32 index, bool &result)
++{
++      return IsArchiveItemProp(archive, index, kpidIsFolder, result);
++}
++
++HRESULT IsArchiveItemAnti(IInArchive *archive, UINT32 index, bool &result)
++{
++      return IsArchiveItemProp(archive, index, kpidIsAnti, result);
++}
++
++static const char aCreateObject[] = "CreateObject";
++static const char aGetHandlerProperty[] = "GetHandlerProperty";
++
++struct Format7zDLL::Proxy *Format7zDLL::Proxy::operator->()
++{
++      DllProxyHelper(&aModule, g_cPath7z);
++      return this;
++}
++
++#define       DEFINE_FORMAT(name, id, dll, extension, signature) \
++              Format7zDLL::Proxy PROXY_##name = \
++              { \
++                      "%1Formats\\" dll, \
++                      aCreateObject, \
++                      aGetHandlerProperty, \
++                      (HMODULE)0, \
++                      signature extension + sizeof signature extension - sizeof extension, \
++                      sizeof signature extension - sizeof extension \
++              }; \
++              Format7zDLL::Interface name = PROXY_##name;
++
++#else
++//DEFINE_FORMAT(CFtpHandler,          "FTP.DLL",              "ftp", "");
++
++#define CLS_ARC_ID_ITEM(cls) ((cls).Data4[5])
++
++Format7zDLL::Proxy::Handle Format7zDLL::Proxy::handle =
++{
++      "%1!s!7z.dll",
++      "CreateObject",
++      "GetHandlerProperty2",
++      "GetNumberOfFormats",
++      (HMODULE)0
++};
++
++struct Format7zDLL::Proxy *Format7zDLL::Proxy::operator->()
++{
++      DllProxyHelper(&handle.aModule, g_cPath7z);
++      if (formatIndex < 0)
++      {
++              GUID clsId =
++              {
++                      0x23170F69, 0x40C1, 0x278A,
++                      0x10, 0x00, 0x00, 0x01, 0x10, (BYTE)-formatIndex, 0x00, 0x00
++              };
++              UINT32 i = 0;
++              handle.GetNumberOfFormats(&i);
++              while (i)
++              {
++                      PROPVARIANT value;
++                      ::VariantInit((LPVARIANT)&value);
++                      if (SUCCEEDED(handle.GetHandlerProperty2(--i, NArchive::kClassID, &value)) &&
++                              value.vt == VT_BSTR &&
++                              SysStringByteLen(value.bstrVal) == sizeof(GUID) &&
++                              IsEqualGUID(clsId, *value.puuid))
++                      {
++                              formatIndex = i;
++                              i = 0;
++                      }
++                      ::VariantClear((LPVARIANT)&value);
++              }
++              if (formatIndex < 0)
++              {
++                      TCHAR szArcID[4];
++                      wsprintf(szArcID, _T("%02x"), (UINT)CLS_ARC_ID_ITEM(clsId));
++                      Complain(RPC_S_INTERFACE_NOT_FOUND, szArcID, handle);
++              }
++      }
++      return this;
++}
++
++STDMETHODIMP Format7zDLL::Proxy::CreateObject(const GUID *clsID, const GUID *interfaceID, void **outObject)
++{
++      return handle.CreateObject(clsID, interfaceID, outObject);
++}
++
++STDMETHODIMP Format7zDLL::Proxy::GetHandlerProperty(PROPID propID, PROPVARIANT *value)
++{
++      return handle.GetHandlerProperty2(formatIndex, propID, value);
++}
++
++#define       DEFINE_FORMAT(name, id, dll, extension, signature) \
++              Format7zDLL::Proxy PROXY_##name = \
++              { \
++                      -0x##id, \
++                      signature extension + sizeof signature extension - sizeof extension, \
++                      sizeof signature extension - sizeof extension \
++              }; \
++              Format7zDLL::Interface name = PROXY_##name;
++
++#endif
++
++DEFINE_FORMAT(CFormat7z,              07, "7Z.DLL",           "7z", "@7z\xBC\xAF\x27\x1C");
++DEFINE_FORMAT(CArjHandler,            04, "ARJ.DLL",          "arj", "@\x60\xEA");
++DEFINE_FORMAT(CBZip2Handler,  02, "BZ2.DLL",          "bz2 tbz2", "@BZh");
++DEFINE_FORMAT(CCabHandler,            08, "CAB.DLL",          "cab", "@MSCF");
++DEFINE_FORMAT(CCpioHandler,           ED, "CPIO.DLL",         "cpio", "");
++DEFINE_FORMAT(CDebHandler,            EC, "DEB.DLL",          "deb", "@!<arch>\n");
++DEFINE_FORMAT(CLzhHandler,            06, "LZH.DLL",          "lzh lha", "@@@-l@@-");//"@-l" doesn't work because signature starts at offset 2
++DEFINE_FORMAT(CGZipHandler,           EF, "GZ.DLL",           "gz tgz", "@\x1F\x8B");
++DEFINE_FORMAT(CRarHandler,            03, "RAR.DLL",          "rar", "@Rar!\x1a\x07\x00");
++DEFINE_FORMAT(CRpmHandler,            EB, "RPM.DLL",          "rpm", "");
++DEFINE_FORMAT(CTarHandler,            EE, "TAR.DLL",          "tar", "");
++DEFINE_FORMAT(CZHandler,              05, "Z.DLL",            "z", "@\x1F\x9D");
++DEFINE_FORMAT(CZipHandler,            01, "ZIP.DLL",          "zip jar war ear xpi", "@PK\x03\x04");
++DEFINE_FORMAT(CChmHandler,            E9, "CHM.DLL",          "chm chi chq chw hxs hxi hxr hxq hxw lit", "@ITSF");
++DEFINE_FORMAT(CIsoHandler,            E7, "ISO.DLL",          "iso", "");
++DEFINE_FORMAT(CNsisHandler,           09, "NSIS.DLL",         "", "@@@@@\xEF\xBE\xAD\xDENullsoftInst");
++#if MY_VER_MAJOR * 100 + MY_VER_MINOR >= 449
++DEFINE_FORMAT(CWimHandler,            E6, "WIM.DLL",          "wim swm", "@MSWIM\x00\x00\x00");
++#endif
++#if MY_VER_MAJOR * 100 + MY_VER_MINOR >= 452
++DEFINE_FORMAT(CComHandler,            E5, "COM.DLL",          "", "@\xD0\xCF\x11\xE0\xA1\xB1\x1A\xE1");
++#endif
++#if MY_VER_MAJOR * 100 + MY_VER_MINOR >= 458
++DEFINE_FORMAT(CLzmaHandler,           0A, "LZMA.DLL",         "lzma lzma86", "");
++#endif
++
++/**
++ * @brief Construct Merge7z interface.
++ */
++Merge7z::Merge7z():
++Format7z(CFormat7z),
++ZipHandler(CZipHandler),
++RarHandler(CRarHandler),
++BZip2Handler(CBZip2Handler),
++TarHandler(CTarHandler)
++{
++}
++
++/**
++ * @brief Figure out which archiver dll to use for a given archive.
++ */
++Merge7z::Format *Merge7z::GuessFormat(LPCTSTR path)
++{
++      if (g_dwFlags & Initialize::GuessFormatBySignature)
++              return GuessFormatBySignature(path, g_dwFlags & Initialize::GuessFormatByExtension ? path : 0);
++      return GuessFormatByExtension(path);
++}
++
++/**
++ * @brief Figure out which archiver dll to use for a given archive.
++ */
++Merge7z::Format *Merge7z::GuessFormatByExtension(LPCTSTR path)
++{
++      SZ_EXTENSION ext;
++      if (PathIsDirectory(path))
++              return 0;
++      return GuessFormatEx(GetExtension(path, ext), 0, 0);
++}
++
++/**
++ * @brief Figure out which archiver dll to use for a given archive.
++ */
++Merge7z::Format *Merge7z::GuessFormatBySignature(LPCTSTR path, LPCTSTR extension)
++{
++      SZ_EXTENSION ext;
++      CH_SIGNATURE sig;
++      if (PathIsDirectory(path))
++              return 0;
++      return GuessFormatEx(GetExtension(extension, ext), sig, GetSignature(path, sig));
++}
++
++/**
++ * @brief Figure out which archiver dll to use for a given archive.
++ */
++Merge7z::Format *Merge7z::GuessFormatEx(LPCSTR ext, LPCH sig, int cchSig)
++{
++      Format7zDLL::Interface *pFormat = Format7zDLL::Interface::head;
++      Format7zDLL::Interface *pFormatByExtension = 0;
++      while (pFormat)
++      {
++              static const char aBlank[] = " ";
++              LPCSTR pchExtension = pFormat->proxy.extension;
++              int cchExtension = pFormat->proxy.signature;
++              if (cchSig > 0 && cchExtension)
++              {
++                      LPCSTR pchSignature = pchExtension - cchExtension;
++                      char joker = *pchSignature++;
++                      --cchExtension;
++                      if (cchSig >= cchExtension)
++                      {
++                              while (cchExtension--)
++                              {
++                                      char expected = pchSignature[cchExtension];
++                                      if (expected != joker && sig[cchExtension] != expected)
++                                              break;
++                              }
++                              if (cchExtension == -1)
++                                      return pFormat;
++                      }
++              }
++              else while
++              (
++                      ext
++              &&      pFormatByExtension == 0
++              &&      (cchExtension = StrCSpnA(pchExtension += StrSpnA(pchExtension, aBlank), aBlank)) != 0
++              )
++              {
++                      if (StrIsIntlEqualA(FALSE, pchExtension, ext, cchExtension) && ext[cchExtension] == '\0')
++                      {
++                              pFormatByExtension = pFormat;
++                      }
++                      pchExtension += cchExtension;
++              }
++              pFormat = pFormat->next;
++      }
++      return pFormat ? pFormat : pFormatByExtension;
++}
++
++/**
++ * @brief Get filename extension as ANSI characters.
++ */
++LPCSTR Merge7z::GetExtension(LPCTSTR path, SZ_EXTENSION ext)
++{
++      if (path == NULL)
++              return NULL;
++      path = PathFindExtension(path);
++#ifdef UNICODE
++      return WideCharToMultiByte(CP_ACP, 0, path, -1, ext, sizeof(SZ_EXTENSION), 0, 0) > 1 ? ext + 1 : 0;
++#else
++      ext[sizeof(SZ_EXTENSION) - 2] = '\0';
++      lstrcpynA(ext, path, sizeof(SZ_EXTENSION));
++      return ext[0] != '\0' && ext[sizeof(SZ_EXTENSION) - 2] == '\0' ? ext + 1 : 0;
++#endif
++}
++
++/**
++ * @brief Read start signature from given file.
++ */
++DWORD Merge7z::GetSignature(LPCTSTR path, CH_SIGNATURE sig)
++{
++      if (sig == NULL)
++              return sizeof(CH_SIGNATURE);
++      DWORD cchSig = 0;
++      HANDLE h = CreateFile(path, GENERIC_READ, FILE_SHARE_READ|FILE_SHARE_WRITE, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
++      if (h != INVALID_HANDLE_VALUE)
++      {
++              ReadFile(h, sig, sizeof(CH_SIGNATURE), &cchSig, 0);
++              if (cchSig >= 64 && MAKEWORD(sig[0],sig[1]) == IMAGE_DOS_SIGNATURE)
++              {
++                      DWORD offset = 
++                      (
++                              LPDWORD(sig)[5] //DOS CS:IP
++                      ?       512UL * (LPWORD(sig)[1] ? LPWORD(sig)[2] - 1 : LPWORD(sig)[2]) + LPWORD(sig)[1]
++                      :       LPDWORD(sig)[15]
++                      );
++                      if (SetFilePointer(h, offset, 0, FILE_BEGIN) == offset)
++                      {
++                              ReadFile(h, sig, sizeof(CH_SIGNATURE), &cchSig, 0);
++                              if (cchSig >= 4 + sizeof(IMAGE_FILE_HEADER) && MAKELONG(MAKEWORD(sig[0],sig[1]), MAKEWORD(sig[2],sig[3])) == MAKELONG(MAKEWORD('P','E'), 0))
++                              {
++                                      cchSig = 0;
++                                      IMAGE_FILE_HEADER *pImageFileHeader = (IMAGE_FILE_HEADER *) (sig + 4);
++                                      offset += 4 + sizeof(IMAGE_FILE_HEADER) + pImageFileHeader->SizeOfOptionalHeader;
++                                      if (SetFilePointer(h, offset, 0, FILE_BEGIN) == offset)
++                                      {
++                                              int iSection = pImageFileHeader->NumberOfSections;
++                                              while (iSection--)
++                                              {
++                                                      IMAGE_SECTION_HEADER ImageSectionHeader;
++                                                      DWORD cbImageSectionHeader = 0;
++                                                      ReadFile(h, &ImageSectionHeader, sizeof ImageSectionHeader, &cbImageSectionHeader, 0);
++                                                      if (cbImageSectionHeader != sizeof ImageSectionHeader)
++                                                              break;
++                                                      if (memcmp(ImageSectionHeader.Name, "_winzip_", 8) == 0)
++                                                      {
++                                                              // looks like WinZip Self-Extractor
++                                                              memcpy(sig, "PK\x03\x04", cchSig = 4);
++                                                              break;
++                                                      }
++                                                      DWORD ahead = ImageSectionHeader.PointerToRawData + ImageSectionHeader.SizeOfRawData;
++                                                      if (offset < ahead)
++                                                              offset = ahead;
++                                              }
++                                              if (iSection == -1 && SetFilePointer(h, offset, 0, FILE_BEGIN) == offset)
++                                              {
++                                                      ReadFile(h, sig, sizeof(CH_SIGNATURE), &cchSig, 0);
++                                              }
++                                      }
++                              }
++                      }
++              }
++              CloseHandle(h);
++      }
++      return cchSig;
++}
++
++/**
++ * @brief Load language file for 7-Zip UIs.
++ */
++
++static CSysString g_LangPath;
++
++LPCTSTR Merge7z::LoadLang(LPCTSTR langFile)
++{
++      TCHAR langFileGuess[8];
++      if (HIWORD(langFile) == 0)
++      {
++              langFileGuess[0] = '\0';
++              if (int cchLng = GetLocaleInfo(LCID(langFile), LOCALE_SISO639LANGNAME, langFileGuess, 4))
++              {
++                      langFileGuess[cchLng - 1] = '-';
++                      GetLocaleInfo(LCID(langFile), LOCALE_SISO3166CTRYNAME, langFileGuess + cchLng, 4);
++                      langFile = langFileGuess;
++              }
++      }
++      g_LangPath = GetSystemString(g_cPath7z);
++      g_LangPath += TEXT("Lang\\");
++      g_LangPath += langFile;
++      int slash = g_LangPath.ReverseFind('\\');
++      int minus = g_LangPath.ReverseFind('-');
++      int dot = g_LangPath.ReverseFind('.');
++      if (dot <= slash)
++      {
++              dot = g_LangPath.Length();
++              g_LangPath += TEXT(".txt");
++      }
++      if (minus > slash && !PathFileExists(g_LangPath))
++      {
++              // 2nd chance: filename == language code
++              CSysString Region = g_LangPath.Mid(minus, dot - minus);
++              Region.Replace('-', '\\');
++              g_LangPath.Delete(minus, dot - minus);
++              if (!PathFileExists(g_LangPath))
++              {
++                      // 3rd chance: filename == region code (Norwegian)
++                      g_LangPath.Delete(slash, minus - slash);
++                      g_LangPath.Insert(slash, Region);
++              }
++      }
++      ReloadLang();
++      return g_LangPath;
++}
++
++/**
++ * @brief Override ReadRegLang to return path set by Merge7z::LoadLang().
++ * This is global 7-Zip function otherwise defined in RegistryUtils.cpp.
++ * Exclude RegistryUtils.cpp from build to avoid link-time collision.
++ */
++
++void ReadRegLang(UString &langFile)
++{
++      langFile = GetUnicodeString(g_LangPath);
++}
++
++void SaveRegLang(const UString &langFile)
++{
++}
++
++/**
++ * @brief Export instance of Merge7z interface.
++ */
++EXTERN_C
++{
++      __declspec(dllexport) Merge7z Merge7z;
++}
++
++EXTERN_C HRESULT CALLBACK DllGetVersion(DLLVERSIONINFO *pdvi)
++{
++      // Compute dwBuild from revision.txt
++      static const DWORD dwBuild =
++      (
++              sizeof""
++#             define VERSION(MAJOR,MINOR)
++#             include "revision453.txt"
++#             undef VERSION
++      );
++      C_ASSERT(dwBuild == DllBuild_Merge7z);
++      // Compute dwVersion from revision.txt
++      static const DWORD dwVersion =
++      (
++              0*sizeof""
++#             define VERSION(MAJOR,MINOR) , MAKELONG(MINOR,MAJOR) + 0*sizeof""
++#             include "revision453.txt"
++#             undef VERSION
++      );
++      static const DLLVERSIONINFO dvi =
++      {
++              sizeof dvi,
++              HIWORD(dwVersion), LOWORD(dwVersion), dwBuild, DLLVER_PLATFORM_WINDOWS
++      };
++      CopyMemory(pdvi, &dvi, pdvi->cbSize < dvi.cbSize ? pdvi->cbSize : dvi.cbSize);
++      return S_OK;
++}
index 0000000,0000000..50451e3
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,154 @@@
++// includes from 7-Zip sources
++
++#include "7zip/MyVersion.h"
++#include "7zip/Archive/IArchive.h"
++#include "Common/StringConvert.h"
++#include "Windows/PropVariant.h"
++#include "Windows/PropVariantConversions.h"
++#include "Windows/FileDir.h"
++#include "Windows/FileFind.h"
++
++#include "7zip/UI/Common/DirItem.h"
++#include "7zip/Common/FileStreams.h"
++
++// Merge7z includes
++#include "tools.h"
++#define DllBuild_Merge7z 27
++#define DLLPSTUB /##/
++#include "Merge7z.h"
++
++typedef char SZ_EXTENSION[8];
++typedef char CH_SIGNATURE[64]; //MAX(4 + IMAGE_SIZEOF_FILE_HEADER, 64)
++
++using namespace NWindows;
++
++extern HINSTANCE g_hInstance;
++extern DWORD g_dwFlags;
++extern CHAR g_cPath7z[MAX_PATH];
++
++struct Format7zDLL
++{
++      struct Proxy;
++      interface Interface;
++};
++
++#if MY_VER_MAJOR * 100 + MY_VER_MINOR < 445
++
++struct Format7zDLL::Proxy
++{
++      const char *aModule;
++      union
++      {
++              const char *aCreateObject;
++              HRESULT(STDAPICALLTYPE*CreateObject)(const GUID *clsID, const GUID *interfaceID, void **outObject);
++      };
++      union
++      {
++              const char *aGetHandlerProperty;
++              HRESULT(STDAPICALLTYPE*GetHandlerProperty)(PROPID propID, PROPVARIANT *value);
++      };
++      HMODULE handle;
++      const char *extension;
++      size_t signature;
++      struct Proxy *operator->();
++};
++
++#else
++
++struct Format7zDLL::Proxy
++{
++      INT32 formatIndex;
++      const char *extension;
++      size_t signature;
++      STDMETHODIMP CreateObject(const GUID *clsID, const GUID *interfaceID, void **outObject);
++      STDMETHODIMP GetHandlerProperty(PROPID propID, PROPVARIANT *value);
++      static struct Handle
++      {
++              const char *aModule;
++              union
++              {
++                      const char *aCreateObject;
++                      HRESULT(STDAPICALLTYPE*CreateObject)(const GUID *clsID, const GUID *interfaceID, void **outObject);
++              };
++              union
++              {
++                      const char *aGetHandlerProperty2;
++                      HRESULT(STDAPICALLTYPE*GetHandlerProperty2)(UINT32 formatIndex, PROPID propID, PROPVARIANT *value);
++              };
++              union
++              {
++                      const char *aGetNumberOfFormats;
++                      HRESULT(STDAPICALLTYPE*GetNumberOfFormats)(UINT32 *numFormats);
++              };
++              HMODULE handle;
++              operator HMODULE() { return handle; }
++      } handle;
++      struct Proxy *operator->();
++};
++
++#endif
++
++interface Format7zDLL::Interface : Merge7z::Format
++{
++      Proxy &proxy;
++      static Interface *head;
++      Interface *next;
++      Interface(Proxy &proxy):proxy(proxy), next(head)
++      {
++              head = this;
++      }
++      void GetDefaultName(HWND, UString &);
++      virtual HRESULT CreateObject(const GUID *interfaceID, void **outObject);
++      virtual IInArchive *GetInArchive();
++      virtual HRESULT DeCompressArchive(HWND, LPCTSTR path, LPCTSTR folder);
++      virtual IOutArchive *GetOutArchive();
++      virtual HRESULT CompressArchive(HWND, LPCTSTR path, Merge7z::DirItemEnumerator *);
++      interface Inspector : Merge7z::Format::Inspector
++      {
++              virtual void Free();
++              virtual UINT32 Open();
++              virtual HRESULT Extract(HWND, LPCTSTR folder, const UINT32 *indices = 0, UINT32 numItems = -1);
++              virtual HRESULT GetProperty(UINT32, PROPID, PROPVARIANT *, VARTYPE);
++              virtual BSTR GetPath(UINT32);
++              virtual BSTR GetName(UINT32);
++              virtual BSTR GetExtension(UINT32);
++              virtual VARIANT_BOOL IsFolder(UINT32);
++              virtual FILETIME LastWriteTime(UINT32);
++              virtual BSTR GetDefaultName();
++              Format7zDLL::Interface *const format;
++              IInArchive *archive;
++              CInFileStream *file;
++              IArchiveOpenCallback *callback;
++              CSysString const path;
++              UString ustrDefaultName;
++              bool passwordIsDefined;
++              UString password;
++              NFile::NFind::CFileInfo fileInfo;
++              Inspector(Format7zDLL::Interface *, LPCTSTR);
++              void Init(HWND);
++      };
++      virtual Merge7z::Format::Inspector *Open(HWND, LPCTSTR);
++      interface Updater : Merge7z::Format::Updater
++      {
++              virtual void Free();
++              virtual UINT32 Add(Merge7z::DirItemEnumerator::Item &);
++              virtual HRESULT Commit(HWND);
++              Format7zDLL::Interface *const format;
++              IOutArchive *outArchive;
++              COutFileStream *file;
++              CSysString const path;
++              CObjectVector<CDirItem> dirItems;
++              CObjectVector<CArchiveItem> archiveItems;
++              Updater(Format7zDLL::Interface *, LPCTSTR);
++              void Init(HWND);
++      };
++      virtual Merge7z::Format::Updater *Update(HWND, LPCTSTR);
++      virtual HRESULT GetHandlerProperty(HWND, PROPID, PROPVARIANT *, VARTYPE);
++      virtual BSTR GetHandlerName(HWND);
++      virtual BSTR GetHandlerClassID(HWND);
++      virtual BSTR GetHandlerExtension(HWND);
++      virtual BSTR GetHandlerAddExtension(HWND);
++      virtual VARIANT_BOOL GetHandlerUpdate(HWND);
++      virtual VARIANT_BOOL GetHandlerKeepName(HWND);
++      virtual BSTR GetDefaultName(HWND, LPCTSTR);
++};
@@@ -1,36 -1,36 +1,36 @@@
--Merge7z readme
--==============
--
--The Merge7z DLL files provide WinMerge its seamless handling of compressed files. 
--For WinMerge to be able to open compressed files, it requires a Merge7z DLL file, 
--(for example, Merge7z430.dll), through which it calls 7-Zip archive code.
--
--7-Zip is a Free and Open Source program handling many compression formats,
--available from:
--   http://www.7-zip.org/
--
--The Merge7z DLL files are available in two forms:
--
--(1) A Windows installer is available, which puts the files into the
--correct place for you. For example, "Merge7zInstaller0017-311-430.exe"
--is a Merge7z installer which will install Merge7z DLL files which are 
--compatible with 7-Zip releases 3.11 through 4.30. (The 0017 indicates
--that this is build 0017 of the installer.)
--
--(2) A simple binary bundle is available, from which you should copy
--all files into the same directory as your WinMerge.exe and WinMergeU.exe
--programs (typically this would be C:\Program Files\WinMerge).
--Merge7z0017-311-430.7z is an example of a binary bundle distribution.
--This binary bundle is so named because it is build 0017 and contains DLLs 
--compatible with 7-Zip versions 3.11 through 4.30.
--
--
--
--The WinMerge User's Manual contains a chapter on 7-Zip and archive support.
-   http://winmerge.org/2.8/manual/installing.html
 -  http://winmerge.org/docs/manual/Install.html
--
--Configuration information about your current system, and its presence or
--absence of archive support, is available from the WinMerge Help/Configuration
--menu, which will create a long text file containing configuration information.
--The section beginning "Archive support" has details about Merge7z and
--7-Zip files discovered by WinMerge.
++Merge7z readme\r
++==============\r
++\r
++The Merge7z DLL files provide WinMerge its seamless handling of compressed files. \r
++For WinMerge to be able to open compressed files, it requires a Merge7z DLL file, \r
++(for example, Merge7z430.dll), through which it calls 7-Zip archive code.\r
++\r
++7-Zip is a Free and Open Source program handling many compression formats,\r
++available from:\r
++   http://www.7-zip.org/\r
++\r
++The Merge7z DLL files are available in two forms:\r
++\r
++(1) A Windows installer is available, which puts the files into the\r
++correct place for you. For example, "Merge7zInstaller0017-311-430.exe"\r
++is a Merge7z installer which will install Merge7z DLL files which are \r
++compatible with 7-Zip releases 3.11 through 4.30. (The 0017 indicates\r
++that this is build 0017 of the installer.)\r
++\r
++(2) A simple binary bundle is available, from which you should copy\r
++all files into the same directory as your WinMerge.exe and WinMergeU.exe\r
++programs (typically this would be C:\Program Files\WinMerge).\r
++Merge7z0017-311-430.7z is an example of a binary bundle distribution.\r
++This binary bundle is so named because it is build 0017 and contains DLLs \r
++compatible with 7-Zip versions 3.11 through 4.30.\r
++\r
++\r
++\r
++The WinMerge User's Manual contains a chapter on 7-Zip and archive support.\r
++  http://winmerge.org/docs/manual/Install.html\r
++\r
++Configuration information about your current system, and its presence or\r
++absence of archive support, is available from the WinMerge Help/Configuration\r
++menu, which will create a long text file containing configuration information.\r
++The section beginning "Archive support" has details about Merge7z and\r
++7-Zip files discovered by WinMerge.\r
@@@ -1,63 -1,66 +1,66 @@@
--//Merge7z/revision.txt
--
--"*"//2003-12-16       Jochen Tucht    GuessFormat() now checks for directory
--"*"//2004-03-15       Jochen Tucht    Fix Visual Studio 2003 build issue
--"*"//2004-04-13       Jochen Tucht    Experimental DllGetVersion() based on rcsid.
--"*"//2004-08-19       Laurent Ganier  Compression of folders
--//                                                            Through EnumerateDirectory (from code of 7zip)
--
--VERSION(2,1)
--
--"*"//2004-10-10       Jochen Tucht    Support 7z409 beta. DllGetVersion() no longer
--//based on rcsid. Revision numbers will be generated from new file REVISION.TXT.
--
--"*"//2004-10-17       Jochen Tucht    Leave decision whether to recurse into folders
--//to enumerator (Mask.Recurse)
--
--"*"//2004-10-18 Jochen Tucht  Change generation of revision numbers to allow
--//for arbitrary version numbers at any stage without affecting build number.
--//Merge7z may now follow a WinMerge-like versioning policy, or just use same
--//version numbers as WinMerge, yet provide a build number simply reflecting
--//the number of changes recorded in this revision.txt.
--
--VERSION(2,2)
--
--"*"//2005-01-15 Jochen Tucht  New interface Merge7z::Format::Inspector
--//                                                            New interface Merge7z::Format::Updater
--//                                                            New method Merge7z::LoadLang() to set UI language
--
--"*"//2005-02-26 Jochen Tucht  Fix extensions when unwrapping tgz, rpm, ...
--//                                                            Expose some handler properties
--//                                                            Fix crash on failure to open archive
--//                                                            Use canned system messages wherever possible
--//                                                            Fix Merge7z::LoadLang() for no.txt (Norwegian)
--//                                                            Use DLLPSTUB if DllBuild_Merge7z >= 10
--//                                                            Optimize release builds for size
--
--"*"//2005-03-19 Jochen Tucht  Set UI language during Merge7z::Initialize()
--//                                                            according to LANGID given in HIWORD(dwFlags)
--//                                                            Allow for Merge7z::LoadLang(MAKEINTATOM(LANGID))
--//                                                            Don't show error message on intentional abort
--
--"*"//2005-06-22 Jochen Tucht  Treat .ear and .war like .zip
--"*"//2005-08-20 Jochen Tucht  Option to guess archive format by signature
--"*"//2005-08-25 Jochen Tucht  Fix broken GuessFormatByExtension()
--"*"//2005-10-02 Jochen Tucht  Add CHM format
--"*"//2005-10-04 Jochen Tucht  Don't rely on 7-Zip's format CLSIDs
--"*"//2005-11-19 Jochen Tucht  Minor changes to build against 7z430 beta
--"*"//2006-06-28       Jochen Neubeck  Add ISO format (introduced with 7z436 beta)
--//                                                            Add NSIS format (introduced with 7z440 beta)
--//                                                            Avoid to occasionally prompt for password twice
--"*"//2007-01-27       Jochen Neubeck  Unassociate .exe filename extension from NSIS
--//                                                            format due to undesired side effect on WinMerge
--"*"//2007-04-20       Jochen Neubeck  Cope with 7z445's revised plugin system
--"*"//2007-07-13       Jochen Neubeck  Pass MSI files to CAB handler
--//                                                            Drop support for 7-Zip versions prior to 4.32
--"*"//2007-07-15       Jochen Neubeck  Add WIM format (introduced with 7z449 beta)
--"*"//2007-07-16       Jochen Neubeck  Cope with revised CThread::Create() in 7z446
--"*"//2007-08-25 Jochen Neubeck        Add COM format (introduced with 7z452 beta)
--//                                                            No longer pass MSI files to CAB handler
--"*"//2007-09-01 Jochen Neubeck        Some refactoring to build against 7z453 beta
--"*"//2007-12-22       Jochen Neubeck  Unassociate .001 filename extension
--"*"//2008-08-03       Jochen Neubeck  Fix OpenArchive.* being taken from wrong folder
--//                                                            Add LZMA format (introduced with 7z458 beta)
 -"*"//2010-04-24       Jochen Neubeck  New formats introduced with 7z459 beta:
 -//                                                            XAR, MUB, HFS, DMG, ELF (not sure if they work)
 -//                                                            Support 7z465, 7z907, 7z909-7z913
++//Merge7z/revision.txt\r
++\r
++"*"//2003-12-16       Jochen Tucht    GuessFormat() now checks for directory\r
++"*"//2004-03-15       Jochen Tucht    Fix Visual Studio 2003 build issue\r
++"*"//2004-04-13       Jochen Tucht    Experimental DllGetVersion() based on rcsid.\r
++"*"//2004-08-19       Laurent Ganier  Compression of folders\r
++//                                                            Through EnumerateDirectory (from code of 7zip)\r
++\r
++VERSION(2,1)\r
++\r
++"*"//2004-10-10       Jochen Tucht    Support 7z409 beta. DllGetVersion() no longer\r
++//based on rcsid. Revision numbers will be generated from new file REVISION.TXT.\r
++\r
++"*"//2004-10-17       Jochen Tucht    Leave decision whether to recurse into folders\r
++//to enumerator (Mask.Recurse)\r
++\r
++"*"//2004-10-18 Jochen Tucht  Change generation of revision numbers to allow\r
++//for arbitrary version numbers at any stage without affecting build number.\r
++//Merge7z may now follow a WinMerge-like versioning policy, or just use same\r
++//version numbers as WinMerge, yet provide a build number simply reflecting\r
++//the number of changes recorded in this revision.txt.\r
++\r
++VERSION(2,2)\r
++\r
++"*"//2005-01-15 Jochen Tucht  New interface Merge7z::Format::Inspector\r
++//                                                            New interface Merge7z::Format::Updater\r
++//                                                            New method Merge7z::LoadLang() to set UI language\r
++\r
++"*"//2005-02-26 Jochen Tucht  Fix extensions when unwrapping tgz, rpm, ...\r
++//                                                            Expose some handler properties\r
++//                                                            Fix crash on failure to open archive\r
++//                                                            Use canned system messages wherever possible\r
++//                                                            Fix Merge7z::LoadLang() for no.txt (Norwegian)\r
++//                                                            Use DLLPSTUB if DllBuild_Merge7z >= 10\r
++//                                                            Optimize release builds for size\r
++\r
++"*"//2005-03-19 Jochen Tucht  Set UI language during Merge7z::Initialize()\r
++//                                                            according to LANGID given in HIWORD(dwFlags)\r
++//                                                            Allow for Merge7z::LoadLang(MAKEINTATOM(LANGID))\r
++//                                                            Don't show error message on intentional abort\r
++\r
++"*"//2005-06-22 Jochen Tucht  Treat .ear and .war like .zip\r
++"*"//2005-08-20 Jochen Tucht  Option to guess archive format by signature\r
++"*"//2005-08-25 Jochen Tucht  Fix broken GuessFormatByExtension()\r
++"*"//2005-10-02 Jochen Tucht  Add CHM format\r
++"*"//2005-10-04 Jochen Tucht  Don't rely on 7-Zip's format CLSIDs\r
++"*"//2005-11-19 Jochen Tucht  Minor changes to build against 7z430 beta\r
++"*"//2006-06-28       Jochen Neubeck  Add ISO format (introduced with 7z436 beta)\r
++//                                                            Add NSIS format (introduced with 7z440 beta)\r
++//                                                            Avoid to occasionally prompt for password twice\r
++"*"//2007-01-27       Jochen Neubeck  Unassociate .exe filename extension from NSIS\r
++//                                                            format due to undesired side effect on WinMerge\r
++"*"//2007-04-20       Jochen Neubeck  Cope with 7z445's revised plugin system\r
++"*"//2007-07-13       Jochen Neubeck  Pass MSI files to CAB handler\r
++//                                                            Drop support for 7-Zip versions prior to 4.32\r
++"*"//2007-07-15       Jochen Neubeck  Add WIM format (introduced with 7z449 beta)\r
++"*"//2007-07-16       Jochen Neubeck  Cope with revised CThread::Create() in 7z446\r
++"*"//2007-08-25 Jochen Neubeck        Add COM format (introduced with 7z452 beta)\r
++//                                                            No longer pass MSI files to CAB handler\r
++"*"//2007-09-01 Jochen Neubeck        Some refactoring to build against 7z453 beta\r
++"*"//2007-12-22       Jochen Neubeck  Unassociate .001 filename extension\r
++"*"//2008-08-03       Jochen Neubeck  Fix OpenArchive.* being taken from wrong folder\r
++//                                                            Add LZMA format (introduced with 7z458 beta)\r
++"*"//2010-04-24       Jochen Neubeck  New formats introduced with 7z459 beta:\r
++//                                                            XAR, MUB, HFS, DMG, ELF (not sure if they work)\r
++//                                                            Support 7z465, 7z907, 7z909-7z913\r
index 0000000,0000000..898e36d
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,63 @@@
++//Merge7z/revision.txt
++
++"*"//2003-12-16       Jochen Tucht    GuessFormat() now checks for directory
++"*"//2004-03-15       Jochen Tucht    Fix Visual Studio 2003 build issue
++"*"//2004-04-13       Jochen Tucht    Experimental DllGetVersion() based on rcsid.
++"*"//2004-08-19       Laurent Ganier  Compression of folders
++//                                                            Through EnumerateDirectory (from code of 7zip)
++
++VERSION(2,1)
++
++"*"//2004-10-10       Jochen Tucht    Support 7z409 beta. DllGetVersion() no longer
++//based on rcsid. Revision numbers will be generated from new file REVISION.TXT.
++
++"*"//2004-10-17       Jochen Tucht    Leave decision whether to recurse into folders
++//to enumerator (Mask.Recurse)
++
++"*"//2004-10-18 Jochen Tucht  Change generation of revision numbers to allow
++//for arbitrary version numbers at any stage without affecting build number.
++//Merge7z may now follow a WinMerge-like versioning policy, or just use same
++//version numbers as WinMerge, yet provide a build number simply reflecting
++//the number of changes recorded in this revision.txt.
++
++VERSION(2,2)
++
++"*"//2005-01-15 Jochen Tucht  New interface Merge7z::Format::Inspector
++//                                                            New interface Merge7z::Format::Updater
++//                                                            New method Merge7z::LoadLang() to set UI language
++
++"*"//2005-02-26 Jochen Tucht  Fix extensions when unwrapping tgz, rpm, ...
++//                                                            Expose some handler properties
++//                                                            Fix crash on failure to open archive
++//                                                            Use canned system messages wherever possible
++//                                                            Fix Merge7z::LoadLang() for no.txt (Norwegian)
++//                                                            Use DLLPSTUB if DllBuild_Merge7z >= 10
++//                                                            Optimize release builds for size
++
++"*"//2005-03-19 Jochen Tucht  Set UI language during Merge7z::Initialize()
++//                                                            according to LANGID given in HIWORD(dwFlags)
++//                                                            Allow for Merge7z::LoadLang(MAKEINTATOM(LANGID))
++//                                                            Don't show error message on intentional abort
++
++"*"//2005-06-22 Jochen Tucht  Treat .ear and .war like .zip
++"*"//2005-08-20 Jochen Tucht  Option to guess archive format by signature
++"*"//2005-08-25 Jochen Tucht  Fix broken GuessFormatByExtension()
++"*"//2005-10-02 Jochen Tucht  Add CHM format
++"*"//2005-10-04 Jochen Tucht  Don't rely on 7-Zip's format CLSIDs
++"*"//2005-11-19 Jochen Tucht  Minor changes to build against 7z430 beta
++"*"//2006-06-28       Jochen Neubeck  Add ISO format (introduced with 7z436 beta)
++//                                                            Add NSIS format (introduced with 7z440 beta)
++//                                                            Avoid to occasionally prompt for password twice
++"*"//2007-01-27       Jochen Neubeck  Unassociate .exe filename extension from NSIS
++//                                                            format due to undesired side effect on WinMerge
++"*"//2007-04-20       Jochen Neubeck  Cope with 7z445's revised plugin system
++"*"//2007-07-13       Jochen Neubeck  Pass MSI files to CAB handler
++//                                                            Drop support for 7-Zip versions prior to 4.32
++"*"//2007-07-15       Jochen Neubeck  Add WIM format (introduced with 7z449 beta)
++"*"//2007-07-16       Jochen Neubeck  Cope with revised CThread::Create() in 7z446
++"*"//2007-08-25 Jochen Neubeck        Add COM format (introduced with 7z452 beta)
++//                                                            No longer pass MSI files to CAB handler
++"*"//2007-09-01 Jochen Neubeck        Some refactoring to build against 7z453 beta
++"*"//2007-12-22       Jochen Neubeck  Unassociate .001 filename extension
++"*"//2008-08-03       Jochen Neubeck  Fix OpenArchive.* being taken from wrong folder
++//                                                            Add LZMA format (introduced with 7z458 beta)
--Files.rc2 RCDATA Files.rc2
--
--#define SHARPEN($) #$
- #define VIIZIP($) $ 7-ZIP SHARPEN(/7z457bin/$)
 -#define VIIZIP($) $ 7-ZIP SHARPEN(/7z465bin/$)
--#define MERGE7Z($) $ Merge7z SHARPEN(../../Build/MergeRelease/$)
--#define MERGE7ZU($) $ Merge7z SHARPEN(../../Build/MergeUnicodeRelease/$)
--
- MERGE7Z(Merge7z432.dll)
- MERGE7ZU(Merge7z432U.dll)
- MERGE7Z(Merge7z433.dll)
- MERGE7ZU(Merge7z433U.dll)
- MERGE7Z(Merge7z434.dll)
- MERGE7ZU(Merge7z434U.dll)
- MERGE7Z(Merge7z435.dll)
- MERGE7ZU(Merge7z435U.dll)
- MERGE7Z(Merge7z436.dll)
- MERGE7ZU(Merge7z436U.dll)
- MERGE7Z(Merge7z437.dll)
- MERGE7ZU(Merge7z437U.dll)
- MERGE7Z(Merge7z438.dll)
- MERGE7ZU(Merge7z438U.dll)
- MERGE7Z(Merge7z439.dll)
- MERGE7ZU(Merge7z439U.dll)
- MERGE7Z(Merge7z440.dll)
- MERGE7ZU(Merge7z440U.dll)
- MERGE7Z(Merge7z442.dll)
- MERGE7ZU(Merge7z442U.dll)
- MERGE7Z(Merge7z443.dll)
- MERGE7ZU(Merge7z443U.dll)
- MERGE7Z(Merge7z444.dll)
- MERGE7ZU(Merge7z444U.dll)
- MERGE7Z(Merge7z445.dll)
- MERGE7ZU(Merge7z445U.dll)
- MERGE7Z(Merge7z446.dll)
- MERGE7ZU(Merge7z446U.dll)
- MERGE7Z(Merge7z447.dll)
- MERGE7ZU(Merge7z447U.dll)
- MERGE7Z(Merge7z448.dll)
- MERGE7ZU(Merge7z448U.dll)
- MERGE7Z(Merge7z449.dll)
- MERGE7ZU(Merge7z449U.dll)
- MERGE7Z(Merge7z450.dll)
- MERGE7ZU(Merge7z450U.dll)
- MERGE7Z(Merge7z451.dll)
- MERGE7ZU(Merge7z451U.dll)
- MERGE7Z(Merge7z452.dll)
- MERGE7ZU(Merge7z452U.dll)
- MERGE7Z(Merge7z453.dll)
- MERGE7ZU(Merge7z453U.dll)
- MERGE7Z(Merge7z454.dll)
- MERGE7ZU(Merge7z454U.dll)
- MERGE7Z(Merge7z455.dll)
- MERGE7ZU(Merge7z455U.dll)
- MERGE7Z(Merge7z456.dll)
- MERGE7ZU(Merge7z456U.dll)
- MERGE7Z(Merge7z457.dll)
- MERGE7ZU(Merge7z457U.dll)
- MERGE7Z(Merge7z458.dll)
- MERGE7ZU(Merge7z458U.dll)
 -MERGE7Z(Merge7z465.dll)
 -MERGE7ZU(Merge7z465U.dll)
 -MERGE7Z(Merge7z907.dll)
 -MERGE7ZU(Merge7z907U.dll)
 -MERGE7Z(Merge7z909.dll)
 -MERGE7ZU(Merge7z909U.dll)
 -MERGE7Z(Merge7z910.dll)
 -MERGE7ZU(Merge7z910U.dll)
 -MERGE7Z(Merge7z911.dll)
 -MERGE7ZU(Merge7z911U.dll)
 -MERGE7Z(Merge7z912.dll)
 -MERGE7ZU(Merge7z912U.dll)
 -MERGE7Z(Merge7z913.dll)
 -MERGE7ZU(Merge7z913U.dll)
--
--VIIZIP(7zip_pad.xml)
--VIIZIP(7z.dll)
--VIIZIP(Lang/af.txt)
--VIIZIP(Lang/ar.txt)
--VIIZIP(Lang/ast.txt)
--VIIZIP(Lang/az.txt)
--VIIZIP(Lang/ba.txt)
--VIIZIP(Lang/be.txt)
--VIIZIP(Lang/bg.txt)
--VIIZIP(Lang/bn.txt)
--VIIZIP(Lang/br.txt)
--VIIZIP(Lang/ca.txt)
--VIIZIP(Lang/cs.txt)
--VIIZIP(Lang/cy.txt)
--VIIZIP(Lang/da.txt)
--VIIZIP(Lang/de.txt)
--VIIZIP(Lang/el.txt)
--VIIZIP(Lang/en.ttt)
--VIIZIP(Lang/eo.txt)
--VIIZIP(Lang/es.txt)
--VIIZIP(Lang/et.txt)
--VIIZIP(Lang/eu.txt)
--VIIZIP(Lang/ext.txt)
--VIIZIP(Lang/fa.txt)
--VIIZIP(Lang/fi.txt)
--VIIZIP(Lang/fr.txt)
--VIIZIP(Lang/fur.txt)
--VIIZIP(Lang/fy.txt)
--VIIZIP(Lang/gl.txt)
--VIIZIP(Lang/he.txt)
--VIIZIP(Lang/hr.txt)
--VIIZIP(Lang/hu.txt)
--VIIZIP(Lang/hy.txt)
--VIIZIP(Lang/id.txt)
--VIIZIP(Lang/io.txt)
 -VIIZIP(Lang/is.txt)
--VIIZIP(Lang/it.txt)
--VIIZIP(Lang/ja.txt)
--VIIZIP(Lang/ka.txt)
--VIIZIP(Lang/ko.txt)
--VIIZIP(Lang/ku.txt)
 -VIIZIP(Lang/ku-ckb.txt)
--VIIZIP(Lang/lt.txt)
--VIIZIP(Lang/lv.txt)
--VIIZIP(Lang/mk.txt)
--VIIZIP(Lang/mn.txt)
- VIIZIP(Lang/ms.txt)
--VIIZIP(Lang/mr.txt)
 -VIIZIP(Lang/ms.txt)
--VIIZIP(Lang/nb.txt)
--VIIZIP(Lang/ne.txt)
--VIIZIP(Lang/nl.txt)
--VIIZIP(Lang/nn.txt)
 -VIIZIP(Lang/pa-in.txt)
--VIIZIP(Lang/pl.txt)
 -VIIZIP(Lang/ps.txt)
 -VIIZIP(Lang/pt.txt)
--VIIZIP(Lang/pt-br.txt)
--VIIZIP(Lang/ro.txt)
--VIIZIP(Lang/ru.txt)
 -VIIZIP(Lang/si.txt)
--VIIZIP(Lang/sk.txt)
--VIIZIP(Lang/sl.txt)
--VIIZIP(Lang/sq.txt)
--VIIZIP(Lang/sr-spc.txt)
--VIIZIP(Lang/sr-spl.txt)
--VIIZIP(Lang/sv.txt)
--VIIZIP(Lang/ta.txt)
--VIIZIP(Lang/th.txt)
--VIIZIP(Lang/tr.txt)
--VIIZIP(Lang/tt.txt)
--VIIZIP(Lang/uk.txt)
--VIIZIP(Lang/uz.txt)
--VIIZIP(Lang/va.txt)
--VIIZIP(Lang/vi.txt)
--VIIZIP(Lang/zh-cn.txt)
--VIIZIP(Lang/zh-tw.txt)
++Files.rc2 RCDATA Files.rc2\r
++\r
++#define SHARPEN($) #$\r
++#define VIIZIP($) $ 7-ZIP SHARPEN(/7z465bin/$)\r
++#define MERGE7Z($) $ Merge7z SHARPEN(../../Build/MergeRelease/$)\r
++#define MERGE7ZU($) $ Merge7z SHARPEN(../../Build/MergeUnicodeRelease/$)\r
++\r
++MERGE7Z(Merge7z465.dll)\r
++MERGE7ZU(Merge7z465U.dll)\r
++MERGE7Z(Merge7z907.dll)\r
++MERGE7ZU(Merge7z907U.dll)\r
++MERGE7Z(Merge7z909.dll)\r
++MERGE7ZU(Merge7z909U.dll)\r
++MERGE7Z(Merge7z910.dll)\r
++MERGE7ZU(Merge7z910U.dll)\r
++MERGE7Z(Merge7z911.dll)\r
++MERGE7ZU(Merge7z911U.dll)\r
++MERGE7Z(Merge7z912.dll)\r
++MERGE7ZU(Merge7z912U.dll)\r
++MERGE7Z(Merge7z913.dll)\r
++MERGE7ZU(Merge7z913U.dll)\r
++\r
++VIIZIP(7zip_pad.xml)\r
++VIIZIP(7z.dll)\r
++VIIZIP(Lang/af.txt)\r
++VIIZIP(Lang/ar.txt)\r
++VIIZIP(Lang/ast.txt)\r
++VIIZIP(Lang/az.txt)\r
++VIIZIP(Lang/ba.txt)\r
++VIIZIP(Lang/be.txt)\r
++VIIZIP(Lang/bg.txt)\r
++VIIZIP(Lang/bn.txt)\r
++VIIZIP(Lang/br.txt)\r
++VIIZIP(Lang/ca.txt)\r
++VIIZIP(Lang/cs.txt)\r
++VIIZIP(Lang/cy.txt)\r
++VIIZIP(Lang/da.txt)\r
++VIIZIP(Lang/de.txt)\r
++VIIZIP(Lang/el.txt)\r
++VIIZIP(Lang/en.ttt)\r
++VIIZIP(Lang/eo.txt)\r
++VIIZIP(Lang/es.txt)\r
++VIIZIP(Lang/et.txt)\r
++VIIZIP(Lang/eu.txt)\r
++VIIZIP(Lang/ext.txt)\r
++VIIZIP(Lang/fa.txt)\r
++VIIZIP(Lang/fi.txt)\r
++VIIZIP(Lang/fr.txt)\r
++VIIZIP(Lang/fur.txt)\r
++VIIZIP(Lang/fy.txt)\r
++VIIZIP(Lang/gl.txt)\r
++VIIZIP(Lang/he.txt)\r
++VIIZIP(Lang/hr.txt)\r
++VIIZIP(Lang/hu.txt)\r
++VIIZIP(Lang/hy.txt)\r
++VIIZIP(Lang/id.txt)\r
++VIIZIP(Lang/io.txt)\r
++VIIZIP(Lang/is.txt)\r
++VIIZIP(Lang/it.txt)\r
++VIIZIP(Lang/ja.txt)\r
++VIIZIP(Lang/ka.txt)\r
++VIIZIP(Lang/ko.txt)\r
++VIIZIP(Lang/ku.txt)\r
++VIIZIP(Lang/ku-ckb.txt)\r
++VIIZIP(Lang/lt.txt)\r
++VIIZIP(Lang/lv.txt)\r
++VIIZIP(Lang/mk.txt)\r
++VIIZIP(Lang/mn.txt)\r
++VIIZIP(Lang/mr.txt)\r
++VIIZIP(Lang/ms.txt)\r
++VIIZIP(Lang/nb.txt)\r
++VIIZIP(Lang/ne.txt)\r
++VIIZIP(Lang/nl.txt)\r
++VIIZIP(Lang/nn.txt)\r
++VIIZIP(Lang/pa-in.txt)\r
++VIIZIP(Lang/pl.txt)\r
++VIIZIP(Lang/ps.txt)\r
++VIIZIP(Lang/pt.txt)\r
++VIIZIP(Lang/pt-br.txt)\r
++VIIZIP(Lang/ro.txt)\r
++VIIZIP(Lang/ru.txt)\r
++VIIZIP(Lang/si.txt)\r
++VIIZIP(Lang/sk.txt)\r
++VIIZIP(Lang/sl.txt)\r
++VIIZIP(Lang/sq.txt)\r
++VIIZIP(Lang/sr-spc.txt)\r
++VIIZIP(Lang/sr-spl.txt)\r
++VIIZIP(Lang/sv.txt)\r
++VIIZIP(Lang/ta.txt)\r
++VIIZIP(Lang/th.txt)\r
++VIIZIP(Lang/tr.txt)\r
++VIIZIP(Lang/tt.txt)\r
++VIIZIP(Lang/uk.txt)\r
++VIIZIP(Lang/uz.txt)\r
++VIIZIP(Lang/va.txt)\r
++VIIZIP(Lang/vi.txt)\r
++VIIZIP(Lang/zh-cn.txt)\r
++VIIZIP(Lang/zh-tw.txt)\r
--/* Installer.cpp: Merge7z plugin installer
-- * Copyright (c) 2005 Jochen Tucht
-- *
-- * License:   This program is free software; you can redistribute it and/or modify
-- *                    it under the terms of the GNU General Public License as published by
-- *                    the Free Software Foundation; either version 2 of the License, or
-- *                    (at your option) any later version.
-- *
-- *                    This program is distributed in the hope that it will be useful,
-- *                    but WITHOUT ANY WARRANTY; without even the implied warranty of
-- *                    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-- *                    GNU General Public License for more details.
-- *
-- *                    You should have received a copy of the GNU General Public License
-- *                    along with this program; if not, write to the Free Software
-- *                    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-- *
-- * Remarks:   Bundles plugins for all supported versions of 7-Zip in a single
-- *                    installer. Also includes essential components from latest 7-Zip
-- *                    stable release for optional standalone operation.
-- *                    Files to be installed are embedded as resources (see Files.rc2).
-- *                    The resulting exe must be run through UPX (upx.sourceforge.net)
-- *                    to reduce size.
--
--Please mind 2. a) of the GNU General Public License, and log your changes below.
--
--DATE:         BY:                                     DESCRIPTION:
--==========    ==================      ================================================
--2005-01-15    Jochen Tucht            Created
--2005-02-28    Jochen Tucht            Initialize filename in Open dialog to "*.exe"
--2005-04-26    Jochen Tucht            No default assumption on program directory
--                                                              Double-click option for in-place extraction
--                                                              Fix empty path issue with GetFileTitle()
--                                                              Accept extraction folder on command line
--                                                              Batch options: /standalone, /select, /commit
- 2005-05-30    Jochen Tucht            Standalone option now based on 7z420
- 2005-06-28    Jochen Tucht            Standalone option now based on 7z423
- 2005-12-04    Jochen Tucht            Standalone option now based on 7z431
- 2005-12-09    Jochen Tucht            Standalone option now based on 7z432
- 2006-06-28    Jochen Neubeck          Standalone option now based on 7z442
- 2007-12-22    Jochen Neubeck          Standalone option now based on 7z457
 -2010-05-13    Jochen Neubeck          Base application specific installation on 7z465
--*/
--
--#include <windows.h>
- #define VERSION7Z 4.57
--
- #pragma intrinsic(memset) // do not depend on CRT
 -#define VERSION7Z 4.65
--
--#define SHARPEN(X) #X
--#define SHARPEN2(X) SHARPEN(X)
--
--// Compute dwBuild from revision.txt
--static const DWORD dwBuild =
--(
--      sizeof""
--#     define VERSION(MAJOR,MINOR)
--#     include "../Merge7z/revision.txt"
--#     undef VERSION
--);
--
--static SYSTEMTIME st = {0,0,0,0,0,0,0,0};
--
--LPTSTR NTAPI ArgLower(LPTSTR lpCmdLine)
--{
--      while (*lpCmdLine == VK_SPACE)
--              ++lpCmdLine;
--      return lpCmdLine;
--}
--
--LPTSTR NTAPI ArgUpper(LPTSTR lpCmdLine)
--{
--      TCHAR cSpace = VK_SPACE;
--      while (*lpCmdLine && *lpCmdLine != cSpace)
--      {
--              if (*lpCmdLine == '"')
--              {
--                      cSpace ^= VK_SPACE;
--              }
--              ++lpCmdLine;
--      }
--      return lpCmdLine;
--}
--
--int NTAPI PathGetTailLength(LPCTSTR path)
--{
--      //GetFileTitle() returns garbage when passed in empty path...
--      return *path ? GetFileTitle(path, 0, 0) : 0;
--}
--
--void InstallFile(HWND hWnd, LPTSTR lpName, LPCTSTR lpType, LPTSTR path, int cchPath)
--{
--      HMODULE hModule = GetModuleHandle(0);
--      HRSRC hResource = FindResource(hModule, lpName, lpType);
--      DWORD dwSize = SizeofResource(hModule, hResource);
--      LPVOID pResource = LoadResource(hModule, hResource);
--      LPTSTR name = path + cchPath;
--      if (name != lpName)
--      {
--              lstrcpy(name, lpName);
--      }
--      int cchName = lstrlen(name);
--      int i;
--      for (i = 0 ; i < cchName ; ++i)
--      {
--              if (name[i] == '/')
--              {
--                      name[i] = '\0';
--                      CreateDirectory(path, 0);
--                      name[i] = '\\';
--              }
--      }
--      HANDLE hFile = CreateFile(path, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, 0, 0);
--      if (hFile != INVALID_HANDLE_VALUE)
--      {
--              DWORD dwNumberOfBytesWritten;
--              BOOL bSuccess = WriteFile(hFile, pResource, dwSize, &dwNumberOfBytesWritten, 0);
--              FILETIME ft;
--              if (SystemTimeToFileTime(&st, &ft))
--              {
--                      SetFileTime(hFile, &ft, &ft, &ft);
--              }
--              CloseHandle(hFile);
--              if (!bSuccess || dwNumberOfBytesWritten != dwSize)
--              {
--                      hFile = INVALID_HANDLE_VALUE;
--              }
--      }
--      if (hFile == INVALID_HANDLE_VALUE)
--      {
--              LONG error = GetLastError();
--              name[cchName++] = '\n';
--              FormatMessage
--              (
--                      FORMAT_MESSAGE_FROM_SYSTEM,
--                      NULL, error,
--                      MAKELANGID(LANG_NEUTRAL, SUBLANG_SYS_DEFAULT),
--                      name + cchName, MAX_PATH, NULL
--              );
--              int response = MessageBox(hWnd, path, 0, MB_ICONSTOP|MB_OKCANCEL);
--              if (response == IDCANCEL)
--              {
--                      ExitProcess(1);
--              }
--      }
--}
--
--BOOL CALLBACK fnPopulateList(HMODULE hModule, LPCTSTR lpType, LPTSTR lpName, LONG lParam)
--{
--      TCHAR acName[MAX_PATH];
--      if (ATOM aName = FindAtom(lpName))
--      {
--              GetAtomName(aName, lpName = acName, sizeof acName);
--      }
--      SendDlgItemMessage((HWND)lParam, 100, LB_ADDSTRING, 0, (LPARAM)lpName);
--      return TRUE;
--}
--
--BOOL CALLBACK fnInstallFiles(HMODULE hModule, LPCTSTR lpType, LPTSTR lpName, LONG lParam)
--{
--      HWND hWnd = (HWND)lParam;
--      TCHAR path[8 * MAX_PATH];
--      int cchPath = GetDlgItemText(hWnd, 203, path, 5 * MAX_PATH);
--      int cchName = PathGetTailLength(path);
--      if (cchName < cchPath)
--      {
--              cchPath -= cchName;
--      }
--      if (cchPath != 3 || path[1] != ':')
--      {
--              path[cchPath++] = '\\';
--      }
--      TCHAR acName[MAX_PATH];
--      if (ATOM aName = FindAtom(lpName))
--      {
--              GetAtomName(aName, lpName = acName, sizeof acName);
--      }
--      InstallFile(hWnd, lpName, lpType, path, cchPath);
--      return TRUE;
--}
--
--BOOL CALLBACK DlgMain_InitDialog(HWND hWnd, LPARAM lParam)
--{
--      char date[] = __DATE__; // Compilation date "MMM DD YYYY"
--
--      TCHAR path[5 * MAX_PATH];
--      wsprintf(path + GetWindowText(hWnd, path, MAX_PATH),
--              " (dllbuild %04lu, %s)", dwBuild, date);
--      SetWindowText(hWnd, path);
--
--      TCHAR fmt[MAX_PATH];
--      GetDlgItemText(hWnd, 205, fmt, MAX_PATH);
--      wsprintf(path, fmt, SHARPEN2(VERSION7Z));
--      SetDlgItemText(hWnd, 205, path);
--
--      date[6] = '#';
--      st.wYear = FindAtom(&date[6]);
--      date[6] = '\0';
--      date[3] = '#';
--      st.wDay = FindAtom(&date[3]);
--      date[3] = '\0';
--      st.wMonth = 1;
--      const char *month = "Jan\0Feb\0Mar\0Apr\0May\0Jun\0Jul\0Aug\0Sep\0Oct\0Nov\0Dec";
--      while (lstrcmpi(month, date))
--      {
--              ++st.wMonth;
--              month += 4;
--      } 
--      st.wHour = 12;
--
--      EnumResourceNames(GetModuleHandle(0), "Merge7z", fnPopulateList, (LONG)hWnd);
--      LONG lCount = SendDlgItemMessage(hWnd, 100, LB_GETCOUNT , 0, 0);
--      SendDlgItemMessage(hWnd, 100, LB_SELITEMRANGEEX, 0, lCount - 1);
--      CheckRadioButton(hWnd, 201, 202, 201);
--      BOOL bCommit = FALSE;
--      BOOL bSelect = FALSE;
--      LPTSTR lpCmdLine = GetCommandLine();
--      LPTSTR lpArgLower = ArgLower(lpCmdLine);
--      LPTSTR lpArgUpper = ArgUpper(lpArgLower);
--      while (*(lpArgLower = ArgLower(lpArgUpper)))
--      {
--              TCHAR cAhead = *(lpArgUpper = ArgUpper(lpArgLower));
--              *lpArgUpper = '\0';
--              if (0 == lstrcmpi(lpArgLower, "/standalone"))
--              {
--                      CheckRadioButton(hWnd, 201, 202, 202);
--                      SendMessage(hWnd, WM_COMMAND, 202, 0);
--                      CheckDlgButton(hWnd, 205, 1);
--                      SendMessage(hWnd, WM_COMMAND, 205, 0);
--              }
--              else if (0 == lstrcmpi(lpArgLower, "/select"))
--              {
--                      int lower = -1;
--                      int upper = -1;
--                      *lpArgUpper = cAhead;
--                      if (*(lpArgLower = ArgLower(lpArgUpper)))
--                      {
--                              cAhead = *(lpArgUpper = ArgUpper(lpArgLower));
--                              *lpArgUpper = '\0';
--                              lower = SendDlgItemMessage(hWnd, 100, LB_FINDSTRING, -1, (LPARAM)lpArgLower);
--                              if (lower == -1)
--                              {
--                                      MessageBox(hWnd, lpArgLower, "No match", MB_ICONSTOP);
--                              }
--                      }
--                      *lpArgUpper = cAhead;
--                      if (*(lpArgLower = ArgLower(lpArgUpper)))
--                      {
--                              cAhead = *(lpArgUpper = ArgUpper(lpArgLower));
--                              *lpArgUpper = '\0';
--                              int ahead = -1;
--                              while ((ahead = SendDlgItemMessage(hWnd, 100, LB_FINDSTRING, ahead, (LPARAM)lpArgLower)) > upper)
--                              {
--                                      upper = ahead;
--                              }
--                              if (upper == -1)
--                              {
--                                      MessageBox(hWnd, lpArgLower, "No match", MB_ICONSTOP);
--                              }
--                      }
--                      if (lower >= 0 && upper >= 0)
--                      {
--                              if (!bSelect)
--                              {
--                                      SendDlgItemMessage(hWnd, 100, LB_SETSEL, 0, -1);
--                                      bSelect = TRUE;
--                              }
--                              SendDlgItemMessage(hWnd, 100, LB_SELITEMRANGEEX, lower, upper);
--                      }
--              }
--              else if (0 == lstrcmpi(lpArgLower, "/commit"))
--              {
--                      bCommit = TRUE;
--              }
--              /*//just for test
--              else if (0 == lstrcmpi(lpArgLower, "\"ping pong\""))
--              {
--                      MessageBox(hWnd, "", lpArgLower, 0);
--              }*/
--              else
--              {
--                      DWORD dwAttributes = GetFileAttributes(lpArgLower);
--                      if (dwAttributes != 0xFFFFFFFF && dwAttributes & FILE_ATTRIBUTE_DIRECTORY)
--                      {
--                              lstrcpy(path, lpArgLower);
--                              if (PathGetTailLength(path) > 1)
--                              {
--                                      lstrcat(path, "\\");
--                              }
--                              lstrcat(path, "*.exe");
--                              CheckRadioButton(hWnd, 201, 202, 202);
--                              SendMessage(hWnd, WM_COMMAND, 202, 0);
--                              SetDlgItemText(hWnd, 203, path);
--                      }
--                      else
--                      {
--                              MessageBox(hWnd, lpArgLower, "Not a directory", MB_ICONSTOP);
--                      }
--              }
--              *lpArgUpper = cAhead;
--      }
--      if (bCommit)
--      {
--              SendMessage(hWnd, WM_COMMAND, IDOK, 0);
--      }
--      return TRUE;
--}
--
--BOOL CALLBACK DlgMain_BrowseExe(HWND hWnd)
--{
--      struct
--      {
--              OPENFILENAME ofn;
--              TCHAR buffer[5 * MAX_PATH];
--      } path;
-       ZeroMemory(&path, sizeof path);
 -      SecureZeroMemory(&path, sizeof path);
--      path.ofn.lStructSize = sizeof path.ofn;
--      path.ofn.hwndOwner = hWnd;
--      path.ofn.lpstrFile = path.buffer;
--      path.ofn.nMaxFile = sizeof path.buffer;
--      path.ofn.lpstrFilter = "*.exe\0*.exe\0";
--      path.ofn.lpstrTitle = "Browse for application ...";
--      path.ofn.Flags = OFN_FILEMUSTEXIST | OFN_HIDEREADONLY | OFN_LONGNAMES | OFN_PATHMUSTEXIST;
--      int cchPath = GetDlgItemText(hWnd, 203, path.buffer, sizeof path.buffer);
--      int cchName = PathGetTailLength(path.buffer);
--      if (cchName < cchPath)
--      {
--              lstrcpy(path.buffer + cchPath - cchName, "\\*.exe");
--      }
--      if (GetOpenFileName(&path.ofn))
--      {
--              SetDlgItemText(hWnd, 203, path.buffer);
--      }
--      return FALSE;
--}
--
--BOOL CALLBACK DlgMain_InstallFiles(HWND hWnd)
--{
--      HCURSOR hCursor = SetCursor(LoadCursor(0, IDC_WAIT));
--      HINSTANCE hModule = GetModuleHandle(0);
--      int count = SendDlgItemMessage(hWnd, 100, LB_GETCOUNT , 0, 0);
--      int index = 0;
--      TCHAR path[8 * MAX_PATH];
--      int cchPath;
--      if (IsDlgButtonChecked(hWnd, 201))
--      {
--              cchPath = GetSystemDirectory(path, 4 * MAX_PATH);
--      }
--      else
--      {
--              cchPath = GetDlgItemText(hWnd, 203, path, 5 * MAX_PATH);
--              int cchName = PathGetTailLength(path);
--              if (cchName < cchPath)
--              {
--                      cchPath -= cchName;
--              }
--      }
--      if (cchPath != 3 || path[1] != ':')
--      {
--              path[cchPath++] = '\\';
--      }
--      LPTSTR name = path + cchPath;
--      while (index < count)
--      {
--              if (SendDlgItemMessage(hWnd, 100, LB_GETSEL, index, 0))
--              {
--                      int cchName = SendDlgItemMessage(hWnd, 100, LB_GETTEXT, index, (LPARAM)name);
--                      InstallFile(hWnd, name, "Merge7z", path, cchPath);
--              }
--              ++index;
--      }
--      if (IsDlgButtonChecked(hWnd, 205))
--      {
--              EnumResourceNames(GetModuleHandle(0), "7-ZIP", fnInstallFiles, (LONG)hWnd);
--      }
--      SetCursor(hCursor);
--      return TRUE;
--}
--
--BOOL CALLBACK DlgMain_EnableStandalone(HWND hWnd)
--{
--      if (IsDlgButtonChecked(hWnd, 205))
--      {
--              TCHAR buffer[40];
--              const UINT major = UINT(VERSION7Z);
--              const UINT minor = UINT(VERSION7Z * 100) % 100;
--              wsprintf(buffer, "Merge7z%u%02u.dll", major, minor);
--              int lower = SendDlgItemMessage(hWnd, 100, LB_FINDSTRINGEXACT, -1, (LPARAM)buffer);
--              wsprintf(buffer, "Merge7z%u%02uU.dll", major, minor);
--              int upper = SendDlgItemMessage(hWnd, 100, LB_FINDSTRINGEXACT, -1, (LPARAM)buffer);
--              SendDlgItemMessage(hWnd, 100, LB_SELITEMRANGEEX, lower, upper);
--              if (GetFocus() == GetDlgItem(hWnd, 205))
--              {
--                      SendDlgItemMessage(hWnd, 100, LB_SETTOPINDEX, lower, 0);
--              }
--      }
--      return TRUE;
--}
--
--BOOL CALLBACK DlgMain(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
--{
--      TCHAR path[8 * MAX_PATH];
--      switch (uMsg)
--      {
--      case WM_INITDIALOG:
--              return DlgMain_InitDialog(hWnd, lParam);
--      case WM_COMMAND:
--              switch (wParam)
--              {
--              case 201:
--                      CheckDlgButton(hWnd, 205, 0);
--                      //fall through
--              case 202:
--                      EnableWindow(GetDlgItem(hWnd, 203), wParam == 202);
--                      EnableWindow(GetDlgItem(hWnd, 204), wParam == 202);
--                      EnableWindow(GetDlgItem(hWnd, 205), wParam == 202);
--                      SetDlgItemText(hWnd, 203, "");
--                      break;
--              case MAKELONG(202, BN_DOUBLECLICKED):
--                      GetModuleFileName(0, path, sizeof path);
--                      SetDlgItemText(hWnd, 203, path);
--                      break;
--              case MAKELONG(203, EN_CHANGE):
--                      EnableWindow(GetDlgItem(hWnd, IDOK), GetWindowTextLength((HWND)lParam) || IsDlgButtonChecked(hWnd, 201));
--                      break;
--              case 204:
--                      return DlgMain_BrowseExe(hWnd);
--              case 205:
--                      if (IsDlgButtonChecked(hWnd, 205) && GetKeyState(VK_SHIFT) >= 0)
--                              SendDlgItemMessage(hWnd, 100, LB_SETSEL, 0, -1);
--                      //fall through
--              case MAKELONG(100, LBN_SELCHANGE):
--                      return DlgMain_EnableStandalone(hWnd);
--              case IDOK: if (DlgMain_InstallFiles(hWnd)) case IDCANCEL:
--                      EndDialog(hWnd, wParam);
--                      break;
--              }
--              return TRUE;
--      }
--      return FALSE;
--}
--
--void WinMainCRTStartup(void)
--{
--      InitAtomTable(0x3001);
--      HINSTANCE hModule = GetModuleHandle(0);
--      HRSRC hResource = FindResource(hModule, "Files.rc2", RT_RCDATA);
--      char *q = (char *)LoadResource(hModule, hResource);
--      DWORD n = SizeofResource(hModule, hResource);
--      char directive[MAX_PATH];
--      char arguments[MAX_PATH];
--      char *p = 0;
--      char c = '\n';
--      while (n)
--      {
--              switch (c)
--              {
--              case '(':
--                      p = arguments;
--                      break;
--              case ')':
--                      if (*directive == '\n')
--                              AddAtom(arguments);
--                      //fall through
--              case '\n':
--              case '#':
--                      p = directive;
--                      //fall through
--              default:
--                      *p++ = c;
--                      *p = '\0';
--                      break;
--              }
--              c = *q++;
--              --n;
--      }
--      DialogBoxParam(hModule, MAKEINTRESOURCE(100), 0, DlgMain, 0);
--      ExitProcess(0);
--}
++/* Installer.cpp: Merge7z plugin installer\r
++ * Copyright (c) 2005 Jochen Tucht\r
++ *\r
++ * License:   This program is free software; you can redistribute it and/or modify\r
++ *                    it under the terms of the GNU General Public License as published by\r
++ *                    the Free Software Foundation; either version 2 of the License, or\r
++ *                    (at your option) any later version.\r
++ *\r
++ *                    This program is distributed in the hope that it will be useful,\r
++ *                    but WITHOUT ANY WARRANTY; without even the implied warranty of\r
++ *                    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r
++ *                    GNU General Public License for more details.\r
++ *\r
++ *                    You should have received a copy of the GNU General Public License\r
++ *                    along with this program; if not, write to the Free Software\r
++ *                    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.\r
++ *\r
++ * Remarks:   Bundles plugins for all supported versions of 7-Zip in a single\r
++ *                    installer. Also includes essential components from latest 7-Zip\r
++ *                    stable release for optional standalone operation.\r
++ *                    Files to be installed are embedded as resources (see Files.rc2).\r
++ *                    The resulting exe must be run through UPX (upx.sourceforge.net)\r
++ *                    to reduce size.\r
++\r
++Please mind 2. a) of the GNU General Public License, and log your changes below.\r
++\r
++DATE:         BY:                                     DESCRIPTION:\r
++==========    ==================      ================================================\r
++2005-01-15    Jochen Tucht            Created\r
++2005-02-28    Jochen Tucht            Initialize filename in Open dialog to "*.exe"\r
++2005-04-26    Jochen Tucht            No default assumption on program directory\r
++                                                              Double-click option for in-place extraction\r
++                                                              Fix empty path issue with GetFileTitle()\r
++                                                              Accept extraction folder on command line\r
++                                                              Batch options: /standalone, /select, /commit\r
++2010-05-13    Jochen Neubeck          Base application specific installation on 7z465\r
++*/\r
++\r
++#include <windows.h>\r
++\r
++#define VERSION7Z 4.65\r
++\r
++#define SHARPEN(X) #X\r
++#define SHARPEN2(X) SHARPEN(X)\r
++\r
++// Compute dwBuild from revision.txt\r
++static const DWORD dwBuild =\r
++(\r
++      sizeof""\r
++#     define VERSION(MAJOR,MINOR)\r
++#     include "../Merge7z/revision.txt"\r
++#     undef VERSION\r
++);\r
++\r
++static SYSTEMTIME st = {0,0,0,0,0,0,0,0};\r
++\r
++LPTSTR NTAPI ArgLower(LPTSTR lpCmdLine)\r
++{\r
++      while (*lpCmdLine == VK_SPACE)\r
++              ++lpCmdLine;\r
++      return lpCmdLine;\r
++}\r
++\r
++LPTSTR NTAPI ArgUpper(LPTSTR lpCmdLine)\r
++{\r
++      TCHAR cSpace = VK_SPACE;\r
++      while (*lpCmdLine && *lpCmdLine != cSpace)\r
++      {\r
++              if (*lpCmdLine == '"')\r
++              {\r
++                      cSpace ^= VK_SPACE;\r
++              }\r
++              ++lpCmdLine;\r
++      }\r
++      return lpCmdLine;\r
++}\r
++\r
++int NTAPI PathGetTailLength(LPCTSTR path)\r
++{\r
++      //GetFileTitle() returns garbage when passed in empty path...\r
++      return *path ? GetFileTitle(path, 0, 0) : 0;\r
++}\r
++\r
++void InstallFile(HWND hWnd, LPTSTR lpName, LPCTSTR lpType, LPTSTR path, int cchPath)\r
++{\r
++      HMODULE hModule = GetModuleHandle(0);\r
++      HRSRC hResource = FindResource(hModule, lpName, lpType);\r
++      DWORD dwSize = SizeofResource(hModule, hResource);\r
++      LPVOID pResource = LoadResource(hModule, hResource);\r
++      LPTSTR name = path + cchPath;\r
++      if (name != lpName)\r
++      {\r
++              lstrcpy(name, lpName);\r
++      }\r
++      int cchName = lstrlen(name);\r
++      int i;\r
++      for (i = 0 ; i < cchName ; ++i)\r
++      {\r
++              if (name[i] == '/')\r
++              {\r
++                      name[i] = '\0';\r
++                      CreateDirectory(path, 0);\r
++                      name[i] = '\\';\r
++              }\r
++      }\r
++      HANDLE hFile = CreateFile(path, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, 0, 0);\r
++      if (hFile != INVALID_HANDLE_VALUE)\r
++      {\r
++              DWORD dwNumberOfBytesWritten;\r
++              BOOL bSuccess = WriteFile(hFile, pResource, dwSize, &dwNumberOfBytesWritten, 0);\r
++              FILETIME ft;\r
++              if (SystemTimeToFileTime(&st, &ft))\r
++              {\r
++                      SetFileTime(hFile, &ft, &ft, &ft);\r
++              }\r
++              CloseHandle(hFile);\r
++              if (!bSuccess || dwNumberOfBytesWritten != dwSize)\r
++              {\r
++                      hFile = INVALID_HANDLE_VALUE;\r
++              }\r
++      }\r
++      if (hFile == INVALID_HANDLE_VALUE)\r
++      {\r
++              LONG error = GetLastError();\r
++              name[cchName++] = '\n';\r
++              FormatMessage\r
++              (\r
++                      FORMAT_MESSAGE_FROM_SYSTEM,\r
++                      NULL, error,\r
++                      MAKELANGID(LANG_NEUTRAL, SUBLANG_SYS_DEFAULT),\r
++                      name + cchName, MAX_PATH, NULL\r
++              );\r
++              int response = MessageBox(hWnd, path, 0, MB_ICONSTOP|MB_OKCANCEL);\r
++              if (response == IDCANCEL)\r
++              {\r
++                      ExitProcess(1);\r
++              }\r
++      }\r
++}\r
++\r
++BOOL CALLBACK fnPopulateList(HMODULE hModule, LPCTSTR lpType, LPTSTR lpName, LONG lParam)\r
++{\r
++      TCHAR acName[MAX_PATH];\r
++      if (ATOM aName = FindAtom(lpName))\r
++      {\r
++              GetAtomName(aName, lpName = acName, sizeof acName);\r
++      }\r
++      SendDlgItemMessage((HWND)lParam, 100, LB_ADDSTRING, 0, (LPARAM)lpName);\r
++      return TRUE;\r
++}\r
++\r
++BOOL CALLBACK fnInstallFiles(HMODULE hModule, LPCTSTR lpType, LPTSTR lpName, LONG lParam)\r
++{\r
++      HWND hWnd = (HWND)lParam;\r
++      TCHAR path[8 * MAX_PATH];\r
++      int cchPath = GetDlgItemText(hWnd, 203, path, 5 * MAX_PATH);\r
++      int cchName = PathGetTailLength(path);\r
++      if (cchName < cchPath)\r
++      {\r
++              cchPath -= cchName;\r
++      }\r
++      if (cchPath != 3 || path[1] != ':')\r
++      {\r
++              path[cchPath++] = '\\';\r
++      }\r
++      TCHAR acName[MAX_PATH];\r
++      if (ATOM aName = FindAtom(lpName))\r
++      {\r
++              GetAtomName(aName, lpName = acName, sizeof acName);\r
++      }\r
++      InstallFile(hWnd, lpName, lpType, path, cchPath);\r
++      return TRUE;\r
++}\r
++\r
++BOOL CALLBACK DlgMain_InitDialog(HWND hWnd, LPARAM lParam)\r
++{\r
++      char date[] = __DATE__; // Compilation date "MMM DD YYYY"\r
++\r
++      TCHAR path[5 * MAX_PATH];\r
++      wsprintf(path + GetWindowText(hWnd, path, MAX_PATH),\r
++              " (dllbuild %04lu, %s)", dwBuild, date);\r
++      SetWindowText(hWnd, path);\r
++\r
++      TCHAR fmt[MAX_PATH];\r
++      GetDlgItemText(hWnd, 205, fmt, MAX_PATH);\r
++      wsprintf(path, fmt, SHARPEN2(VERSION7Z));\r
++      SetDlgItemText(hWnd, 205, path);\r
++\r
++      date[6] = '#';\r
++      st.wYear = FindAtom(&date[6]);\r
++      date[6] = '\0';\r
++      date[3] = '#';\r
++      st.wDay = FindAtom(&date[3]);\r
++      date[3] = '\0';\r
++      st.wMonth = 1;\r
++      const char *month = "Jan\0Feb\0Mar\0Apr\0May\0Jun\0Jul\0Aug\0Sep\0Oct\0Nov\0Dec";\r
++      while (lstrcmpi(month, date))\r
++      {\r
++              ++st.wMonth;\r
++              month += 4;\r
++      } \r
++      st.wHour = 12;\r
++\r
++      EnumResourceNames(GetModuleHandle(0), "Merge7z", fnPopulateList, (LONG)hWnd);\r
++      LONG lCount = SendDlgItemMessage(hWnd, 100, LB_GETCOUNT , 0, 0);\r
++      SendDlgItemMessage(hWnd, 100, LB_SELITEMRANGEEX, 0, lCount - 1);\r
++      CheckRadioButton(hWnd, 201, 202, 201);\r
++      BOOL bCommit = FALSE;\r
++      BOOL bSelect = FALSE;\r
++      LPTSTR lpCmdLine = GetCommandLine();\r
++      LPTSTR lpArgLower = ArgLower(lpCmdLine);\r
++      LPTSTR lpArgUpper = ArgUpper(lpArgLower);\r
++      while (*(lpArgLower = ArgLower(lpArgUpper)))\r
++      {\r
++              TCHAR cAhead = *(lpArgUpper = ArgUpper(lpArgLower));\r
++              *lpArgUpper = '\0';\r
++              if (0 == lstrcmpi(lpArgLower, "/standalone"))\r
++              {\r
++                      CheckRadioButton(hWnd, 201, 202, 202);\r
++                      SendMessage(hWnd, WM_COMMAND, 202, 0);\r
++                      CheckDlgButton(hWnd, 205, 1);\r
++                      SendMessage(hWnd, WM_COMMAND, 205, 0);\r
++              }\r
++              else if (0 == lstrcmpi(lpArgLower, "/select"))\r
++              {\r
++                      int lower = -1;\r
++                      int upper = -1;\r
++                      *lpArgUpper = cAhead;\r
++                      if (*(lpArgLower = ArgLower(lpArgUpper)))\r
++                      {\r
++                              cAhead = *(lpArgUpper = ArgUpper(lpArgLower));\r
++                              *lpArgUpper = '\0';\r
++                              lower = SendDlgItemMessage(hWnd, 100, LB_FINDSTRING, -1, (LPARAM)lpArgLower);\r
++                              if (lower == -1)\r
++                              {\r
++                                      MessageBox(hWnd, lpArgLower, "No match", MB_ICONSTOP);\r
++                              }\r
++                      }\r
++                      *lpArgUpper = cAhead;\r
++                      if (*(lpArgLower = ArgLower(lpArgUpper)))\r
++                      {\r
++                              cAhead = *(lpArgUpper = ArgUpper(lpArgLower));\r
++                              *lpArgUpper = '\0';\r
++                              int ahead = -1;\r
++                              while ((ahead = SendDlgItemMessage(hWnd, 100, LB_FINDSTRING, ahead, (LPARAM)lpArgLower)) > upper)\r
++                              {\r
++                                      upper = ahead;\r
++                              }\r
++                              if (upper == -1)\r
++                              {\r
++                                      MessageBox(hWnd, lpArgLower, "No match", MB_ICONSTOP);\r
++                              }\r
++                      }\r
++                      if (lower >= 0 && upper >= 0)\r
++                      {\r
++                              if (!bSelect)\r
++                              {\r
++                                      SendDlgItemMessage(hWnd, 100, LB_SETSEL, 0, -1);\r
++                                      bSelect = TRUE;\r
++                              }\r
++                              SendDlgItemMessage(hWnd, 100, LB_SELITEMRANGEEX, lower, upper);\r
++                      }\r
++              }\r
++              else if (0 == lstrcmpi(lpArgLower, "/commit"))\r
++              {\r
++                      bCommit = TRUE;\r
++              }\r
++              /*//just for test\r
++              else if (0 == lstrcmpi(lpArgLower, "\"ping pong\""))\r
++              {\r
++                      MessageBox(hWnd, "", lpArgLower, 0);\r
++              }*/\r
++              else\r
++              {\r
++                      DWORD dwAttributes = GetFileAttributes(lpArgLower);\r
++                      if (dwAttributes != 0xFFFFFFFF && dwAttributes & FILE_ATTRIBUTE_DIRECTORY)\r
++                      {\r
++                              lstrcpy(path, lpArgLower);\r
++                              if (PathGetTailLength(path) > 1)\r
++                              {\r
++                                      lstrcat(path, "\\");\r
++                              }\r
++                              lstrcat(path, "*.exe");\r
++                              CheckRadioButton(hWnd, 201, 202, 202);\r
++                              SendMessage(hWnd, WM_COMMAND, 202, 0);\r
++                              SetDlgItemText(hWnd, 203, path);\r
++                      }\r
++                      else\r
++                      {\r
++                              MessageBox(hWnd, lpArgLower, "Not a directory", MB_ICONSTOP);\r
++                      }\r
++              }\r
++              *lpArgUpper = cAhead;\r
++      }\r
++      if (bCommit)\r
++      {\r
++              SendMessage(hWnd, WM_COMMAND, IDOK, 0);\r
++      }\r
++      return TRUE;\r
++}\r
++\r
++BOOL CALLBACK DlgMain_BrowseExe(HWND hWnd)\r
++{\r
++      struct\r
++      {\r
++              OPENFILENAME ofn;\r
++              TCHAR buffer[5 * MAX_PATH];\r
++      } path;\r
++      SecureZeroMemory(&path, sizeof path);\r
++      path.ofn.lStructSize = sizeof path.ofn;\r
++      path.ofn.hwndOwner = hWnd;\r
++      path.ofn.lpstrFile = path.buffer;\r
++      path.ofn.nMaxFile = sizeof path.buffer;\r
++      path.ofn.lpstrFilter = "*.exe\0*.exe\0";\r
++      path.ofn.lpstrTitle = "Browse for application ...";\r
++      path.ofn.Flags = OFN_FILEMUSTEXIST | OFN_HIDEREADONLY | OFN_LONGNAMES | OFN_PATHMUSTEXIST;\r
++      int cchPath = GetDlgItemText(hWnd, 203, path.buffer, sizeof path.buffer);\r
++      int cchName = PathGetTailLength(path.buffer);\r
++      if (cchName < cchPath)\r
++      {\r
++              lstrcpy(path.buffer + cchPath - cchName, "\\*.exe");\r
++      }\r
++      if (GetOpenFileName(&path.ofn))\r
++      {\r
++              SetDlgItemText(hWnd, 203, path.buffer);\r
++      }\r
++      return FALSE;\r
++}\r
++\r
++BOOL CALLBACK DlgMain_InstallFiles(HWND hWnd)\r
++{\r
++      HCURSOR hCursor = SetCursor(LoadCursor(0, IDC_WAIT));\r
++      HINSTANCE hModule = GetModuleHandle(0);\r
++      int count = SendDlgItemMessage(hWnd, 100, LB_GETCOUNT , 0, 0);\r
++      int index = 0;\r
++      TCHAR path[8 * MAX_PATH];\r
++      int cchPath;\r
++      if (IsDlgButtonChecked(hWnd, 201))\r
++      {\r
++              cchPath = GetSystemDirectory(path, 4 * MAX_PATH);\r
++      }\r
++      else\r
++      {\r
++              cchPath = GetDlgItemText(hWnd, 203, path, 5 * MAX_PATH);\r
++              int cchName = PathGetTailLength(path);\r
++              if (cchName < cchPath)\r
++              {\r
++                      cchPath -= cchName;\r
++              }\r
++      }\r
++      if (cchPath != 3 || path[1] != ':')\r
++      {\r
++              path[cchPath++] = '\\';\r
++      }\r
++      LPTSTR name = path + cchPath;\r
++      while (index < count)\r
++      {\r
++              if (SendDlgItemMessage(hWnd, 100, LB_GETSEL, index, 0))\r
++              {\r
++                      int cchName = SendDlgItemMessage(hWnd, 100, LB_GETTEXT, index, (LPARAM)name);\r
++                      InstallFile(hWnd, name, "Merge7z", path, cchPath);\r
++              }\r
++              ++index;\r
++      }\r
++      if (IsDlgButtonChecked(hWnd, 205))\r
++      {\r
++              EnumResourceNames(GetModuleHandle(0), "7-ZIP", fnInstallFiles, (LONG)hWnd);\r
++      }\r
++      SetCursor(hCursor);\r
++      return TRUE;\r
++}\r
++\r
++BOOL CALLBACK DlgMain_EnableStandalone(HWND hWnd)\r
++{\r
++      if (IsDlgButtonChecked(hWnd, 205))\r
++      {\r
++              TCHAR buffer[40];\r
++              const UINT major = UINT(VERSION7Z);\r
++              const UINT minor = UINT(VERSION7Z * 100) % 100;\r
++              wsprintf(buffer, "Merge7z%u%02u.dll", major, minor);\r
++              int lower = SendDlgItemMessage(hWnd, 100, LB_FINDSTRINGEXACT, -1, (LPARAM)buffer);\r
++              wsprintf(buffer, "Merge7z%u%02uU.dll", major, minor);\r
++              int upper = SendDlgItemMessage(hWnd, 100, LB_FINDSTRINGEXACT, -1, (LPARAM)buffer);\r
++              SendDlgItemMessage(hWnd, 100, LB_SELITEMRANGEEX, lower, upper);\r
++              if (GetFocus() == GetDlgItem(hWnd, 205))\r
++              {\r
++                      SendDlgItemMessage(hWnd, 100, LB_SETTOPINDEX, lower, 0);\r
++              }\r
++      }\r
++      return TRUE;\r
++}\r
++\r
++BOOL CALLBACK DlgMain(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)\r
++{\r
++      TCHAR path[8 * MAX_PATH];\r
++      switch (uMsg)\r
++      {\r
++      case WM_INITDIALOG:\r
++              return DlgMain_InitDialog(hWnd, lParam);\r
++      case WM_COMMAND:\r
++              switch (wParam)\r
++              {\r
++              case 201:\r
++                      CheckDlgButton(hWnd, 205, 0);\r
++                      //fall through\r
++              case 202:\r
++                      EnableWindow(GetDlgItem(hWnd, 203), wParam == 202);\r
++                      EnableWindow(GetDlgItem(hWnd, 204), wParam == 202);\r
++                      EnableWindow(GetDlgItem(hWnd, 205), wParam == 202);\r
++                      SetDlgItemText(hWnd, 203, "");\r
++                      break;\r
++              case MAKELONG(202, BN_DOUBLECLICKED):\r
++                      GetModuleFileName(0, path, sizeof path);\r
++                      SetDlgItemText(hWnd, 203, path);\r
++                      break;\r
++              case MAKELONG(203, EN_CHANGE):\r
++                      EnableWindow(GetDlgItem(hWnd, IDOK), GetWindowTextLength((HWND)lParam) || IsDlgButtonChecked(hWnd, 201));\r
++                      break;\r
++              case 204:\r
++                      return DlgMain_BrowseExe(hWnd);\r
++              case 205:\r
++                      if (IsDlgButtonChecked(hWnd, 205) && GetKeyState(VK_SHIFT) >= 0)\r
++                              SendDlgItemMessage(hWnd, 100, LB_SETSEL, 0, -1);\r
++                      //fall through\r
++              case MAKELONG(100, LBN_SELCHANGE):\r
++                      return DlgMain_EnableStandalone(hWnd);\r
++              case IDOK: if (DlgMain_InstallFiles(hWnd)) case IDCANCEL:\r
++                      EndDialog(hWnd, wParam);\r
++                      break;\r
++              }\r
++              return TRUE;\r
++      }\r
++      return FALSE;\r
++}\r
++\r
++void WinMainCRTStartup(void)\r
++{\r
++      InitAtomTable(0x3001);\r
++      HINSTANCE hModule = GetModuleHandle(0);\r
++      HRSRC hResource = FindResource(hModule, "Files.rc2", RT_RCDATA);\r
++      char *q = (char *)LoadResource(hModule, hResource);\r
++      DWORD n = SizeofResource(hModule, hResource);\r
++      char directive[MAX_PATH];\r
++      char arguments[MAX_PATH];\r
++      char *p = 0;\r
++      char c = '\n';\r
++      while (n)\r
++      {\r
++              switch (c)\r
++              {\r
++              case '(':\r
++                      p = arguments;\r
++                      break;\r
++              case ')':\r
++                      if (*directive == '\n')\r
++                              AddAtom(arguments);\r
++                      //fall through\r
++              case '\n':\r
++              case '#':\r
++                      p = directive;\r
++                      //fall through\r
++              default:\r
++                      *p++ = c;\r
++                      *p = '\0';\r
++                      break;\r
++              }\r
++              c = *q++;\r
++              --n;\r
++      }\r
++      DialogBoxParam(hModule, MAKEINTRESOURCE(100), 0, DlgMain, 0);\r
++      ExitProcess(0);\r
++}\r
--//Microsoft Developer Studio generated resource script.
--//
--#include "resource.h"
--
--#define APSTUDIO_READONLY_SYMBOLS
--/////////////////////////////////////////////////////////////////////////////
--//
--// Generated from the TEXTINCLUDE 2 resource.
--//
- #include <afxres.h>
 -#include <winresrc.h>
--/////////////////////////////////////////////////////////////////////////////
--#undef APSTUDIO_READONLY_SYMBOLS
--
--/////////////////////////////////////////////////////////////////////////////
--// Deutsch (Deutschland) resources
--
--#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_DEU)
--#ifdef _WIN32
--LANGUAGE LANG_GERMAN, SUBLANG_GERMAN
--#pragma code_page(1252)
--#endif //_WIN32
--
--#ifdef APSTUDIO_INVOKED
--/////////////////////////////////////////////////////////////////////////////
--//
--// TEXTINCLUDE
--//
--
--1 TEXTINCLUDE DISCARDABLE 
--BEGIN
--    "resource.h\0"
--END
--
--2 TEXTINCLUDE DISCARDABLE 
--BEGIN
-     "#include <afxres.h>\0"
 -    "#include <winresrc.h>\0"
--END
--
--3 TEXTINCLUDE DISCARDABLE 
--BEGIN
--    "#include ""files.rc2""\0"
--END
--
--#endif    // APSTUDIO_INVOKED
--
--
--/////////////////////////////////////////////////////////////////////////////
--//
--// Dialog
--//
--
--100 DIALOGEX 0, 0, 308, 185
--STYLE DS_MODALFRAME | DS_3DLOOK | DS_CENTER | WS_POPUP | WS_CAPTION | 
--    WS_SYSMENU
--CAPTION "Merge7z Interface Plugin Installer"
--FONT 8, "MS Sans Serif"
--BEGIN
-     GROUPBOX        "&Select plugins to be installed",IDC_STATIC,2,0,304,90,
 -    GROUPBOX        "&Select plugins to be installed",-1,2,0,304,90,
--                    WS_GROUP,WS_EX_TRANSPARENT
--    LISTBOX         100,6,10,296,76,LBS_NOINTEGRALHEIGHT | LBS_MULTICOLUMN | 
--                    LBS_EXTENDEDSEL | WS_HSCROLL | WS_GROUP | WS_TABSTOP
-     GROUPBOX        "&Options",IDC_STATIC,2,92,304,72,WS_GROUP,
 -    GROUPBOX        "&Options",-1,2,92,304,72,WS_GROUP,
--                    WS_EX_TRANSPARENT
--    CONTROL         "S&hared installation",201,"Button",BS_AUTORADIOBUTTON | 
--                    WS_GROUP | WS_TABSTOP,6,102,73,10
--    CONTROL         "&Application specific installation",202,"Button",
--                    BS_AUTORADIOBUTTON | BS_NOTIFY | WS_TABSTOP,6,114,111,10
--    EDITTEXT        203,18,126,232,14,ES_AUTOHSCROLL | WS_DISABLED | 
--                    WS_GROUP
--    PUSHBUTTON      "&Browse",204,252,126,50,14,WS_DISABLED | WS_GROUP
--    CONTROL         "&Enable standalone operation\nThis option adds required components from 7-Zip %s to program directory.",
--                    205,"Button",BS_AUTOCHECKBOX | BS_TOP | BS_MULTILINE | 
--                    WS_DISABLED | WS_TABSTOP,18,142,280,18
--    DEFPUSHBUTTON   "OK",IDOK,202,168,50,14,WS_GROUP
--    PUSHBUTTON      "Cancel",IDCANCEL,256,168,50,14,WS_GROUP
--END
--
--
--/////////////////////////////////////////////////////////////////////////////
--//
--// DESIGNINFO
--//
--
--#ifdef APSTUDIO_INVOKED
--GUIDELINES DESIGNINFO DISCARDABLE 
--BEGIN
--    100, DIALOG
--    BEGIN
--        LEFTMARGIN, 7
--        RIGHTMARGIN, 301
--        TOPMARGIN, 7
--        BOTTOMMARGIN, 178
--    END
--END
--#endif    // APSTUDIO_INVOKED
--
--#endif    // Deutsch (Deutschland) resources
--/////////////////////////////////////////////////////////////////////////////
--
--
--
--#ifndef APSTUDIO_INVOKED
--/////////////////////////////////////////////////////////////////////////////
--//
--// Generated from the TEXTINCLUDE 3 resource.
--//
--#include "files.rc2"
--/////////////////////////////////////////////////////////////////////////////
--#endif    // not APSTUDIO_INVOKED
--
++//Microsoft Developer Studio generated resource script.\r
++//\r
++#include "resource.h"\r
++\r
++#define APSTUDIO_READONLY_SYMBOLS\r
++/////////////////////////////////////////////////////////////////////////////\r
++//\r
++// Generated from the TEXTINCLUDE 2 resource.\r
++//\r
++#include <winresrc.h>\r
++/////////////////////////////////////////////////////////////////////////////\r
++#undef APSTUDIO_READONLY_SYMBOLS\r
++\r
++/////////////////////////////////////////////////////////////////////////////\r
++// Deutsch (Deutschland) resources\r
++\r
++#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_DEU)\r
++#ifdef _WIN32\r
++LANGUAGE LANG_GERMAN, SUBLANG_GERMAN\r
++#pragma code_page(1252)\r
++#endif //_WIN32\r
++\r
++#ifdef APSTUDIO_INVOKED\r
++/////////////////////////////////////////////////////////////////////////////\r
++//\r
++// TEXTINCLUDE\r
++//\r
++\r
++1 TEXTINCLUDE DISCARDABLE \r
++BEGIN\r
++    "resource.h\0"\r
++END\r
++\r
++2 TEXTINCLUDE DISCARDABLE \r
++BEGIN\r
++    "#include <winresrc.h>\0"\r
++END\r
++\r
++3 TEXTINCLUDE DISCARDABLE \r
++BEGIN\r
++    "#include ""files.rc2""\0"\r
++END\r
++\r
++#endif    // APSTUDIO_INVOKED\r
++\r
++\r
++/////////////////////////////////////////////////////////////////////////////\r
++//\r
++// Dialog\r
++//\r
++\r
++100 DIALOGEX 0, 0, 308, 185\r
++STYLE DS_MODALFRAME | DS_3DLOOK | DS_CENTER | WS_POPUP | WS_CAPTION | \r
++    WS_SYSMENU\r
++CAPTION "Merge7z Interface Plugin Installer"\r
++FONT 8, "MS Sans Serif"\r
++BEGIN\r
++    GROUPBOX        "&Select plugins to be installed",-1,2,0,304,90,\r
++                    WS_GROUP,WS_EX_TRANSPARENT\r
++    LISTBOX         100,6,10,296,76,LBS_NOINTEGRALHEIGHT | LBS_MULTICOLUMN | \r
++                    LBS_EXTENDEDSEL | WS_HSCROLL | WS_GROUP | WS_TABSTOP\r
++    GROUPBOX        "&Options",-1,2,92,304,72,WS_GROUP,\r
++                    WS_EX_TRANSPARENT\r
++    CONTROL         "S&hared installation",201,"Button",BS_AUTORADIOBUTTON | \r
++                    WS_GROUP | WS_TABSTOP,6,102,73,10\r
++    CONTROL         "&Application specific installation",202,"Button",\r
++                    BS_AUTORADIOBUTTON | BS_NOTIFY | WS_TABSTOP,6,114,111,10\r
++    EDITTEXT        203,18,126,232,14,ES_AUTOHSCROLL | WS_DISABLED | \r
++                    WS_GROUP\r
++    PUSHBUTTON      "&Browse",204,252,126,50,14,WS_DISABLED | WS_GROUP\r
++    CONTROL         "&Enable standalone operation\nThis option adds required components from 7-Zip %s to program directory.",\r
++                    205,"Button",BS_AUTOCHECKBOX | BS_TOP | BS_MULTILINE | \r
++                    WS_DISABLED | WS_TABSTOP,18,142,280,18\r
++    DEFPUSHBUTTON   "OK",IDOK,202,168,50,14,WS_GROUP\r
++    PUSHBUTTON      "Cancel",IDCANCEL,256,168,50,14,WS_GROUP\r
++END\r
++\r
++\r
++/////////////////////////////////////////////////////////////////////////////\r
++//\r
++// DESIGNINFO\r
++//\r
++\r
++#ifdef APSTUDIO_INVOKED\r
++GUIDELINES DESIGNINFO DISCARDABLE \r
++BEGIN\r
++    100, DIALOG\r
++    BEGIN\r
++        LEFTMARGIN, 7\r
++        RIGHTMARGIN, 301\r
++        TOPMARGIN, 7\r
++        BOTTOMMARGIN, 178\r
++    END\r
++END\r
++#endif    // APSTUDIO_INVOKED\r
++\r
++#endif    // Deutsch (Deutschland) resources\r
++/////////////////////////////////////////////////////////////////////////////\r
++\r
++\r
++\r
++#ifndef APSTUDIO_INVOKED\r
++/////////////////////////////////////////////////////////////////////////////\r
++//\r
++// Generated from the TEXTINCLUDE 3 resource.\r
++//\r
++#include "files.rc2"\r
++/////////////////////////////////////////////////////////////////////////////\r
++#endif    // not APSTUDIO_INVOKED\r
++\r
@@@ -1,5 -1,5 +1,5 @@@
  ; ID line follows -- this is updated by SVN
- ; $Id: WinMerge.iss 7095 2010-01-12 21:45:51Z kimmov $
 -; $Id$
++; $Id: WinMerge.iss 7150 2010-05-04 17:26:43Z kimmov $
  ;
  ;           Programmed by:  Christian Blackburn, Christian List, Kimmo Varis,
  ;                 Purpose:  The is the Inno Setup installation script for distributing our WinmMerge application.
@@@ -92,7 -95,7 +95,7 @@@ DATE:         BY:                                     DESCRIPTION
  */
  
  // ID line follows -- this is updated by SVN
- // $Id: 7zCommon.cpp 7063 2009-12-27 15:28:16Z kimmov $
 -// $Id$
++// $Id: 7zCommon.cpp 7169 2010-05-16 14:44:19Z jtuc $
  
  #include "stdafx.h"
  #include "OptionsDef.h"
@@@ -5,7 -5,7 +5,7 @@@
   *
   */
  // ID line follows -- this is updated by SVN
--// $Id$
++// $Id: AnsiConvert.cpp 7163 2010-05-15 13:20:17Z jtuc $
  
  #include <windows.h>
  
@@@ -21,7 -21,7 +21,7 @@@
   * @brief String utilities.
   */
  // ID line follows -- this is updated by SVN
- // $Id: UnicodeString.cpp 7058 2009-12-26 23:11:18Z kimmov $
 -// $Id$
++// $Id: UnicodeString.cpp 7170 2010-05-16 15:19:15Z jtuc $
  
  // String formatting code originally from Paul Senzee:
  // http://www.senzee5.com/2006/05/c-formatting-stdstring.html
@@@ -5,7 -5,7 +5,7 @@@
   *
   */
  // ID line follows -- this is updated by SVN
- // $Id: coretools.cpp 6699 2009-04-23 19:28:00Z kimmov $
 -// $Id$
++// $Id: coretools.cpp 7168 2010-05-16 13:45:23Z jtuc $
  
  #include <windows.h>
  #include <tchar.h>
@@@ -4,7 -4,7 +4,7 @@@
   * @brief Implementation file for TimeSizeCompare
   */
  // ID line follows -- this is updated by SVN
- // $Id: TimeSizeCompare.cpp 6932 2009-07-26 14:04:31Z kimmov $
 -// $Id$
++// $Id: TimeSizeCompare.cpp 7153 2010-05-04 18:11:48Z kimmov $
  
  #include "stdafx.h"
  #include "DiffItem.h"
@@@ -40,42 -40,41 +40,41 @@@ void TimeSizeCompare::SetAdditionalOpti
   */
  int TimeSizeCompare::CompareFiles(int compMethod, const DIFFITEM &di)
  {
-       UINT code = 0;
-       // Compare by modified date
-       // Check that we have both filetimes
-       if (di.diffFileInfo[0].mtime != 0 && di.diffFileInfo[1].mtime != 0)
+       UINT code = DIFFCODE::SAME;
+       if ((compMethod == CMP_DATE) || (compMethod == CMP_DATE_SIZE))
        {
-               INT64 nTimeDiff = di.diffFileInfo[0].mtime - di.diffFileInfo[1].mtime;
-               // Remove sign
-               nTimeDiff = (nTimeDiff > 0 ? nTimeDiff : -nTimeDiff);
-               if (m_ignoreSmallDiff)
+               // Compare by modified date
+               // Check that we have both filetimes
 -              if (di.left.mtime != 0 && di.right.mtime != 0)
++              if (di.diffFileInfo[0].mtime != 0 && di.diffFileInfo[1].mtime != 0)
                {
-                       // If option to ignore small timediffs (couple of seconds)
-                       // is set, decrease absolute difference by allowed diff
-                       nTimeDiff -= SmallTimeDiff;
 -                      INT64 nTimeDiff =_abs64(di.left.mtime - di.right.mtime);
++                      INT64 nTimeDiff =_abs64( di.diffFileInfo[0].mtime - di.diffFileInfo[1].mtime);
+                       if (m_ignoreSmallDiff)
+                       {
+                               // If option to ignore small timediffs (couple of seconds)
+                               // is set, decrease absolute difference by allowed diff
+                               nTimeDiff -= SmallTimeDiff;
+                       }
+                       if (nTimeDiff <= 0)
+                               code = DIFFCODE::SAME;
+                       else
+                               code = DIFFCODE::DIFF;
                }
-               if (nTimeDiff <= 0)
-                       code = DIFFCODE::SAME;
-               else
-                       code = DIFFCODE::DIFF;
-       }
-       else
-       {
-               // Filetimes for item(s) could not be read. So we have to
-               // set error status, unless we have DATE_SIZE -compare
-               // when we have still hope for size compare..
-               if (compMethod == CMP_DATE_SIZE)
-                       code = DIFFCODE::SAME;
                else
-                       code = DIFFCODE::CMPERR;
+               {
+                       // Filetimes for item(s) could not be read. So we have to
+                       // set error status, unless we have DATE_SIZE -compare
+                       // when we have still hope for size compare..
+                       if (compMethod == CMP_DATE_SIZE)
+                               code = DIFFCODE::SAME;
+                       else
+                               code = DIFFCODE::CMPERR;
+               }
        }
-       // This is actual CMP_DATE_SIZE method..
+       // This is actual CMP_SIZE method..
        // If file sizes differ mark them different
-       if (compMethod == CMP_DATE_SIZE)
+       if ((compMethod == CMP_DATE_SIZE) || (compMethod == CMP_SIZE))
        {
 -              if (di.left.size != di.right.size)
 +              if (di.diffFileInfo[0].size != di.diffFileInfo[1].size)
                {
                        code &= ~DIFFCODE::SAME;
                        code = DIFFCODE::DIFF;
@@@ -6,7 -6,7 +6,7 @@@
   * @date  Created: 2003-08-22
   */
  // ID line follows -- this is updated by SVN
- // $Id: DiffFileData.cpp 6899 2009-07-05 14:22:19Z kimmov $
 -// $Id$
++// $Id: DiffFileData.cpp 7162 2010-05-15 13:14:27Z jtuc $
  
  #include "stdafx.h"
  #include <io.h>
@@@ -4,7 -4,7 +4,7 @@@
   * @brief Implementation of FileTextEncoding structure
   */
  // ID line follows -- this is updated by SVN
- // $Id: FileTextEncoding.cpp 5621 2008-07-15 19:44:58Z kimmov $
 -// $Id$
++// $Id: FileTextEncoding.cpp 7172 2010-05-19 12:57:18Z jtuc $
  
  #include "stdafx.h"
  #include "unicoder.h"
@@@ -4,7 -4,7 +4,7 @@@
   * @brief Declaration of FileTextEncoding structure
   */
  // ID line follows -- this is updated by SVN
--// $Id$
++// $Id: FileTextEncoding.h 7172 2010-05-19 12:57:18Z jtuc $
  
  #ifndef FileTextEncoding_h_included
  #define FileTextEncoding_h_included
@@@ -4,7 -4,7 +4,7 @@@
   * @brief Implementation file for FilterList.
   */
  // ID line follows -- this is updated by SVN
- // $Id: FilterList.cpp 6687 2009-04-21 14:12:15Z kimmov $
 -// $Id$
++// $Id: FilterList.cpp 7164 2010-05-15 13:57:32Z jtuc $
  
  #include <windows.h>
  #include <vector>
@@@ -25,7 -25,7 +25,7 @@@
   *
   */
  // ID line follows -- this is updated by SVN
- // $Id: HexMergeDoc.cpp 6836 2009-06-09 22:01:48Z kimmov $
 -// $Id$
++// $Id: HexMergeDoc.cpp 7166 2010-05-16 12:05:13Z jtuc $
  
  #include "stdafx.h"
  #include <afxinet.h>
@@@ -154,9 -144,10 +154,12 @@@ END_MESSAGE_MAP(
  CHexMergeDoc::CHexMergeDoc()
  : m_pDirDoc(NULL)
  {
 -      m_pView[MERGE_VIEW_LEFT] = NULL;
 -      m_pView[MERGE_VIEW_RIGHT] = NULL;
 -      m_nBufferType[0] = BUFFER_NORMAL;
 -      m_nBufferType[1] = BUFFER_NORMAL;
 +      m_nBuffers = m_nBuffersTemp;
 +      for (int nBuffer = 0; nBuffer < m_nBuffers; nBuffer++)
++      {
 +              m_pView[nBuffer] = NULL;
++              m_nBufferType[nBuffer] = BUFFER_NORMAL;
++      }
  }
  
  /**
@@@ -485,30 -414,48 +488,53 @@@ BOOL CHexMergeDoc::CloseNow(
  }
  
  /**
+ * @brief Load one file
+ */
+ HRESULT CHexMergeDoc::LoadOneFile(int index, LPCTSTR filename, BOOL readOnly)
+ {
+       if (Try(m_pView[index]->LoadFile(filename), MB_ICONSTOP) != 0)
+               return E_FAIL;
+       m_pView[index]->SetReadOnly(readOnly);
+       m_filePaths.SetPath(index, filename);
+       ASSERT(m_nBufferType[index] == BUFFER_NORMAL); // should have been initialized to BUFFER_NORMAL in constructor
+       String strDesc = GetMainFrame()->m_strDescriptions[index];
+       if (!strDesc.empty())
+       {
+               m_strDesc[index] = strDesc;
+               m_nBufferType[index] = BUFFER_NORMAL_NAMED;
+       }
+       UpdateHeaderPath(index);
+       m_pView[index]->ResizeWindow();
+       return S_OK;
+ }
+ /**
   * @brief Load files and initialize frame's compare result icon
   */
 -HRESULT CHexMergeDoc::OpenDocs(LPCTSTR pathLeft, LPCTSTR pathRight, BOOL bROLeft, BOOL bRORight)
 +HRESULT CHexMergeDoc::OpenDocs(const PathContext &paths, BOOL bRO[])
  {
 -      if (SUCCEEDED(hr = LoadOneFile(MERGE_VIEW_LEFT, pathLeft, bROLeft)) &&
 -              SUCCEEDED(hr = LoadOneFile(MERGE_VIEW_RIGHT, pathRight, bRORight)))
+       HRESULT hr;
-               String &path = paths.GetPath(nBuffer);
-               if (Try(m_pView[nBuffer]->LoadFile(path.c_str()), MB_ICONSTOP) == 0)
-               {
-                       m_pView[nBuffer]->SetReadOnly(bRO[nBuffer]);
-                       m_filePaths.SetPath(nBuffer, path.c_str());
-                       m_strDesc[nBuffer] = path;
-               }
 +      int nBuffer;
 +      for (nBuffer = 0; nBuffer < m_nBuffers; nBuffer++)
 +      {
-       for (nBuffer = 0; nBuffer < m_nBuffers; nBuffer++)
++              if (FAILED(hr = LoadOneFile(nBuffer, paths.GetPath(nBuffer).c_str(), bRO[nBuffer])))
++                      break;
 +      }
++      if (nBuffer == m_nBuffers)
        {
-               UpdateHeaderPath(nBuffer);
-               m_pView[nBuffer]->ResizeWindow();
+               UpdateDiffItem(0);
+               if (GetOptionsMgr()->GetBool(OPT_SCROLL_TO_FIRST))
 -                      m_pView[MERGE_VIEW_LEFT]->SendMessage(WM_COMMAND, ID_FIRSTDIFF);
++                      m_pView[0]->SendMessage(WM_COMMAND, ID_FIRSTDIFF);
        }
-       UpdateDiffItem(0);
-       if (GetOptionsMgr()->GetBool(OPT_SCROLL_TO_FIRST))
-               m_pView[0]->SendMessage(WM_COMMAND, ID_FIRSTDIFF);
-       return S_OK;
+       else
+       {
+               if (CFrameWnd *pFrame = GetParentFrame())
+               {
+                       // Use verify macro to trap possible error in debug.
+                       VERIFY(pFrame->DestroyWindow());
+               }
+       }
+       return hr;
  }
  
  /**
@@@ -23,7 -23,7 +23,7 @@@
   * @brief Declaration of CHexMergeDoc class
   */
  // RCS ID line follows -- this is updated by CVS
- // $Id: HexMergeDoc.h 6166 2008-12-14 18:25:09Z jtuc $
 -// $Id$
++// $Id: HexMergeDoc.h 7166 2010-05-16 12:05:13Z jtuc $
  
  #include "TempFile.h"
  #include "PathContext.h"
@@@ -73,19 -71,18 +73,20 @@@ public
        BOOL CloseNow();
        CHexMergeFrame * GetParentFrame();
        void UpdateHeaderPath(int pane);
 -      HRESULT OpenDocs(LPCTSTR pathLeft, LPCTSTR pathRight, BOOL bROLeft, BOOL bRORight);
 +      HRESULT OpenDocs(const PathContext &paths, BOOL bRO[]);
- protected:
+ private:
        static void CopySel(CHexMergeView *pViewSrc, CHexMergeView *pViewDst);
        static void CopyAll(CHexMergeView *pViewSrc, CHexMergeView *pViewDst);
 +      void DoFileSave(int nBuffer);
 +      void DoFileSaveAs(int nBuffer);
+       HRESULT LoadOneFile(int index, LPCTSTR filename, BOOL readOnly);
  // Implementation data
  protected:
 -      CHexMergeView * m_pView[MERGE_VIEW_COUNT]; /**< Pointer to left/right view */
 +      CHexMergeView * m_pView[3]; /**< Pointer to left/right view */
        CDirDoc * m_pDirDoc;
 -      TempFile m_tempFiles[2]; /**< Temp files for compared files */
 -      String m_strDesc[2]; /**< Left/right side description text */
 -      BUFFERTYPE m_nBufferType[2];
 +      TempFile m_tempFiles[3]; /**< Temp files for compared files */
 +      String m_strDesc[3]; /**< Left/right side description text */
 +      BUFFERTYPE m_nBufferType[3];
  
  // Generated message map functions
  protected:
@@@ -25,7 -25,7 +25,7 @@@
   *
   */
  // ID line follows -- this is updated by SVN
- // $Id: HexMergeFrm.cpp 6653 2009-04-12 09:30:35Z jtuc $
 -// $Id$
++// $Id: HexMergeFrm.cpp 7166 2010-05-16 12:05:13Z jtuc $
  
  #include "stdafx.h"
  #include "Merge.h"
@@@ -24,7 -24,7 +24,7 @@@
   *
   */
  // ID line follows -- this is updated by SVN
- // $Id: HexMergeFrm.h 6653 2009-04-12 09:30:35Z jtuc $
 -// $Id$
++// $Id: HexMergeFrm.h 7166 2010-05-16 12:05:13Z jtuc $
  
  #include "SplitterWndEx.h"
  #include "EditorFilepathBar.h"
@@@ -25,7 -25,7 +25,7 @@@
   *
   */
  // ID line follows -- this is updated by SVN
--// $Id$
++// $Id: HexMergeView.cpp 7165 2010-05-15 14:04:43Z jtuc $
  
  #include "stdafx.h"
  #include "Merge.h"
@@@ -6,7 -6,7 +6,7 @@@
   *
   */
  // ID line follows -- this is updated by SVN
- // $Id: MergeDiffDetailView.cpp 6732 2009-05-12 07:21:01Z kimmov $
 -// $Id$
++// $Id: MergeDiffDetailView.cpp 7137 2010-04-23 17:34:32Z kimmov $
  //
  //////////////////////////////////////////////////////////////////////
  
@@@ -200,7 -194,7 +200,7 @@@ int CMergeDiffDetailView::GetAdditional
                return 0;
  
        DWORD dwLineFlags = GetLineFlags(nLineIndex);
-       if ((dwLineFlags & LF_SNP) == LF_SNP || (dwLineFlags & LF_DIFF) != LF_DIFF || (dwLineFlags & LF_MOVED) == LF_MOVED)
 -      if ((dwLineFlags & LF_DIFF) != LF_DIFF)
++      if ((dwLineFlags & LF_SNP) == LF_SNP || (dwLineFlags & LF_DIFF) != LF_DIFF)
                return 0; // No diff
  
        if (!GetOptionsMgr()->GetBool(OPT_WORDDIFF_HIGHLIGHT))
@@@ -24,7 -24,7 +24,7 @@@
   * @brief Implementation of the CMergeEditView class
   */
  // ID line follows -- this is updated by SVN
- // $Id: MergeEditView.cpp 7086 2010-01-09 13:38:25Z kimmov $
 -// $Id$
++// $Id: MergeEditView.cpp 7142 2010-04-28 17:05:50Z kimmov $
  
  #include "StdAfx.h"
  #include <vector>
@@@ -373,12 -334,10 +373,12 @@@ void CMergeEditView::OnActivateView(BOO
        pDoc->UpdateHeaderActivity(m_nThisPane, bActivate != FALSE);
  }
  
 -int CMergeEditView::GetAdditionalTextBlocks (int nLineIndex, TEXTBLOCK *pBuf)
 +int CMergeEditView::GetAdditionalTextBlocks (int nLineIndex, TEXTBLOCK *&pBuf)
  {
 +      pBuf = NULL;
 +
        DWORD dwLineFlags = GetLineFlags(nLineIndex);
-       if ((dwLineFlags & LF_SNP) == LF_SNP || (dwLineFlags & LF_DIFF) != LF_DIFF || (dwLineFlags & LF_MOVED) == LF_MOVED)
 -      if ((dwLineFlags & LF_DIFF) != LF_DIFF)
++      if ((dwLineFlags & LF_SNP) == LF_SNP || (dwLineFlags & LF_DIFF) != LF_DIFF)
                return 0;
  
        if (!GetOptionsMgr()->GetBool(OPT_WORDDIFF_HIGHLIGHT))
@@@ -2692,18 -2092,26 +2692,11 @@@ void CMergeEditView::OnContextMenu(CWnd
  }
  
  /**
 - * @brief Update left EOL mode in status bar.
 + * @brief Update EOL mode in status bar
   */
 -void CMergeEditView::OnUpdateStatusLeftEOL(CCmdUI* pCmdUI)
 +void CMergeEditView::OnUpdateStatusEOL(CCmdUI* pCmdUI)
  {
 -      GetDocument()->GetLeftView()->OnUpdateIndicatorCRLF(pCmdUI);
 -}
 -
 -/**
 - * @brief Update right EOL mode in status bar.
 - */
 -void CMergeEditView::OnUpdateStatusRightEOL(CCmdUI* pCmdUI)
 -{
--      if (GetOptionsMgr()->GetBool(OPT_ALLOW_MIXED_EOL) ||
-                       GetDocument()->IsMixedEOL(pCmdUI->m_nID - ID_STATUS_PANE0FILE_EOL))
 -                      GetDocument()->IsMixedEOL(1))
--      {
--              String eol = LoadResString(IDS_EOL_MIXED);
--              pCmdUI->SetText(eol.c_str());
--      }
--      else
-               GetDocument()->GetView(pCmdUI->m_nID - ID_STATUS_PANE0FILE_EOL)->OnUpdateIndicatorCRLF(pCmdUI);
 -              GetDocument()->GetRightView()->OnUpdateIndicatorCRLF(pCmdUI);
++      GetDocument()->GetView(pCmdUI->m_nID - ID_STATUS_PANE0FILE_EOL)->OnUpdateIndicatorCRLF(pCmdUI);
  }
  
  /**
@@@ -5,7 -5,7 +5,7 @@@
   *
   */
  // ID line follows -- this is updated by SVN
- // $Id: codepage_detect.cpp 5584 2008-07-09 12:09:56Z kimmov $
 -// $Id$
++// $Id: codepage_detect.cpp 7172 2010-05-19 12:57:18Z jtuc $
  
  #include "StdAfx.h"
  #include <shlwapi.h>
@@@ -262,10 -224,14 +263,12 @@@ void GuessCodepageEncoding(LPCTSTR file
                encoding->m_bom = true;
                break;
        default:
 -              if (fi.pImage && !CheckForInvalidUtf8((LPBYTE)fi.pImage, fi.cbImage))
 -                      encoding->SetUnicoding(ucr::UTF8);
+               encoding->m_bom = false;
+               if (memchr(fi.pImage, 0, fi.cbImage))
+                       encoding->m_binary = true;
                break;
        }
 -      if (fi.nByteOrder == 1 && bGuessEncoding)
 +      if (fi.nByteOrder < 4 && guessEncodingType != 0)
        {
                LPCTSTR ext = PathFindExtension(filepath);
                const char *src = (char *)fi.pImage;
@@@ -4,8 -4,8 +4,8 @@@
   * @brief Implementation file for sd_ComputeWordDiffs (q.v.)
   *
   */
 -// ID line follows -- this is updated by SVN
 -// $Id$
 +// RCS ID line follows -- this is updated by CVS
- // $Id: stringdiffs.cpp 7047 2009-12-21 19:08:49Z kimmov $
++// $Id: stringdiffs.cpp 7149 2010-05-03 17:08:20Z kimmov $
  
  #include <windows.h>
  #include <tchar.h>
@@@ -8,7 -8,7 +8,7 @@@ msgid "
  msgstr ""
  "Project-Id-Version: WinMerge\n"
  "Report-Msgid-Bugs-To: http://bugs.winmerge.org/\n"
- "POT-Creation-Date: 2010-04-18 21:01+0000\n"
 -"POT-Creation-Date: 2010-04-28 20:51+0000\n"
++"POT-Creation-Date: 2010-05-23 21:07+0000\n"
  "PO-Revision-Date: \n"
  "Last-Translator: \n"
  "Language-Team: English <winmerge-translate@lists.sourceforge.net>\n"