From 6305befe5bff2e5a87758a8fedfff20ca77f82fa Mon Sep 17 00:00:00 2001 From: Takashi Sawanaka Date: Sun, 19 May 2019 11:29:42 +0900 Subject: [PATCH] ShellExtension: The feature that prioritizes the language used by WinMerge over the language of the system is not working properly, so remove this feature. --- DownloadDeps.cmd | 2 +- ShellExtension/ShellExtension.cpp | 3 --- ShellExtension/ShellExtension.rc | 8 +++---- ShellExtension/WinMergeShell.cpp | 44 ++------------------------------------- 4 files changed, 7 insertions(+), 50 deletions(-) diff --git a/DownloadDeps.cmd b/DownloadDeps.cmd index 6154f165e..95d19fa90 100644 --- a/DownloadDeps.cmd +++ b/DownloadDeps.cmd @@ -3,7 +3,7 @@ set path="%ProgramFiles%\7-zip";"%ProgramFiles(x86)%\7-zip";%path% set downloadsdir=%~dp0\build\WinMergeDownloadDeps set urls_destdirs=^ https://bitbucket.org/winmerge/winmerge/downloads/winmerge_manual_build_tools_v1.zip!Docs\Users\Manual\build ^ -https://bitbucket.org/winmerge/winmerge/downloads/ShellExtension-1.17.8.0.zip!Build ^ +https://bitbucket.org/winmerge/winmerge/downloads/ShellExtension-1.17.9.0.zip!Build ^ https://bitbucket.org/winmerge/winmerge/downloads/Merge7z1900.1-win32.zip!Build ^ https://bitbucket.org/winmerge/winmerge/downloads/Merge7z1900.1-x64.zip!Build\X64 ^ https://bitbucket.org/winmerge/frhed/downloads/frhed-0.10904.2017.1-win32.zip!Build ^ diff --git a/ShellExtension/ShellExtension.cpp b/ShellExtension/ShellExtension.cpp index 0faf5a11a..762c0c4b1 100644 --- a/ShellExtension/ShellExtension.cpp +++ b/ShellExtension/ShellExtension.cpp @@ -31,11 +31,8 @@ #include #include "ShellExtension.h" #include "ShellExtension_i.c" -#include "WinMergeShell.h" #include "RegKey.h" -OBJECT_ENTRY_AUTO(CLSID_WinMergeShell, CWinMergeShell) - class CWinMergeShellModule : public ATL::CAtlDllModuleT< CWinMergeShellModule > { public : diff --git a/ShellExtension/ShellExtension.rc b/ShellExtension/ShellExtension.rc index b5f46f186..2d1bd9309 100644 --- a/ShellExtension/ShellExtension.rc +++ b/ShellExtension/ShellExtension.rc @@ -325,8 +325,8 @@ END // VS_VERSION_INFO VERSIONINFO - FILEVERSION 1,17,8,0 - PRODUCTVERSION 1,17,8,0 + FILEVERSION 1,17,9,0 + PRODUCTVERSION 1,17,9,0 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L @@ -343,12 +343,12 @@ BEGIN BEGIN VALUE "CompanyName", "http://winmerge.org" VALUE "FileDescription", "WinMerge Shell Integration library" - VALUE "FileVersion", "1.17.8.0" + VALUE "FileVersion", "1.17.9.0" VALUE "InternalName", "ShellExtension" VALUE "LegalCopyright", "Copyright 2003-2019" VALUE "OriginalFilename", "ShellExtension.DLL" VALUE "ProductName", "WinMerge Shell Integration library" - VALUE "ProductVersion", "1.17.8.0" + VALUE "ProductVersion", "1.17.9.0" END END BLOCK "VarFileInfo" diff --git a/ShellExtension/WinMergeShell.cpp b/ShellExtension/WinMergeShell.cpp index 4bf1e27ca..74a3aa30c 100644 --- a/ShellExtension/WinMergeShell.cpp +++ b/ShellExtension/WinMergeShell.cpp @@ -47,6 +47,8 @@ #include #include +OBJECT_ENTRY_AUTO(CLSID_WinMergeShell, CWinMergeShell) + /** * @brief Flags for enabling and other settings of context menu. */ @@ -96,8 +98,6 @@ enum MENU_THREESEL }; -#define USES_WINMERGELOCALE CWinMergeTempLocale __wmtl__ - static String GetResourceString(UINT resourceID); // GreyMerlin (03 Sept 2017) - The following Version Info checking code is a @@ -139,48 +139,12 @@ IsWindowsVersionOrGreater(WORD wMajorVersion, WORD wMinorVersion, WORD wServiceP VERSIONHELPERAPI -IsWindowsVistaOrGreater() -{ - return IsWindowsVersionOrGreater(HIBYTE(_WIN32_WINNT_VISTA), LOBYTE(_WIN32_WINNT_VISTA), 0); -} - - -VERSIONHELPERAPI IsWindows8OrGreater() { return IsWindowsVersionOrGreater(HIBYTE(_WIN32_WINNT_WIN8), LOBYTE(_WIN32_WINNT_WIN8), 0); } #endif // VERSIONHELPERAPI -class CWinMergeTempLocale -{ -private: - LCID m_lcidOld; -public: - CWinMergeTempLocale() - { - CRegKeyEx reg; - if (reg.Open(HKEY_CURRENT_USER, f_RegLocaleDir) != ERROR_SUCCESS) - return; - - m_lcidOld = GetThreadLocale(); - - int iLangId = reg.ReadDword(f_LanguageId, (DWORD)-1); - if (iLangId != -1) - { - if (!IsWindowsVistaOrGreater()) - SetThreadUILanguage(iLangId); - SetThreadLocale(MAKELCID(iLangId, SORT_DEFAULT)); - } - } - ~CWinMergeTempLocale() - { - if (!IsWindowsVistaOrGreater()) - SetThreadUILanguage(LANGIDFROMLCID(m_lcidOld)); - SetThreadLocale(m_lcidOld); - } -}; - /** * @brief Load a string from resource. * @param [in] Resource string ID. @@ -249,7 +213,6 @@ CWinMergeShell::~CWinMergeShell() HRESULT CWinMergeShell::Initialize(LPCITEMIDLIST pidlFolder, LPDATAOBJECT pDataObj, HKEY hProgID) { - USES_WINMERGELOCALE; HRESULT hr = E_INVALIDARG; // Files/folders selected normally from the explorer @@ -338,7 +301,6 @@ HRESULT CWinMergeShell::QueryContextMenu(HMENU hmenu, UINT uMenuIndex, UINT uidFirstCmd, UINT uidLastCmd, UINT uFlags) { int nItemsAdded = 0; - USES_WINMERGELOCALE; // If the flags include CMF_DEFAULTONLY then we shouldn't do anything. if (uFlags & CMF_DEFAULTONLY) @@ -384,7 +346,6 @@ HRESULT CWinMergeShell::GetCommandString(UINT_PTR idCmd, UINT uFlags, UINT* pwReserved, LPSTR pszName, UINT cchMax) { USES_CONVERSION; - USES_WINMERGELOCALE; // Check idCmd, it must be 0 in simple mode and 0 or 1 in advanced mode. if ((m_dwMenuState & EXT_ADVANCED) == 0) @@ -426,7 +387,6 @@ HRESULT CWinMergeShell::InvokeCommand(LPCMINVOKECOMMANDINFO pCmdInfo) String strWinMergePath; BOOL bCompare = FALSE; BOOL bAlterSubFolders = FALSE; - USES_WINMERGELOCALE; // If lpVerb really points to a string, ignore this function call and bail out. if (HIWORD(pCmdInfo->lpVerb) != 0) -- 2.11.0