mirror of
https://github.com/emtee40/NanaZip
synced 2026-04-25 16:24:56 +02:00
Add NanaZip.Shared.ModernExperienceShims project.
This commit is contained in:
103
NanaZip.Shared/ModernWin32MessageBox.cpp
Normal file
103
NanaZip.Shared/ModernWin32MessageBox.cpp
Normal file
@@ -0,0 +1,103 @@
|
||||
/*
|
||||
* PROJECT: NanaZip
|
||||
* FILE: ModernWin32MessageBox.cpp
|
||||
* PURPOSE: Implementation for Modern Win32 Message Box
|
||||
*
|
||||
* LICENSE: The MIT License
|
||||
*
|
||||
* DEVELOPER: Mouri_Naruto (Mouri_Naruto AT Outlook.com)
|
||||
*/
|
||||
|
||||
#include <Windows.h>
|
||||
|
||||
#include <CommCtrl.h>
|
||||
#pragma comment(lib,"comctl32.lib")
|
||||
|
||||
EXTERN_C int WINAPI ModernMessageBoxW(
|
||||
_In_opt_ HWND hWnd,
|
||||
_In_opt_ LPCWSTR lpText,
|
||||
_In_opt_ LPCWSTR lpCaption,
|
||||
_In_ UINT uType)
|
||||
{
|
||||
if (uType != (uType & (MB_ICONMASK | MB_TYPEMASK)))
|
||||
{
|
||||
return ::MessageBoxW(hWnd, lpText, lpCaption, uType);
|
||||
}
|
||||
|
||||
TASKDIALOGCONFIG TaskDialogConfig = { 0 };
|
||||
|
||||
TaskDialogConfig.cbSize = sizeof(TASKDIALOGCONFIG);
|
||||
TaskDialogConfig.hwndParent = hWnd;
|
||||
TaskDialogConfig.dwFlags = TDF_ALLOW_DIALOG_CANCELLATION;
|
||||
TaskDialogConfig.pszWindowTitle = lpCaption;
|
||||
TaskDialogConfig.pszMainInstruction = lpText;
|
||||
|
||||
switch (uType & MB_TYPEMASK)
|
||||
{
|
||||
case MB_OK:
|
||||
TaskDialogConfig.dwCommonButtons =
|
||||
TDCBF_OK_BUTTON;
|
||||
break;
|
||||
case MB_OKCANCEL:
|
||||
TaskDialogConfig.dwCommonButtons =
|
||||
TDCBF_OK_BUTTON | TDCBF_CANCEL_BUTTON;
|
||||
break;
|
||||
case MB_YESNOCANCEL:
|
||||
TaskDialogConfig.dwCommonButtons =
|
||||
TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON;
|
||||
break;
|
||||
case MB_YESNO:
|
||||
TaskDialogConfig.dwCommonButtons =
|
||||
TDCBF_YES_BUTTON | TDCBF_NO_BUTTON;
|
||||
break;
|
||||
case MB_RETRYCANCEL:
|
||||
TaskDialogConfig.dwCommonButtons =
|
||||
TDCBF_RETRY_BUTTON | TDCBF_CANCEL_BUTTON;
|
||||
break;
|
||||
default:
|
||||
return ::MessageBoxW(hWnd, lpText, lpCaption, uType);
|
||||
}
|
||||
|
||||
switch (uType & MB_ICONMASK)
|
||||
{
|
||||
case MB_ICONHAND:
|
||||
TaskDialogConfig.pszMainIcon = TD_ERROR_ICON;
|
||||
break;
|
||||
case MB_ICONQUESTION:
|
||||
TaskDialogConfig.dwFlags |= TDF_USE_HICON_MAIN;
|
||||
TaskDialogConfig.hMainIcon = ::LoadIconW(nullptr, IDI_QUESTION);
|
||||
break;
|
||||
case MB_ICONEXCLAMATION:
|
||||
TaskDialogConfig.pszMainIcon = TD_WARNING_ICON;
|
||||
break;
|
||||
case MB_ICONASTERISK:
|
||||
TaskDialogConfig.pszMainIcon = TD_INFORMATION_ICON;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
int ButtonID = 0;
|
||||
|
||||
HRESULT hr = ::TaskDialogIndirect(
|
||||
&TaskDialogConfig,
|
||||
&ButtonID,
|
||||
nullptr,
|
||||
nullptr);
|
||||
|
||||
if (ButtonID == 0)
|
||||
{
|
||||
::SetLastError(hr);
|
||||
}
|
||||
|
||||
return ButtonID;
|
||||
}
|
||||
|
||||
#if defined(_M_IX86)
|
||||
#pragma warning(suppress:4483)
|
||||
extern "C" __declspec(selectany) void const* const __identifier("_imp__MessageBoxW@16") = reinterpret_cast<void const*>(::ModernMessageBoxW);
|
||||
#pragma comment(linker, "/include:__imp__MessageBoxW@16")
|
||||
#else
|
||||
extern "C" __declspec(selectany) void const* const __imp_MessageBoxW = reinterpret_cast<void const*>(::ModernMessageBoxW);
|
||||
#pragma comment(linker, "/include:__imp_MessageBoxW")
|
||||
#endif
|
||||
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<None Include="NanaZip.Shared.ModernExperienceShims.props" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
14
NanaZip.Shared/NanaZip.Shared.ModernExperienceShims.props
Normal file
14
NanaZip.Shared/NanaZip.Shared.ModernExperienceShims.props
Normal file
@@ -0,0 +1,14 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<IncludePath>$(MSBuildThisFileDirectory);$(IncludePath)</IncludePath>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup>
|
||||
<ClCompile>
|
||||
<PreprocessorDefinitions>%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>$(MileProjectObjectsPath)$(Configuration)\NanaZip.Shared.ModernExperienceShims\$(Platform)\ModernWin32MessageBox.obj;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
</Project>
|
||||
21
NanaZip.Shared/NanaZip.Shared.ModernExperienceShims.vcxproj
Normal file
21
NanaZip.Shared/NanaZip.Shared.ModernExperienceShims.vcxproj
Normal file
@@ -0,0 +1,21 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="..\Mile.Cpp\Mile.Project\Mile.Project.Platform.Win32.props" />
|
||||
<Import Project="..\Mile.Cpp\Mile.Project\Mile.Project.Platform.x64.props" />
|
||||
<Import Project="..\Mile.Cpp\Mile.Project\Mile.Project.Platform.ARM64.props" />
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectGuid>{501956AB-67C3-47FA-BE2B-8AEFF463AF1C}</ProjectGuid>
|
||||
<RootNamespace>NanaZip.Shared.ModernExperienceShims</RootNamespace>
|
||||
<MileProjectType>StaticLibrary</MileProjectType>
|
||||
</PropertyGroup>
|
||||
<Import Project="..\Mile.Cpp\Mile.Project\Mile.Project.props" />
|
||||
<Import Project="..\Mile.Cpp\Mile.Project\Mile.Project.Runtime.VC-LTL.props" />
|
||||
<Import Project="..\Mile.Cpp\Mile.Library\Mile.Library.props" />
|
||||
<ItemGroup>
|
||||
<None Include="NanaZip.Shared.ModernExperienceShims.props" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="ModernWin32MessageBox.cpp" />
|
||||
</ItemGroup>
|
||||
<Import Project="..\Mile.Cpp\Mile.Project\Mile.Project.targets" />
|
||||
</Project>
|
||||
23
NanaZip.sln
23
NanaZip.sln
@@ -6,6 +6,7 @@ MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "NanaZipShellExtension", "NanaZipShellExtension\NanaZipShellExtension.vcxproj", "{F17D4837-7943-4361-9527-2AF9CACE477D}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{84E27A16-CBC7-466C-971F-2A4E0F2F95BE} = {84E27A16-CBC7-466C-971F-2A4E0F2F95BE}
|
||||
{501956AB-67C3-47FA-BE2B-8AEFF463AF1C} = {501956AB-67C3-47FA-BE2B-8AEFF463AF1C}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Mile.Library", "Mile.Cpp\Mile.Library\Mile.Library.vcxproj", "{84E27A16-CBC7-466C-971F-2A4E0F2F95BE}"
|
||||
@@ -14,6 +15,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "NanaZipSfxWindows", "NanaZi
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{84E27A16-CBC7-466C-971F-2A4E0F2F95BE} = {84E27A16-CBC7-466C-971F-2A4E0F2F95BE}
|
||||
{6F0E7455-ECE1-440D-9EA2-8C18E4F1CBE6} = {6F0E7455-ECE1-440D-9EA2-8C18E4F1CBE6}
|
||||
{501956AB-67C3-47FA-BE2B-8AEFF463AF1C} = {501956AB-67C3-47FA-BE2B-8AEFF463AF1C}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "NanaZipSfxConsole", "NanaZipSfxConsole\NanaZipSfxConsole.vcxproj", "{96C0A1A0-D964-4725-AFDC-73EBF7FC1416}"
|
||||
@@ -26,6 +28,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "NanaZipSfxSetup", "NanaZipS
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{84E27A16-CBC7-466C-971F-2A4E0F2F95BE} = {84E27A16-CBC7-466C-971F-2A4E0F2F95BE}
|
||||
{6F0E7455-ECE1-440D-9EA2-8C18E4F1CBE6} = {6F0E7455-ECE1-440D-9EA2-8C18E4F1CBE6}
|
||||
{501956AB-67C3-47FA-BE2B-8AEFF463AF1C} = {501956AB-67C3-47FA-BE2B-8AEFF463AF1C}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "NanaZipCore", "NanaZipCore\NanaZipCore.vcxproj", "{86D65350-E2AE-47BC-AE05-FC35D3BAAE6C}"
|
||||
@@ -40,6 +43,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "NanaZip", "NanaZip\NanaZip.
|
||||
{D33E771E-6B30-4EFB-9DEC-A9148D50080D} = {D33E771E-6B30-4EFB-9DEC-A9148D50080D}
|
||||
{F17D4837-7943-4361-9527-2AF9CACE477D} = {F17D4837-7943-4361-9527-2AF9CACE477D}
|
||||
{86D65350-E2AE-47BC-AE05-FC35D3BAAE6C} = {86D65350-E2AE-47BC-AE05-FC35D3BAAE6C}
|
||||
{501956AB-67C3-47FA-BE2B-8AEFF463AF1C} = {501956AB-67C3-47FA-BE2B-8AEFF463AF1C}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "NanaZipWindows", "NanaZipWindows\NanaZipWindows.vcxproj", "{D33E771E-6B30-4EFB-9DEC-A9148D50080D}"
|
||||
@@ -47,6 +51,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "NanaZipWindows", "NanaZipWi
|
||||
{84E27A16-CBC7-466C-971F-2A4E0F2F95BE} = {84E27A16-CBC7-466C-971F-2A4E0F2F95BE}
|
||||
{86D65350-E2AE-47BC-AE05-FC35D3BAAE6C} = {86D65350-E2AE-47BC-AE05-FC35D3BAAE6C}
|
||||
{C11F288B-9E3C-4DA9-8206-852BB91C7E4C} = {C11F288B-9E3C-4DA9-8206-852BB91C7E4C}
|
||||
{501956AB-67C3-47FA-BE2B-8AEFF463AF1C} = {501956AB-67C3-47FA-BE2B-8AEFF463AF1C}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "NanaZipConsole", "NanaZipConsole\NanaZipConsole.vcxproj", "{D866CA04-DF51-4660-BA4D-F82426A3A522}"
|
||||
@@ -70,6 +75,11 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "NanaZip.Shared.SevenZipZSta
|
||||
{84E27A16-CBC7-466C-971F-2A4E0F2F95BE} = {84E27A16-CBC7-466C-971F-2A4E0F2F95BE}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "NanaZip.Shared.ModernExperienceShims", "NanaZip.Shared\NanaZip.Shared.ModernExperienceShims.vcxproj", "{501956AB-67C3-47FA-BE2B-8AEFF463AF1C}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{84E27A16-CBC7-466C-971F-2A4E0F2F95BE} = {84E27A16-CBC7-466C-971F-2A4E0F2F95BE}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|ARM64 = Debug|ARM64
|
||||
@@ -218,12 +228,25 @@ Global
|
||||
{6F0E7455-ECE1-440D-9EA2-8C18E4F1CBE6}.Release|x64.Build.0 = Release|x64
|
||||
{6F0E7455-ECE1-440D-9EA2-8C18E4F1CBE6}.Release|x86.ActiveCfg = Release|Win32
|
||||
{6F0E7455-ECE1-440D-9EA2-8C18E4F1CBE6}.Release|x86.Build.0 = Release|Win32
|
||||
{501956AB-67C3-47FA-BE2B-8AEFF463AF1C}.Debug|ARM64.ActiveCfg = Debug|ARM64
|
||||
{501956AB-67C3-47FA-BE2B-8AEFF463AF1C}.Debug|ARM64.Build.0 = Debug|ARM64
|
||||
{501956AB-67C3-47FA-BE2B-8AEFF463AF1C}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{501956AB-67C3-47FA-BE2B-8AEFF463AF1C}.Debug|x64.Build.0 = Debug|x64
|
||||
{501956AB-67C3-47FA-BE2B-8AEFF463AF1C}.Debug|x86.ActiveCfg = Debug|Win32
|
||||
{501956AB-67C3-47FA-BE2B-8AEFF463AF1C}.Debug|x86.Build.0 = Debug|Win32
|
||||
{501956AB-67C3-47FA-BE2B-8AEFF463AF1C}.Release|ARM64.ActiveCfg = Release|ARM64
|
||||
{501956AB-67C3-47FA-BE2B-8AEFF463AF1C}.Release|ARM64.Build.0 = Release|ARM64
|
||||
{501956AB-67C3-47FA-BE2B-8AEFF463AF1C}.Release|x64.ActiveCfg = Release|x64
|
||||
{501956AB-67C3-47FA-BE2B-8AEFF463AF1C}.Release|x64.Build.0 = Release|x64
|
||||
{501956AB-67C3-47FA-BE2B-8AEFF463AF1C}.Release|x86.ActiveCfg = Release|Win32
|
||||
{501956AB-67C3-47FA-BE2B-8AEFF463AF1C}.Release|x86.Build.0 = Release|Win32
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
GlobalSection(NestedProjects) = preSolution
|
||||
{6F0E7455-ECE1-440D-9EA2-8C18E4F1CBE6} = {685BAF3E-2C48-4904-B37E-EBEA67680327}
|
||||
{501956AB-67C3-47FA-BE2B-8AEFF463AF1C} = {685BAF3E-2C48-4904-B37E-EBEA67680327}
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||
SolutionGuid = {DE2C16C4-5306-4103-9C2A-749DC32B5CA6}
|
||||
|
||||
@@ -14,6 +14,7 @@
|
||||
<Import Project="..\Mile.Cpp\Mile.Project\Mile.Project.props" />
|
||||
<Import Project="..\Mile.Cpp\Mile.Project\Mile.Project.Runtime.VC-LTL.props" />
|
||||
<Import Project="..\Mile.Cpp\Mile.Library\Mile.Library.props" />
|
||||
<Import Project="..\NanaZip.Shared\NanaZip.Shared.ModernExperienceShims.props" />
|
||||
<ItemDefinitionGroup>
|
||||
<ClCompile>
|
||||
<AdditionalOptions>%(AdditionalOptions) /Wv:18</AdditionalOptions>
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
<Import Project="..\Mile.Cpp\Mile.Project\Mile.Project.Runtime.VC-LTL.props" />
|
||||
<Import Project="..\Mile.Cpp\Mile.Library\Mile.Library.props" />
|
||||
<Import Project="..\NanaZip.Shared\NanaZip.Shared.SevenZipZStandard.props" />
|
||||
<Import Project="..\NanaZip.Shared\NanaZip.Shared.ModernExperienceShims.props" />
|
||||
<PropertyGroup>
|
||||
<TargetName>NanaZipSetup</TargetName>
|
||||
<TargetExt>.sfx</TargetExt>
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
<Import Project="..\Mile.Cpp\Mile.Project\Mile.Project.Runtime.VC-LTL.props" />
|
||||
<Import Project="..\Mile.Cpp\Mile.Library\Mile.Library.props" />
|
||||
<Import Project="..\NanaZip.Shared\NanaZip.Shared.SevenZipZStandard.props" />
|
||||
<Import Project="..\NanaZip.Shared\NanaZip.Shared.ModernExperienceShims.props" />
|
||||
<PropertyGroup>
|
||||
<TargetName>NanaZipWindows</TargetName>
|
||||
<TargetExt>.sfx</TargetExt>
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
<Import Project="..\Mile.Cpp\Mile.Project\Mile.Project.Runtime.VC-LTL.props" />
|
||||
<Import Project="..\Mile.Cpp\Mile.Project\Mile.Project.Library.CppWinRT.props" />
|
||||
<Import Project="..\Mile.Cpp\Mile.Library\Mile.Library.props" />
|
||||
<Import Project="..\NanaZip.Shared\NanaZip.Shared.ModernExperienceShims.props" />
|
||||
<ItemDefinitionGroup>
|
||||
<ClCompile>
|
||||
<AdditionalOptions>%(AdditionalOptions) /Wv:18</AdditionalOptions>
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
<Import Project="..\Mile.Cpp\Mile.Project\Mile.Project.props" />
|
||||
<Import Project="..\Mile.Cpp\Mile.Project\Mile.Project.Runtime.VC-LTL.props" />
|
||||
<Import Project="..\Mile.Cpp\Mile.Library\Mile.Library.props" />
|
||||
<Import Project="..\NanaZip.Shared\NanaZip.Shared.ModernExperienceShims.props" />
|
||||
<ItemDefinitionGroup>
|
||||
<ClCompile>
|
||||
<AdditionalOptions>%(AdditionalOptions) /Wv:18</AdditionalOptions>
|
||||
|
||||
Reference in New Issue
Block a user