Skip to content

Commit 4a9f50d

Browse files
authored
Merge ffb9c86 into 8e1b4e3
2 parents 8e1b4e3 + ffb9c86 commit 4a9f50d

32 files changed

+1547
-73
lines changed

‎.gitignore

+3
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,15 @@
2020
# Build results
2121
[Dd]ebug/
2222
[Dd]ebug64/
23+
[Dd]ebugARM64/
2324
[Dd]ebugPublic/
2425
[Rr]elease/
2526
[Rr]elease64/
27+
[Rr]eleaseARM64/
2628
[Rr]eleases/
2729
x64/
2830
x86/
31+
ARM64/
2932
bld/
3033
[Bb]in/
3134
[Oo]bj/

‎Src/BUILDME.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ Visual Studio 2019 (Community Edition is enough)
1010
- Windows 10 SDK (10.0.19041.0) for Desktop C++
1111
- Visual C++ ATL support
1212
HTML Help Workshop
13-
WiX 3.7
13+
WiX 3.14
1414
7-Zip
1515
It is possible to convert the projects to newer versions of Visual Studio and newer SDKs.
1616
Newer versions of WiX will probably work fine.

‎Src/ClassicExplorer/ClassicExplorer.vcxproj

+178
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
33
<ItemGroup Label="ProjectConfigurations">
4+
<ProjectConfiguration Include="Debug|ARM64">
5+
<Configuration>Debug</Configuration>
6+
<Platform>ARM64</Platform>
7+
</ProjectConfiguration>
48
<ProjectConfiguration Include="Debug|Win32">
59
<Configuration>Debug</Configuration>
610
<Platform>Win32</Platform>
@@ -9,6 +13,10 @@
913
<Configuration>Debug</Configuration>
1014
<Platform>x64</Platform>
1115
</ProjectConfiguration>
16+
<ProjectConfiguration Include="Release|ARM64">
17+
<Configuration>Release</Configuration>
18+
<Platform>ARM64</Platform>
19+
</ProjectConfiguration>
1220
<ProjectConfiguration Include="Release|Win32">
1321
<Configuration>Release</Configuration>
1422
<Platform>Win32</Platform>
@@ -17,6 +25,10 @@
1725
<Configuration>Release</Configuration>
1826
<Platform>x64</Platform>
1927
</ProjectConfiguration>
28+
<ProjectConfiguration Include="Setup|ARM64">
29+
<Configuration>Setup</Configuration>
30+
<Platform>ARM64</Platform>
31+
</ProjectConfiguration>
2032
<ProjectConfiguration Include="Setup|Win32">
2133
<Configuration>Setup</Configuration>
2234
<Platform>Win32</Platform>
@@ -60,19 +72,39 @@
6072
<CharacterSet>Unicode</CharacterSet>
6173
<WholeProgramOptimization>true</WholeProgramOptimization>
6274
</PropertyGroup>
75+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Setup|ARM64'" Label="Configuration">
76+
<ConfigurationType>DynamicLibrary</ConfigurationType>
77+
<PlatformToolset>v142</PlatformToolset>
78+
<UseOfAtl>Static</UseOfAtl>
79+
<CharacterSet>Unicode</CharacterSet>
80+
<WholeProgramOptimization>true</WholeProgramOptimization>
81+
</PropertyGroup>
6382
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
6483
<ConfigurationType>DynamicLibrary</ConfigurationType>
6584
<PlatformToolset>v142</PlatformToolset>
6685
<UseOfAtl>Static</UseOfAtl>
6786
<CharacterSet>Unicode</CharacterSet>
6887
<WholeProgramOptimization>true</WholeProgramOptimization>
6988
</PropertyGroup>
89+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" Label="Configuration">
90+
<ConfigurationType>DynamicLibrary</ConfigurationType>
91+
<PlatformToolset>v142</PlatformToolset>
92+
<UseOfAtl>Static</UseOfAtl>
93+
<CharacterSet>Unicode</CharacterSet>
94+
<WholeProgramOptimization>true</WholeProgramOptimization>
95+
</PropertyGroup>
7096
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
7197
<ConfigurationType>DynamicLibrary</ConfigurationType>
7298
<PlatformToolset>v142</PlatformToolset>
7399
<UseOfAtl>Static</UseOfAtl>
74100
<CharacterSet>Unicode</CharacterSet>
75101
</PropertyGroup>
102+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" Label="Configuration">
103+
<ConfigurationType>DynamicLibrary</ConfigurationType>
104+
<PlatformToolset>v142</PlatformToolset>
105+
<UseOfAtl>Static</UseOfAtl>
106+
<CharacterSet>Unicode</CharacterSet>
107+
</PropertyGroup>
76108
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
77109
<ImportGroup Label="ExtensionSettings">
78110
</ImportGroup>
@@ -92,14 +124,26 @@
92124
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
93125
<Import Project="..\Version.props" />
94126
</ImportGroup>
127+
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Setup|ARM64'" Label="PropertySheets">
128+
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
129+
<Import Project="..\Version.props" />
130+
</ImportGroup>
95131
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
96132
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
97133
<Import Project="..\Version.props" />
98134
</ImportGroup>
135+
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" Label="PropertySheets">
136+
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
137+
<Import Project="..\Version.props" />
138+
</ImportGroup>
99139
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
100140
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
101141
<Import Project="..\Version.props" />
102142
</ImportGroup>
143+
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" Label="PropertySheets">
144+
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
145+
<Import Project="..\Version.props" />
146+
</ImportGroup>
103147
<PropertyGroup Label="UserMacros" />
104148
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
105149
<OutDir>$(Configuration)\</OutDir>
@@ -115,6 +159,13 @@
115159
<LinkIncremental>true</LinkIncremental>
116160
<TargetName>$(ProjectName)64</TargetName>
117161
</PropertyGroup>
162+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
163+
<IgnoreImportLibrary>true</IgnoreImportLibrary>
164+
<LinkIncremental>true</LinkIncremental>
165+
<TargetName>$(ProjectName)ARM64</TargetName>
166+
<OutDir>$(Configuration)ARM64\</OutDir>
167+
<IntDir>$(Configuration)ARM64\</IntDir>
168+
</PropertyGroup>
118169
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
119170
<OutDir>$(Configuration)\</OutDir>
120171
<IntDir>$(Configuration)\</IntDir>
@@ -129,6 +180,13 @@
129180
<LinkIncremental>false</LinkIncremental>
130181
<TargetName>$(ProjectName)64</TargetName>
131182
</PropertyGroup>
183+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
184+
<IgnoreImportLibrary>true</IgnoreImportLibrary>
185+
<LinkIncremental>false</LinkIncremental>
186+
<TargetName>$(ProjectName)ARM64</TargetName>
187+
<OutDir>$(Configuration)ARM64\</OutDir>
188+
<IntDir>$(Configuration)ARM64\</IntDir>
189+
</PropertyGroup>
132190
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Setup|Win32'">
133191
<OutDir>$(Configuration)\</OutDir>
134192
<IntDir>$(Configuration)\</IntDir>
@@ -143,6 +201,13 @@
143201
<LinkIncremental>false</LinkIncremental>
144202
<TargetName>$(ProjectName)64</TargetName>
145203
</PropertyGroup>
204+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Setup|ARM64'">
205+
<IgnoreImportLibrary>true</IgnoreImportLibrary>
206+
<LinkIncremental>false</LinkIncremental>
207+
<TargetName>$(ProjectName)ARM64</TargetName>
208+
<OutDir>$(Configuration)ARM64\</OutDir>
209+
<IntDir>$(Configuration)ARM64\</IntDir>
210+
</PropertyGroup>
146211
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
147212
<Midl>
148213
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
@@ -216,6 +281,43 @@
216281
<PerUserRedirection>true</PerUserRedirection>
217282
</Link>
218283
</ItemDefinitionGroup>
284+
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
285+
<Midl>
286+
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
287+
<MkTypLibCompatible>false</MkTypLibCompatible>
288+
<GenerateStublessProxies>true</GenerateStublessProxies>
289+
<HeaderFileName>ClassicExplorer_i.h</HeaderFileName>
290+
<DllDataFileName>
291+
</DllDataFileName>
292+
<InterfaceIdentifierFileName>ClassicExplorer_i.c</InterfaceIdentifierFileName>
293+
<ProxyFileName>ClassicExplorer_p.c</ProxyFileName>
294+
</Midl>
295+
<ClCompile>
296+
<Optimization>Disabled</Optimization>
297+
<AdditionalIncludeDirectories>..\Lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
298+
<PreprocessorDefinitions>WIN32;_WINDOWS;_DEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
299+
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
300+
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
301+
<PrecompiledHeader>Use</PrecompiledHeader>
302+
<WarningLevel>Level3</WarningLevel>
303+
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
304+
<MultiProcessorCompilation>true</MultiProcessorCompilation>
305+
<ConformanceMode>true</ConformanceMode>
306+
<LanguageStandard>stdcpp17</LanguageStandard>
307+
</ClCompile>
308+
<ResourceCompile>
309+
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
310+
<AdditionalIncludeDirectories>$(IntDir);..\Lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
311+
</ResourceCompile>
312+
<Link>
313+
<RegisterOutput>true</RegisterOutput>
314+
<AdditionalDependencies>oleacc.lib;comctl32.lib;uxtheme.lib;dwmapi.lib;winmm.lib;htmlhelp.lib;wininet.lib;wintrust.lib;crypt32.lib;Netapi32.lib;%(AdditionalDependencies)</AdditionalDependencies>
315+
<ModuleDefinitionFile>.\$(TargetName).def</ModuleDefinitionFile>
316+
<GenerateDebugInformation>true</GenerateDebugInformation>
317+
<SubSystem>Windows</SubSystem>
318+
<PerUserRedirection>true</PerUserRedirection>
319+
</Link>
320+
</ItemDefinitionGroup>
219321
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
220322
<Midl>
221323
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
@@ -291,6 +393,44 @@
291393
<PerUserRedirection>true</PerUserRedirection>
292394
</Link>
293395
</ItemDefinitionGroup>
396+
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
397+
<Midl>
398+
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
399+
<MkTypLibCompatible>false</MkTypLibCompatible>
400+
<GenerateStublessProxies>true</GenerateStublessProxies>
401+
<HeaderFileName>ClassicExplorer_i.h</HeaderFileName>
402+
<DllDataFileName>
403+
</DllDataFileName>
404+
<InterfaceIdentifierFileName>ClassicExplorer_i.c</InterfaceIdentifierFileName>
405+
<ProxyFileName>ClassicExplorer_p.c</ProxyFileName>
406+
</Midl>
407+
<ClCompile>
408+
<Optimization>MaxSpeed</Optimization>
409+
<AdditionalIncludeDirectories>..\Lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
410+
<PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
411+
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
412+
<PrecompiledHeader>Use</PrecompiledHeader>
413+
<WarningLevel>Level3</WarningLevel>
414+
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
415+
<MultiProcessorCompilation>true</MultiProcessorCompilation>
416+
<ConformanceMode>true</ConformanceMode>
417+
<LanguageStandard>stdcpp17</LanguageStandard>
418+
</ClCompile>
419+
<ResourceCompile>
420+
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
421+
<AdditionalIncludeDirectories>$(IntDir);..\Lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
422+
</ResourceCompile>
423+
<Link>
424+
<RegisterOutput>true</RegisterOutput>
425+
<AdditionalDependencies>oleacc.lib;comctl32.lib;uxtheme.lib;dwmapi.lib;winmm.lib;htmlhelp.lib;wininet.lib;wintrust.lib;crypt32.lib;Netapi32.lib;%(AdditionalDependencies)</AdditionalDependencies>
426+
<ModuleDefinitionFile>.\$(TargetName).def</ModuleDefinitionFile>
427+
<GenerateDebugInformation>true</GenerateDebugInformation>
428+
<SubSystem>Windows</SubSystem>
429+
<OptimizeReferences>true</OptimizeReferences>
430+
<EnableCOMDATFolding>true</EnableCOMDATFolding>
431+
<PerUserRedirection>true</PerUserRedirection>
432+
</Link>
433+
</ItemDefinitionGroup>
294434
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Setup|Win32'">
295435
<Midl>
296436
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
@@ -364,6 +504,43 @@
364504
<EnableCOMDATFolding>true</EnableCOMDATFolding>
365505
</Link>
366506
</ItemDefinitionGroup>
507+
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Setup|ARM64'">
508+
<Midl>
509+
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
510+
<MkTypLibCompatible>false</MkTypLibCompatible>
511+
<GenerateStublessProxies>true</GenerateStublessProxies>
512+
<HeaderFileName>ClassicExplorer_i.h</HeaderFileName>
513+
<DllDataFileName>
514+
</DllDataFileName>
515+
<InterfaceIdentifierFileName>ClassicExplorer_i.c</InterfaceIdentifierFileName>
516+
<ProxyFileName>ClassicExplorer_p.c</ProxyFileName>
517+
</Midl>
518+
<ClCompile>
519+
<Optimization>MaxSpeed</Optimization>
520+
<AdditionalIncludeDirectories>..\Lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
521+
<PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;_USRDLL;BUILD_SETUP;%(PreprocessorDefinitions)</PreprocessorDefinitions>
522+
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
523+
<PrecompiledHeader>Use</PrecompiledHeader>
524+
<WarningLevel>Level3</WarningLevel>
525+
<TreatWarningAsError>true</TreatWarningAsError>
526+
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
527+
<MultiProcessorCompilation>true</MultiProcessorCompilation>
528+
<ConformanceMode>true</ConformanceMode>
529+
<LanguageStandard>stdcpp17</LanguageStandard>
530+
</ClCompile>
531+
<ResourceCompile>
532+
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
533+
<AdditionalIncludeDirectories>$(IntDir);..\Lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
534+
</ResourceCompile>
535+
<Link>
536+
<AdditionalDependencies>oleacc.lib;comctl32.lib;uxtheme.lib;dwmapi.lib;winmm.lib;htmlhelp.lib;wininet.lib;wintrust.lib;crypt32.lib;Netapi32.lib;%(AdditionalDependencies)</AdditionalDependencies>
537+
<ModuleDefinitionFile>.\$(TargetName).def</ModuleDefinitionFile>
538+
<GenerateDebugInformation>true</GenerateDebugInformation>
539+
<SubSystem>Windows</SubSystem>
540+
<OptimizeReferences>true</OptimizeReferences>
541+
<EnableCOMDATFolding>true</EnableCOMDATFolding>
542+
</Link>
543+
</ItemDefinitionGroup>
367544
<ItemGroup>
368545
<ClCompile Include="ClassicCopy.cpp" />
369546
<ClCompile Include="ClassicCopyExt.cpp" />
@@ -388,6 +565,7 @@
388565
<None Include="ClassicExplorer.rgs" />
389566
<None Include="ClassicExplorer32.def" />
390567
<None Include="ClassicExplorer64.def" />
568+
<None Include="ClassicExplorerARM64.def" />
391569
<None Include="ExplorerBand.rgs" />
392570
<None Include="ExplorerBHO.rgs" />
393571
<None Include="ExplorerL10N.ini" />

‎Src/ClassicExplorer/ClassicExplorer.vcxproj.filters

+4-1
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,9 @@
8080
<None Include="ShareOverlay.rgs">
8181
<Filter>Resource Files</Filter>
8282
</None>
83+
<None Include="ClassicExplorerARM64.def">
84+
<Filter>Source Files</Filter>
85+
</None>
8386
</ItemGroup>
8487
<ItemGroup>
8588
<Text Include="..\Localization\English\ClassicExplorerADMX.txt">
@@ -146,4 +149,4 @@
146149
<Filter>Resource Files</Filter>
147150
</Image>
148151
</ItemGroup>
149-
</Project>
152+
</Project>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
; ClassicExplorer.def : Declares the module parameters.
2+
3+
LIBRARY "ClassicExplorerARM64.DLL"
4+
5+
EXPORTS
6+
DllCanUnloadNow PRIVATE
7+
DllGetClassObject PRIVATE
8+
DllRegisterServer PRIVATE
9+
DllUnregisterServer PRIVATE
10+
DllInstall PRIVATE
11+
ShowExplorerSettings
12+
DllImportSettingsXml
13+
DllExportSettingsXml

‎Src/ClassicIE/ClassicIE.cpp

+3-1
Original file line numberDiff line numberDiff line change
@@ -189,8 +189,10 @@ int WINAPI wWinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdL
189189
}
190190
}
191191

192-
#ifdef _WIN64
192+
#if defined(_M_AMD64)
193193
HMODULE hHookModule=GetModuleHandle(L"ClassicIEDLL_64.dll");
194+
#elif defined(_M_ARM64)
195+
HMODULE hHookModule=GetModuleHandle(L"ClassicIEDLL_ARM64.dll");
194196
#else
195197
HMODULE hHookModule=GetModuleHandle(L"ClassicIEDLL_32.dll");
196198
#endif

0 commit comments

Comments
 (0)