mirror of
https://github.com/Xevion/easy7zip.git
synced 2025-12-14 10:11:38 -06:00
3.13
This commit is contained in:
66
7zip/Bundles/SFXWin/Main.cpp
Executable file
66
7zip/Bundles/SFXWin/Main.cpp
Executable file
@@ -0,0 +1,66 @@
|
||||
// Main.cpp
|
||||
|
||||
#include "StdAfx.h"
|
||||
|
||||
#include <initguid.h>
|
||||
|
||||
#include "Common/StringConvert.h"
|
||||
#include "Common/CommandLineParser.h"
|
||||
|
||||
#include "Windows/FileDir.h"
|
||||
#include "Windows/FileName.h"
|
||||
#include "Windows/DLL.h"
|
||||
|
||||
#include "../../ICoder.h"
|
||||
#include "../../IPassword.h"
|
||||
#include "../../Archive/IArchive.h"
|
||||
#include "../../UI/Agent/Agent.h"
|
||||
#include "../../UI/GUI/Extract.h"
|
||||
#include "../../UI/Explorer/MyMessages.h"
|
||||
|
||||
HINSTANCE g_hInstance;
|
||||
|
||||
int APIENTRY WinMain(
|
||||
HINSTANCE hInstance,
|
||||
HINSTANCE hPrevInstance,
|
||||
LPSTR lpCmdLine,
|
||||
int nCmdShow)
|
||||
{
|
||||
g_hInstance = (HINSTANCE)hInstance;
|
||||
bool assumeYes = false;
|
||||
bool outputFolderDefined = false;
|
||||
UString outputFolder;
|
||||
UStringVector subStrings;
|
||||
NCommandLineParser::SplitCommandLine(GetCommandLineW(), subStrings);
|
||||
for (int i = 1; i < subStrings.Size(); i++)
|
||||
{
|
||||
const UString &s = subStrings[i];
|
||||
if (s.CompareNoCase(L"-y") == 0)
|
||||
assumeYes = true;
|
||||
else if (s.Left(2).CompareNoCase(L"-o") == 0)
|
||||
{
|
||||
outputFolder = s.Mid(2);
|
||||
NWindows::NFile::NName::NormalizeDirPathPrefix(outputFolder);
|
||||
outputFolderDefined = !outputFolder.IsEmpty();
|
||||
}
|
||||
}
|
||||
|
||||
UString path;
|
||||
NWindows::NDLL::MyGetModuleFileName(g_hInstance, path);
|
||||
|
||||
UString fullPath;
|
||||
int fileNamePartStartIndex;
|
||||
if (!NWindows::NFile::NDirectory::MyGetFullPathName(path, fullPath, fileNamePartStartIndex))
|
||||
{
|
||||
MyMessageBox(L"Error 1329484");
|
||||
return 1;
|
||||
}
|
||||
HRESULT result = ExtractArchive(NULL, path, assumeYes, !assumeYes,
|
||||
outputFolderDefined ? outputFolder :
|
||||
fullPath.Left(fileNamePartStartIndex));
|
||||
if (result == S_FALSE)
|
||||
MyMessageBox(L"Archive is not supported");
|
||||
else if (result != S_OK && result != E_ABORT)
|
||||
ShowErrorMessage(0, result);
|
||||
return 0;
|
||||
}
|
||||
Reference in New Issue
Block a user