OSDN Git Service

PATCH: [ 1264723 ] Merge7z DllBuild 0013
authorJochen Tucht <jtuc@users.sourceforge.net>
Tue, 23 Aug 2005 16:04:27 +0000 (16:04 +0000)
committerJochen Tucht <jtuc@users.sourceforge.net>
Tue, 23 Aug 2005 16:04:27 +0000 (16:04 +0000)
12 files changed:
ArchiveSupport/Merge7z/Merge7z.h
ArchiveSupport/Merge7z/Merge7z423.dsp [new file with mode: 0755]
ArchiveSupport/Merge7z/Merge7z424.dsp [new file with mode: 0755]
ArchiveSupport/Merge7z/Merge7z425.dsp [new file with mode: 0755]
ArchiveSupport/Merge7z/Merge7z426.dsp [new file with mode: 0755]
ArchiveSupport/Merge7z/Merge7zCommon.cpp
ArchiveSupport/Merge7z/Merge7zCommon.h
ArchiveSupport/Merge7z/StdAfx.h
ArchiveSupport/Merge7z/revision.txt
ArchiveSupport/Merge7z/tools.cpp
ArchiveSupport/Merge7z/tools.h
Src/readme.txt

index 61d59e4..daf005f 100755 (executable)
 #define DLLPSTUB /##/
 #endif
 
+#if DllBuild_Merge7z >= 13
+#define DllBuild_Merge7z_13 public
+#else
+#define DllBuild_Merge7z_13 private
+#endif
+
 interface Merge7z
 {
        struct Proxy
@@ -30,6 +36,8 @@ interface Merge7z
                {
                        Unicode = 1,
                        Local7z = 2,
+                       GuessFormatBySignature = 4,
+                       GuessFormatByExtension = 8,
                        Default = sizeof(TCHAR) == sizeof(WCHAR) ? Unicode : 0
                };
        };
@@ -116,4 +124,10 @@ interface Merge7z
        virtual Format *GuessFormat(LPCTSTR);
 DllBuild_Merge7z_9:
        virtual LPCTSTR LoadLang(LPCTSTR);
+DllBuild_Merge7z_13:
+       virtual Format *GuessFormatByExtension(LPCTSTR);
+       virtual Format *GuessFormatBySignature(LPCTSTR, LPCTSTR extension = 0);
+       virtual Format *GuessFormatEx(LPCSTR ext, LPCH sig, int cbSig);
+       virtual LPCSTR GetExtension(LPCTSTR, LPSTR);
+       virtual DWORD GetSignature(LPCTSTR, LPCH);
 };
diff --git a/ArchiveSupport/Merge7z/Merge7z423.dsp b/ArchiveSupport/Merge7z/Merge7z423.dsp
new file mode 100755 (executable)
index 0000000..cf520ab
--- /dev/null
@@ -0,0 +1,565 @@
+# Microsoft Developer Studio Project File - Name="Merge7z423" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** NICHT BEARBEITEN **
+
+# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
+
+CFG=Merge7z423 - Win32 UnicodeDebug
+!MESSAGE Dies ist kein gültiges Makefile. Zum Erstellen dieses Projekts mit NMAKE
+!MESSAGE verwenden Sie den Befehl "Makefile exportieren" und führen Sie den Befehl
+!MESSAGE 
+!MESSAGE NMAKE /f "Merge7z423.mak".
+!MESSAGE 
+!MESSAGE Sie können beim Ausführen von NMAKE eine Konfiguration angeben
+!MESSAGE durch Definieren des Makros CFG in der Befehlszeile. Zum Beispiel:
+!MESSAGE 
+!MESSAGE NMAKE /f "Merge7z423.mak" CFG="Merge7z423 - Win32 UnicodeDebug"
+!MESSAGE 
+!MESSAGE Für die Konfiguration stehen zur Auswahl:
+!MESSAGE 
+!MESSAGE "Merge7z423 - Win32 Release" (basierend auf  "Win32 (x86) Dynamic-Link Library")
+!MESSAGE "Merge7z423 - Win32 Debug" (basierend auf  "Win32 (x86) Dynamic-Link Library")
+!MESSAGE "Merge7z423 - Win32 UnicodeDebug" (basierend auf  "Win32 (x86) Dynamic-Link Library")
+!MESSAGE "Merge7z423 - Win32 UnicodeRelease" (basierend auf  "Win32 (x86) Dynamic-Link Library")
+!MESSAGE 
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+MTL=midl.exe
+RSC=rc.exe
+
+!IF  "$(CFG)" == "Merge7z423 - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release"
+# PROP BASE Intermediate_Dir "Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "..\BuildTmp\Merge7z423___Win32_Release"
+# PROP Intermediate_Dir "..\BuildTmp\Merge7z423___Win32_Release"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "MERGE7Z310_EXPORTS" /YX /FD /c
+# ADD CPP /nologo /MT /W3 /GX /O1 /I "..\..\..\7z423" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "Merge7z423_EXPORTS" /FR /Yu"stdafx.h" /FD /c
+# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+# ADD BASE RSC /l 0x407 /d "NDEBUG"
+# ADD RSC /l 0x407 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
+# ADD 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/Merge7z423.dll"
+
+!ELSEIF  "$(CFG)" == "Merge7z423 - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "Debug"
+# PROP BASE Intermediate_Dir "Debug"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "..\BuildTmp\Merge7z423___Win32_Debug"
+# PROP Intermediate_Dir "..\BuildTmp\Merge7z423___Win32_Debug"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# 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
+# ADD CPP /nologo /MTd /W3 /vd0 /GX /Z7 /Od /I "..\..\..\7z423" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "Merge7z423_EXPORTS" /FR /Yu"stdafx.h" /FD /GZ /c
+# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
+# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
+# ADD BASE RSC /l 0x407 /d "_DEBUG"
+# ADD RSC /l 0x407 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
+# ADD 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 /incremental:no /pdb:"../Build/MergeDebug/Merge7z423.pdb" /debug /machine:I386 /out:"../Build/MergeDebug/Merge7z423.dll"
+# SUBTRACT LINK32 /pdb:none /map
+
+!ELSEIF  "$(CFG)" == "Merge7z423 - Win32 UnicodeDebug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "..\BuildTmp\Merge7z423___Win32_UnicodeDebug"
+# PROP BASE Intermediate_Dir "..\BuildTmp\Merge7z423___Win32_UnicodeDebug"
+# PROP BASE Ignore_Export_Lib 0
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "..\BuildTmp\Merge7z423___Win32_UnicodeDebug"
+# PROP Intermediate_Dir "..\BuildTmp\Merge7z423___Win32_UnicodeDebug"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /MTd /W3 /vd0 /GX /Z7 /Od /I "..\..\..\7z423" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "MERGE7Z310_EXPORTS" /FR /Yu"stdafx.h" /FD /GZ /c
+# ADD CPP /nologo /MTd /W3 /vd0 /GX /Z7 /Od /I "..\..\..\7z423" /D "Merge7z423_EXPORTS" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_USRDLL" /D "UNICODE" /D "_UNICODE" /FR /Yu"stdafx.h" /FD /GZ /c
+# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
+# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
+# ADD BASE RSC /l 0x407 /d "_DEBUG"
+# ADD RSC /l 0x407 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib 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/Merge7z423.dll"
+# ADD 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 /incremental:no /pdb:"../Build/MergeUnicodeDebug/Merge7z423U.pdb" /debug /machine:I386 /out:"../Build/MergeUnicodeDebug/Merge7z423U.dll"
+# SUBTRACT LINK32 /pdb:none /map
+
+!ELSEIF  "$(CFG)" == "Merge7z423 - Win32 UnicodeRelease"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "..\BuildTmp\Merge7z423___Win32_UnicodeRelease"
+# PROP BASE Intermediate_Dir "..\BuildTmp\Merge7z423___Win32_UnicodeRelease"
+# PROP BASE Ignore_Export_Lib 0
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "..\BuildTmp\Merge7z423___Win32_UnicodeRelease"
+# PROP Intermediate_Dir "..\BuildTmp\Merge7z423___Win32_UnicodeRelease"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /MT /W3 /GX /O2 /I "..\..\..\7z423" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "MERGE7Z310_EXPORTS" /Yu"stdafx.h" /FD /c
+# ADD CPP /nologo /MT /W3 /GX /O1 /I "..\..\..\7z423" /D "Merge7z423_EXPORTS" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_USRDLL" /D "UNICODE" /D "_UNICODE" /Yu"stdafx.h" /FD /c
+# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+# ADD BASE RSC /l 0x407 /d "NDEBUG"
+# ADD RSC /l 0x407 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shlwapi.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /pdb:none /machine:I386 /out:"../Build/MergeRelease/Merge7z423.dll"
+# ADD 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/MergeUnicodeRelease/Merge7z423U.dll"
+
+!ENDIF 
+
+# Begin Target
+
+# Name "Merge7z423 - Win32 Release"
+# Name "Merge7z423 - Win32 Debug"
+# Name "Merge7z423 - Win32 UnicodeDebug"
+# Name "Merge7z423 - Win32 UnicodeRelease"
+# Begin Group "Quellcodedateien"
+
+# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+# Begin Source File
+
+SOURCE=.\Merge7z.def
+# End Source File
+# Begin Source File
+
+SOURCE=.\Merge7z.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\Merge7z409.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\Merge7zCommon.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\Merge7zCommon.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\StdAfx.cpp
+# ADD CPP /Yc"stdafx.h"
+# End Source File
+# Begin Source File
+
+SOURCE=.\StdAfx.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\tools.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\tools.h
+# End Source File
+# End Group
+# Begin Group "Header-Dateien"
+
+# PROP Default_Filter "h;hpp;hxx;hm;inl"
+# End Group
+# Begin Group "Ressourcendateien"
+
+# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
+# Begin Source File
+
+SOURCE=..\..\..\7z423\7zip\Ui\Gui\FM.ico
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z423\7zip\UI\GUI\resource.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z423\7zip\Ui\Gui\resource.rc
+# End Source File
+# End Group
+# Begin Group "Windows"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=..\..\..\7z423\Windows\DLL.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z423\Windows\DLL.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z423\Windows\Error.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z423\Windows\Error.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z423\Windows\FileIO.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z423\Windows\FileIO.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z423\Windows\PropVariant.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z423\Windows\PropVariant.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z423\Windows\PropVariantConversions.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z423\Windows\PropVariantConversions.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z423\Windows\ResourceString.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z423\Windows\ResourceString.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z423\Windows\Synchronization.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z423\Windows\Synchronization.h
+# End Source File
+# End Group
+# Begin Group "Common"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=..\..\..\7z423\Common\IntToString.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z423\Common\IntToString.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z423\Common\Lang.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z423\Common\Lang.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z423\Common\StdInStream.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z423\Common\StdInStream.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z423\Common\String.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z423\Common\String.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z423\Common\StringConvert.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z423\Common\StringConvert.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z423\Common\TextConfig.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z423\Common\TextConfig.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z423\Common\UTFConvert.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z423\Common\UTFConvert.h
+# End Source File
+# End Group
+# Begin Group "7zip Common"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=..\..\..\7z423\7zip\Ui\Common\ArchiveExtractCallback.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z423\7zip\UI\Common\ArchiveExtractCallback.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z423\7zip\UI\Common\ArchiveOpenCallback.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z423\7zip\UI\Common\ArchiveOpenCallback.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z423\7zip\UI\Common\ArchiverInfo.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z423\7zip\UI\Common\ArchiverInfo.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z423\7zip\UI\Common\DefaultName.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z423\7zip\UI\Common\DefaultName.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z423\Windows\Control\Dialog.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z423\Windows\Control\Dialog.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z423\7zip\FileManager\ExtractCallback.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z423\7zip\FileManager\ExtractCallback.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z423\7zip\Common\FileStreams.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z423\7zip\Common\FileStreams.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z423\7zip\FileManager\FormatUtils.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z423\7zip\FileManager\FormatUtils.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z423\7zip\FileManager\LangUtils.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z423\7zip\FileManager\LangUtils.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z423\7zip\FileManager\Resource\MessagesDialog\MessagesDialog.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z423\7zip\UI\Common\OpenArchive.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z423\7zip\UI\Common\OpenArchive.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z423\7zip\FileManager\OpenCallback.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z423\7zip\FileManager\OpenCallback.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z423\7zip\FileManager\Resource\OverwriteDialog\OverwriteDialog.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z423\7zip\FileManager\Resource\PasswordDialog\PasswordDialog.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z423\7zip\FileManager\Resource\PasswordDialog\PasswordDialog.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z423\7zip\FileManager\ProgramLocation.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z423\7zip\FileManager\ProgramLocation.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z423\7zip\FileManager\Resource\ProgressDialog2\ProgressDialog.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z423\7zip\FileManager\Resource\ProgressDialog2\ProgressDialog.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z423\Windows\Registry.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z423\Windows\Registry.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z423\7zip\FileManager\RegistryUtils.cpp
+# PROP Exclude_From_Build 1
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z423\7zip\FileManager\RegistryUtils.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z423\7zip\UI\Common\UpdateCallback.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z423\7zip\UI\Common\UpdateCallback.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z423\7zip\UI\GUI\UpdateCallbackGUI.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z423\7zip\UI\GUI\UpdateCallbackGUI.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z423\Windows\Window.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z423\Windows\Window.h
+# End Source File
+# End Group
+# Begin Group "Extract"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=..\..\..\7z423\7zip\Ui\Common\ExtractingFilePath.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z423\7zip\UI\Common\ExtractingFilePath.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z423\Windows\FileDir.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z423\Windows\FileDir.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z423\Windows\FileFind.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z423\Windows\FileFind.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z423\Windows\FileName.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z423\Windows\FileName.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z423\7zip\Common\FilePathAutoRename.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z423\7zip\Common\FilePathAutoRename.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z423\Common\Vector.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z423\Common\Vector.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z423\Common\Wildcard.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z423\Common\Wildcard.h
+# End Source File
+# End Group
+# Begin Source File
+
+SOURCE=..\..\..\7z423\7zip\Ui\Gui\7zG.exe.manifest
+# End Source File
+# Begin Source File
+
+SOURCE=.\revision.txt
+# End Source File
+# End Target
+# End Project
diff --git a/ArchiveSupport/Merge7z/Merge7z424.dsp b/ArchiveSupport/Merge7z/Merge7z424.dsp
new file mode 100755 (executable)
index 0000000..daa39f3
--- /dev/null
@@ -0,0 +1,565 @@
+# Microsoft Developer Studio Project File - Name="Merge7z424" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** NICHT BEARBEITEN **
+
+# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
+
+CFG=Merge7z424 - Win32 UnicodeDebug
+!MESSAGE Dies ist kein gültiges Makefile. Zum Erstellen dieses Projekts mit NMAKE
+!MESSAGE verwenden Sie den Befehl "Makefile exportieren" und führen Sie den Befehl
+!MESSAGE 
+!MESSAGE NMAKE /f "Merge7z424.mak".
+!MESSAGE 
+!MESSAGE Sie können beim Ausführen von NMAKE eine Konfiguration angeben
+!MESSAGE durch Definieren des Makros CFG in der Befehlszeile. Zum Beispiel:
+!MESSAGE 
+!MESSAGE NMAKE /f "Merge7z424.mak" CFG="Merge7z424 - Win32 UnicodeDebug"
+!MESSAGE 
+!MESSAGE Für die Konfiguration stehen zur Auswahl:
+!MESSAGE 
+!MESSAGE "Merge7z424 - Win32 Release" (basierend auf  "Win32 (x86) Dynamic-Link Library")
+!MESSAGE "Merge7z424 - Win32 Debug" (basierend auf  "Win32 (x86) Dynamic-Link Library")
+!MESSAGE "Merge7z424 - Win32 UnicodeDebug" (basierend auf  "Win32 (x86) Dynamic-Link Library")
+!MESSAGE "Merge7z424 - Win32 UnicodeRelease" (basierend auf  "Win32 (x86) Dynamic-Link Library")
+!MESSAGE 
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+MTL=midl.exe
+RSC=rc.exe
+
+!IF  "$(CFG)" == "Merge7z424 - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release"
+# PROP BASE Intermediate_Dir "Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "..\BuildTmp\Merge7z424___Win32_Release"
+# PROP Intermediate_Dir "..\BuildTmp\Merge7z424___Win32_Release"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "MERGE7Z310_EXPORTS" /YX /FD /c
+# ADD CPP /nologo /MT /W3 /GX /O1 /I "..\..\..\7z424" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "Merge7z424_EXPORTS" /FR /Yu"stdafx.h" /FD /c
+# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+# ADD BASE RSC /l 0x407 /d "NDEBUG"
+# ADD RSC /l 0x407 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
+# ADD 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/Merge7z424.dll"
+
+!ELSEIF  "$(CFG)" == "Merge7z424 - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "Debug"
+# PROP BASE Intermediate_Dir "Debug"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "..\BuildTmp\Merge7z424___Win32_Debug"
+# PROP Intermediate_Dir "..\BuildTmp\Merge7z424___Win32_Debug"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# 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
+# ADD CPP /nologo /MTd /W3 /vd0 /GX /Z7 /Od /I "..\..\..\7z424" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "Merge7z424_EXPORTS" /FR /Yu"stdafx.h" /FD /GZ /c
+# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
+# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
+# ADD BASE RSC /l 0x407 /d "_DEBUG"
+# ADD RSC /l 0x407 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
+# ADD 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 /incremental:no /pdb:"../Build/MergeDebug/Merge7z424.pdb" /debug /machine:I386 /out:"../Build/MergeDebug/Merge7z424.dll"
+# SUBTRACT LINK32 /pdb:none /map
+
+!ELSEIF  "$(CFG)" == "Merge7z424 - Win32 UnicodeDebug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "..\BuildTmp\Merge7z424___Win32_UnicodeDebug"
+# PROP BASE Intermediate_Dir "..\BuildTmp\Merge7z424___Win32_UnicodeDebug"
+# PROP BASE Ignore_Export_Lib 0
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "..\BuildTmp\Merge7z424___Win32_UnicodeDebug"
+# PROP Intermediate_Dir "..\BuildTmp\Merge7z424___Win32_UnicodeDebug"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /MTd /W3 /vd0 /GX /Z7 /Od /I "..\..\..\7z424" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "MERGE7Z310_EXPORTS" /FR /Yu"stdafx.h" /FD /GZ /c
+# ADD CPP /nologo /MTd /W3 /vd0 /GX /Z7 /Od /I "..\..\..\7z424" /D "Merge7z424_EXPORTS" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_USRDLL" /D "UNICODE" /D "_UNICODE" /FR /Yu"stdafx.h" /FD /GZ /c
+# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
+# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
+# ADD BASE RSC /l 0x407 /d "_DEBUG"
+# ADD RSC /l 0x407 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib 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/Merge7z424.dll"
+# ADD 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 /incremental:no /pdb:"../Build/MergeUnicodeDebug/Merge7z424U.pdb" /debug /machine:I386 /out:"../Build/MergeUnicodeDebug/Merge7z424U.dll"
+# SUBTRACT LINK32 /pdb:none /map
+
+!ELSEIF  "$(CFG)" == "Merge7z424 - Win32 UnicodeRelease"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "..\BuildTmp\Merge7z424___Win32_UnicodeRelease"
+# PROP BASE Intermediate_Dir "..\BuildTmp\Merge7z424___Win32_UnicodeRelease"
+# PROP BASE Ignore_Export_Lib 0
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "..\BuildTmp\Merge7z424___Win32_UnicodeRelease"
+# PROP Intermediate_Dir "..\BuildTmp\Merge7z424___Win32_UnicodeRelease"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /MT /W3 /GX /O2 /I "..\..\..\7z424" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "MERGE7Z310_EXPORTS" /Yu"stdafx.h" /FD /c
+# ADD CPP /nologo /MT /W3 /GX /O1 /I "..\..\..\7z424" /D "Merge7z424_EXPORTS" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_USRDLL" /D "UNICODE" /D "_UNICODE" /Yu"stdafx.h" /FD /c
+# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+# ADD BASE RSC /l 0x407 /d "NDEBUG"
+# ADD RSC /l 0x407 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shlwapi.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /pdb:none /machine:I386 /out:"../Build/MergeRelease/Merge7z424.dll"
+# ADD 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/MergeUnicodeRelease/Merge7z424U.dll"
+
+!ENDIF 
+
+# Begin Target
+
+# Name "Merge7z424 - Win32 Release"
+# Name "Merge7z424 - Win32 Debug"
+# Name "Merge7z424 - Win32 UnicodeDebug"
+# Name "Merge7z424 - Win32 UnicodeRelease"
+# Begin Group "Quellcodedateien"
+
+# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+# Begin Source File
+
+SOURCE=.\Merge7z.def
+# End Source File
+# Begin Source File
+
+SOURCE=.\Merge7z.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\Merge7z409.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\Merge7zCommon.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\Merge7zCommon.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\StdAfx.cpp
+# ADD CPP /Yc"stdafx.h"
+# End Source File
+# Begin Source File
+
+SOURCE=.\StdAfx.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\tools.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\tools.h
+# End Source File
+# End Group
+# Begin Group "Header-Dateien"
+
+# PROP Default_Filter "h;hpp;hxx;hm;inl"
+# End Group
+# Begin Group "Ressourcendateien"
+
+# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
+# Begin Source File
+
+SOURCE=..\..\..\7z424\7zip\Ui\Gui\FM.ico
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z424\7zip\UI\GUI\resource.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z424\7zip\Ui\Gui\resource.rc
+# End Source File
+# End Group
+# Begin Group "Windows"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=..\..\..\7z424\Windows\DLL.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z424\Windows\DLL.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z424\Windows\Error.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z424\Windows\Error.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z424\Windows\FileIO.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z424\Windows\FileIO.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z424\Windows\PropVariant.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z424\Windows\PropVariant.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z424\Windows\PropVariantConversions.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z424\Windows\PropVariantConversions.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z424\Windows\ResourceString.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z424\Windows\ResourceString.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z424\Windows\Synchronization.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z424\Windows\Synchronization.h
+# End Source File
+# End Group
+# Begin Group "Common"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=..\..\..\7z424\Common\IntToString.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z424\Common\IntToString.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z424\Common\Lang.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z424\Common\Lang.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z424\Common\StdInStream.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z424\Common\StdInStream.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z424\Common\String.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z424\Common\String.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z424\Common\StringConvert.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z424\Common\StringConvert.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z424\Common\TextConfig.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z424\Common\TextConfig.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z424\Common\UTFConvert.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z424\Common\UTFConvert.h
+# End Source File
+# End Group
+# Begin Group "7zip Common"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=..\..\..\7z424\7zip\Ui\Common\ArchiveExtractCallback.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z424\7zip\UI\Common\ArchiveExtractCallback.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z424\7zip\UI\Common\ArchiveOpenCallback.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z424\7zip\UI\Common\ArchiveOpenCallback.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z424\7zip\UI\Common\ArchiverInfo.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z424\7zip\UI\Common\ArchiverInfo.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z424\7zip\UI\Common\DefaultName.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z424\7zip\UI\Common\DefaultName.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z424\Windows\Control\Dialog.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z424\Windows\Control\Dialog.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z424\7zip\FileManager\ExtractCallback.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z424\7zip\FileManager\ExtractCallback.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z424\7zip\Common\FileStreams.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z424\7zip\Common\FileStreams.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z424\7zip\FileManager\FormatUtils.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z424\7zip\FileManager\FormatUtils.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z424\7zip\FileManager\LangUtils.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z424\7zip\FileManager\LangUtils.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z424\7zip\FileManager\Resource\MessagesDialog\MessagesDialog.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z424\7zip\UI\Common\OpenArchive.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z424\7zip\UI\Common\OpenArchive.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z424\7zip\FileManager\OpenCallback.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z424\7zip\FileManager\OpenCallback.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z424\7zip\FileManager\Resource\OverwriteDialog\OverwriteDialog.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z424\7zip\FileManager\Resource\PasswordDialog\PasswordDialog.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z424\7zip\FileManager\Resource\PasswordDialog\PasswordDialog.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z424\7zip\FileManager\ProgramLocation.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z424\7zip\FileManager\ProgramLocation.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z424\7zip\FileManager\Resource\ProgressDialog2\ProgressDialog.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z424\7zip\FileManager\Resource\ProgressDialog2\ProgressDialog.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z424\Windows\Registry.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z424\Windows\Registry.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z424\7zip\FileManager\RegistryUtils.cpp
+# PROP Exclude_From_Build 1
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z424\7zip\FileManager\RegistryUtils.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z424\7zip\UI\Common\UpdateCallback.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z424\7zip\UI\Common\UpdateCallback.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z424\7zip\UI\GUI\UpdateCallbackGUI.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z424\7zip\UI\GUI\UpdateCallbackGUI.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z424\Windows\Window.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z424\Windows\Window.h
+# End Source File
+# End Group
+# Begin Group "Extract"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=..\..\..\7z424\7zip\Ui\Common\ExtractingFilePath.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z424\7zip\UI\Common\ExtractingFilePath.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z424\Windows\FileDir.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z424\Windows\FileDir.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z424\Windows\FileFind.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z424\Windows\FileFind.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z424\Windows\FileName.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z424\Windows\FileName.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z424\7zip\Common\FilePathAutoRename.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z424\7zip\Common\FilePathAutoRename.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z424\Common\Vector.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z424\Common\Vector.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z424\Common\Wildcard.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z424\Common\Wildcard.h
+# End Source File
+# End Group
+# Begin Source File
+
+SOURCE=..\..\..\7z424\7zip\Ui\Gui\7zG.exe.manifest
+# End Source File
+# Begin Source File
+
+SOURCE=.\revision.txt
+# End Source File
+# End Target
+# End Project
diff --git a/ArchiveSupport/Merge7z/Merge7z425.dsp b/ArchiveSupport/Merge7z/Merge7z425.dsp
new file mode 100755 (executable)
index 0000000..53c99ea
--- /dev/null
@@ -0,0 +1,573 @@
+# Microsoft Developer Studio Project File - Name="Merge7z425" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** NICHT BEARBEITEN **
+
+# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
+
+CFG=Merge7z425 - Win32 UnicodeDebug
+!MESSAGE Dies ist kein gültiges Makefile. Zum Erstellen dieses Projekts mit NMAKE
+!MESSAGE verwenden Sie den Befehl "Makefile exportieren" und führen Sie den Befehl
+!MESSAGE 
+!MESSAGE NMAKE /f "Merge7z425.mak".
+!MESSAGE 
+!MESSAGE Sie können beim Ausführen von NMAKE eine Konfiguration angeben
+!MESSAGE durch Definieren des Makros CFG in der Befehlszeile. Zum Beispiel:
+!MESSAGE 
+!MESSAGE NMAKE /f "Merge7z425.mak" CFG="Merge7z425 - Win32 UnicodeDebug"
+!MESSAGE 
+!MESSAGE Für die Konfiguration stehen zur Auswahl:
+!MESSAGE 
+!MESSAGE "Merge7z425 - Win32 Release" (basierend auf  "Win32 (x86) Dynamic-Link Library")
+!MESSAGE "Merge7z425 - Win32 Debug" (basierend auf  "Win32 (x86) Dynamic-Link Library")
+!MESSAGE "Merge7z425 - Win32 UnicodeDebug" (basierend auf  "Win32 (x86) Dynamic-Link Library")
+!MESSAGE "Merge7z425 - Win32 UnicodeRelease" (basierend auf  "Win32 (x86) Dynamic-Link Library")
+!MESSAGE 
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+MTL=midl.exe
+RSC=rc.exe
+
+!IF  "$(CFG)" == "Merge7z425 - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release"
+# PROP BASE Intermediate_Dir "Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "..\BuildTmp\Merge7z425___Win32_Release"
+# PROP Intermediate_Dir "..\BuildTmp\Merge7z425___Win32_Release"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "MERGE7Z310_EXPORTS" /YX /FD /c
+# ADD CPP /nologo /MT /W3 /GX /O1 /I "..\..\..\7z425" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "Merge7z425_EXPORTS" /FR /Yu"stdafx.h" /FD /c
+# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+# ADD BASE RSC /l 0x407 /d "NDEBUG"
+# ADD RSC /l 0x407 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
+# ADD 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/Merge7z425.dll"
+
+!ELSEIF  "$(CFG)" == "Merge7z425 - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "Debug"
+# PROP BASE Intermediate_Dir "Debug"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "..\BuildTmp\Merge7z425___Win32_Debug"
+# PROP Intermediate_Dir "..\BuildTmp\Merge7z425___Win32_Debug"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# 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
+# ADD CPP /nologo /MTd /W3 /vd0 /GX /Z7 /Od /I "..\..\..\7z425" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "Merge7z425_EXPORTS" /FR /Yu"stdafx.h" /FD /GZ /c
+# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
+# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
+# ADD BASE RSC /l 0x407 /d "_DEBUG"
+# ADD RSC /l 0x407 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
+# ADD 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 /incremental:no /pdb:"../Build/MergeDebug/Merge7z425.pdb" /debug /machine:I386 /out:"../Build/MergeDebug/Merge7z425.dll"
+# SUBTRACT LINK32 /pdb:none /map
+
+!ELSEIF  "$(CFG)" == "Merge7z425 - Win32 UnicodeDebug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "..\BuildTmp\Merge7z425___Win32_UnicodeDebug"
+# PROP BASE Intermediate_Dir "..\BuildTmp\Merge7z425___Win32_UnicodeDebug"
+# PROP BASE Ignore_Export_Lib 0
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "..\BuildTmp\Merge7z425___Win32_UnicodeDebug"
+# PROP Intermediate_Dir "..\BuildTmp\Merge7z425___Win32_UnicodeDebug"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /MTd /W3 /vd0 /GX /Z7 /Od /I "..\..\..\7z425" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "MERGE7Z310_EXPORTS" /FR /Yu"stdafx.h" /FD /GZ /c
+# ADD CPP /nologo /MTd /W3 /vd0 /GX /Z7 /Od /I "..\..\..\7z425" /D "Merge7z425_EXPORTS" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_USRDLL" /D "UNICODE" /D "_UNICODE" /FR /Yu"stdafx.h" /FD /GZ /c
+# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
+# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
+# ADD BASE RSC /l 0x407 /d "_DEBUG"
+# ADD RSC /l 0x407 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib 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/Merge7z425.dll"
+# ADD 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 /incremental:no /pdb:"../Build/MergeUnicodeDebug/Merge7z425U.pdb" /debug /machine:I386 /out:"../Build/MergeUnicodeDebug/Merge7z425U.dll"
+# SUBTRACT LINK32 /pdb:none /map
+
+!ELSEIF  "$(CFG)" == "Merge7z425 - Win32 UnicodeRelease"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "..\BuildTmp\Merge7z425___Win32_UnicodeRelease"
+# PROP BASE Intermediate_Dir "..\BuildTmp\Merge7z425___Win32_UnicodeRelease"
+# PROP BASE Ignore_Export_Lib 0
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "..\BuildTmp\Merge7z425___Win32_UnicodeRelease"
+# PROP Intermediate_Dir "..\BuildTmp\Merge7z425___Win32_UnicodeRelease"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /MT /W3 /GX /O2 /I "..\..\..\7z425" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "MERGE7Z310_EXPORTS" /Yu"stdafx.h" /FD /c
+# ADD CPP /nologo /MT /W3 /GX /O1 /I "..\..\..\7z425" /D "Merge7z425_EXPORTS" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_USRDLL" /D "UNICODE" /D "_UNICODE" /Yu"stdafx.h" /FD /c
+# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+# ADD BASE RSC /l 0x407 /d "NDEBUG"
+# ADD RSC /l 0x407 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shlwapi.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /pdb:none /machine:I386 /out:"../Build/MergeRelease/Merge7z425.dll"
+# ADD 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/MergeUnicodeRelease/Merge7z425U.dll"
+
+!ENDIF 
+
+# Begin Target
+
+# Name "Merge7z425 - Win32 Release"
+# Name "Merge7z425 - Win32 Debug"
+# Name "Merge7z425 - Win32 UnicodeDebug"
+# Name "Merge7z425 - Win32 UnicodeRelease"
+# Begin Group "Quellcodedateien"
+
+# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+# Begin Source File
+
+SOURCE=.\Merge7z.def
+# End Source File
+# Begin Source File
+
+SOURCE=.\Merge7z.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\Merge7z409.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\Merge7zCommon.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\Merge7zCommon.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\StdAfx.cpp
+# ADD CPP /Yc"stdafx.h"
+# End Source File
+# Begin Source File
+
+SOURCE=.\StdAfx.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\tools.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\tools.h
+# End Source File
+# End Group
+# Begin Group "Header-Dateien"
+
+# PROP Default_Filter "h;hpp;hxx;hm;inl"
+# End Group
+# Begin Group "Ressourcendateien"
+
+# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
+# Begin Source File
+
+SOURCE=..\..\..\7z425\7zip\Ui\Gui\FM.ico
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z425\7zip\UI\GUI\resource.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z425\7zip\Ui\Gui\resource.rc
+# End Source File
+# End Group
+# Begin Group "Windows"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=..\..\..\7z425\Windows\DLL.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z425\Windows\DLL.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z425\Windows\Error.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z425\Windows\Error.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z425\Windows\FileIO.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z425\Windows\FileIO.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z425\Windows\PropVariant.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z425\Windows\PropVariant.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z425\Windows\PropVariantConversions.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z425\Windows\PropVariantConversions.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z425\Windows\ResourceString.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z425\Windows\ResourceString.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z425\Windows\Synchronization.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z425\Windows\Synchronization.h
+# End Source File
+# End Group
+# Begin Group "Common"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=..\..\..\7z425\Common\IntToString.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z425\Common\IntToString.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z425\Common\Lang.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z425\Common\Lang.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z425\Common\StdInStream.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z425\Common\StdInStream.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z425\Common\String.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z425\Common\String.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z425\Common\StringConvert.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z425\Common\StringConvert.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z425\Common\StringToInt.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z425\Common\StringToInt.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z425\Common\TextConfig.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z425\Common\TextConfig.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z425\Common\UTFConvert.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z425\Common\UTFConvert.h
+# End Source File
+# End Group
+# Begin Group "7zip Common"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=..\..\..\7z425\7zip\Ui\Common\ArchiveExtractCallback.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z425\7zip\UI\Common\ArchiveExtractCallback.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z425\7zip\UI\Common\ArchiveOpenCallback.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z425\7zip\UI\Common\ArchiveOpenCallback.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z425\7zip\UI\Common\ArchiverInfo.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z425\7zip\UI\Common\ArchiverInfo.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z425\7zip\UI\Common\DefaultName.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z425\7zip\UI\Common\DefaultName.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z425\Windows\Control\Dialog.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z425\Windows\Control\Dialog.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z425\7zip\FileManager\ExtractCallback.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z425\7zip\FileManager\ExtractCallback.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z425\7zip\Common\FileStreams.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z425\7zip\Common\FileStreams.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z425\7zip\FileManager\FormatUtils.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z425\7zip\FileManager\FormatUtils.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z425\7zip\FileManager\LangUtils.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z425\7zip\FileManager\LangUtils.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z425\7zip\FileManager\Resource\MessagesDialog\MessagesDialog.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z425\7zip\UI\Common\OpenArchive.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z425\7zip\UI\Common\OpenArchive.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z425\7zip\FileManager\OpenCallback.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z425\7zip\FileManager\OpenCallback.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z425\7zip\FileManager\Resource\OverwriteDialog\OverwriteDialog.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z425\7zip\FileManager\Resource\PasswordDialog\PasswordDialog.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z425\7zip\FileManager\Resource\PasswordDialog\PasswordDialog.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z425\7zip\FileManager\ProgramLocation.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z425\7zip\FileManager\ProgramLocation.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z425\7zip\FileManager\Resource\ProgressDialog2\ProgressDialog.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z425\7zip\FileManager\Resource\ProgressDialog2\ProgressDialog.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z425\Windows\Registry.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z425\Windows\Registry.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z425\7zip\FileManager\RegistryUtils.cpp
+# PROP Exclude_From_Build 1
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z425\7zip\FileManager\RegistryUtils.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z425\7zip\UI\Common\UpdateCallback.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z425\7zip\UI\Common\UpdateCallback.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z425\7zip\UI\GUI\UpdateCallbackGUI.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z425\7zip\UI\GUI\UpdateCallbackGUI.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z425\Windows\Window.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z425\Windows\Window.h
+# End Source File
+# End Group
+# Begin Group "Extract"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=..\..\..\7z425\7zip\Ui\Common\ExtractingFilePath.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z425\7zip\UI\Common\ExtractingFilePath.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z425\Windows\FileDir.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z425\Windows\FileDir.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z425\Windows\FileFind.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z425\Windows\FileFind.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z425\Windows\FileName.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z425\Windows\FileName.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z425\7zip\Common\FilePathAutoRename.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z425\7zip\Common\FilePathAutoRename.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z425\Common\Vector.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z425\Common\Vector.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z425\Common\Wildcard.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z425\Common\Wildcard.h
+# End Source File
+# End Group
+# Begin Source File
+
+SOURCE=..\..\..\7z425\7zip\Ui\Gui\7zG.exe.manifest
+# End Source File
+# Begin Source File
+
+SOURCE=.\revision.txt
+# End Source File
+# End Target
+# End Project
diff --git a/ArchiveSupport/Merge7z/Merge7z426.dsp b/ArchiveSupport/Merge7z/Merge7z426.dsp
new file mode 100755 (executable)
index 0000000..a6f6cdb
--- /dev/null
@@ -0,0 +1,573 @@
+# Microsoft Developer Studio Project File - Name="Merge7z426" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** NICHT BEARBEITEN **
+
+# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
+
+CFG=Merge7z426 - Win32 UnicodeDebug
+!MESSAGE Dies ist kein gültiges Makefile. Zum Erstellen dieses Projekts mit NMAKE
+!MESSAGE verwenden Sie den Befehl "Makefile exportieren" und führen Sie den Befehl
+!MESSAGE 
+!MESSAGE NMAKE /f "Merge7z426.mak".
+!MESSAGE 
+!MESSAGE Sie können beim Ausführen von NMAKE eine Konfiguration angeben
+!MESSAGE durch Definieren des Makros CFG in der Befehlszeile. Zum Beispiel:
+!MESSAGE 
+!MESSAGE NMAKE /f "Merge7z426.mak" CFG="Merge7z426 - Win32 UnicodeDebug"
+!MESSAGE 
+!MESSAGE Für die Konfiguration stehen zur Auswahl:
+!MESSAGE 
+!MESSAGE "Merge7z426 - Win32 Release" (basierend auf  "Win32 (x86) Dynamic-Link Library")
+!MESSAGE "Merge7z426 - Win32 Debug" (basierend auf  "Win32 (x86) Dynamic-Link Library")
+!MESSAGE "Merge7z426 - Win32 UnicodeDebug" (basierend auf  "Win32 (x86) Dynamic-Link Library")
+!MESSAGE "Merge7z426 - Win32 UnicodeRelease" (basierend auf  "Win32 (x86) Dynamic-Link Library")
+!MESSAGE 
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+MTL=midl.exe
+RSC=rc.exe
+
+!IF  "$(CFG)" == "Merge7z426 - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release"
+# PROP BASE Intermediate_Dir "Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "..\BuildTmp\Merge7z426___Win32_Release"
+# PROP Intermediate_Dir "..\BuildTmp\Merge7z426___Win32_Release"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "MERGE7Z310_EXPORTS" /YX /FD /c
+# ADD CPP /nologo /MT /W3 /GX /O1 /I "..\..\..\7z426" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "Merge7z426_EXPORTS" /FR /Yu"stdafx.h" /FD /c
+# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+# ADD BASE RSC /l 0x407 /d "NDEBUG"
+# ADD RSC /l 0x407 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
+# ADD 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/Merge7z426.dll"
+
+!ELSEIF  "$(CFG)" == "Merge7z426 - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "Debug"
+# PROP BASE Intermediate_Dir "Debug"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "..\BuildTmp\Merge7z426___Win32_Debug"
+# PROP Intermediate_Dir "..\BuildTmp\Merge7z426___Win32_Debug"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# 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
+# ADD CPP /nologo /MTd /W3 /vd0 /GX /Z7 /Od /I "..\..\..\7z426" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "Merge7z426_EXPORTS" /FR /Yu"stdafx.h" /FD /GZ /c
+# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
+# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
+# ADD BASE RSC /l 0x407 /d "_DEBUG"
+# ADD RSC /l 0x407 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
+# ADD 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 /incremental:no /pdb:"../Build/MergeDebug/Merge7z426.pdb" /debug /machine:I386 /out:"../Build/MergeDebug/Merge7z426.dll"
+# SUBTRACT LINK32 /pdb:none /map
+
+!ELSEIF  "$(CFG)" == "Merge7z426 - Win32 UnicodeDebug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "..\BuildTmp\Merge7z426___Win32_UnicodeDebug"
+# PROP BASE Intermediate_Dir "..\BuildTmp\Merge7z426___Win32_UnicodeDebug"
+# PROP BASE Ignore_Export_Lib 0
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "..\BuildTmp\Merge7z426___Win32_UnicodeDebug"
+# PROP Intermediate_Dir "..\BuildTmp\Merge7z426___Win32_UnicodeDebug"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /MTd /W3 /vd0 /GX /Z7 /Od /I "..\..\..\7z426" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "MERGE7Z310_EXPORTS" /FR /Yu"stdafx.h" /FD /GZ /c
+# ADD CPP /nologo /MTd /W3 /vd0 /GX /Z7 /Od /I "..\..\..\7z426" /D "Merge7z426_EXPORTS" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_USRDLL" /D "UNICODE" /D "_UNICODE" /FR /Yu"stdafx.h" /FD /GZ /c
+# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
+# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
+# ADD BASE RSC /l 0x407 /d "_DEBUG"
+# ADD RSC /l 0x407 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib 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/Merge7z426.dll"
+# ADD 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 /incremental:no /pdb:"../Build/MergeUnicodeDebug/Merge7z426U.pdb" /debug /machine:I386 /out:"../Build/MergeUnicodeDebug/Merge7z426U.dll"
+# SUBTRACT LINK32 /pdb:none /map
+
+!ELSEIF  "$(CFG)" == "Merge7z426 - Win32 UnicodeRelease"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "..\BuildTmp\Merge7z426___Win32_UnicodeRelease"
+# PROP BASE Intermediate_Dir "..\BuildTmp\Merge7z426___Win32_UnicodeRelease"
+# PROP BASE Ignore_Export_Lib 0
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "..\BuildTmp\Merge7z426___Win32_UnicodeRelease"
+# PROP Intermediate_Dir "..\BuildTmp\Merge7z426___Win32_UnicodeRelease"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /MT /W3 /GX /O2 /I "..\..\..\7z426" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "MERGE7Z310_EXPORTS" /Yu"stdafx.h" /FD /c
+# ADD CPP /nologo /MT /W3 /GX /O1 /I "..\..\..\7z426" /D "Merge7z426_EXPORTS" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_USRDLL" /D "UNICODE" /D "_UNICODE" /Yu"stdafx.h" /FD /c
+# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+# ADD BASE RSC /l 0x407 /d "NDEBUG"
+# ADD RSC /l 0x407 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shlwapi.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /pdb:none /machine:I386 /out:"../Build/MergeRelease/Merge7z426.dll"
+# ADD 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/MergeUnicodeRelease/Merge7z426U.dll"
+
+!ENDIF 
+
+# Begin Target
+
+# Name "Merge7z426 - Win32 Release"
+# Name "Merge7z426 - Win32 Debug"
+# Name "Merge7z426 - Win32 UnicodeDebug"
+# Name "Merge7z426 - Win32 UnicodeRelease"
+# Begin Group "Quellcodedateien"
+
+# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+# Begin Source File
+
+SOURCE=.\Merge7z.def
+# End Source File
+# Begin Source File
+
+SOURCE=.\Merge7z.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\Merge7z409.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\Merge7zCommon.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\Merge7zCommon.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\StdAfx.cpp
+# ADD CPP /Yc"stdafx.h"
+# End Source File
+# Begin Source File
+
+SOURCE=.\StdAfx.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\tools.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\tools.h
+# End Source File
+# End Group
+# Begin Group "Header-Dateien"
+
+# PROP Default_Filter "h;hpp;hxx;hm;inl"
+# End Group
+# Begin Group "Ressourcendateien"
+
+# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
+# Begin Source File
+
+SOURCE=..\..\..\7z426\7zip\Ui\Gui\FM.ico
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z426\7zip\UI\GUI\resource.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z426\7zip\Ui\Gui\resource.rc
+# End Source File
+# End Group
+# Begin Group "Windows"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=..\..\..\7z426\Windows\DLL.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z426\Windows\DLL.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z426\Windows\Error.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z426\Windows\Error.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z426\Windows\FileIO.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z426\Windows\FileIO.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z426\Windows\PropVariant.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z426\Windows\PropVariant.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z426\Windows\PropVariantConversions.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z426\Windows\PropVariantConversions.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z426\Windows\ResourceString.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z426\Windows\ResourceString.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z426\Windows\Synchronization.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z426\Windows\Synchronization.h
+# End Source File
+# End Group
+# Begin Group "Common"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=..\..\..\7z426\Common\IntToString.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z426\Common\IntToString.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z426\Common\Lang.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z426\Common\Lang.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z426\Common\StdInStream.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z426\Common\StdInStream.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z426\Common\String.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z426\Common\String.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z426\Common\StringConvert.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z426\Common\StringConvert.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z426\Common\StringToInt.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z426\Common\StringToInt.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z426\Common\TextConfig.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z426\Common\TextConfig.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z426\Common\UTFConvert.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z426\Common\UTFConvert.h
+# End Source File
+# End Group
+# Begin Group "7zip Common"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=..\..\..\7z426\7zip\Ui\Common\ArchiveExtractCallback.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z426\7zip\UI\Common\ArchiveExtractCallback.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z426\7zip\UI\Common\ArchiveOpenCallback.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z426\7zip\UI\Common\ArchiveOpenCallback.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z426\7zip\UI\Common\ArchiverInfo.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z426\7zip\UI\Common\ArchiverInfo.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z426\7zip\UI\Common\DefaultName.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z426\7zip\UI\Common\DefaultName.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z426\Windows\Control\Dialog.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z426\Windows\Control\Dialog.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z426\7zip\FileManager\ExtractCallback.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z426\7zip\FileManager\ExtractCallback.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z426\7zip\Common\FileStreams.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z426\7zip\Common\FileStreams.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z426\7zip\FileManager\FormatUtils.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z426\7zip\FileManager\FormatUtils.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z426\7zip\FileManager\LangUtils.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z426\7zip\FileManager\LangUtils.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z426\7zip\FileManager\Resource\MessagesDialog\MessagesDialog.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z426\7zip\UI\Common\OpenArchive.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z426\7zip\UI\Common\OpenArchive.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z426\7zip\FileManager\OpenCallback.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z426\7zip\FileManager\OpenCallback.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z426\7zip\FileManager\Resource\OverwriteDialog\OverwriteDialog.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z426\7zip\FileManager\Resource\PasswordDialog\PasswordDialog.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z426\7zip\FileManager\Resource\PasswordDialog\PasswordDialog.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z426\7zip\FileManager\ProgramLocation.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z426\7zip\FileManager\ProgramLocation.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z426\7zip\FileManager\Resource\ProgressDialog2\ProgressDialog.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z426\7zip\FileManager\Resource\ProgressDialog2\ProgressDialog.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z426\Windows\Registry.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z426\Windows\Registry.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z426\7zip\FileManager\RegistryUtils.cpp
+# PROP Exclude_From_Build 1
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z426\7zip\FileManager\RegistryUtils.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z426\7zip\UI\Common\UpdateCallback.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z426\7zip\UI\Common\UpdateCallback.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z426\7zip\UI\GUI\UpdateCallbackGUI.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z426\7zip\UI\GUI\UpdateCallbackGUI.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z426\Windows\Window.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z426\Windows\Window.h
+# End Source File
+# End Group
+# Begin Group "Extract"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=..\..\..\7z426\7zip\Ui\Common\ExtractingFilePath.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z426\7zip\UI\Common\ExtractingFilePath.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z426\Windows\FileDir.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z426\Windows\FileDir.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z426\Windows\FileFind.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z426\Windows\FileFind.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z426\Windows\FileName.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z426\Windows\FileName.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z426\7zip\Common\FilePathAutoRename.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z426\7zip\Common\FilePathAutoRename.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z426\Common\Vector.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z426\Common\Vector.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z426\Common\Wildcard.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\7z426\Common\Wildcard.h
+# End Source File
+# End Group
+# Begin Source File
+
+SOURCE=..\..\..\7z426\7zip\Ui\Gui\7zG.exe.manifest
+# End Source File
+# Begin Source File
+
+SOURCE=.\revision.txt
+# End Source File
+# End Target
+# End Project
index bfa5fe0..da47f6f 100755 (executable)
@@ -30,13 +30,56 @@ DATE:               BY:                                     DESCRIPTION:
 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.
 */
 
 #include "stdafx.h"
 #include "Merge7zCommon.h"
 #include "7zip/FileManager/LangUtils.h"
 
-#include "7zip/UI/Common/EnumDirItems.cpp" // defines static void EnumerateDirectory()
+//#include "7zip/UI/Common/EnumDirItems.cpp" // defines static void EnumerateDirectory()
+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;
 DWORD g_dwFlags;
@@ -64,7 +107,7 @@ static HMODULE DllProxyHelper(LPCSTR *proxy, ...)
                        char path[MAX_PATH];
                        FormatMessageA
                        (
-                               FORMAT_MESSAGE_FROM_STRING | FORMAT_MESSAGE_ARGUMENT_ARRAY,
+                               FORMAT_MESSAGE_FROM_STRING|FORMAT_MESSAGE_ARGUMENT_ARRAY,
                                name,
                                0,
                                0,
@@ -120,7 +163,7 @@ struct Format7zDLL *Format7zDLL::Proxy::operator->()
 IInArchive *Format7zDLL::Interface::GetInArchive()
 {
        void *pv;
-       if COMPLAIN(proxy->CreateObject(proxy.clsid, &IID_IInArchive, &pv) != S_OK)
+       if COMPLAIN(proxy->CreateObject(&proxy.clsid, &IID_IInArchive, &pv) != S_OK)
        {
                Complain(RPC_S_INTERFACE_NOT_FOUND, _T("IInArchive"), proxy.handle);
        }
@@ -133,7 +176,7 @@ IInArchive *Format7zDLL::Interface::GetInArchive()
 IOutArchive *Format7zDLL::Interface::GetOutArchive()
 {
        void *pv;
-       if COMPLAIN(proxy->CreateObject(proxy.clsid, &IID_IOutArchive, &pv) != S_OK)
+       if COMPLAIN(proxy->CreateObject(&proxy.clsid, &IID_IOutArchive, &pv) != S_OK)
        {
                Complain(RPC_S_INTERFACE_NOT_FOUND, _T("IOutArchive"), proxy.handle);
        }
@@ -522,60 +565,77 @@ int Merge7z::Initialize(DWORD dwFlags)
 static const char aCreateObject[] = "CreateObject";
 static const char aGetHandlerProperty[] = "GetHandlerProperty";
 
-#define        DEFINE_FORMAT(name, dll, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) \
-               EXTERN_C const GUID CLSID_##name \
-                               = { l, w1, w2, { b1, b2,  b3,  b4,  b5,  b6,  b7,  b8 } }; \
+Format7zDLL::Interface *Format7zDLL::Interface::head = NULL;
+
+#define        DEFINE_FORMAT(name, dll, extension, signature, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) \
                Format7zDLL::Proxy PROXY_##name = \
                { \
                        "%1Formats\\" dll, \
                        aCreateObject, \
                        aGetHandlerProperty, \
                        (HMODULE)0, \
-                       &CLSID_##name \
+                       { l, w1, w2, { b1, b2,  b3,  b4,  b5,  b6,  b7,  b8 } }, \
+                       signature extension + sizeof signature extension - sizeof extension, \
+                       sizeof signature extension - sizeof extension \
                }; \
                Format7zDLL::Interface name = PROXY_##name;
        
-/* this is how DEFINE_FORMAT expands:
-DEFINE_GUID(CLSID_CFormat7z,
-       0x23170F69, 0x40C1, 0x278A, 0x10, 0x00, 0x00, 0x01, 0x10, 0x05, 0x00, 0x00);
-
-Format7zDLL::Proxy PROXY_CFormat7z =
-{
-       "%1Formats\\7Z.DLL",
-       "CreateObject",
-       "GetHandlerProperty",
-       (HMODULE)0,
-       &CLSID_CFormat7z
-};
-
-Format7zDLL::Interface CFormat7z = PROXY_CFormat7z;/**/
-
 DEFINE_FORMAT(CFormat7z, "7Z.DLL",
+       "7z",
+       "@7z\xBC\xAF\x27\x1C",
        0x23170F69, 0x40C1, 0x278A, 0x10, 0x00, 0x00, 0x01, 0x10, 0x05, 0x00, 0x00);
 DEFINE_FORMAT(CArjHandler, "ARJ.DLL",
+       "arj",
+       "@\x60\xEA",
        0x23170F69, 0x40C1, 0x278A, 0x10, 0x00, 0x00, 0x01, 0x10, 0x0A, 0x00, 0x00);
 DEFINE_FORMAT(CBZip2Handler, "BZ2.DLL",
+       "bz2 tbz2",
+       "@BZh",
        0x23170F69, 0x40C1, 0x278A, 0x10, 0x00, 0x00, 0x01, 0x10, 0x07, 0x00, 0x00);
 DEFINE_FORMAT(CCabHandler, "CAB.DLL",
+       "cab",
+       "@MSCF",
        0x23170F69, 0x40C1, 0x278A, 0x10, 0x00, 0x00, 0x01, 0x10, 0x06, 0x00, 0x00);
 DEFINE_FORMAT(CCpioHandler, "CPIO.DLL",
+       "cpio",
+       "",
        0x23170F69, 0x40C1, 0x278A, 0x10, 0x00, 0x00, 0x01, 0x10, 0x08, 0x00, 0x00);
 DEFINE_FORMAT(CDebHandler, "DEB.DLL",
+       "deb",
+       "@!<arch>\n",
        0x23170F69, 0x40C1, 0x278A, 0x10, 0x00, 0x00, 0x01, 0x10, 0x0C, 0x00, 0x00);
+DEFINE_FORMAT(CLzhHandler, "LZH.DLL",
+       "lzh lha",
+       "@@@-l@@-",//"-l" doesn't work because signature starts at offset 2
+       0x23170F69, 0x40C1, 0x278A, 0x10, 0x00, 0x00, 0x01, 0x10, 0x0E, 0x00, 0x00);
 DEFINE_FORMAT(CGZipHandler, "GZ.DLL",
+       "gz tgz",
+       "@\x1F\x8B",
        0x23170F69, 0x40C1, 0x278A, 0x10, 0x00, 0x00, 0x01, 0x10, 0x03, 0x00, 0x00);
 DEFINE_FORMAT(CRarHandler, "RAR.DLL",
+       "rar",
+       "@Rar!\x1a\x07\x00",
        0x23170F69, 0x40C1, 0x278A, 0x10, 0x00, 0x00, 0x01, 0x10, 0x02, 0x00, 0x00);
 DEFINE_FORMAT(CRpmHandler, "RPM.DLL",
+       "rpm",
+       "",
        0x23170F69, 0x40C1, 0x278A, 0x10, 0x00, 0x00, 0x01, 0x10, 0x09, 0x00, 0x00);
 DEFINE_FORMAT(CSplitHandler, "SPLIT.DLL",
+       "001",
+       "",
        0x23170F69, 0x40C1, 0x278A, 0x10, 0x00, 0x00, 0x01, 0x10, 0x0B, 0x00, 0x00);
 DEFINE_FORMAT(CTarHandler, "TAR.DLL",
+       "tar",
+       "",
        0x23170F69, 0x40C1, 0x278A, 0x10, 0x00, 0x00, 0x01, 0x10, 0x04, 0x00, 0x00);
-DEFINE_FORMAT(CZipHandler, "ZIP.DLL",
-       0x23170F69, 0x40C1, 0x278A, 0x10, 0x00, 0x00, 0x01, 0x10, 0x01, 0x00, 0x00);
 DEFINE_FORMAT(CZHandler, "Z.DLL",
+       "z",
+       "@\x1F\x9D",
        0x23170F69, 0x40C1, 0x278A, 0x10, 0x00, 0x00, 0x01, 0x10, 0x0D, 0x00, 0x00);
+DEFINE_FORMAT(CZipHandler, "ZIP.DLL",
+       "zip jar war ear xpi",
+       "@PK\x03\x04",
+       0x23170F69, 0x40C1, 0x278A, 0x10, 0x00, 0x00, 0x01, 0x10, 0x01, 0x00, 0x00);
 
 /**
  * @brief Construct Merge7z interface.
@@ -594,79 +654,157 @@ TarHandler(CTarHandler)
  */
 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) || !GetExtension(path, ext))
+               return 0;
+       return GuessFormatEx(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;
-       ENUM_LIST
-       (
-               EnumList,
-               _ENUM(7Z)
-               ENUM(Z)
-               ENUM(ZIP)
-               ENUM(JAR)
-               ENUM(WAR)
-               ENUM(EAR)
-               ENUM(XPI)
-               ENUM(RAR)
-               ENUM(BZ2)
-               ENUM(TAR)
-               ENUM(GZ)
-               ENUM(TGZ)
-               ENUM(CAB)
-               ENUM(ARJ)
-               ENUM(CPIO)
-               ENUM(DEB)
-               ENUM(RPM)
-               _ENUM(001)
-       );
-       Format *pFormat = 0;
-       switch (EnumList->Find(PathFindExtension(path), FALSE))
+       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)
        {
-       case EnumList::_7Z:
-               pFormat = &CFormat7z;
-               break;
-       case EnumList::Z:
-               pFormat = &CZHandler;
-               break;
-       case EnumList::ZIP:
-       case EnumList::JAR:
-       case EnumList::WAR:
-       case EnumList::EAR:
-       case EnumList::XPI:
-               pFormat = &CZipHandler;
-               break;
-       case EnumList::RAR:
-               pFormat = &CRarHandler;
-               break;
-       case EnumList::BZ2:
-               pFormat = &CBZip2Handler;
-               break;
-       case EnumList::TAR:
-               pFormat = &CTarHandler;
-               break;
-       case EnumList::GZ:
-       case EnumList::TGZ:
-               pFormat = &CGZipHandler;
-               break;
-       case EnumList::CAB:
-               pFormat = &CCabHandler;
-               break;
-       case EnumList::ARJ:
-               pFormat = &CArjHandler;
-               break;
-       case EnumList::CPIO:
-               pFormat = &CCpioHandler;
-               break;
-       case EnumList::DEB:
-               pFormat = &CDebHandler;
-               break;
-       case EnumList::RPM:
-               pFormat = &CRpmHandler;
-               break;
-       case EnumList::_001:
-               pFormat = &CSplitHandler;
-               break;
+               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 pFormat;
+       return cchSig;
 }
 
 /**
@@ -727,6 +865,14 @@ void ReadRegLang(CSysString &langFile)
 }
 
 /**
+ * @brief 7-Zip 4.26: ReloadLangSmart() wants this #ifdef _UNICODE.
+ * We certainly don't want to write 7-Zip's registry so we make it a NOP.
+ */
+void SaveRegLang(const CSysString &langFile)
+{
+}
+
+/**
  * @brief Export instance of Merge7z interface.
  */
 EXTERN_C
@@ -761,4 +907,3 @@ EXTERN_C HRESULT CALLBACK DllGetVersion(DLLVERSIONINFO *pdvi)
        CopyMemory(pdvi, &dvi, pdvi->cbSize < dvi.cbSize ? pdvi->cbSize : dvi.cbSize);
        return S_OK;
 }
-
index ce2337e..dbce1d6 100755 (executable)
 #include "7zip/Common/FileStreams.h"
 // Merge7z includes
 #include "tools.h"
-#define DllBuild_Merge7z 12
+#define DllBuild_Merge7z 13
 #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;
@@ -34,7 +37,9 @@ struct Format7zDLL
        CreateObjectFunc CreateObject;
        GetHandlerPropertyFunc GetHandlerProperty;
        HMODULE handle;
-       const CLSID *clsid;
+       CLSID clsid;
+       const char *extension;
+       size_t signature;
        struct Proxy;
        interface Interface;
 };
@@ -47,15 +52,20 @@ struct Format7zDLL::Proxy
        -       &((struct Format7zDLL *)0)->origin
        ];
        HMODULE handle;
-       const CLSID *clsid;
+       CLSID clsid;
+       const char *extension;
+       size_t signature;
        struct Format7zDLL *operator->();
 };
 
 interface Format7zDLL::Interface : Merge7z::Format
 {
        Proxy &proxy;
-       Interface(Proxy &proxy):proxy(proxy)
+       static Interface *head;
+       Interface *next;
+       Interface(Proxy &proxy):proxy(proxy), next(head)
        {
+               head = this;
        }
        void GetDefaultName(HWND, UString &);
        virtual IInArchive *GetInArchive();
index 55128ad..e2a1aaf 100755 (executable)
@@ -7,7 +7,8 @@
 //<jtuc>
 //-    help 7z sources compile with old SDK headers
 #ifndef GWLP_WNDPROC
-typedef INT_PTR LONG_PTR;
+#define INT_PTR int // MS has switched to int
+typedef long LONG_PTR;
 
 #define SetWindowLongPtr SetWindowLong
 #define GetWindowLongPtr GetWindowLong
index 0fc8cca..19f79cd 100755 (executable)
@@ -40,3 +40,4 @@ VERSION(2,2)
 //                                                             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
index 71344cd..688e59a 100755 (executable)
@@ -22,6 +22,7 @@ DATE:         BY:                                     DESCRIPTION:
 ==========     ==================      ================================================
 2003/12/09     Jochen Tucht            Created
 2005/02/26     Jochen Tucht            Changed as explained in revision.txt
+2005/08/20     Jochen Tucht            Remove unused EnumList
 */
 
 #include "stdafx.h"
@@ -110,21 +111,3 @@ void NTAPI Release(IUnknown *punk)
        }
 }
 
-/**
- * @brief Find a keyword within an EnumList, and return its numeric value.
- */
-EnumList::Find(LPCTSTR r, BOOL fCaseSens) const
-{
-       static const TCHAR trim[] = _T(".;:() ");
-       int cch = StrCSpn(r += StrSpn(r, trim), trim);
-       int Find = 0;
-       LPCTSTR q = buffer;
-       while (LPCTSTR p = StrChr(q, '('))
-       {
-               q = StrChr(++p, ')');
-               if (StrIsIntlEqual(fCaseSens, p, r, cch) && q - p == cch)
-                       break;
-               ++Find;
-       }
-       return Find;
-}
index 8b0443c..9fb85e7 100755 (executable)
@@ -17,14 +17,3 @@ public:
 };
 
 void NTAPI Release(IUnknown *);
-
-struct EnumList
-{
-       TCHAR buffer[INT_MAX];
-       int Find(LPCTSTR r, BOOL fCaseSens) const;
-};
-
-#define ENUM(X) X,
-#define _ENUM(X) _##X,
-#define ENUM_LIST(T,X) struct T: ::EnumList{enum{X N};} const*const T=(struct T const*)_T(#X);
index 1d8bf9e..2248749 100644 (file)
@@ -1,3 +1,8 @@
+2005-08-23 Jochen
+ PATCH: [ 1264723 ] Merge7z DllBuild 0013
+  Merge7z: Merge7z.h Merge7zCommon.cpp Merge7zCommon.h StdAfx.h tools.cpp tools.h revision.txt
+  Merge7z new files: Merge7z423.dsp Merge7z424.dsp Merge7z425.dsp Merge7z426.dsp
+
 2005-08-23 Kimmo
  PATCH: [ 1266442 ] Small cleanup for ShellExtension
   Also bump version number to 1.5