-Verion 1.4.5 (2019-09-04)
+Version 1.4.6 (2020-04-24)
+ * Compiled with spectre migitations... just 'cause
+ * Added "Support"-Link to About dialog
+ * Small menu redesign.
+
+Version 1.4.5 (2019-09-04)
* Fixed crash when all audio endpoints are removed while the program is running
(might happen, when connecting to your PC via RDP).
* Upgraded compiler toolset to VS2019
<html lang="de">
<head>
<meta charset="utf-8">
- <title>WinMute 1.4.5 - Lies mich</title>
+ <title>WinMute 1.4.6 - Lies mich</title>
<style type="text/css">
<!--
</style>
</head>
<body>
- <h1>WinMute 1.4.5</h1>
- <p class="copyright">© Copyright 2019, Alexander Steinhöfer - <a href="http://www.lx-s.de">www.lx-s.de</a></p>
+ <h1>WinMute 1.4.6</h1>
+ <p class="copyright">© Copyright 2020, Alexander Steinhöfer - <a href="http://www.lx-s.de">www.lx-s.de</a></p>
<h2>Über</h2>
<p>WinMute schaltet Windows stumm, sobald sie ihren PC sperren oder sich der Bildschirmschoner einschaltet.</p>
<html lang="en">
<head>
<meta charset="utf-8">
- <title>WinMute 1.4.5 - Readme</title>
+ <title>WinMute 1.4.6 - Readme</title>
<style type="text/css">
<!--
</style>
</head>
<body>
- <h1>WinMute 1.4.5</h1>
- <p class="copyright">© Copyright 2019, by Alexander Steinhöfer - <a href="http://www.lx-s.de">www.lx-s.de</a></p>
+ <h1>WinMute 1.4.6</h1>
+ <p class="copyright">© Copyright 2020, by Alexander Steinhöfer - <a href="http://www.lx-s.de">www.lx-s.de</a></p>
<h2>About</h2>
<p>WinMute automatically mutes your PC volume if you lock your screen or the screensaver is running.</p>
<PlatformToolset>v142</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
+ <SpectreMitigation>Spectre</SpectreMitigation>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<PlatformToolset>v142</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
+ <SpectreMitigation>Spectre</SpectreMitigation>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 15
-VisualStudioVersion = 15.0.26430.16
+# Visual Studio Version 16
+VisualStudioVersion = 16.0.30011.22
MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WinMute", "WinMute\WinMute.vcxproj", "{488617F0-5DD3-42B5-81ED-A1E9B3117551}"
ProjectSection(ProjectDependencies) = postProject
{A48C241D-70F5-4919-BE06-8C5BE99CCC23}.Debug|x64.Build.0 = Debug|x64
{A48C241D-70F5-4919-BE06-8C5BE99CCC23}.Release|Win32.ActiveCfg = Release|Win32
{A48C241D-70F5-4919-BE06-8C5BE99CCC23}.Release|Win32.Build.0 = Release|Win32
- {A48C241D-70F5-4919-BE06-8C5BE99CCC23}.Release|x64.ActiveCfg = Release|Win32
+ {A48C241D-70F5-4919-BE06-8C5BE99CCC23}.Release|x64.ActiveCfg = Release|x64
+ {A48C241D-70F5-4919-BE06-8C5BE99CCC23}.Release|x64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {AE62E32B-8E8B-4236-9173-9671A647A778}
+ EndGlobalSection
EndGlobal
EndDialog(hDlg, 0);
}
return 0;
- case WM_NOTIFY:
- switch (((LPNMHDR)lParam)->code) {
+ case WM_NOTIFY: {
+ PNMLINK pNmLink = (PNMLINK)lParam;
+ switch (pNmLink->hdr.code) {
case NM_CLICK:
case NM_RETURN: {
- PNMLINK pNMLink = (PNMLINK)lParam;
- LITEM item = pNMLink->item;
- if ((((LPNMHDR)lParam)->idFrom == IDC_LINK_HOMEPAGE) &&
- (item.iLink == 0)) {
+ UINT_PTR ctrlId = pNmLink->hdr.idFrom;
+ LITEM item = pNmLink->item;
+ if ((ctrlId == IDC_LINK_HOMEPAGE || ctrlId == IDC_LINK_SUPPORT)
+ && item.iLink == 0) {
ShellExecute(nullptr, _T("open"), item.szUrl, nullptr, nullptr,
SW_SHOW);
}
}
}
return TRUE;
+ }
case WM_CLOSE:
EndDialog(hDlg, 0);
return TRUE;
}
LPVOID lpMsgBuf;
- if (FormatMessage(
- FORMAT_MESSAGE_ALLOCATE_BUFFER |
- FORMAT_MESSAGE_FROM_SYSTEM |
- FORMAT_MESSAGE_IGNORE_INSERTS,
- nullptr, lastError, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
- reinterpret_cast<LPTSTR>(&lpMsgBuf), 0, nullptr) != 0) {
-
+ if (FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER |
+ FORMAT_MESSAGE_FROM_SYSTEM |
+ FORMAT_MESSAGE_IGNORE_INSERTS,
+ nullptr, lastError,
+ MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
+ reinterpret_cast<LPTSTR>(&lpMsgBuf), 0, nullptr) != 0) {
+ size_t displayBufSize =
+ ((size_t)lstrlen(static_cast<LPCTSTR>(lpMsgBuf)) +
+ (size_t)lstrlen(static_cast<LPCTSTR>(lpszFunction))
+ + 40) * sizeof(TCHAR);
// Display the error message and exit the process
- LPVOID lpDisplayBuf = reinterpret_cast<LPVOID>(LocalAlloc(LMEM_ZEROINIT,
- (lstrlen(static_cast<LPCTSTR>(lpMsgBuf)) +
- lstrlen(static_cast<LPCTSTR>(lpszFunction)) + 40)
- * sizeof(TCHAR)));
+ LPVOID lpDisplayBuf = reinterpret_cast<LPVOID>(
+ LocalAlloc(LMEM_ZEROINIT, displayBufSize));
if (lpDisplayBuf) {
StringCchPrintf((LPTSTR)lpDisplayBuf,
LocalSize(lpDisplayBuf),
<CharacterSet>Unicode</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
<PlatformToolset>v142</PlatformToolset>
+ <SpectreMitigation>Spectre</SpectreMitigation>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
<PlatformToolset>v142</PlatformToolset>
+ <SpectreMitigation>Spectre</SpectreMitigation>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<SDLCheck>true</SDLCheck>
<EnablePREfast>true</EnablePREfast>
<DiagnosticsFormat>Caret</DiagnosticsFormat>
+ <ControlFlowGuard>Guard</ControlFlowGuard>
</ClCompile>
<Link>
<AdditionalDependencies>strsafe.lib;comctl32.lib;WtsApi32.lib;Winmm.lib;%(AdditionalDependencies)</AdditionalDependencies>
<DiagnosticsFormat>Caret</DiagnosticsFormat>
<SDLCheck>true</SDLCheck>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <ControlFlowGuard>Guard</ControlFlowGuard>
</ClCompile>
<Link>
<AdditionalDependencies>strsafe.lib;comctl32.lib;WtsApi32.lib;Winmm.lib;%(AdditionalDependencies)</AdditionalDependencies>
// TEXTINCLUDE
//
-1 TEXTINCLUDE
+1 TEXTINCLUDE
BEGIN
"resource.h\0"
END
-2 TEXTINCLUDE
+2 TEXTINCLUDE
BEGIN
"#include ""afxres.h""\r\n"
"\0"
END
-3 TEXTINCLUDE
+3 TEXTINCLUDE
BEGIN
"\r\n"
"\0"
MENUITEM "... Workstation is locked", ID_TRAYMENU_MUTEONLOCK, CHECKED
MENUITEM "... Screensaver starts", ID_TRAYMENU_MUTEONSCREENSAVER, CHECKED
MENUITEM SEPARATOR
- MENUITEM "Restore volume", ID_TRAYMENU_RESTOREAUDIO, CHECKED
+ MENUITEM "Afterwards...", ID_TRAYMENU_AFTERWARDS, INACTIVE
+ MENUITEM "... Restore volume", ID_TRAYMENU_RESTOREAUDIO, CHECKED
MENUITEM SEPARATOR
MENUITEM "Mute now", ID_TRAYMENU_MUTE
MENUITEM SEPARATOR
// Dialog
//
-IDD_ABOUT DIALOGEX 0, 0, 251, 52
+IDD_ABOUT DIALOGEX 0, 0, 251, 56
STYLE DS_SETFONT | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION
CAPTION "About WinMute"
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
DEFPUSHBUTTON "OK",IDOK,194,7,50,14
- LTEXT "WinMute v1.4.5",IDC_STATIC,43,9,67,11
+ LTEXT "WinMute v1.4.6",IDC_STATIC,43,9,67,11
CONTROL "<a href=""https://lx-s.de"">lx-systems - lx-s.de</a>",IDC_LINK_HOMEPAGE,
- "SysLink",WS_TABSTOP,43,31,69,13
- LTEXT "Copyright © 2019, Alexander Steinhöfer",IDC_STATIC,43,20,148,12
- ICON IDI_APP,IDC_STATIC,13,9,21,20,SS_CENTERIMAGE
+ "SysLink",WS_TABSTOP,43,35,69,13
+ LTEXT "Copyright © 2016, Alexander Steinhöfer",IDC_STATIC,43,22,148,12
+ ICON IDI_APP,IDC_STATIC,13,12,21,20,SS_CENTERIMAGE
+ CONTROL "<a href=""https://github.com/lx-s/WinMute/issues/"">Support</a>",IDC_LINK_SUPPORT,
+ "SysLink",WS_TABSTOP,119,35,36,13
END
RIGHTMARGIN, 244
VERTGUIDE, 43
TOPMARGIN, 7
- BOTTOMMARGIN, 45
+ BOTTOMMARGIN, 49
END
END
#endif // APSTUDIO_INVOKED
//
VS_VERSION_INFO VERSIONINFO
- FILEVERSION 1,4,5,0
- PRODUCTVERSION 1,4,5,0
+ FILEVERSION 1,4,6,0
+ PRODUCTVERSION 1,4,6,0
FILEFLAGSMASK 0x17L
#ifdef _DEBUG
FILEFLAGS 0x1L
BEGIN
VALUE "CompanyName", "lx-systems"
VALUE "FileDescription", "Automatic volume muting, when PC is locked."
- VALUE "FileVersion", "1.4.5.0"
+ VALUE "FileVersion", "1.4.6.0"
VALUE "InternalName", "WinMute"
- VALUE "LegalCopyright", "Copyright (c) 2019, Alexander Steinhöfer"
+ VALUE "LegalCopyright", "Copyright (c) 2020, Alexander Steinhöfer"
VALUE "OriginalFilename", "WinMute.exe"
VALUE "ProductName", "WinMute"
- VALUE "ProductVersion", "1.4.5.0"
+ VALUE "ProductVersion", "1.4.6.0"
END
BLOCK "040704b0"
BEGIN
VALUE "CompanyName", "lx-systems"
VALUE "FileDescription", "Automatisches Stummschalten beim Sperren der Workstation."
- VALUE "FileVersion", "1.4.5.0"
+ VALUE "FileVersion", "1.4.6.0"
VALUE "InternalName", "WinMute"
- VALUE "LegalCopyright", "Copyright (c) 2019, Alexander Steinhöfer"
+ VALUE "LegalCopyright", "Copyright (c) 2020, Alexander Steinhöfer"
VALUE "OriginalFilename", "WinMute.exe"
VALUE "ProductName", "WinMute"
- VALUE "ProductVersion", "1.4.5.0"
+ VALUE "ProductVersion", "1.4.6.0"
END
END
BLOCK "VarFileInfo"
#define IDI_ICON1 107
#define IDI_TRAY 107
#define IDC_LINK_HOMEPAGE 1001
+#define IDC_LINK_HOMEPAGE2 1002
+#define IDC_LINK_SUPPORT 1002
#define ID_TRAYMENU_INFO 40001
#define ID_TRAYMENU_EXIT 40002
#define ID_TRAYMENU_MUTEONLOCK 40003
#define ID_TRAYMENU_40010 40010
#define ID_TRAYMENU_40011 40011
#define ID_TRAYMENU_MUTEON 40012
+#define ID_TRAYMENU_AFTERWARDS 40013
// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 108
-#define _APS_NEXT_COMMAND_VALUE 40013
+#define _APS_NEXT_COMMAND_VALUE 40014
#define _APS_NEXT_CONTROL_VALUE 1002
#define _APS_NEXT_SYMED_VALUE 101
#endif