Date: March 2026
Branch: master_Win10
Minimum OS: Windows 10 version 1809 (build 17763)
Notepad3's minimum supported Windows version has been raised from Windows 7 to Windows 10. This change enables the use of modern Win32 APIs, removes legacy compatibility code, and simplifies the codebase.
- Updated
_WIN32_WINNT,WINVER,NTDDI_VERSIONdefines to_WIN32_WINNT_WIN10/NTDDI_WIN10_RS5across all.vcxprojfiles and source headers - Added
#include <sdkddkver.h>for symbolic version constants - Removed
IsWindowsVistaOrGreater()andIsWindows7SP1OrGreater()dead code paths inNotepad3.c - Simplified
GetWinVersionString()by removing Win7/Win8/Win8.1 branches - Removed
IsWindowsVistaOrGreater()guard fromIsProcessElevated()inHelpers.c - Cleaned manifest
supportedOSGUIDs inNotepad3.exe.manifestandMiniPath.exe.manifest - Removed
#if _WIN32_WINNT < _WIN32_WINNT_WIN8conditional inDarkMode.cpp - Updated all language
resource.hfiles - Bumped major version in
Version.ps1
- Manifest cleanup: Removed Vista/Win7/Win8/Win8.1
supportedOSGUIDs fromgrepWinNP3/src/compatibility.manifest - Dead code removal: Removed 3
IsWindowsXPSP3OrGreater()checks from toolbar logic inNotepad3.c - Compile-time conditionals: Removed ~120 lines of
#if (NTDDI_VERSION < NTDDI_WIN8)fallback code in URL escape/unescape functions (Helpers.c) - API modernization: Upgraded
GetTickCount()toGetTickCount64()acrossNotepad3.candHelpers.c(avoids 49.7-day DWORD rollover) - Legacy code cleanup: Removed disabled
_GetTrueWindowsVersion()function (used deprecatedGetVersionEx), removed commented-outChangeWindowMessageFilterandSetProcessDpiAwarenessContextcalls - Build infrastructure: Updated
Build.ps1vswhere version range from[17.0,18.0)to[17.0,19.0)for VS2026 support - Version bump:
$Majorchanged from6to7inbuild.yml
- ✅ VS2026 (v145, MSBuild v18.3.2) — x64 Release: PASS
- ✅ VS2022 (v143) — verified compatible before changes
These items are optional modernizations noted for future consideration:
RtlAreLongPathsEnabledinPathLib.c— currently dynamically loaded; could link ntdll.lib directly on Win10+PathCch*APIs — commented-out#include <pathcch.h>could be enabled to replace custom path functionsGetSystemMetrics()→GetSystemMetricsForDpi()— several call sites could benefit from DPI-aware metrics- Test file
test/test_files/StyleLexers/styleLexCPP/Config.cppstill has old Win7 defines (syntax highlighting test data — not compiled)