mirror of
https://github.com/microsoft/PowerToys.git
synced 2026-04-03 09:46:54 +02:00
common: refactor common library pt2 (#8588)
- remove common lib - split settings, remove common-md - move ipc interop/kb_layout to interop - rename core -> settings, settings -> old_settings - os-detect header-only; interop -> PowerToysInterop - split notifications, move single-use headers where they're used - winstore lib - rename com utils - rename Updating and Telemetry projects - rename core -> settings-ui and remove examples folder - rename settings-ui folder + consisent common/version include
This commit is contained in:
@@ -3,8 +3,9 @@
|
||||
#include "resource.h"
|
||||
#include <CLSID.h>
|
||||
#include <PowerRenameExt.h>
|
||||
#include <common.h>
|
||||
#include <com_object_factory.h>
|
||||
|
||||
#include <common/utils/com_object_factory.h>
|
||||
#include <common/utils/window.h>
|
||||
|
||||
std::atomic<DWORD> g_dwModuleRefCount = 0;
|
||||
|
||||
@@ -25,7 +26,6 @@ void ModuleRelease()
|
||||
}
|
||||
HINSTANCE g_hInst = 0;
|
||||
|
||||
|
||||
int APIENTRY wWinMain(_In_ HINSTANCE hInstance,
|
||||
_In_opt_ HINSTANCE,
|
||||
_In_ LPWSTR lpCmdLine,
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#include <windows.h>
|
||||
#include "resource.h"
|
||||
#include "../../../common/version.h"
|
||||
#include "../../../common/version/version.h"
|
||||
|
||||
// We need both DLL and UI resource files for UWP UI.
|
||||
#include "../dll/Generated Files/PowerRenameExt.rc"
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="..\..\..\..\packages\Microsoft.Windows.CppWinRT.2.0.200729.8\build\native\Microsoft.Windows.CppWinRT.props" Condition="Exists('..\..\..\..\packages\Microsoft.Windows.CppWinRT.2.0.200729.8\build\native\Microsoft.Windows.CppWinRT.props')" />
|
||||
|
||||
<Target Name="GenerateResourceFiles" BeforeTargets="PrepareForBuild">
|
||||
<Exec Command="powershell -NonInteractive -executionpolicy Unrestricted $(SolutionDir)tools\build\convert-resx-to-rc.ps1 ..\dll resource.base.h resource.h PowerRenameExt.base.rc PowerRenameExt.rc" />
|
||||
</Target>
|
||||
@@ -30,11 +29,10 @@
|
||||
<PropertyGroup>
|
||||
<IntDir>$(SolutionDir)$(Platform)\$(Configuration)\obj\$(ProjectName)\</IntDir>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemDefinitionGroup>
|
||||
<ClCompile>
|
||||
<PreprocessorDefinitions>_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<AdditionalIncludeDirectories>$(ProjectDir)..\;$(ProjectDir)..\ui;$(ProjectDir)..\dll;$(ProjectDir)..\lib;$(ProjectDir)..\..\..\common;$(ProjectDir)..\..\..\common\Telemetry;%(AdditionalIncludeDirectories);$(GeneratedFilesDir)</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>$(ProjectDir)..\;$(ProjectDir)..\ui;$(ProjectDir)..\dll;$(ProjectDir)..\lib;$(ProjectDir)..\..\..\;$(ProjectDir)..\..\..\common\Telemetry;%(AdditionalIncludeDirectories);$(GeneratedFilesDir)</AdditionalIncludeDirectories>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>WindowsApp.lib;Comctl32.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;shcore.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
@@ -56,8 +54,11 @@
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\..\..\common\common.vcxproj">
|
||||
<Project>{74485049-c722-400f-abe5-86ac52d929b3}</Project>
|
||||
<ProjectReference Include="..\..\..\common\Display\Display.vcxproj">
|
||||
<Project>{caba8dfb-823b-4bf2-93ac-3f31984150d9}</Project>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\..\common\SettingsAPI\SetttingsAPI.vcxproj">
|
||||
<Project>{6955446d-23f7-4023-9bb3-8657f904af99}</Project>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\lib\PowerRenameLib.vcxproj">
|
||||
<Project>{51920f1f-c28c-4adf-8660-4238766796c2}</Project>
|
||||
|
||||
Binary file not shown.
@@ -4,12 +4,14 @@
|
||||
#include <PowerRenameItem.h>
|
||||
#include <PowerRenameManager.h>
|
||||
#include <trace.h>
|
||||
#include <common.h>
|
||||
#include <Helpers.h>
|
||||
#include <icon_helpers.h>
|
||||
#include <common/themes/icon_helpers.h>
|
||||
#include <Settings.h>
|
||||
#include "Generated Files/resource.h"
|
||||
|
||||
#include <common/utils/resources.h>
|
||||
#include <common/utils/process_path.h>
|
||||
|
||||
extern HINSTANCE g_hInst;
|
||||
|
||||
struct InvokeStruct
|
||||
|
||||
@@ -9,29 +9,24 @@
|
||||
<ProjectGuid>{B25AC7A5-FB9F-4789-B392-D5C85E948670}</ProjectGuid>
|
||||
<RootNamespace>PowerRenameExt</RootNamespace>
|
||||
</PropertyGroup>
|
||||
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
|
||||
<PropertyGroup Label="Configuration">
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
<TargetName>$(ProjectName)</TargetName>
|
||||
<OutDir>$(SolutionDir)$(Platform)\$(Configuration)\modules\PowerRename\</OutDir>
|
||||
</PropertyGroup>
|
||||
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
|
||||
<ItemDefinitionGroup>
|
||||
<ClCompile>
|
||||
<AdditionalIncludeDirectories>..\lib\;..\ui\;..\;..\..\..\common;..\..\..\common\telemetry;..\..\;..\..\..\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>..\lib\;..\ui\;..\;..\..\..\;..\..\..\common\telemetry;..\..\;..\..\..\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<TreatWarningAsError>true</TreatWarningAsError>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>Pathcch.lib;comctl32.lib;$(SolutionDir)$(Platform)\$(Configuration)\obj\PowerRenameUI\PowerRenameUI.res;shcore.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<ModuleDefinitionFile>PowerRenameExt.def</ModuleDefinitionFile>
|
||||
<DelayLoadDLLs>gdi32.dll;shell32.dll;ole32.dll;shlwapi.dll;oleaut32.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
|
||||
</Link>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ClInclude Include="CLSID.h" />
|
||||
<ClInclude Include="Generated Files/resource.h" />
|
||||
@@ -57,8 +52,11 @@
|
||||
<None Include="PowerRenameExt.def" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\..\..\common\common.vcxproj">
|
||||
<Project>{74485049-c722-400f-abe5-86ac52d929b3}</Project>
|
||||
<ProjectReference Include="..\..\..\common\Display\Display.vcxproj">
|
||||
<Project>{caba8dfb-823b-4bf2-93ac-3f31984150d9}</Project>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\..\common\Themes\Themes.vcxproj">
|
||||
<Project>{98537082-0fdb-40de-abd8-0dc5a4269bab}</Project>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\lib\PowerRenameLib.vcxproj">
|
||||
<Project>{51920f1f-c28c-4adf-8660-4238766796c2}</Project>
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
#include <interface/powertoy_module_interface.h>
|
||||
#include <settings.h>
|
||||
#include <trace.h>
|
||||
#include <common/settings_objects.h>
|
||||
#include <common/common.h>
|
||||
#include <common/SettingsAPI/settings_objects.h>
|
||||
#include <common/utils/resources.h>
|
||||
#include "Generated Files/resource.h"
|
||||
#include <atomic>
|
||||
#include <dll/PowerRenameConstants.h>
|
||||
@@ -12,8 +12,6 @@
|
||||
std::atomic<DWORD> g_dwModuleRefCount = 0;
|
||||
HINSTANCE g_hInst = 0;
|
||||
|
||||
extern "C" IMAGE_DOS_HEADER __ImageBase;
|
||||
|
||||
class CPowerRenameClassFactory : public IClassFactory
|
||||
{
|
||||
public:
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
#pragma once
|
||||
|
||||
#include <common.h>
|
||||
#include <lib/PowerRenameInterfaces.h>
|
||||
|
||||
HRESULT GetTrimmedFileName(_Out_ PWSTR result, UINT cchMax, _In_ PCWSTR source);
|
||||
|
||||
@@ -1,15 +1,17 @@
|
||||
#include "pch.h"
|
||||
#include "PowerRenameItem.h"
|
||||
#include "icon_helpers.h"
|
||||
#include <common/themes/icon_helpers.h>
|
||||
|
||||
int CPowerRenameItem::s_id = 0;
|
||||
|
||||
IFACEMETHODIMP_(ULONG) CPowerRenameItem::AddRef()
|
||||
IFACEMETHODIMP_(ULONG)
|
||||
CPowerRenameItem::AddRef()
|
||||
{
|
||||
return InterlockedIncrement(&m_refCount);
|
||||
}
|
||||
|
||||
IFACEMETHODIMP_(ULONG) CPowerRenameItem::Release()
|
||||
IFACEMETHODIMP_(ULONG)
|
||||
CPowerRenameItem::Release()
|
||||
{
|
||||
long refCount = InterlockedDecrement(&m_refCount);
|
||||
|
||||
@@ -198,9 +200,9 @@ IFACEMETHODIMP CPowerRenameItem::IsItemVisible(_In_ DWORD filter, _In_ DWORD fla
|
||||
GetSelected(isItemVisible);
|
||||
break;
|
||||
case PowerRenameFilters::FlagsApplicable:
|
||||
*isItemVisible = !((m_isFolder && (flags & PowerRenameFlags::ExcludeFolders)) ||
|
||||
(!m_isFolder && (flags & PowerRenameFlags::ExcludeFiles)) ||
|
||||
(m_depth > 0 && (flags & PowerRenameFlags::ExcludeSubfolders)));
|
||||
*isItemVisible = !((m_isFolder && (flags & PowerRenameFlags::ExcludeFolders)) ||
|
||||
(!m_isFolder && (flags & PowerRenameFlags::ExcludeFiles)) ||
|
||||
(m_depth > 0 && (flags & PowerRenameFlags::ExcludeSubfolders)));
|
||||
break;
|
||||
case PowerRenameFilters::ShouldRename:
|
||||
ShouldRenameItem(flags, isItemVisible);
|
||||
|
||||
@@ -31,15 +31,13 @@
|
||||
<PropertyGroup>
|
||||
<OutDir>$(SolutionDir)$(Platform)\$(Configuration)\modules\PowerRename\</OutDir>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemDefinitionGroup>
|
||||
<ClCompile>
|
||||
<WarningLevel>Level4</WarningLevel>
|
||||
<PreprocessorDefinitions>WIN32;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<AdditionalIncludeDirectories>$(ProjectDir)..\;$(ProjectDir)..\ui;$(ProjectDir)..\dll;$(ProjectDir)..\lib;$(ProjectDir)..\..\..\common;$(ProjectDir)..\..\..\common\Telemetry;%(AdditionalIncludeDirectories);$(GeneratedFilesDir)</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>$(ProjectDir)..\;$(ProjectDir)..\ui;$(ProjectDir)..\dll;$(ProjectDir)..\lib;$(ProjectDir)..\..\..\;$(ProjectDir)..\..\..\common\Telemetry;%(AdditionalIncludeDirectories);$(GeneratedFilesDir)</AdditionalIncludeDirectories>
|
||||
</ClCompile>
|
||||
</ItemDefinitionGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ClInclude Include="Helpers.h" />
|
||||
<ClInclude Include="PowerRenameItem.h" />
|
||||
@@ -66,6 +64,11 @@
|
||||
<ItemGroup>
|
||||
<None Include="packages.config" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\..\..\common\SettingsAPI\SetttingsAPI.vcxproj">
|
||||
<Project>{6955446d-23f7-4023-9bb3-8657f904af99}</Project>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
<Import Project="..\..\..\..\packages\Microsoft.Windows.CppWinRT.2.0.200729.8\build\native\Microsoft.Windows.CppWinRT.targets" Condition="Exists('..\..\..\..\packages\Microsoft.Windows.CppWinRT.2.0.200729.8\build\native\Microsoft.Windows.CppWinRT.targets')" />
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
#include <shlobj.h>
|
||||
#include <cstring>
|
||||
#include "helpers.h"
|
||||
#include "window_helpers.h"
|
||||
#include <filesystem>
|
||||
#include "trace.h"
|
||||
#include <winrt/base.h>
|
||||
@@ -14,15 +13,45 @@ namespace fs = std::filesystem;
|
||||
|
||||
extern HINSTANCE g_hInst;
|
||||
|
||||
HWND CreateMsgWindow(_In_ HINSTANCE hInst, _In_ WNDPROC pfnWndProc, _In_ void* p)
|
||||
{
|
||||
WNDCLASS wc = { 0 };
|
||||
|
||||
PCWSTR wndClassName = L"MsgWindow";
|
||||
|
||||
wc.lpfnWndProc = DefWindowProc;
|
||||
wc.cbWndExtra = sizeof(void*);
|
||||
wc.hInstance = hInst;
|
||||
wc.hbrBackground = (HBRUSH)(COLOR_BTNFACE + 1);
|
||||
wc.lpszClassName = wndClassName;
|
||||
|
||||
RegisterClass(&wc);
|
||||
|
||||
HWND hwnd = CreateWindowEx(
|
||||
0, wndClassName, nullptr, 0, 0, 0, 0, 0, HWND_MESSAGE, 0, hInst, nullptr);
|
||||
if (hwnd)
|
||||
{
|
||||
SetWindowLongPtr(hwnd, 0, (LONG_PTR)p);
|
||||
if (pfnWndProc)
|
||||
{
|
||||
SetWindowLongPtr(hwnd, GWLP_WNDPROC, (LONG_PTR)pfnWndProc);
|
||||
}
|
||||
}
|
||||
|
||||
return hwnd;
|
||||
}
|
||||
|
||||
// The default FOF flags to use in the rename operations
|
||||
#define FOF_DEFAULTFLAGS (FOF_ALLOWUNDO | FOFX_ADDUNDORECORD | FOFX_SHOWELEVATIONPROMPT | FOF_RENAMEONCOLLISION)
|
||||
|
||||
IFACEMETHODIMP_(ULONG) CPowerRenameManager::AddRef()
|
||||
IFACEMETHODIMP_(ULONG)
|
||||
CPowerRenameManager::AddRef()
|
||||
{
|
||||
return InterlockedIncrement(&m_refCount);
|
||||
}
|
||||
|
||||
IFACEMETHODIMP_(ULONG) CPowerRenameManager::Release()
|
||||
IFACEMETHODIMP_(ULONG)
|
||||
CPowerRenameManager::Release()
|
||||
{
|
||||
long refCount = InterlockedDecrement(&m_refCount);
|
||||
|
||||
@@ -170,7 +199,7 @@ IFACEMETHODIMP CPowerRenameManager::GetVisibleItemByIndex(_In_ UINT index, _COM_
|
||||
UINT realIndex = 0, visibleIndex = 0;
|
||||
for (size_t i = 0; i < m_isVisible.size(); i++)
|
||||
{
|
||||
if (m_isVisible[i] && visibleIndex == index)
|
||||
if (m_isVisible[i] && visibleIndex == index)
|
||||
{
|
||||
realIndex = static_cast<UINT>(i);
|
||||
break;
|
||||
@@ -194,7 +223,7 @@ IFACEMETHODIMP CPowerRenameManager::GetItemById(_In_ int id, _COM_Outptr_ IPower
|
||||
HRESULT hr = E_FAIL;
|
||||
std::map<int, IPowerRenameItem*>::iterator it;
|
||||
it = m_renameItems.find(id);
|
||||
if (it != m_renameItems.end())
|
||||
if (it != m_renameItems.end())
|
||||
{
|
||||
*ppItem = m_renameItems[id];
|
||||
(*ppItem)->AddRef();
|
||||
@@ -221,7 +250,7 @@ IFACEMETHODIMP CPowerRenameManager::SetVisible()
|
||||
for (auto rit = m_renameItems.rbegin(); rit != m_renameItems.rend(); ++rit, --i)
|
||||
{
|
||||
bool isVisible = false;
|
||||
if (m_filter == PowerRenameFilters::ShouldRename &&
|
||||
if (m_filter == PowerRenameFilters::ShouldRename &&
|
||||
(FAILED(m_spRegEx->GetSearchTerm(&searchTerm)) || searchTerm && wcslen(searchTerm) == 0))
|
||||
{
|
||||
isVisible = true;
|
||||
@@ -239,17 +268,17 @@ IFACEMETHODIMP CPowerRenameManager::SetVisible()
|
||||
{
|
||||
lastVisibleDepth = itemDepth;
|
||||
}
|
||||
else if (lastVisibleDepth == itemDepth+1)
|
||||
else if (lastVisibleDepth == itemDepth + 1)
|
||||
{
|
||||
isVisible = true;
|
||||
lastVisibleDepth = itemDepth;
|
||||
}
|
||||
|
||||
|
||||
m_isVisible[i] = isVisible;
|
||||
hr = S_OK;
|
||||
}
|
||||
|
||||
return hr;
|
||||
return hr;
|
||||
}
|
||||
|
||||
IFACEMETHODIMP CPowerRenameManager::GetVisibleItemCount(_Out_ UINT* count)
|
||||
@@ -273,7 +302,7 @@ IFACEMETHODIMP CPowerRenameManager::GetVisibleItemCount(_Out_ UINT* count)
|
||||
{
|
||||
GetItemCount(count);
|
||||
}
|
||||
|
||||
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
@@ -465,11 +494,11 @@ HRESULT CPowerRenameManager::_Init()
|
||||
// Custom messages for worker threads
|
||||
enum
|
||||
{
|
||||
SRM_REGEX_ITEM_UPDATED = (WM_APP + 1), // Single rename item processed by regex worker thread
|
||||
SRM_REGEX_STARTED, // RegEx operation was started
|
||||
SRM_REGEX_CANCELED, // Regex operation was canceled
|
||||
SRM_REGEX_COMPLETE, // Regex worker thread completed
|
||||
SRM_FILEOP_COMPLETE // File Operation worker thread completed
|
||||
SRM_REGEX_ITEM_UPDATED = (WM_APP + 1), // Single rename item processed by regex worker thread
|
||||
SRM_REGEX_STARTED, // RegEx operation was started
|
||||
SRM_REGEX_CANCELED, // Regex operation was canceled
|
||||
SRM_REGEX_COMPLETE, // Regex worker thread completed
|
||||
SRM_FILEOP_COMPLETE // File Operation worker thread completed
|
||||
};
|
||||
|
||||
struct WorkerThreadData
|
||||
@@ -556,7 +585,6 @@ void CPowerRenameManager::_LogOperationTelemetry()
|
||||
GetRenameItemCount(&renameItemCount);
|
||||
GetFlags(&flags);
|
||||
|
||||
|
||||
// Enumerate extensions used into a map
|
||||
std::map<std::wstring, int> extensionsMap;
|
||||
for (UINT i = 0; i < totalItemCount; i++)
|
||||
@@ -748,7 +776,7 @@ DWORD WINAPI CPowerRenameManager::s_fileOpWorkerThread(_In_ void* pv)
|
||||
{
|
||||
spFileOp->SetOwnerWindow(pwtd->hwndParent);
|
||||
}
|
||||
|
||||
|
||||
// Perform the operation
|
||||
// We don't care about the return code here. We would rather
|
||||
// return control back to explorer so the user can cleanly
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
#include "pch.h"
|
||||
#include "Settings.h"
|
||||
#include "PowerRenameInterfaces.h"
|
||||
#include "settings_helpers.h"
|
||||
#include <common/SettingsAPI/settings_helpers.h>
|
||||
|
||||
#include <filesystem>
|
||||
#include <commctrl.h>
|
||||
#include <algorithm>
|
||||
#include <fstream>
|
||||
#include <dll\PowerRenameConstants.h>
|
||||
#include <dll/PowerRenameConstants.h>
|
||||
|
||||
namespace
|
||||
{
|
||||
@@ -61,7 +61,7 @@ namespace
|
||||
SetRegNumber(valueName, value ? 1 : 0);
|
||||
}
|
||||
|
||||
std::wstring GetRegString(const std::wstring& valueName,const std::wstring& subPath)
|
||||
std::wstring GetRegString(const std::wstring& valueName, const std::wstring& subPath)
|
||||
{
|
||||
wchar_t value[CSettings::MAX_INPUT_STRING_LEN];
|
||||
value[0] = L'\0';
|
||||
@@ -123,7 +123,6 @@ private:
|
||||
const std::wstring registryFilePath;
|
||||
};
|
||||
|
||||
|
||||
void MRUListHandler::Push(const std::wstring& data)
|
||||
{
|
||||
if (Exists(data))
|
||||
@@ -265,7 +264,9 @@ void MRUListHandler::ParseJson()
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (const winrt::hresult_error&) { }
|
||||
catch (const winrt::hresult_error&)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -280,15 +281,21 @@ class CRenameMRU :
|
||||
{
|
||||
public:
|
||||
// IUnknown
|
||||
IFACEMETHODIMP_(ULONG) AddRef();
|
||||
IFACEMETHODIMP_(ULONG) Release();
|
||||
IFACEMETHODIMP_(ULONG)
|
||||
AddRef();
|
||||
IFACEMETHODIMP_(ULONG)
|
||||
Release();
|
||||
IFACEMETHODIMP QueryInterface(_In_ REFIID riid, _Outptr_ void** ppv);
|
||||
|
||||
// IEnumString
|
||||
IFACEMETHODIMP Next(__in ULONG celt, __out_ecount_part(celt, *pceltFetched) LPOLESTR* rgelt, __out_opt ULONG* pceltFetched);
|
||||
IFACEMETHODIMP Skip(__in ULONG) { return E_NOTIMPL; }
|
||||
IFACEMETHODIMP Reset();
|
||||
IFACEMETHODIMP Clone(__deref_out IEnumString** ppenum) { *ppenum = nullptr; return E_NOTIMPL; }
|
||||
IFACEMETHODIMP Clone(__deref_out IEnumString** ppenum)
|
||||
{
|
||||
*ppenum = nullptr;
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
// IPowerRenameMRU
|
||||
IFACEMETHODIMP AddMRUString(_In_ PCWSTR entry);
|
||||
@@ -328,12 +335,14 @@ HRESULT CRenameMRU::CreateInstance(_In_ const std::wstring& filePath, _In_ const
|
||||
return hr;
|
||||
}
|
||||
|
||||
IFACEMETHODIMP_(ULONG) CRenameMRU::AddRef()
|
||||
IFACEMETHODIMP_(ULONG)
|
||||
CRenameMRU::AddRef()
|
||||
{
|
||||
return InterlockedIncrement(&refCount);
|
||||
}
|
||||
|
||||
IFACEMETHODIMP_(ULONG) CRenameMRU::Release()
|
||||
IFACEMETHODIMP_(ULONG)
|
||||
CRenameMRU::Release()
|
||||
{
|
||||
unsigned int cnt = InterlockedDecrement(&refCount);
|
||||
|
||||
@@ -408,15 +417,15 @@ void CSettings::Save()
|
||||
{
|
||||
json::JsonObject jsonData;
|
||||
|
||||
jsonData.SetNamedValue(c_enabled, json::value(settings.enabled));
|
||||
jsonData.SetNamedValue(c_showIconOnMenu, json::value(settings.showIconOnMenu));
|
||||
jsonData.SetNamedValue(c_enabled, json::value(settings.enabled));
|
||||
jsonData.SetNamedValue(c_showIconOnMenu, json::value(settings.showIconOnMenu));
|
||||
jsonData.SetNamedValue(c_extendedContextMenuOnly, json::value(settings.extendedContextMenuOnly));
|
||||
jsonData.SetNamedValue(c_persistState, json::value(settings.persistState));
|
||||
jsonData.SetNamedValue(c_mruEnabled, json::value(settings.MRUEnabled));
|
||||
jsonData.SetNamedValue(c_maxMRUSize, json::value(settings.maxMRUSize));
|
||||
jsonData.SetNamedValue(c_searchText, json::value(settings.searchText));
|
||||
jsonData.SetNamedValue(c_replaceText, json::value(settings.replaceText));
|
||||
jsonData.SetNamedValue(c_useBoostLib, json::value(settings.useBoostLib));
|
||||
jsonData.SetNamedValue(c_persistState, json::value(settings.persistState));
|
||||
jsonData.SetNamedValue(c_mruEnabled, json::value(settings.MRUEnabled));
|
||||
jsonData.SetNamedValue(c_maxMRUSize, json::value(settings.maxMRUSize));
|
||||
jsonData.SetNamedValue(c_searchText, json::value(settings.searchText));
|
||||
jsonData.SetNamedValue(c_replaceText, json::value(settings.replaceText));
|
||||
jsonData.SetNamedValue(c_useBoostLib, json::value(settings.useBoostLib));
|
||||
|
||||
json::to_file(jsonFilePath, jsonData);
|
||||
GetSystemTimeAsFileTime(&lastLoadedTime);
|
||||
@@ -451,16 +460,16 @@ void CSettings::Reload()
|
||||
|
||||
void CSettings::MigrateFromRegistry()
|
||||
{
|
||||
settings.enabled = GetRegBoolean(c_enabled, true);
|
||||
settings.showIconOnMenu = GetRegBoolean(c_showIconOnMenu, true);
|
||||
settings.enabled = GetRegBoolean(c_enabled, true);
|
||||
settings.showIconOnMenu = GetRegBoolean(c_showIconOnMenu, true);
|
||||
settings.extendedContextMenuOnly = GetRegBoolean(c_extendedContextMenuOnly, false); // Disabled by default.
|
||||
settings.persistState = GetRegBoolean(c_persistState, true);
|
||||
settings.MRUEnabled = GetRegBoolean(c_mruEnabled, true);
|
||||
settings.maxMRUSize = GetRegNumber(c_maxMRUSize, 10);
|
||||
settings.flags = GetRegNumber(c_flags, 0);
|
||||
settings.searchText = GetRegString(c_searchText, L"");
|
||||
settings.replaceText = GetRegString(c_replaceText, L"");
|
||||
settings.useBoostLib = false; // Never existed in registry, disabled by default.
|
||||
settings.persistState = GetRegBoolean(c_persistState, true);
|
||||
settings.MRUEnabled = GetRegBoolean(c_mruEnabled, true);
|
||||
settings.maxMRUSize = GetRegNumber(c_maxMRUSize, 10);
|
||||
settings.flags = GetRegNumber(c_flags, 0);
|
||||
settings.searchText = GetRegString(c_searchText, L"");
|
||||
settings.replaceText = GetRegString(c_replaceText, L"");
|
||||
settings.useBoostLib = false; // Never existed in registry, disabled by default.
|
||||
}
|
||||
|
||||
void CSettings::ParseJson()
|
||||
@@ -508,7 +517,9 @@ void CSettings::ParseJson()
|
||||
settings.useBoostLib = jsonSettings.GetNamedBoolean(c_useBoostLib);
|
||||
}
|
||||
}
|
||||
catch (const winrt::hresult_error&) { }
|
||||
catch (const winrt::hresult_error&)
|
||||
{
|
||||
}
|
||||
}
|
||||
GetSystemTimeAsFileTime(&lastLoadedTime);
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#pragma once
|
||||
|
||||
#include "json.h"
|
||||
#include <common/utils/json.h>
|
||||
|
||||
class CSettings
|
||||
{
|
||||
|
||||
@@ -8,7 +8,6 @@
|
||||
#include <PowerRenameUI.h>
|
||||
#include <PowerRenameManager.h>
|
||||
#include <Shobjidl.h>
|
||||
#include <common.h>
|
||||
|
||||
#pragma comment(linker, "/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"")
|
||||
|
||||
|
||||
Binary file not shown.
@@ -11,7 +11,6 @@
|
||||
<PropertyGroup Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
</PropertyGroup>
|
||||
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
</ImportGroup>
|
||||
@@ -35,7 +34,7 @@
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup>
|
||||
<ClCompile>
|
||||
<AdditionalIncludeDirectories>$(ProjectDir)..\;$(ProjectDir)..\ui;$(ProjectDir)..\dll;$(ProjectDir)..\lib;$(ProjectDir)..\..\..\common;$(ProjectDir)..\..\..\common\Telemetry;%(AdditionalIncludeDirectories);$(GeneratedFilesDir)</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>$(ProjectDir)..\;$(ProjectDir)..\ui;$(ProjectDir)..\dll;$(ProjectDir)..\lib;$(ProjectDir)..\..\..\;$(ProjectDir)..\..\..\common\Telemetry;%(AdditionalIncludeDirectories);$(GeneratedFilesDir)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>WIN32;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
@@ -58,8 +57,14 @@
|
||||
<ResourceCompile Include="PowerRenameTest.rc" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\..\..\common\common.vcxproj">
|
||||
<Project>{74485049-c722-400f-abe5-86ac52d929b3}</Project>
|
||||
<ProjectReference Include="..\..\..\common\Display\Display.vcxproj">
|
||||
<Project>{caba8dfb-823b-4bf2-93ac-3f31984150d9}</Project>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\..\common\SettingsAPI\SetttingsAPI.vcxproj">
|
||||
<Project>{6955446d-23f7-4023-9bb3-8657f904af99}</Project>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\..\common\Themes\Themes.vcxproj">
|
||||
<Project>{98537082-0fdb-40de-abd8-0dc5a4269bab}</Project>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
#include "pch.h"
|
||||
#include "Generated Files/resource.h"
|
||||
#include "PowerRenameUI.h"
|
||||
#include "dpi_aware.h"
|
||||
|
||||
#include <common/utils/resources.h>
|
||||
#include <common/display/dpi_aware.h>
|
||||
#include <commctrl.h>
|
||||
#include <Shlobj.h>
|
||||
#include <helpers.h>
|
||||
@@ -9,8 +11,6 @@
|
||||
#include <thread>
|
||||
#include <trace.h>
|
||||
|
||||
extern "C" IMAGE_DOS_HEADER __ImageBase;
|
||||
|
||||
extern HINSTANCE g_hInst;
|
||||
|
||||
enum
|
||||
@@ -739,7 +739,7 @@ BOOL CPowerRenameUI::_OnNotify(_In_ WPARAM wParam, _In_ LPARAM lParam)
|
||||
LPNMHDR pnmdr = (LPNMHDR)lParam;
|
||||
LPNMLISTVIEW pnmlv = (LPNMLISTVIEW)pnmdr;
|
||||
NMLVEMPTYMARKUP* pnmMarkup = NULL;
|
||||
|
||||
|
||||
if (pnmdr)
|
||||
{
|
||||
BOOL checked = FALSE;
|
||||
@@ -785,7 +785,8 @@ BOOL CPowerRenameUI::_OnNotify(_In_ WPARAM wParam, _In_ LPARAM lParam)
|
||||
}
|
||||
break;
|
||||
|
||||
case NM_CLICK: {
|
||||
case NM_CLICK:
|
||||
{
|
||||
if (m_spsrm)
|
||||
{
|
||||
m_listview.OnClickList(m_spsrm, (NM_LISTVIEW*)pnmdr);
|
||||
@@ -941,7 +942,7 @@ void CPowerRenameUI::_SetCheckboxesFromFlags(_In_ DWORD flags)
|
||||
|
||||
void CPowerRenameUI::_ValidateFlagCheckbox(_In_ DWORD checkBoxId)
|
||||
{
|
||||
if (checkBoxId == IDC_TRANSFORM_UPPERCASE )
|
||||
if (checkBoxId == IDC_TRANSFORM_UPPERCASE)
|
||||
{
|
||||
if (Button_GetCheck(GetDlgItem(m_hwnd, IDC_TRANSFORM_UPPERCASE)) == BST_CHECKED)
|
||||
{
|
||||
@@ -1035,14 +1036,14 @@ void CPowerRenameUI::_CollectItemPosition(_In_ DWORD id)
|
||||
switch (id)
|
||||
{
|
||||
case IDC_EDIT_SEARCHFOR:
|
||||
/* IDC_EDIT_REPLACEWITH uses same value*/
|
||||
/* IDC_EDIT_REPLACEWITH uses same value*/
|
||||
m_itemsPositioning.searchReplaceWidthDiff = m_initialWidth - itemWidth;
|
||||
break;
|
||||
case IDC_PREVIEWGROUP:
|
||||
m_itemsPositioning.previewGroupHeightDiff = m_initialHeight - itemHeight;
|
||||
break;
|
||||
case IDC_SEARCHREPLACEGROUP:
|
||||
/* IDC_OPTIONSGROUP uses same value */
|
||||
/* IDC_OPTIONSGROUP uses same value */
|
||||
m_itemsPositioning.groupsWidthDiff = m_initialWidth - itemWidth;
|
||||
break;
|
||||
case IDC_LIST_PREVIEW:
|
||||
@@ -1130,7 +1131,6 @@ void CPowerRenameListView::ToggleItem(_In_ IPowerRenameManager* psrm, _In_ int i
|
||||
spItem->GetSelected(&selected);
|
||||
spItem->PutSelected(!selected);
|
||||
|
||||
|
||||
UINT visibleItemCount = 0;
|
||||
psrm->GetVisibleItemCount(&visibleItemCount);
|
||||
SetItemCount(visibleItemCount);
|
||||
@@ -1427,7 +1427,6 @@ void CPowerRenameListView::_UpdateHeaderFilterState(_In_ DWORD filter)
|
||||
}
|
||||
|
||||
Header_SetItem(hwndHeader, 1, &hdiRename);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1443,4 +1442,3 @@ void CPowerRenameListView::OnColumnClick(_In_ IPowerRenameManager* psrm, _In_ in
|
||||
psrm->GetFilter(&filter);
|
||||
_UpdateHeaderFilterState(filter);
|
||||
}
|
||||
|
||||
|
||||
@@ -32,15 +32,13 @@
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
|
||||
<PropertyGroup>
|
||||
<OutDir>$(SolutionDir)$(Platform)\$(Configuration)\modules\PowerRename\</OutDir>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemDefinitionGroup>
|
||||
<ClCompile>
|
||||
<TreatWarningAsError>true</TreatWarningAsError>
|
||||
<AdditionalIncludeDirectories>$(ProjectDir)..\;$(ProjectDir)..\ui;$(ProjectDir)..\dll;$(ProjectDir)..\lib;$(ProjectDir)..\..\..\common;$(ProjectDir)..\..\..\common\Telemetry;%(AdditionalIncludeDirectories);$(GeneratedFilesDir)</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>$(ProjectDir)..\;$(ProjectDir)..\ui;$(ProjectDir)..\dll;$(ProjectDir)..\lib;$(ProjectDir)..\..\..\;$(ProjectDir)..\..\..\common\Telemetry;%(AdditionalIncludeDirectories);$(GeneratedFilesDir)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>WIN32;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
@@ -77,6 +75,11 @@
|
||||
<ItemGroup>
|
||||
<None Include="Resources.resx" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\..\..\common\Themes\Themes.vcxproj">
|
||||
<Project>{98537082-0fdb-40de-abd8-0dc5a4269bab}</Project>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
<Import Project="..\..\..\..\packages\Microsoft.Windows.CppWinRT.2.0.200729.8\build\native\Microsoft.Windows.CppWinRT.targets" Condition="Exists('..\..\..\..\packages\Microsoft.Windows.CppWinRT.2.0.200729.8\build\native\Microsoft.Windows.CppWinRT.targets')" />
|
||||
|
||||
@@ -11,7 +11,6 @@
|
||||
<PropertyGroup>
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
</PropertyGroup>
|
||||
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
</ImportGroup>
|
||||
@@ -33,10 +32,9 @@
|
||||
<PropertyGroup>
|
||||
<OutDir>$(SolutionDir)$(Platform)\$(Configuration)\modules\PowerRename\</OutDir>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemDefinitionGroup>
|
||||
<ClCompile>
|
||||
<AdditionalIncludeDirectories>..\;..\lib\;..\..\..\common;..\..\..\common\telemetry;..\..\;$(VCInstallDir)UnitTest\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>..\;..\lib\;..\..\..\;..\..\..\common\telemetry;..\..\;$(VCInstallDir)UnitTest\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<UseFullPaths>true</UseFullPaths>
|
||||
</ClCompile>
|
||||
@@ -67,8 +65,11 @@
|
||||
<ClCompile Include="TestFileHelper.cpp" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\..\..\common\common.vcxproj">
|
||||
<Project>{74485049-c722-400f-abe5-86ac52d929b3}</Project>
|
||||
<ProjectReference Include="..\..\..\common\SettingsAPI\SetttingsAPI.vcxproj">
|
||||
<Project>{6955446d-23f7-4023-9bb3-8657f904af99}</Project>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\..\common\Themes\Themes.vcxproj">
|
||||
<Project>{98537082-0fdb-40de-abd8-0dc5a4269bab}</Project>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#include <windows.h>
|
||||
#include "resource.h"
|
||||
#include "../../../common/version.h"
|
||||
#include "../../../common/version/version.h"
|
||||
|
||||
1 VERSIONINFO
|
||||
FILEVERSION FILE_VERSION
|
||||
|
||||
Reference in New Issue
Block a user