diff --git a/Cpp.Build.props b/Cpp.Build.props index 059ae21213..b58ed24173 100644 --- a/Cpp.Build.props +++ b/Cpp.Build.props @@ -84,7 +84,7 @@ - 10.0.18362.0 + 10.0.19041.0 diff --git a/PowerToys.sln b/PowerToys.sln index 682be4edc1..d8936af542 100644 --- a/PowerToys.sln +++ b/PowerToys.sln @@ -278,8 +278,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "utils", "utils", "{B39DC643 src\common\utils\modulesRegistry.h = src\common\utils\modulesRegistry.h src\common\utils\MsiUtils.h = src\common\utils\MsiUtils.h src\common\utils\os-detect.h = src\common\utils\os-detect.h - src\common\utils\process_path.h = src\common\utils\process_path.h src\common\utils\ProcessWaiter.h = src\common\utils\ProcessWaiter.h + src\common\utils\process_path.h = src\common\utils\process_path.h src\common\utils\registry.h = src\common\utils\registry.h src\common\utils\resources.h = src\common\utils\resources.h src\common\utils\string_utils.h = src\common\utils\string_utils.h @@ -403,6 +403,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PowerToys.Settings", "src\s EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PowerRenameUI", "src\modules\powerrename\PowerRenameUILib\PowerRenameUI.vcxproj", "{27718999-C175-450A-861C-89F911E16A88}" EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PowerRenameContextMenu", "src\modules\powerrename\PowerRenameContextMenu\PowerRenameContextMenu.vcxproj", "{1DBBB112-4BB1-444B-8EBB-E66555C76BA6}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|ARM64 = Debug|ARM64 @@ -1560,6 +1562,18 @@ Global {27718999-C175-450A-861C-89F911E16A88}.Release|x64.Build.0 = Release|x64 {27718999-C175-450A-861C-89F911E16A88}.Release|x86.ActiveCfg = Release|x64 {27718999-C175-450A-861C-89F911E16A88}.Release|x86.Build.0 = Release|x64 + {1DBBB112-4BB1-444B-8EBB-E66555C76BA6}.Debug|ARM64.ActiveCfg = Debug|ARM64 + {1DBBB112-4BB1-444B-8EBB-E66555C76BA6}.Debug|ARM64.Build.0 = Debug|ARM64 + {1DBBB112-4BB1-444B-8EBB-E66555C76BA6}.Debug|x64.ActiveCfg = Debug|x64 + {1DBBB112-4BB1-444B-8EBB-E66555C76BA6}.Debug|x64.Build.0 = Debug|x64 + {1DBBB112-4BB1-444B-8EBB-E66555C76BA6}.Debug|x86.ActiveCfg = Debug|x64 + {1DBBB112-4BB1-444B-8EBB-E66555C76BA6}.Debug|x86.Build.0 = Debug|x64 + {1DBBB112-4BB1-444B-8EBB-E66555C76BA6}.Release|ARM64.ActiveCfg = Release|ARM64 + {1DBBB112-4BB1-444B-8EBB-E66555C76BA6}.Release|ARM64.Build.0 = Release|ARM64 + {1DBBB112-4BB1-444B-8EBB-E66555C76BA6}.Release|x64.ActiveCfg = Release|x64 + {1DBBB112-4BB1-444B-8EBB-E66555C76BA6}.Release|x64.Build.0 = Release|x64 + {1DBBB112-4BB1-444B-8EBB-E66555C76BA6}.Release|x86.ActiveCfg = Release|x64 + {1DBBB112-4BB1-444B-8EBB-E66555C76BA6}.Release|x86.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -1693,6 +1707,7 @@ Global {8FE5A5EE-1B59-401C-9FB3-B04ECD3E29C1} = {4AFC9975-2456-4C70-94A4-84073C1CED93} {020A7474-3601-4160-A159-D7B70B77B15F} = {C3081D9A-1586-441A-B5F4-ED815B3719C1} {27718999-C175-450A-861C-89F911E16A88} = {89E20BCE-EB9C-46C8-8B50-E01A82E6FDC3} + {1DBBB112-4BB1-444B-8EBB-E66555C76BA6} = {89E20BCE-EB9C-46C8-8B50-E01A82E6FDC3} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {C3A2F9D1-7930-4EF4-A6FC-7EE0A99821D0} diff --git a/src/modules/powerrename/PowerRenameContextMenu/AppxManifest.xml b/src/modules/powerrename/PowerRenameContextMenu/AppxManifest.xml new file mode 100644 index 0000000000..346f8a9101 --- /dev/null +++ b/src/modules/powerrename/PowerRenameContextMenu/AppxManifest.xml @@ -0,0 +1,55 @@ + + + + + PowerRenameContextMenu + Stefan Sparse Package + Assets\storelogo.png + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/modules/powerrename/PowerRenameContextMenu/Assets/BadgeLogo.scale-100.png b/src/modules/powerrename/PowerRenameContextMenu/Assets/BadgeLogo.scale-100.png new file mode 100644 index 0000000000..e936eda3bf Binary files /dev/null and b/src/modules/powerrename/PowerRenameContextMenu/Assets/BadgeLogo.scale-100.png differ diff --git a/src/modules/powerrename/PowerRenameContextMenu/Assets/BadgeLogo.scale-125.png b/src/modules/powerrename/PowerRenameContextMenu/Assets/BadgeLogo.scale-125.png new file mode 100644 index 0000000000..467d74db56 Binary files /dev/null and b/src/modules/powerrename/PowerRenameContextMenu/Assets/BadgeLogo.scale-125.png differ diff --git a/src/modules/powerrename/PowerRenameContextMenu/Assets/BadgeLogo.scale-150.png b/src/modules/powerrename/PowerRenameContextMenu/Assets/BadgeLogo.scale-150.png new file mode 100644 index 0000000000..748de00432 Binary files /dev/null and b/src/modules/powerrename/PowerRenameContextMenu/Assets/BadgeLogo.scale-150.png differ diff --git a/src/modules/powerrename/PowerRenameContextMenu/Assets/BadgeLogo.scale-200.png b/src/modules/powerrename/PowerRenameContextMenu/Assets/BadgeLogo.scale-200.png new file mode 100644 index 0000000000..77ff5bb8ad Binary files /dev/null and b/src/modules/powerrename/PowerRenameContextMenu/Assets/BadgeLogo.scale-200.png differ diff --git a/src/modules/powerrename/PowerRenameContextMenu/Assets/BadgeLogo.scale-400.png b/src/modules/powerrename/PowerRenameContextMenu/Assets/BadgeLogo.scale-400.png new file mode 100644 index 0000000000..4701122a44 Binary files /dev/null and b/src/modules/powerrename/PowerRenameContextMenu/Assets/BadgeLogo.scale-400.png differ diff --git a/src/modules/powerrename/PowerRenameContextMenu/Assets/LargeTile.scale-100.png b/src/modules/powerrename/PowerRenameContextMenu/Assets/LargeTile.scale-100.png new file mode 100644 index 0000000000..0e89da4129 Binary files /dev/null and b/src/modules/powerrename/PowerRenameContextMenu/Assets/LargeTile.scale-100.png differ diff --git a/src/modules/powerrename/PowerRenameContextMenu/Assets/LargeTile.scale-125.png b/src/modules/powerrename/PowerRenameContextMenu/Assets/LargeTile.scale-125.png new file mode 100644 index 0000000000..d886baec94 Binary files /dev/null and b/src/modules/powerrename/PowerRenameContextMenu/Assets/LargeTile.scale-125.png differ diff --git a/src/modules/powerrename/PowerRenameContextMenu/Assets/LargeTile.scale-150.png b/src/modules/powerrename/PowerRenameContextMenu/Assets/LargeTile.scale-150.png new file mode 100644 index 0000000000..f69636b336 Binary files /dev/null and b/src/modules/powerrename/PowerRenameContextMenu/Assets/LargeTile.scale-150.png differ diff --git a/src/modules/powerrename/PowerRenameContextMenu/Assets/LargeTile.scale-200.png b/src/modules/powerrename/PowerRenameContextMenu/Assets/LargeTile.scale-200.png new file mode 100644 index 0000000000..fa8df5fafd Binary files /dev/null and b/src/modules/powerrename/PowerRenameContextMenu/Assets/LargeTile.scale-200.png differ diff --git a/src/modules/powerrename/PowerRenameContextMenu/Assets/LargeTile.scale-400.png b/src/modules/powerrename/PowerRenameContextMenu/Assets/LargeTile.scale-400.png new file mode 100644 index 0000000000..2378211794 Binary files /dev/null and b/src/modules/powerrename/PowerRenameContextMenu/Assets/LargeTile.scale-400.png differ diff --git a/src/modules/powerrename/PowerRenameContextMenu/Assets/SmallTile.scale-100.png b/src/modules/powerrename/PowerRenameContextMenu/Assets/SmallTile.scale-100.png new file mode 100644 index 0000000000..81a44e9605 Binary files /dev/null and b/src/modules/powerrename/PowerRenameContextMenu/Assets/SmallTile.scale-100.png differ diff --git a/src/modules/powerrename/PowerRenameContextMenu/Assets/SmallTile.scale-125.png b/src/modules/powerrename/PowerRenameContextMenu/Assets/SmallTile.scale-125.png new file mode 100644 index 0000000000..67e5781457 Binary files /dev/null and b/src/modules/powerrename/PowerRenameContextMenu/Assets/SmallTile.scale-125.png differ diff --git a/src/modules/powerrename/PowerRenameContextMenu/Assets/SmallTile.scale-150.png b/src/modules/powerrename/PowerRenameContextMenu/Assets/SmallTile.scale-150.png new file mode 100644 index 0000000000..512d5947ef Binary files /dev/null and b/src/modules/powerrename/PowerRenameContextMenu/Assets/SmallTile.scale-150.png differ diff --git a/src/modules/powerrename/PowerRenameContextMenu/Assets/SmallTile.scale-200.png b/src/modules/powerrename/PowerRenameContextMenu/Assets/SmallTile.scale-200.png new file mode 100644 index 0000000000..d28d3907b0 Binary files /dev/null and b/src/modules/powerrename/PowerRenameContextMenu/Assets/SmallTile.scale-200.png differ diff --git a/src/modules/powerrename/PowerRenameContextMenu/Assets/SmallTile.scale-400.png b/src/modules/powerrename/PowerRenameContextMenu/Assets/SmallTile.scale-400.png new file mode 100644 index 0000000000..62a692a3e0 Binary files /dev/null and b/src/modules/powerrename/PowerRenameContextMenu/Assets/SmallTile.scale-400.png differ diff --git a/src/modules/powerrename/PowerRenameContextMenu/Assets/SplashScreen.png b/src/modules/powerrename/PowerRenameContextMenu/Assets/SplashScreen.png new file mode 100644 index 0000000000..005b302954 Binary files /dev/null and b/src/modules/powerrename/PowerRenameContextMenu/Assets/SplashScreen.png differ diff --git a/src/modules/powerrename/PowerRenameContextMenu/Assets/SplashScreen.scale-100.png b/src/modules/powerrename/PowerRenameContextMenu/Assets/SplashScreen.scale-100.png new file mode 100644 index 0000000000..005b302954 Binary files /dev/null and b/src/modules/powerrename/PowerRenameContextMenu/Assets/SplashScreen.scale-100.png differ diff --git a/src/modules/powerrename/PowerRenameContextMenu/Assets/SplashScreen.scale-125.png b/src/modules/powerrename/PowerRenameContextMenu/Assets/SplashScreen.scale-125.png new file mode 100644 index 0000000000..11dc42c087 Binary files /dev/null and b/src/modules/powerrename/PowerRenameContextMenu/Assets/SplashScreen.scale-125.png differ diff --git a/src/modules/powerrename/PowerRenameContextMenu/Assets/SplashScreen.scale-150.png b/src/modules/powerrename/PowerRenameContextMenu/Assets/SplashScreen.scale-150.png new file mode 100644 index 0000000000..5a2379b2e6 Binary files /dev/null and b/src/modules/powerrename/PowerRenameContextMenu/Assets/SplashScreen.scale-150.png differ diff --git a/src/modules/powerrename/PowerRenameContextMenu/Assets/SplashScreen.scale-200.png b/src/modules/powerrename/PowerRenameContextMenu/Assets/SplashScreen.scale-200.png new file mode 100644 index 0000000000..b7c8f6d062 Binary files /dev/null and b/src/modules/powerrename/PowerRenameContextMenu/Assets/SplashScreen.scale-200.png differ diff --git a/src/modules/powerrename/PowerRenameContextMenu/Assets/SplashScreen.scale-400.png b/src/modules/powerrename/PowerRenameContextMenu/Assets/SplashScreen.scale-400.png new file mode 100644 index 0000000000..af7050d7c7 Binary files /dev/null and b/src/modules/powerrename/PowerRenameContextMenu/Assets/SplashScreen.scale-400.png differ diff --git a/src/modules/powerrename/PowerRenameContextMenu/Assets/Square150x150Logo.scale-100.png b/src/modules/powerrename/PowerRenameContextMenu/Assets/Square150x150Logo.scale-100.png new file mode 100644 index 0000000000..1cc6e8bc18 Binary files /dev/null and b/src/modules/powerrename/PowerRenameContextMenu/Assets/Square150x150Logo.scale-100.png differ diff --git a/src/modules/powerrename/PowerRenameContextMenu/Assets/Square150x150Logo.scale-125.png b/src/modules/powerrename/PowerRenameContextMenu/Assets/Square150x150Logo.scale-125.png new file mode 100644 index 0000000000..bcf3350f89 Binary files /dev/null and b/src/modules/powerrename/PowerRenameContextMenu/Assets/Square150x150Logo.scale-125.png differ diff --git a/src/modules/powerrename/PowerRenameContextMenu/Assets/Square150x150Logo.scale-150.png b/src/modules/powerrename/PowerRenameContextMenu/Assets/Square150x150Logo.scale-150.png new file mode 100644 index 0000000000..1babcf809b Binary files /dev/null and b/src/modules/powerrename/PowerRenameContextMenu/Assets/Square150x150Logo.scale-150.png differ diff --git a/src/modules/powerrename/PowerRenameContextMenu/Assets/Square150x150Logo.scale-200.png b/src/modules/powerrename/PowerRenameContextMenu/Assets/Square150x150Logo.scale-200.png new file mode 100644 index 0000000000..29a870f4fc Binary files /dev/null and b/src/modules/powerrename/PowerRenameContextMenu/Assets/Square150x150Logo.scale-200.png differ diff --git a/src/modules/powerrename/PowerRenameContextMenu/Assets/Square150x150Logo.scale-400.png b/src/modules/powerrename/PowerRenameContextMenu/Assets/Square150x150Logo.scale-400.png new file mode 100644 index 0000000000..f12b7e1c8a Binary files /dev/null and b/src/modules/powerrename/PowerRenameContextMenu/Assets/Square150x150Logo.scale-400.png differ diff --git a/src/modules/powerrename/PowerRenameContextMenu/Assets/Square44x44Logo.altform-lightunplated_targetsize-16.png b/src/modules/powerrename/PowerRenameContextMenu/Assets/Square44x44Logo.altform-lightunplated_targetsize-16.png new file mode 100644 index 0000000000..68ce2aea20 Binary files /dev/null and b/src/modules/powerrename/PowerRenameContextMenu/Assets/Square44x44Logo.altform-lightunplated_targetsize-16.png differ diff --git a/src/modules/powerrename/PowerRenameContextMenu/Assets/Square44x44Logo.altform-lightunplated_targetsize-24.png b/src/modules/powerrename/PowerRenameContextMenu/Assets/Square44x44Logo.altform-lightunplated_targetsize-24.png new file mode 100644 index 0000000000..6b04565538 Binary files /dev/null and b/src/modules/powerrename/PowerRenameContextMenu/Assets/Square44x44Logo.altform-lightunplated_targetsize-24.png differ diff --git a/src/modules/powerrename/PowerRenameContextMenu/Assets/Square44x44Logo.altform-lightunplated_targetsize-256.png b/src/modules/powerrename/PowerRenameContextMenu/Assets/Square44x44Logo.altform-lightunplated_targetsize-256.png new file mode 100644 index 0000000000..9560152e06 Binary files /dev/null and b/src/modules/powerrename/PowerRenameContextMenu/Assets/Square44x44Logo.altform-lightunplated_targetsize-256.png differ diff --git a/src/modules/powerrename/PowerRenameContextMenu/Assets/Square44x44Logo.altform-lightunplated_targetsize-32.png b/src/modules/powerrename/PowerRenameContextMenu/Assets/Square44x44Logo.altform-lightunplated_targetsize-32.png new file mode 100644 index 0000000000..10b378144c Binary files /dev/null and b/src/modules/powerrename/PowerRenameContextMenu/Assets/Square44x44Logo.altform-lightunplated_targetsize-32.png differ diff --git a/src/modules/powerrename/PowerRenameContextMenu/Assets/Square44x44Logo.altform-lightunplated_targetsize-48.png b/src/modules/powerrename/PowerRenameContextMenu/Assets/Square44x44Logo.altform-lightunplated_targetsize-48.png new file mode 100644 index 0000000000..3201851602 Binary files /dev/null and b/src/modules/powerrename/PowerRenameContextMenu/Assets/Square44x44Logo.altform-lightunplated_targetsize-48.png differ diff --git a/src/modules/powerrename/PowerRenameContextMenu/Assets/Square44x44Logo.altform-unplated_targetsize-16.png b/src/modules/powerrename/PowerRenameContextMenu/Assets/Square44x44Logo.altform-unplated_targetsize-16.png new file mode 100644 index 0000000000..68ce2aea20 Binary files /dev/null and b/src/modules/powerrename/PowerRenameContextMenu/Assets/Square44x44Logo.altform-unplated_targetsize-16.png differ diff --git a/src/modules/powerrename/PowerRenameContextMenu/Assets/Square44x44Logo.altform-unplated_targetsize-24.png b/src/modules/powerrename/PowerRenameContextMenu/Assets/Square44x44Logo.altform-unplated_targetsize-24.png new file mode 100644 index 0000000000..6b04565538 Binary files /dev/null and b/src/modules/powerrename/PowerRenameContextMenu/Assets/Square44x44Logo.altform-unplated_targetsize-24.png differ diff --git a/src/modules/powerrename/PowerRenameContextMenu/Assets/Square44x44Logo.altform-unplated_targetsize-256.png b/src/modules/powerrename/PowerRenameContextMenu/Assets/Square44x44Logo.altform-unplated_targetsize-256.png new file mode 100644 index 0000000000..9560152e06 Binary files /dev/null and b/src/modules/powerrename/PowerRenameContextMenu/Assets/Square44x44Logo.altform-unplated_targetsize-256.png differ diff --git a/src/modules/powerrename/PowerRenameContextMenu/Assets/Square44x44Logo.altform-unplated_targetsize-32.png b/src/modules/powerrename/PowerRenameContextMenu/Assets/Square44x44Logo.altform-unplated_targetsize-32.png new file mode 100644 index 0000000000..10b378144c Binary files /dev/null and b/src/modules/powerrename/PowerRenameContextMenu/Assets/Square44x44Logo.altform-unplated_targetsize-32.png differ diff --git a/src/modules/powerrename/PowerRenameContextMenu/Assets/Square44x44Logo.altform-unplated_targetsize-48.png b/src/modules/powerrename/PowerRenameContextMenu/Assets/Square44x44Logo.altform-unplated_targetsize-48.png new file mode 100644 index 0000000000..3201851602 Binary files /dev/null and b/src/modules/powerrename/PowerRenameContextMenu/Assets/Square44x44Logo.altform-unplated_targetsize-48.png differ diff --git a/src/modules/powerrename/PowerRenameContextMenu/Assets/Square44x44Logo.scale-100.png b/src/modules/powerrename/PowerRenameContextMenu/Assets/Square44x44Logo.scale-100.png new file mode 100644 index 0000000000..be581fc562 Binary files /dev/null and b/src/modules/powerrename/PowerRenameContextMenu/Assets/Square44x44Logo.scale-100.png differ diff --git a/src/modules/powerrename/PowerRenameContextMenu/Assets/Square44x44Logo.scale-125.png b/src/modules/powerrename/PowerRenameContextMenu/Assets/Square44x44Logo.scale-125.png new file mode 100644 index 0000000000..05ff34e9e4 Binary files /dev/null and b/src/modules/powerrename/PowerRenameContextMenu/Assets/Square44x44Logo.scale-125.png differ diff --git a/src/modules/powerrename/PowerRenameContextMenu/Assets/Square44x44Logo.scale-150.png b/src/modules/powerrename/PowerRenameContextMenu/Assets/Square44x44Logo.scale-150.png new file mode 100644 index 0000000000..1b75f44107 Binary files /dev/null and b/src/modules/powerrename/PowerRenameContextMenu/Assets/Square44x44Logo.scale-150.png differ diff --git a/src/modules/powerrename/PowerRenameContextMenu/Assets/Square44x44Logo.scale-200.png b/src/modules/powerrename/PowerRenameContextMenu/Assets/Square44x44Logo.scale-200.png new file mode 100644 index 0000000000..2a63126ca4 Binary files /dev/null and b/src/modules/powerrename/PowerRenameContextMenu/Assets/Square44x44Logo.scale-200.png differ diff --git a/src/modules/powerrename/PowerRenameContextMenu/Assets/Square44x44Logo.scale-400.png b/src/modules/powerrename/PowerRenameContextMenu/Assets/Square44x44Logo.scale-400.png new file mode 100644 index 0000000000..a84db62f1b Binary files /dev/null and b/src/modules/powerrename/PowerRenameContextMenu/Assets/Square44x44Logo.scale-400.png differ diff --git a/src/modules/powerrename/PowerRenameContextMenu/Assets/Square44x44Logo.targetsize-16.png b/src/modules/powerrename/PowerRenameContextMenu/Assets/Square44x44Logo.targetsize-16.png new file mode 100644 index 0000000000..f94f167cd1 Binary files /dev/null and b/src/modules/powerrename/PowerRenameContextMenu/Assets/Square44x44Logo.targetsize-16.png differ diff --git a/src/modules/powerrename/PowerRenameContextMenu/Assets/Square44x44Logo.targetsize-24.png b/src/modules/powerrename/PowerRenameContextMenu/Assets/Square44x44Logo.targetsize-24.png new file mode 100644 index 0000000000..b47e217686 Binary files /dev/null and b/src/modules/powerrename/PowerRenameContextMenu/Assets/Square44x44Logo.targetsize-24.png differ diff --git a/src/modules/powerrename/PowerRenameContextMenu/Assets/Square44x44Logo.targetsize-256.png b/src/modules/powerrename/PowerRenameContextMenu/Assets/Square44x44Logo.targetsize-256.png new file mode 100644 index 0000000000..8241b73798 Binary files /dev/null and b/src/modules/powerrename/PowerRenameContextMenu/Assets/Square44x44Logo.targetsize-256.png differ diff --git a/src/modules/powerrename/PowerRenameContextMenu/Assets/Square44x44Logo.targetsize-32.png b/src/modules/powerrename/PowerRenameContextMenu/Assets/Square44x44Logo.targetsize-32.png new file mode 100644 index 0000000000..86550c2d48 Binary files /dev/null and b/src/modules/powerrename/PowerRenameContextMenu/Assets/Square44x44Logo.targetsize-32.png differ diff --git a/src/modules/powerrename/PowerRenameContextMenu/Assets/Square44x44Logo.targetsize-48.png b/src/modules/powerrename/PowerRenameContextMenu/Assets/Square44x44Logo.targetsize-48.png new file mode 100644 index 0000000000..03a07dcc5f Binary files /dev/null and b/src/modules/powerrename/PowerRenameContextMenu/Assets/Square44x44Logo.targetsize-48.png differ diff --git a/src/modules/powerrename/PowerRenameContextMenu/Assets/Wide310x150Logo.scale-100.png b/src/modules/powerrename/PowerRenameContextMenu/Assets/Wide310x150Logo.scale-100.png new file mode 100644 index 0000000000..8829830ce8 Binary files /dev/null and b/src/modules/powerrename/PowerRenameContextMenu/Assets/Wide310x150Logo.scale-100.png differ diff --git a/src/modules/powerrename/PowerRenameContextMenu/Assets/Wide310x150Logo.scale-125.png b/src/modules/powerrename/PowerRenameContextMenu/Assets/Wide310x150Logo.scale-125.png new file mode 100644 index 0000000000..909b7ed3b6 Binary files /dev/null and b/src/modules/powerrename/PowerRenameContextMenu/Assets/Wide310x150Logo.scale-125.png differ diff --git a/src/modules/powerrename/PowerRenameContextMenu/Assets/Wide310x150Logo.scale-150.png b/src/modules/powerrename/PowerRenameContextMenu/Assets/Wide310x150Logo.scale-150.png new file mode 100644 index 0000000000..4cbdf64108 Binary files /dev/null and b/src/modules/powerrename/PowerRenameContextMenu/Assets/Wide310x150Logo.scale-150.png differ diff --git a/src/modules/powerrename/PowerRenameContextMenu/Assets/Wide310x150Logo.scale-200.png b/src/modules/powerrename/PowerRenameContextMenu/Assets/Wide310x150Logo.scale-200.png new file mode 100644 index 0000000000..005b302954 Binary files /dev/null and b/src/modules/powerrename/PowerRenameContextMenu/Assets/Wide310x150Logo.scale-200.png differ diff --git a/src/modules/powerrename/PowerRenameContextMenu/Assets/Wide310x150Logo.scale-400.png b/src/modules/powerrename/PowerRenameContextMenu/Assets/Wide310x150Logo.scale-400.png new file mode 100644 index 0000000000..b7c8f6d062 Binary files /dev/null and b/src/modules/powerrename/PowerRenameContextMenu/Assets/Wide310x150Logo.scale-400.png differ diff --git a/src/modules/powerrename/PowerRenameContextMenu/Assets/storelogo.scale-100.png b/src/modules/powerrename/PowerRenameContextMenu/Assets/storelogo.scale-100.png new file mode 100644 index 0000000000..23b683c4e9 Binary files /dev/null and b/src/modules/powerrename/PowerRenameContextMenu/Assets/storelogo.scale-100.png differ diff --git a/src/modules/powerrename/PowerRenameContextMenu/Assets/storelogo.scale-125.png b/src/modules/powerrename/PowerRenameContextMenu/Assets/storelogo.scale-125.png new file mode 100644 index 0000000000..a8dd822b00 Binary files /dev/null and b/src/modules/powerrename/PowerRenameContextMenu/Assets/storelogo.scale-125.png differ diff --git a/src/modules/powerrename/PowerRenameContextMenu/Assets/storelogo.scale-150.png b/src/modules/powerrename/PowerRenameContextMenu/Assets/storelogo.scale-150.png new file mode 100644 index 0000000000..e5d6defb8d Binary files /dev/null and b/src/modules/powerrename/PowerRenameContextMenu/Assets/storelogo.scale-150.png differ diff --git a/src/modules/powerrename/PowerRenameContextMenu/Assets/storelogo.scale-200.png b/src/modules/powerrename/PowerRenameContextMenu/Assets/storelogo.scale-200.png new file mode 100644 index 0000000000..90dbdae8d9 Binary files /dev/null and b/src/modules/powerrename/PowerRenameContextMenu/Assets/storelogo.scale-200.png differ diff --git a/src/modules/powerrename/PowerRenameContextMenu/Assets/storelogo.scale-400.png b/src/modules/powerrename/PowerRenameContextMenu/Assets/storelogo.scale-400.png new file mode 100644 index 0000000000..a9239f8101 Binary files /dev/null and b/src/modules/powerrename/PowerRenameContextMenu/Assets/storelogo.scale-400.png differ diff --git a/src/modules/powerrename/PowerRenameContextMenu/MyPackage-old.msix b/src/modules/powerrename/PowerRenameContextMenu/MyPackage-old.msix new file mode 100644 index 0000000000..dca0b7d253 Binary files /dev/null and b/src/modules/powerrename/PowerRenameContextMenu/MyPackage-old.msix differ diff --git a/src/modules/powerrename/PowerRenameContextMenu/PowerRenameContextMenu.cpp b/src/modules/powerrename/PowerRenameContextMenu/PowerRenameContextMenu.cpp new file mode 100644 index 0000000000..c3f59a9eb5 --- /dev/null +++ b/src/modules/powerrename/PowerRenameContextMenu/PowerRenameContextMenu.cpp @@ -0,0 +1,22 @@ +// PowerRenameContextMenu.cpp : Defines the exported functions for the DLL. +// + +#include "pch.h" +#include "framework.h" +#include "PowerRenameContextMenu.h" + + +// This is an example of an exported variable +POWERRENAMECONTEXTMENU_API int nPowerRenameContextMenu=0; + +// This is an example of an exported function. +POWERRENAMECONTEXTMENU_API int fnPowerRenameContextMenu(void) +{ + return 0; +} + +// This is the constructor of a class that has been exported. +CPowerRenameContextMenu::CPowerRenameContextMenu() +{ + return; +} diff --git a/src/modules/powerrename/PowerRenameContextMenu/PowerRenameContextMenu.h b/src/modules/powerrename/PowerRenameContextMenu/PowerRenameContextMenu.h new file mode 100644 index 0000000000..2145f56e2b --- /dev/null +++ b/src/modules/powerrename/PowerRenameContextMenu/PowerRenameContextMenu.h @@ -0,0 +1,22 @@ +// The following ifdef block is the standard way of creating macros which make exporting +// from a DLL simpler. All files within this DLL are compiled with the POWERRENAMECONTEXTMENU_EXPORTS +// symbol defined on the command line. This symbol should not be defined on any project +// that uses this DLL. This way any other project whose source files include this file see +// POWERRENAMECONTEXTMENU_API functions as being imported from a DLL, whereas this DLL sees symbols +// defined with this macro as being exported. +#ifdef POWERRENAMECONTEXTMENU_EXPORTS +#define POWERRENAMECONTEXTMENU_API __declspec(dllexport) +#else +#define POWERRENAMECONTEXTMENU_API __declspec(dllimport) +#endif + +// This class is exported from the dll +class POWERRENAMECONTEXTMENU_API CPowerRenameContextMenu { +public: + CPowerRenameContextMenu(void); + // TODO: add your methods here. +}; + +extern POWERRENAMECONTEXTMENU_API int nPowerRenameContextMenu; + +POWERRENAMECONTEXTMENU_API int fnPowerRenameContextMenu(void); diff --git a/src/modules/powerrename/PowerRenameContextMenu/PowerRenameContextMenu.rc b/src/modules/powerrename/PowerRenameContextMenu/PowerRenameContextMenu.rc new file mode 100644 index 0000000000..3b3fdcbfd2 --- /dev/null +++ b/src/modules/powerrename/PowerRenameContextMenu/PowerRenameContextMenu.rc @@ -0,0 +1,60 @@ +// Microsoft Visual C++ generated resource script. +// + +#include "resource.h" + +#define APSTUDIO_READONLY_SYMBOLS +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 2 resource. +// +#include "winres.h" + +///////////////////////////////////////////////////////////////////////////// +#undef APSTUDIO_READONLY_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +// English (United States) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +LANGUAGE 9, 1 + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +1 TEXTINCLUDE +BEGIN + "resource.h\0" +END + +2 TEXTINCLUDE +BEGIN + "#include ""winres.h""\r\n" + "\0" +END + +3 TEXTINCLUDE +BEGIN + "\r\n" + "\0" +END + +#endif // APSTUDIO_INVOKED + +#endif // English (United States) resources +///////////////////////////////////////////////////////////////////////////// + + + +#ifndef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 3 resource. +// + + +///////////////////////////////////////////////////////////////////////////// +#endif // not APSTUDIO_INVOKED diff --git a/src/modules/powerrename/PowerRenameContextMenu/PowerRenameContextMenu.vcxproj b/src/modules/powerrename/PowerRenameContextMenu/PowerRenameContextMenu.vcxproj new file mode 100644 index 0000000000..1ff31d66ac --- /dev/null +++ b/src/modules/powerrename/PowerRenameContextMenu/PowerRenameContextMenu.vcxproj @@ -0,0 +1,220 @@ + + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 16.0 + Win32Proj + {1dbbb112-4bb1-444b-8ebb-e66555c76ba6} + PowerRenameContextMenu + 10.0.18362.0 + + + + DynamicLibrary + true + v143 + Unicode + + + DynamicLibrary + false + v143 + true + Unicode + + + DynamicLibrary + true + v143 + Unicode + + + DynamicLibrary + false + v143 + true + Unicode + + + + + + + + + + + + + + + + + + + + + PowerRenameContextMenu + $(SolutionDir)$(Platform)\$(Configuration)\modules\PowerRename\ + + + PowerRenameContextMenu + + + PowerRenameContextMenu + + + PowerRenameContextMenu + $(SolutionDir)$(Platform)\$(Configuration)\modules\PowerRename\ + + + + Level3 + true + WIN32;_DEBUG;POWERRENAMECONTEXTMENU_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + true + Use + + + Windows + true + false + runtimeobject.lib;%(AdditionalDependencies) + Source.def + + + + + Level3 + true + true + true + WIN32;NDEBUG;POWERRENAMECONTEXTMENU_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + true + Use + + + Windows + true + true + true + false + runtimeobject.lib;%(AdditionalDependencies) + Source.def + + + + + Level3 + true + _DEBUG;POWERRENAMECONTEXTMENU_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + true + Use + ..\..\..\;..\lib\;..\..\;%(AdditionalIncludeDirectories) + + + Windows + true + false + runtimeobject.lib;%(AdditionalDependencies) + Source.def + + + del $(OutDir)*.msix /q +MakeAppx.exe pack /d . /p $(OutDir)PowerRenameContextMenuPackage.msix /nv + + + + + Level3 + true + true + true + NDEBUG;POWERRENAMECONTEXTMENU_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + true + Use + ..\..\..\;..\lib\;..\..\;%(AdditionalIncludeDirectories) + + + Windows + true + true + true + false + runtimeobject.lib;%(AdditionalDependencies) + Source.def + + + del $(OutDir)*.msix /q +MakeAppx.exe pack /d . /p $(OutDir)PowerRenameContextMenuPackage.msix /nv + + + + + + + + + + + + Create + Create + Create + Create + + + + + + + + + + + + + + + + + + {d9b8fc84-322a-4f9f-bbb9-20915c47ddfd} + + + {51920f1f-c28c-4adf-8660-4238766796c2} + + + + + + + + + + + This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + + + + \ No newline at end of file diff --git a/src/modules/powerrename/PowerRenameContextMenu/PowerRenameContextMenu.vcxproj.filters b/src/modules/powerrename/PowerRenameContextMenu/PowerRenameContextMenu.vcxproj.filters new file mode 100644 index 0000000000..66afa4c1fc --- /dev/null +++ b/src/modules/powerrename/PowerRenameContextMenu/PowerRenameContextMenu.vcxproj.filters @@ -0,0 +1,718 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + + + Source Files + + + Source Files + + + Source Files + + + + + + + + Resource Files + + + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + \ No newline at end of file diff --git a/src/modules/powerrename/PowerRenameContextMenu/PowerRenameUI.ico b/src/modules/powerrename/PowerRenameContextMenu/PowerRenameUI.ico new file mode 100644 index 0000000000..4f111feaac Binary files /dev/null and b/src/modules/powerrename/PowerRenameContextMenu/PowerRenameUI.ico differ diff --git a/src/modules/powerrename/PowerRenameContextMenu/Source.def b/src/modules/powerrename/PowerRenameContextMenu/Source.def new file mode 100644 index 0000000000..1ffdadd7a1 --- /dev/null +++ b/src/modules/powerrename/PowerRenameContextMenu/Source.def @@ -0,0 +1,5 @@ +LIBRARY +EXPORTS +DllCanUnloadNow PRIVATE +DllGetClassObject PRIVATE +DllGetActivationFactory PRIVATE \ No newline at end of file diff --git a/src/modules/powerrename/PowerRenameContextMenu/dllmain.cpp b/src/modules/powerrename/PowerRenameContextMenu/dllmain.cpp new file mode 100644 index 0000000000..d5d7b19cf9 --- /dev/null +++ b/src/modules/powerrename/PowerRenameContextMenu/dllmain.cpp @@ -0,0 +1,289 @@ +// dllmain.cpp : Defines the entry point for the DLL application. +#include "pch.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +#include +#include + +using namespace Microsoft::WRL; + +HINSTANCE g_hInst = 0; + +BOOL APIENTRY DllMain( HMODULE hModule, + DWORD ul_reason_for_call, + LPVOID lpReserved + ) +{ + switch (ul_reason_for_call) + { + case DLL_PROCESS_ATTACH: + g_hInst = hModule; + Trace::RegisterProvider(); + break; + case DLL_PROCESS_DETACH: + Trace::UnregisterProvider(); + break; + } + return TRUE; +} + +class __declspec(uuid("1861E28B-A1F0-4EF4-A1FE-4C8CA88E2174")) PowerRenameContextMenuCommand final : public RuntimeClass, IExplorerCommand, IObjectWithSite> +{ +public: + virtual const wchar_t* Title() { return L"PowerRename"; } + virtual const EXPCMDFLAGS Flags() { return ECF_DEFAULT; } + virtual const EXPCMDSTATE State(_In_opt_ IShellItemArray* selection) { return ECS_ENABLED; } + + // IExplorerCommand + IFACEMETHODIMP GetTitle(_In_opt_ IShellItemArray* items, _Outptr_result_nullonfailure_ PWSTR* name) + { + return SHStrDup(app_name.c_str(), name); + } + + IFACEMETHODIMP GetIcon(_In_opt_ IShellItemArray*, _Outptr_result_nullonfailure_ PWSTR* icon) + { + if (!CSettingsInstance().GetShowIconOnMenu()) + { + *icon = nullptr; + return E_NOTIMPL; + } + + std::wstring iconResourcePath = get_module_folderpath(g_hInst); + iconResourcePath += L"\\"; + iconResourcePath += L"PowerRenameUI.ico"; + return SHStrDup(iconResourcePath.c_str(), icon); + } + + IFACEMETHODIMP GetToolTip(_In_opt_ IShellItemArray*, _Outptr_result_nullonfailure_ PWSTR* infoTip) + { + *infoTip = nullptr; + return E_NOTIMPL; + } + + IFACEMETHODIMP GetCanonicalName(_Out_ GUID* guidCommandName) + { + *guidCommandName = __uuidof(this); + return S_OK; + } + + IFACEMETHODIMP GetState(_In_opt_ IShellItemArray* selection, _In_ BOOL okToBeSlow, _Out_ EXPCMDSTATE* cmdState) + { + *cmdState = CSettingsInstance().GetEnabled() ? ECS_ENABLED : ECS_HIDDEN; + return S_OK; + } + + IFACEMETHODIMP Invoke(_In_opt_ IShellItemArray* selection, _In_opt_ IBindCtx*) noexcept + try + { + HWND parent = nullptr; + if (m_site) + { + ComPtr oleWindow; + RETURN_IF_FAILED(m_site.As(&oleWindow)); + RETURN_IF_FAILED(oleWindow->GetWindow(&parent)); + } + + std::wostringstream title; + title << Title(); + + if (selection) + { + DWORD count; + RETURN_IF_FAILED(selection->GetCount(&count)); + title << L" (" << count << L" selected items)"; + } + else + { + title << L"(no selected items)"; + } + std::filesystem::path modulePath{ wil::GetModuleFileNameW() }; + std::wstring path = get_module_folderpath(g_hInst); + path = path + L"\\PowerToys.PowerRename.exe"; + std::wstring iconResourcePath = get_module_filename(); + + MessageBox(parent, iconResourcePath.c_str(), iconResourcePath.c_str(), MB_OK); + RunPowerRename(selection); + return S_OK; + } + CATCH_RETURN(); + + IFACEMETHODIMP GetFlags(_Out_ EXPCMDFLAGS* flags) + { + *flags = Flags(); + return S_OK; + } + IFACEMETHODIMP EnumSubCommands(_COM_Outptr_ IEnumExplorerCommand** enumCommands) + { + *enumCommands = nullptr; + return E_NOTIMPL; + } + + // IObjectWithSite + IFACEMETHODIMP SetSite(_In_ IUnknown* site) noexcept + { + m_site = site; + return S_OK; + } + IFACEMETHODIMP GetSite(_In_ REFIID riid, _COM_Outptr_ void** site) noexcept { return m_site.CopyTo(riid, site); } + +protected: + ComPtr m_site; + +private: + HRESULT RunPowerRename(IShellItemArray* psiItemArray) + { + HRESULT hr = E_FAIL; + HWND parent = nullptr; + if (m_site) + { + ComPtr oleWindow; + RETURN_IF_FAILED(m_site.As(&oleWindow)); + RETURN_IF_FAILED(oleWindow->GetWindow(&parent)); + } + + + if (CSettingsInstance().GetEnabled()) + { + Trace::Invoked(); + // Set the application path based on the location of the dll + std::wstring path = get_module_folderpath(g_hInst); + path = path + L"\\PowerToys.PowerRename.exe"; + LPTSTR lpApplicationName = (LPTSTR)path.c_str(); + // Create an anonymous pipe to stream filenames + SECURITY_ATTRIBUTES sa; + HANDLE hReadPipe; + HANDLE hWritePipe; + sa.nLength = sizeof(SECURITY_ATTRIBUTES); + sa.lpSecurityDescriptor = NULL; + sa.bInheritHandle = TRUE; + if (!CreatePipe(&hReadPipe, &hWritePipe, &sa, 0)) + { + hr = HRESULT_FROM_WIN32(GetLastError()); + return hr; + } + if (!SetHandleInformation(hWritePipe, HANDLE_FLAG_INHERIT, 0)) + { + hr = HRESULT_FROM_WIN32(GetLastError()); + return hr; + } + CAtlFile writePipe(hWritePipe); + MessageBox(parent, L"AAAAAAAAAAAAA", path.c_str(), MB_OK); + + CString commandLine; + commandLine.Format(_T("\"%s\""), lpApplicationName); + int nSize = commandLine.GetLength() + 1; + LPTSTR lpszCommandLine = new TCHAR[nSize]; + _tcscpy_s(lpszCommandLine, nSize, commandLine); + + STARTUPINFO startupInfo; + ZeroMemory(&startupInfo, sizeof(STARTUPINFO)); + startupInfo.cb = sizeof(STARTUPINFO); + startupInfo.hStdInput = hReadPipe; + startupInfo.dwFlags = STARTF_USESHOWWINDOW | STARTF_USESTDHANDLES; + startupInfo.wShowWindow = SW_SHOWNORMAL; + + PROCESS_INFORMATION processInformation; + + // Start the resizer + CreateProcess( + NULL, + lpszCommandLine, + NULL, + NULL, + TRUE, + 0, + NULL, + NULL, + &startupInfo, + &processInformation); + HWND parent2 = nullptr; + if (m_site) + { + RETURN_IF_FAILED(IUnknown_GetWindow(m_site.Get(), &parent2)); + + MessageBox(parent, path.c_str(), L"IMA SAJT", MB_OK); + } + RunNonElevatedEx(path.c_str(), {}, get_module_folderpath(g_hInst)); + MessageBox(parent, path.c_str(), L"asd352432424", MB_OK); + ShellExecute(parent2, L"open", L"C:\\Users\\stefan\\Projects\\PowerToys\\x64\\Debug\\modules\\PowerRename\\PowerToys.PowerRename.exe", nullptr, nullptr, SW_SHOWNORMAL); + delete[] lpszCommandLine; + if (!CloseHandle(processInformation.hProcess)) + { + hr = HRESULT_FROM_WIN32(GetLastError()); + return hr; + } + if (!CloseHandle(processInformation.hThread)) + { + hr = HRESULT_FROM_WIN32(GetLastError()); + return hr; + } + MessageBox(parent, path.c_str(), L"CCCCCCCCCCCCCCCC", MB_OK); + + //m_pdtobj will be NULL when invoked from the MSIX build as Initialize is never called (IShellExtInit functions aren't called in case of MSIX). + DWORD fileCount = 0; + // Gets the list of files currently selected using the IShellItemArray + psiItemArray->GetCount(&fileCount); + // Iterate over the list of files + for (DWORD i = 0; i < fileCount; i++) + { + IShellItem* shellItem; + psiItemArray->GetItemAt(i, &shellItem); + LPWSTR itemName; + // Retrieves the entire file system path of the file from its shell item + shellItem->GetDisplayName(SIGDN_FILESYSPATH, &itemName); + CString fileName(itemName); + // File name can't contain '?' + fileName.Append(_T("?")); + // Write the file path into the input stream for image resizer + writePipe.Write(fileName, fileName.GetLength() * sizeof(TCHAR)); + } + std::wstring asd = L"asdasdasd"; + asd += L" " + std::to_wstring( fileCount) + L" SDASDASDAD"; + MessageBox(parent, asd.c_str(), L"CCCCCCCCCCCCCCCC", MB_OK); + + writePipe.Close(); + } + Trace::InvokedRet(hr); + + return hr; + } + + std::wstring app_name = L"PowerRename"; +}; + +CoCreatableClass(PowerRenameContextMenuCommand) +CoCreatableClassWrlCreatorMapInclude(PowerRenameContextMenuCommand) + +STDAPI DllGetActivationFactory(_In_ HSTRING activatableClassId, _COM_Outptr_ IActivationFactory** factory) +{ + return Module::GetModule().GetActivationFactory(activatableClassId, factory); +} + +STDAPI DllCanUnloadNow() +{ + return Module::GetModule().GetObjectCount() == 0 ? S_OK : S_FALSE; +} + +STDAPI DllGetClassObject(_In_ REFCLSID rclsid, _In_ REFIID riid, _COM_Outptr_ void** instance) +{ + return Module::GetModule().GetClassObject(rclsid, riid, instance); +} \ No newline at end of file diff --git a/src/modules/powerrename/PowerRenameContextMenu/framework.h b/src/modules/powerrename/PowerRenameContextMenu/framework.h new file mode 100644 index 0000000000..54b83e94fd --- /dev/null +++ b/src/modules/powerrename/PowerRenameContextMenu/framework.h @@ -0,0 +1,5 @@ +#pragma once + +#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers +// Windows Header Files +#include diff --git a/src/modules/powerrename/PowerRenameContextMenu/packages.config b/src/modules/powerrename/PowerRenameContextMenu/packages.config new file mode 100644 index 0000000000..ed327ca35a --- /dev/null +++ b/src/modules/powerrename/PowerRenameContextMenu/packages.config @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/modules/powerrename/PowerRenameContextMenu/pch.cpp b/src/modules/powerrename/PowerRenameContextMenu/pch.cpp new file mode 100644 index 0000000000..64b7eef6d6 --- /dev/null +++ b/src/modules/powerrename/PowerRenameContextMenu/pch.cpp @@ -0,0 +1,5 @@ +// pch.cpp: source file corresponding to the pre-compiled header + +#include "pch.h" + +// When you are using pre-compiled headers, this source file is necessary for compilation to succeed. diff --git a/src/modules/powerrename/PowerRenameContextMenu/pch.h b/src/modules/powerrename/PowerRenameContextMenu/pch.h new file mode 100644 index 0000000000..885d5d62e4 --- /dev/null +++ b/src/modules/powerrename/PowerRenameContextMenu/pch.h @@ -0,0 +1,13 @@ +// pch.h: This is a precompiled header file. +// Files listed below are compiled only once, improving build performance for future builds. +// This also affects IntelliSense performance, including code completion and many code browsing features. +// However, files listed here are ALL re-compiled if any one of them is updated between builds. +// Do not add files here that you will be updating frequently as this negates the performance advantage. + +#ifndef PCH_H +#define PCH_H + +// add headers that you want to pre-compile here +#include "framework.h" + +#endif //PCH_H diff --git a/src/modules/powerrename/PowerRenameContextMenu/resource.h b/src/modules/powerrename/PowerRenameContextMenu/resource.h new file mode 100644 index 0000000000..70ea8e555c --- /dev/null +++ b/src/modules/powerrename/PowerRenameContextMenu/resource.h @@ -0,0 +1,14 @@ +//{{NO_DEPENDENCIES}} +// Microsoft Visual C++ generated include file. +// Used by PowerRenameContextMenu.rc + +// Next default values for new objects +// +#ifdef APSTUDIO_INVOKED +#ifndef APSTUDIO_READONLY_SYMBOLS +#define _APS_NEXT_RESOURCE_VALUE 101 +#define _APS_NEXT_COMMAND_VALUE 40001 +#define _APS_NEXT_CONTROL_VALUE 1001 +#define _APS_NEXT_SYMED_VALUE 101 +#endif +#endif diff --git a/src/modules/powerrename/dll/PowerRenameExt.vcxproj b/src/modules/powerrename/dll/PowerRenameExt.vcxproj index 83b3ce76c3..d137734097 100644 --- a/src/modules/powerrename/dll/PowerRenameExt.vcxproj +++ b/src/modules/powerrename/dll/PowerRenameExt.vcxproj @@ -64,6 +64,9 @@ {98537082-0fdb-40de-abd8-0dc5a4269bab} + + {cc6e41ac-8174-4e8a-8d22-85dd7f4851df} + {51920f1f-c28c-4adf-8660-4238766796c2} diff --git a/src/modules/powerrename/dll/dllmain.cpp b/src/modules/powerrename/dll/dllmain.cpp index d615703924..31ecb7d8ed 100644 --- a/src/modules/powerrename/dll/dllmain.cpp +++ b/src/modules/powerrename/dll/dllmain.cpp @@ -6,10 +6,13 @@ #include #include #include +#include #include #include "Generated Files/resource.h" #include #include +#include +#include std::atomic g_dwModuleRefCount = 0; HINSTANCE g_hInst = 0; @@ -161,6 +164,66 @@ private: std::wstring app_key; public: + bool registerSparsePackage(std::wstring externalLocation, std::wstring sparsePkgPath) + { + bool registration = false; + try + { + using namespace winrt::Windows::Foundation; + using namespace winrt::Windows::Management::Deployment; + Uri externalUri{ externalLocation }; + Uri packageUri{ sparsePkgPath }; + + // Console.WriteLine("exe Location {0}", externalLocation); + // Console.WriteLine("msix Address {0}", sparsePkgPath); + + // Console.WriteLine(" exe Uri {0}", externalUri); + // Console.WriteLine(" msix Uri {0}", packageUri); + + PackageManager packageManager; + + // Declare use of an external location + AddPackageOptions options; + options.ExternalLocationUri(externalUri); + + IAsyncOperationWithProgress deploymentOperation = packageManager.AddPackageByUriAsync(packageUri, options); + //IAsyncOperationWithProgress deploymentOperation = packageManager.AddPackageAsync(packageUri, nullptr, DeploymentOptions::None); + deploymentOperation.get(); + + int returnValue = 0; + // Check the status of the operation + if (deploymentOperation.Status() == AsyncStatus::Error) + { + auto deploymentResult{ deploymentOperation.GetResults() }; + auto asd = deploymentOperation.ErrorCode(); + auto asd1 = deploymentResult.ErrorText().c_str(); + returnValue = 1; + } + else if (deploymentOperation.Status() == AsyncStatus::Canceled) + { + returnValue = 1; + } + else if (deploymentOperation.Status() == AsyncStatus::Completed) + { + returnValue = 1; + } + else + { + returnValue = 1; + } + return returnValue; + + // Other progress and error-handling code omitted for brevity... + } + catch (...) + { + + } + + return true; + } + + // Return the localized display name of the powertoy virtual PCWSTR get_name() override { @@ -176,6 +239,11 @@ public: // Enable the powertoy virtual void enable() { + std::wstring path = get_module_folderpath(g_hInst); + std::wstring packageUri = path + L"\\PowerRenameContextMenuPackage.msix"; + //std::wstring externalLocation = L"C:\\Users\\stefan\\Projects\\PowerToys\\x64\\Debug\\modules\\PowerRename"; + //std::wstring packageUri = L"C:\\Users\\stefan\\Projects\\PowerToys\\src\\modules\\powerrename\\PowerRenameContextMenu\\MyPackage.msix"; + registerSparsePackage(path, packageUri); Logger::info(L"PowerRename enabled"); m_enabled = true; save_settings();