Skip to content

Commit 8611c3d

Browse files
committed
Improved Explorer hooking
1 parent 583440d commit 8611c3d

17 files changed

+1323
-2327
lines changed

CHANGELOG.md

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,15 @@
1-
# Explorer Patcher Changelog
1+
# Explorer Patcher Change log
22

33
This document includes the same release notes as in the [Releases](https://github.com/valinet/ExplorerPatcher/releases) section on GitHub.
44

5+
## 22000.168.0.10
6+
7+
Improved Explorer hooking.
8+
9+
The application now comes in the form of a single DLL file (`dxgi.dll`) which you have to place in `%windir%` (usually `C:\Windows`). Restart Explorer and that's it.
10+
11+
Please make sure to uninstall the old version before using this new one.
12+
513
## 22000.168.0.9
614

715
Implements [#6](https://github.com/valinet/ExplorerPatcher/issues/6) (option to revert to classic context menu). To disable this feature, add this to the settings.ini file:

ExplorerPatcher.sln

Lines changed: 1 addition & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -3,23 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00
33
# Visual Studio Version 16
44
VisualStudioVersion = 16.0.30002.166
55
MinimumVisualStudioVersion = 10.0.40219.1
6-
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ExplorerPatcher", "ExplorerPatcher\ExplorerPatcher.vcxproj", "{05EB9B16-4C34-47A2-97F5-E65E4955F71B}"
7-
ProjectSection(ProjectDependencies) = postProject
8-
{E74E02C4-C6DA-44B2-A034-7C9F1B661152} = {E74E02C4-C6DA-44B2-A034-7C9F1B661152}
9-
EndProjectSection
10-
EndProject
11-
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ExplorerPatcherLibrary", "ExplorerPatcherLibrary\ExplorerPatcherLibrary.vcxproj", "{DB3E4319-2969-42B6-B7E8-BB57AA8C9FA9}"
12-
ProjectSection(ProjectDependencies) = postProject
13-
{E74E02C4-C6DA-44B2-A034-7C9F1B661152} = {E74E02C4-C6DA-44B2-A034-7C9F1B661152}
14-
EndProjectSection
15-
EndProject
16-
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PreBuildCommand", "PreBuildCommand\PreBuildCommand.vcxproj", "{E74E02C4-C6DA-44B2-A034-7C9F1B661152}"
17-
EndProject
18-
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PostBuildCommand", "PostBuildCommand\PostBuildCommand.vcxproj", "{9AE5B3DE-EA42-454C-85C0-4A7AF6AD331B}"
19-
ProjectSection(ProjectDependencies) = postProject
20-
{05EB9B16-4C34-47A2-97F5-E65E4955F71B} = {05EB9B16-4C34-47A2-97F5-E65E4955F71B}
21-
{DB3E4319-2969-42B6-B7E8-BB57AA8C9FA9} = {DB3E4319-2969-42B6-B7E8-BB57AA8C9FA9}
22-
EndProjectSection
6+
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ExplorerPatcher", "ExplorerPatcher\ExplorerPatcher.vcxproj", "{DB3E4319-2969-42B6-B7E8-BB57AA8C9FA9}"
237
EndProject
248
Global
259
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -29,14 +13,6 @@ Global
2913
Release|x86 = Release|x86
3014
EndGlobalSection
3115
GlobalSection(ProjectConfigurationPlatforms) = postSolution
32-
{05EB9B16-4C34-47A2-97F5-E65E4955F71B}.Debug|x64.ActiveCfg = Debug|x64
33-
{05EB9B16-4C34-47A2-97F5-E65E4955F71B}.Debug|x64.Build.0 = Debug|x64
34-
{05EB9B16-4C34-47A2-97F5-E65E4955F71B}.Debug|x86.ActiveCfg = Debug|Win32
35-
{05EB9B16-4C34-47A2-97F5-E65E4955F71B}.Debug|x86.Build.0 = Debug|Win32
36-
{05EB9B16-4C34-47A2-97F5-E65E4955F71B}.Release|x64.ActiveCfg = Release|x64
37-
{05EB9B16-4C34-47A2-97F5-E65E4955F71B}.Release|x64.Build.0 = Release|x64
38-
{05EB9B16-4C34-47A2-97F5-E65E4955F71B}.Release|x86.ActiveCfg = Release|Win32
39-
{05EB9B16-4C34-47A2-97F5-E65E4955F71B}.Release|x86.Build.0 = Release|Win32
4016
{DB3E4319-2969-42B6-B7E8-BB57AA8C9FA9}.Debug|x64.ActiveCfg = Debug|x64
4117
{DB3E4319-2969-42B6-B7E8-BB57AA8C9FA9}.Debug|x64.Build.0 = Debug|x64
4218
{DB3E4319-2969-42B6-B7E8-BB57AA8C9FA9}.Debug|x86.ActiveCfg = Debug|Win32
@@ -45,22 +21,6 @@ Global
4521
{DB3E4319-2969-42B6-B7E8-BB57AA8C9FA9}.Release|x64.Build.0 = Release|x64
4622
{DB3E4319-2969-42B6-B7E8-BB57AA8C9FA9}.Release|x86.ActiveCfg = Release|Win32
4723
{DB3E4319-2969-42B6-B7E8-BB57AA8C9FA9}.Release|x86.Build.0 = Release|Win32
48-
{E74E02C4-C6DA-44B2-A034-7C9F1B661152}.Debug|x64.ActiveCfg = Debug|x64
49-
{E74E02C4-C6DA-44B2-A034-7C9F1B661152}.Debug|x64.Build.0 = Debug|x64
50-
{E74E02C4-C6DA-44B2-A034-7C9F1B661152}.Debug|x86.ActiveCfg = Debug|Win32
51-
{E74E02C4-C6DA-44B2-A034-7C9F1B661152}.Debug|x86.Build.0 = Debug|Win32
52-
{E74E02C4-C6DA-44B2-A034-7C9F1B661152}.Release|x64.ActiveCfg = Release|x64
53-
{E74E02C4-C6DA-44B2-A034-7C9F1B661152}.Release|x64.Build.0 = Release|x64
54-
{E74E02C4-C6DA-44B2-A034-7C9F1B661152}.Release|x86.ActiveCfg = Release|Win32
55-
{E74E02C4-C6DA-44B2-A034-7C9F1B661152}.Release|x86.Build.0 = Release|Win32
56-
{9AE5B3DE-EA42-454C-85C0-4A7AF6AD331B}.Debug|x64.ActiveCfg = Debug|x64
57-
{9AE5B3DE-EA42-454C-85C0-4A7AF6AD331B}.Debug|x64.Build.0 = Debug|x64
58-
{9AE5B3DE-EA42-454C-85C0-4A7AF6AD331B}.Debug|x86.ActiveCfg = Debug|Win32
59-
{9AE5B3DE-EA42-454C-85C0-4A7AF6AD331B}.Debug|x86.Build.0 = Debug|Win32
60-
{9AE5B3DE-EA42-454C-85C0-4A7AF6AD331B}.Release|x64.ActiveCfg = Release|x64
61-
{9AE5B3DE-EA42-454C-85C0-4A7AF6AD331B}.Release|x64.Build.0 = Release|x64
62-
{9AE5B3DE-EA42-454C-85C0-4A7AF6AD331B}.Release|x86.ActiveCfg = Release|Win32
63-
{9AE5B3DE-EA42-454C-85C0-4A7AF6AD331B}.Release|x86.Build.0 = Release|Win32
6424
EndGlobalSection
6525
GlobalSection(SolutionProperties) = preSolution
6626
HideSolutionNode = FALSE

ExplorerPatcher/ExplorerPatcher.rc

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -51,30 +51,30 @@ END
5151
//
5252

5353
VS_VERSION_INFO VERSIONINFO
54-
FILEVERSION 22000,168,0,9
55-
PRODUCTVERSION 22000,168,0,9
54+
FILEVERSION 22000,168,0,10
55+
PRODUCTVERSION 22000,168,0,10
5656
FILEFLAGSMASK 0x3fL
5757
#ifdef _DEBUG
5858
FILEFLAGS 0x1L
5959
#else
6060
FILEFLAGS 0x0L
6161
#endif
6262
FILEOS 0x40004L
63-
FILETYPE 0x1L
63+
FILETYPE 0x2L
6464
FILESUBTYPE 0x0L
6565
BEGIN
6666
BLOCK "StringFileInfo"
6767
BEGIN
6868
BLOCK "040904b0"
6969
BEGIN
7070
VALUE "CompanyName", "VALINET Solutions SRL"
71-
VALUE "FileDescription", "ExplorerPatcher Daemon"
72-
VALUE "FileVersion", "22000.168.0.9"
73-
VALUE "InternalName", "ExplorerPatcher.exe"
71+
VALUE "FileDescription", "ExplorerPatcher"
72+
VALUE "FileVersion", "22000.168.0.10"
73+
VALUE "InternalName", "ExplorerPatcher.dll"
7474
VALUE "LegalCopyright", "Copyright (C) 2006-2021 VALINET Solutions SRL. All rights reserved."
75-
VALUE "OriginalFilename", "ExplorerPatcher.exe"
75+
VALUE "OriginalFilename", "ExplorerPatcher.dll"
7676
VALUE "ProductName", "ExplorerPatcher"
77-
VALUE "ProductVersion", "22000.168.0.9"
77+
VALUE "ProductVersion", "22000.168.0.10"
7878
END
7979
END
8080
BLOCK "VarFileInfo"

ExplorerPatcher/ExplorerPatcher.vcxproj

Lines changed: 41 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@
2020
</ItemGroup>
2121
<PropertyGroup Label="Globals">
2222
<VCProjectVersion>16.0</VCProjectVersion>
23-
<ProjectGuid>{05EB9B16-4C34-47A2-97F5-E65E4955F71B}</ProjectGuid>
24-
<RootNamespace>CenterTitlebarText</RootNamespace>
23+
<ProjectGuid>{DB3E4319-2969-42B6-B7E8-BB57AA8C9FA9}</ProjectGuid>
24+
<RootNamespace>CenterTitlebarTextLibrary</RootNamespace>
2525
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
2626
<ProjectName>ExplorerPatcher</ProjectName>
2727
</PropertyGroup>
@@ -40,13 +40,13 @@
4040
<CharacterSet>Unicode</CharacterSet>
4141
</PropertyGroup>
4242
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
43-
<ConfigurationType>Application</ConfigurationType>
43+
<ConfigurationType>DynamicLibrary</ConfigurationType>
4444
<UseDebugLibraries>true</UseDebugLibraries>
4545
<PlatformToolset>v142</PlatformToolset>
4646
<CharacterSet>Unicode</CharacterSet>
4747
</PropertyGroup>
4848
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
49-
<ConfigurationType>Application</ConfigurationType>
49+
<ConfigurationType>DynamicLibrary</ConfigurationType>
5050
<UseDebugLibraries>false</UseDebugLibraries>
5151
<PlatformToolset>v142</PlatformToolset>
5252
<WholeProgramOptimization>true</WholeProgramOptimization>
@@ -70,54 +70,62 @@
7070
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
7171
</ImportGroup>
7272
<PropertyGroup Label="UserMacros" />
73+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
74+
<LinkIncremental>false</LinkIncremental>
75+
<OutDir>$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
76+
<TargetName>dxgi</TargetName>
77+
</PropertyGroup>
7378
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
7479
<LinkIncremental>true</LinkIncremental>
80+
<TargetName>dxgi</TargetName>
7581
</PropertyGroup>
7682
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
7783
<LinkIncremental>true</LinkIncremental>
84+
<TargetName>dxgi</TargetName>
7885
</PropertyGroup>
7986
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
8087
<LinkIncremental>false</LinkIncremental>
88+
<TargetName>dxgi</TargetName>
8189
</PropertyGroup>
82-
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
83-
<LinkIncremental>false</LinkIncremental>
84-
<OutDir>$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
85-
</PropertyGroup>
86-
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
90+
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
8791
<ClCompile>
8892
<WarningLevel>Level3</WarningLevel>
93+
<FunctionLevelLinking>true</FunctionLevelLinking>
94+
<IntrinsicFunctions>true</IntrinsicFunctions>
8995
<SDLCheck>true</SDLCheck>
90-
<PreprocessorDefinitions>_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
96+
<PreprocessorDefinitions>NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
9197
<ConformanceMode>true</ConformanceMode>
92-
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
93-
<AdditionalIncludeDirectories>$(SolutionDir)libs\funchook\distorm\include;$(SolutionDir)libs\libvalinet</AdditionalIncludeDirectories>
98+
<AdditionalIncludeDirectories>$(SolutionDir)libs\funchook\include;$(SolutionDir)libs\libvalinet;$(SolutionDir)libs\funchook\distorm\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
99+
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
94100
</ClCompile>
95101
<Link>
96102
<SubSystem>Console</SubSystem>
103+
<EnableCOMDATFolding>true</EnableCOMDATFolding>
104+
<OptimizeReferences>true</OptimizeReferences>
97105
<GenerateDebugInformation>true</GenerateDebugInformation>
106+
<AdditionalLibraryDirectories>$(SolutionDir)libs\funchook\build\Release\funchook.lib;$(SolutionDir)libs\funchook\build\Release\distorm.lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
107+
<AdditionalDependencies>$(SolutionDir)libs\funchook\build\Release\funchook.lib;$(SolutionDir)libs\funchook\build\Release\distorm.lib;%(AdditionalDependencies)</AdditionalDependencies>
98108
</Link>
99-
<PostBuildEvent>
100-
<Command>
101-
</Command>
102-
</PostBuildEvent>
103109
<PreBuildEvent>
104110
<Command>
105111
</Command>
106112
</PreBuildEvent>
113+
<PostBuildEvent>
114+
<Command>
115+
</Command>
116+
</PostBuildEvent>
107117
</ItemDefinitionGroup>
108-
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
118+
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
109119
<ClCompile>
110120
<WarningLevel>Level3</WarningLevel>
111121
<SDLCheck>true</SDLCheck>
112122
<PreprocessorDefinitions>_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
113123
<ConformanceMode>true</ConformanceMode>
114-
<AdditionalIncludeDirectories>$(SolutionDir)libs\funchook\distorm\include;$(SolutionDir)libs\libvalinet</AdditionalIncludeDirectories>
115124
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
116125
</ClCompile>
117126
<Link>
118-
<SubSystem>Windows</SubSystem>
127+
<SubSystem>Console</SubSystem>
119128
<GenerateDebugInformation>true</GenerateDebugInformation>
120-
<AdditionalDependencies>$(SolutionDir)libs\funchook\build\Release\distorm.lib;%(AdditionalDependencies)</AdditionalDependencies>
121129
</Link>
122130
<PostBuildEvent>
123131
<Command>
@@ -128,49 +136,45 @@
128136
</Command>
129137
</PreBuildEvent>
130138
</ItemDefinitionGroup>
131-
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
139+
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
132140
<ClCompile>
133141
<WarningLevel>Level3</WarningLevel>
134-
<FunctionLevelLinking>true</FunctionLevelLinking>
135-
<IntrinsicFunctions>true</IntrinsicFunctions>
136142
<SDLCheck>true</SDLCheck>
137-
<PreprocessorDefinitions>NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
143+
<PreprocessorDefinitions>_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
138144
<ConformanceMode>true</ConformanceMode>
139-
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
140-
<AdditionalIncludeDirectories>$(SolutionDir)libs\funchook\distorm\include;$(SolutionDir)libs\libvalinet</AdditionalIncludeDirectories>
145+
<AdditionalIncludeDirectories>$(SolutionDir)libs\funchook\include;$(SolutionDir)libs\libvalinet;$(SolutionDir)libs\funchook\distorm\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
146+
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
141147
</ClCompile>
142148
<Link>
143149
<SubSystem>Console</SubSystem>
144-
<EnableCOMDATFolding>true</EnableCOMDATFolding>
145-
<OptimizeReferences>true</OptimizeReferences>
146150
<GenerateDebugInformation>true</GenerateDebugInformation>
151+
<AdditionalLibraryDirectories>$(SolutionDir)libs\funchook\build\Release\funchook.lib;$(SolutionDir)libs\funchook\build\Release\distorm.lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
152+
<AdditionalDependencies>$(SolutionDir)libs\funchook\build\Release\funchook.lib;$(SolutionDir)libs\funchook\build\Release\distorm.lib;%(AdditionalDependencies)</AdditionalDependencies>
147153
</Link>
148-
<PreBuildEvent>
149-
<Command>
150-
</Command>
151-
</PreBuildEvent>
152154
<PostBuildEvent>
153155
<Command>
154156
</Command>
155157
</PostBuildEvent>
158+
<PreBuildEvent>
159+
<Command>
160+
</Command>
161+
</PreBuildEvent>
156162
</ItemDefinitionGroup>
157-
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
163+
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
158164
<ClCompile>
159165
<WarningLevel>Level3</WarningLevel>
160166
<FunctionLevelLinking>true</FunctionLevelLinking>
161167
<IntrinsicFunctions>true</IntrinsicFunctions>
162168
<SDLCheck>true</SDLCheck>
163169
<PreprocessorDefinitions>NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
164170
<ConformanceMode>true</ConformanceMode>
165-
<AdditionalIncludeDirectories>$(SolutionDir)libs\funchook\distorm\include;$(SolutionDir)libs\libvalinet</AdditionalIncludeDirectories>
166171
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
167172
</ClCompile>
168173
<Link>
169-
<SubSystem>Windows</SubSystem>
174+
<SubSystem>Console</SubSystem>
170175
<EnableCOMDATFolding>true</EnableCOMDATFolding>
171176
<OptimizeReferences>true</OptimizeReferences>
172177
<GenerateDebugInformation>true</GenerateDebugInformation>
173-
<AdditionalDependencies>$(SolutionDir)libs\funchook\build\Release\distorm.lib;%(AdditionalDependencies)</AdditionalDependencies>
174178
</Link>
175179
<PreBuildEvent>
176180
<Command>
@@ -182,7 +186,7 @@
182186
</PostBuildEvent>
183187
</ItemDefinitionGroup>
184188
<ItemGroup>
185-
<ClCompile Include="main.c" />
189+
<ClCompile Include="dllmain.c" />
186190
</ItemGroup>
187191
<ItemGroup>
188192
<ClInclude Include="resource.h" />

ExplorerPatcher/ExplorerPatcher.vcxproj.filters

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
</ResourceCompile>
2626
</ItemGroup>
2727
<ItemGroup>
28-
<ClCompile Include="main.c">
28+
<ClCompile Include="dllmain.c">
2929
<Filter>Source Files</Filter>
3030
</ClCompile>
3131
</ItemGroup>

0 commit comments

Comments
 (0)