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 ^
//\r
\r
VS_VERSION_INFO VERSIONINFO\r
- FILEVERSION 1,17,8,0\r
- PRODUCTVERSION 1,17,8,0\r
+ FILEVERSION 1,17,9,0\r
+ PRODUCTVERSION 1,17,9,0\r
FILEFLAGSMASK 0x3fL\r
#ifdef _DEBUG\r
FILEFLAGS 0x1L\r
BEGIN\r
VALUE "CompanyName", "http://winmerge.org"\r
VALUE "FileDescription", "WinMerge Shell Integration library"\r
- VALUE "FileVersion", "1.17.8.0"\r
+ VALUE "FileVersion", "1.17.9.0"\r
VALUE "InternalName", "ShellExtension"\r
VALUE "LegalCopyright", "Copyright 2003-2019"\r
VALUE "OriginalFilename", "ShellExtension.DLL"\r
VALUE "ProductName", "WinMerge Shell Integration library"\r
- VALUE "ProductVersion", "1.17.8.0"\r
+ VALUE "ProductVersion", "1.17.9.0"\r
END\r
END\r
BLOCK "VarFileInfo"\r
#include <sys/types.h>
#include <sys/stat.h>
+OBJECT_ENTRY_AUTO(CLSID_WinMergeShell, CWinMergeShell)
+
/**
* @brief Flags for enabling and other settings of context menu.
*/
MENU_THREESEL
};
-#define USES_WINMERGELOCALE CWinMergeTempLocale __wmtl__
-
static String GetResourceString(UINT resourceID);
// GreyMerlin (03 Sept 2017) - The following Version Info checking code is a
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.
HRESULT CWinMergeShell::Initialize(LPCITEMIDLIST pidlFolder,
LPDATAOBJECT pDataObj, HKEY hProgID)
{
- USES_WINMERGELOCALE;
HRESULT hr = E_INVALIDARG;
// Files/folders selected normally from the explorer
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)
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)
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)