Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/kornelski/7z.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIgor Pavlov <ipavlov@users.sourceforge.net>2010-10-04 04:00:00 +0400
committerKornel LesiƄski <kornel@geekhood.net>2016-05-28 02:16:04 +0300
commit2eb60a059819da595efb8e1de49f04c241f5b981 (patch)
treefe5423b6679c605b545b726cb875883ea9299b31 /CPP/7zip/UI/Far/Main.cpp
parent044e4bb7413beb329edfa3ad27b492d819cdc811 (diff)
9.179.17
Diffstat (limited to 'CPP/7zip/UI/Far/Main.cpp')
-rwxr-xr-xCPP/7zip/UI/Far/Main.cpp64
1 files changed, 47 insertions, 17 deletions
diff --git a/CPP/7zip/UI/Far/Main.cpp b/CPP/7zip/UI/Far/Main.cpp
index 052f75f9..7cd7d5ee 100755
--- a/CPP/7zip/UI/Far/Main.cpp
+++ b/CPP/7zip/UI/Far/Main.cpp
@@ -21,8 +21,8 @@ using namespace NWindows;
using namespace NFar;
static const char *kCommandPrefix = "7-zip";
-static const char *kRegisrtryMainKeyName = "";
-static const char *kRegisrtryValueNameEnabled = "UsedByDefault3";
+static const TCHAR *kRegisrtryMainKeyName = TEXT("");
+static const TCHAR *kRegisrtryValueNameEnabled = TEXT("UsedByDefault3");
static const char *kHelpTopicConfig = "Config";
static bool kPluginEnabledDefault = true;
@@ -30,11 +30,17 @@ HINSTANCE g_hInstance;
#define NT_CHECK_FAIL_ACTION return FALSE;
-BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID)
+BOOL WINAPI DllMain(
+ #ifdef UNDER_CE
+ HANDLE
+ #else
+ HINSTANCE
+ #endif
+ hInstance, DWORD dwReason, LPVOID)
{
if (dwReason == DLL_PROCESS_ATTACH)
{
- g_hInstance = hInstance;
+ g_hInstance = (HINSTANCE)hInstance;
NT_CHECK
}
return TRUE;
@@ -45,9 +51,9 @@ static struct COptions
bool Enabled;
} g_Options;
-static const char *kPliginNameForRegestry = "7-ZIP";
+static const TCHAR *kPliginNameForRegestry = TEXT("7-ZIP");
-EXTERN_C void WINAPI SetStartupInfo(struct PluginStartupInfo *info)
+EXTERN_C void WINAPI SetStartupInfo(const PluginStartupInfo *info)
{
MY_TRY_BEGIN;
g_StartupInfo.Init(*info, kPliginNameForRegestry);
@@ -325,11 +331,9 @@ HRESULT OpenArchive(const CSysString &fileName,
}
*/
-static HANDLE MyOpenFilePlugin(const char *name)
+static HANDLE MyOpenFilePluginW(const wchar_t *name)
{
- UINT codePage = ::AreFileApisANSI() ? CP_ACP : CP_OEMCP;
-
- UString normalizedName = GetUnicodeString(name, codePage);
+ UString normalizedName = name;
normalizedName.Trim();
UString fullName;
int fileNamePartStartIndex;
@@ -344,7 +348,7 @@ static HANDLE MyOpenFilePlugin(const char *name)
CMyComPtr<IInFolderArchive> archiveHandler;
// CArchiverInfo archiverInfoResult;
- // ::OutputDebugString("before OpenArchive\n");
+ // ::OutputDebugStringA("before OpenArchive\n");
CScreenRestorer screenRestorer;
{
@@ -360,7 +364,7 @@ static HANDLE MyOpenFilePlugin(const char *name)
fullName.Left(fileNamePartStartIndex),
fullName.Mid(fileNamePartStartIndex));
- // ::OutputDebugString("before OpenArchive\n");
+ // ::OutputDebugStringA("before OpenArchive\n");
archiveHandler = new CAgent;
CMyComBSTR archiveType;
@@ -377,7 +381,7 @@ static HANDLE MyOpenFilePlugin(const char *name)
return INVALID_HANDLE_VALUE;
}
- // ::OutputDebugString("after OpenArchive\n");
+ // ::OutputDebugStringA("after OpenArchive\n");
CPlugin *plugin = new CPlugin(
fullName,
@@ -393,7 +397,18 @@ static HANDLE MyOpenFilePlugin(const char *name)
return (HANDLE)(plugin);
}
-EXTERN_C HANDLE WINAPI OpenFilePlugin(char *name, const unsigned char * /* data */, unsigned int /* dataSize */)
+static HANDLE MyOpenFilePlugin(const char *name)
+{
+ UINT codePage =
+ #ifdef UNDER_CE
+ CP_OEMCP;
+ #else
+ ::AreFileApisANSI() ? CP_ACP : CP_OEMCP;
+ #endif
+ return MyOpenFilePluginW(GetUnicodeString(name, codePage));
+}
+
+EXTERN_C HANDLE WINAPI OpenFilePlugin(char *name, const unsigned char * /* data */, int /* dataSize */)
{
MY_TRY_BEGIN;
if (name == NULL || (!g_Options.Enabled))
@@ -405,12 +420,27 @@ EXTERN_C HANDLE WINAPI OpenFilePlugin(char *name, const unsigned char * /* data
MY_TRY_END2("OpenFilePlugin", INVALID_HANDLE_VALUE);
}
-EXTERN_C HANDLE WINAPI OpenPlugin(int openFrom, int item)
+/*
+EXTERN_C HANDLE WINAPI OpenFilePluginW(const wchar_t *name,const unsigned char *Data,int DataSize,int OpMode)
+{
+ MY_TRY_BEGIN;
+ if (name == NULL || (!g_Options.Enabled))
+ {
+ // if (!Opt.ProcessShiftF1)
+ return(INVALID_HANDLE_VALUE);
+ }
+ return MyOpenFilePluginW(name);
+ ::OutputDebugStringA("OpenFilePluginW\n");
+ MY_TRY_END2("OpenFilePluginW", INVALID_HANDLE_VALUE);
+}
+*/
+
+EXTERN_C HANDLE WINAPI OpenPlugin(int openFrom, INT_PTR item)
{
MY_TRY_BEGIN;
if(openFrom == OPEN_COMMANDLINE)
{
- CSysString fileName = (const char *)(UINT_PTR)item;
+ AString fileName = (const char *)item;
if(fileName.IsEmpty())
return INVALID_HANDLE_VALUE;
if (fileName.Length() >= 2 &&
@@ -482,7 +512,7 @@ EXTERN_C int WINAPI GetFiles(HANDLE plugin, struct PluginPanelItem *panelItems,
MY_TRY_END2("GetFiles", NFileOperationReturnCode::kError);
}
-EXTERN_C int WINAPI SetDirectory(HANDLE plugin, char *dir, int opMode)
+EXTERN_C int WINAPI SetDirectory(HANDLE plugin, const char *dir, int opMode)
{
MY_TRY_BEGIN;
return(((CPlugin *)plugin)->SetDirectory(dir, opMode));