Enable code analysis on Keyboard Manager projects (#4455)

* Enable code analysis and fix GetTickCount warning

* Fix arithmetic casting warning
This commit is contained in:
Arjun Balgovind
2020-06-24 14:55:02 -07:00
committed by GitHub
parent 2601d8b702
commit 8e758507b1
7 changed files with 25 additions and 17 deletions

View File

@@ -24,7 +24,7 @@ KeyTimedEvent KeyDelay::NextEvent()
return ev; return ev;
} }
bool KeyDelay::CheckIfMillisHaveElapsed(DWORD first, DWORD last, DWORD duration) bool KeyDelay::CheckIfMillisHaveElapsed(DWORD64 first, DWORD64 last, DWORD64 duration)
{ {
if (first < last && first <= first + duration) if (first < last && first <= first + duration)
{ {
@@ -32,8 +32,8 @@ bool KeyDelay::CheckIfMillisHaveElapsed(DWORD first, DWORD last, DWORD duration)
} }
else else
{ {
first += ULONG_MAX / 2; first += ULLONG_MAX / 2;
last += ULONG_MAX / 2; last += ULLONG_MAX / 2;
return first + duration < last; return first + duration < last;
} }
} }
@@ -99,7 +99,7 @@ bool KeyDelay::HandleOnHold(std::unique_lock<std::mutex>& cvLock)
} }
} }
if (CheckIfMillisHaveElapsed(_initialHoldKeyDown, GetTickCount(), LONG_PRESS_DELAY_MILLIS)) if (CheckIfMillisHaveElapsed(_initialHoldKeyDown, GetTickCount64(), LONG_PRESS_DELAY_MILLIS))
{ {
if (_onLongPressDetected != nullptr) if (_onLongPressDetected != nullptr)
{ {

View File

@@ -16,7 +16,7 @@ enum class KeyDelayState
// Virtual key + timestamp (in millis since Windows startup) // Virtual key + timestamp (in millis since Windows startup)
struct KeyTimedEvent struct KeyTimedEvent
{ {
DWORD time; DWORD64 time;
WPARAM message; WPARAM message;
}; };
@@ -61,7 +61,7 @@ private:
// Check if <duration> milliseconds passed since <first> millisecond. // Check if <duration> milliseconds passed since <first> millisecond.
// Also checks for overflow conditions. // Also checks for overflow conditions.
bool CheckIfMillisHaveElapsed(DWORD first, DWORD last, DWORD duration); bool CheckIfMillisHaveElapsed(DWORD64 first, DWORD64 last, DWORD64 duration);
std::thread _delayThread; std::thread _delayThread;
bool _quit; bool _quit;
@@ -81,11 +81,11 @@ private:
std::condition_variable _cv; std::condition_variable _cv;
// Keeps track of the time at which the initial KEY_DOWN event happened. // Keeps track of the time at which the initial KEY_DOWN event happened.
DWORD _initialHoldKeyDown; DWORD64 _initialHoldKeyDown;
// Virtual Key provided in the constructor. Passed to callback functions. // Virtual Key provided in the constructor. Passed to callback functions.
DWORD _key; DWORD _key;
static const DWORD LONG_PRESS_DELAY_MILLIS = 900; static const DWORD64 LONG_PRESS_DELAY_MILLIS = 900;
static const DWORD ON_HOLD_WAIT_TIMEOUT_MILLIS = 50; static const DWORD64 ON_HOLD_WAIT_TIMEOUT_MILLIS = 50;
}; };

View File

@@ -49,11 +49,13 @@
<LinkIncremental>true</LinkIncremental> <LinkIncremental>true</LinkIncremental>
<OutDir>$(SolutionDir)$(Platform)\$(Configuration)\modules\KeyboardManager\</OutDir> <OutDir>$(SolutionDir)$(Platform)\$(Configuration)\modules\KeyboardManager\</OutDir>
<IntDir>$(Platform)\$(Configuration)\obj\$(ProjectName)\</IntDir> <IntDir>$(Platform)\$(Configuration)\obj\$(ProjectName)\</IntDir>
<RunCodeAnalysis>true</RunCodeAnalysis>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LinkIncremental>false</LinkIncremental> <LinkIncremental>false</LinkIncremental>
<OutDir>$(SolutionDir)$(Platform)\$(Configuration)\modules\KeyboardManager\</OutDir> <OutDir>$(SolutionDir)$(Platform)\$(Configuration)\modules\KeyboardManager\</OutDir>
<IntDir>$(Platform)\$(Configuration)\obj\$(ProjectName)\</IntDir> <IntDir>$(Platform)\$(Configuration)\obj\$(ProjectName)\</IntDir>
<RunCodeAnalysis>true</RunCodeAnalysis>
</PropertyGroup> </PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile> <ClCompile>

View File

@@ -57,7 +57,7 @@ namespace KeyboardManagerConstants
inline const long RemapTableArrowColIndex = 1; inline const long RemapTableArrowColIndex = 1;
inline const long RemapTableNewColIndex = 2; inline const long RemapTableNewColIndex = 2;
inline const long RemapTableRemoveColIndex = 3; inline const long RemapTableRemoveColIndex = 3;
inline const DWORD RemapTableDropDownWidth = 110; inline const DWORD64 RemapTableDropDownWidth = 110;
// Shortcut table constants // Shortcut table constants
inline const long ShortcutTableColCount = 4; inline const long ShortcutTableColCount = 4;
@@ -66,17 +66,17 @@ namespace KeyboardManagerConstants
inline const long ShortcutTableArrowColIndex = 1; inline const long ShortcutTableArrowColIndex = 1;
inline const long ShortcutTableNewColIndex = 2; inline const long ShortcutTableNewColIndex = 2;
inline const long ShortcutTableRemoveColIndex = 3; inline const long ShortcutTableRemoveColIndex = 3;
inline const DWORD ShortcutTableDropDownWidth = 110; inline const DWORD64 ShortcutTableDropDownWidth = 110;
inline const DWORD ShortcutTableDropDownSpacing = 10; inline const DWORD64 ShortcutTableDropDownSpacing = 10;
// Drop down height used for both Edit Keyboard and Edit Shortcuts // Drop down height used for both Edit Keyboard and Edit Shortcuts
inline const DWORD TableDropDownHeight = 200; inline const DWORD64 TableDropDownHeight = 200;
inline const DWORD TableArrowColWidth = 20; inline const DWORD64 TableArrowColWidth = 20;
inline const DWORD TableRemoveColWidth = 20; inline const DWORD64 TableRemoveColWidth = 20;
inline const DWORD TableWarningColWidth = 20; inline const DWORD64 TableWarningColWidth = 20;
// Shared style constants for both Remap Table and Shortcut Table // Shared style constants for both Remap Table and Shortcut Table
inline const double HeaderButtonWidth = 100; inline const DWORD64 HeaderButtonWidth = 100;
// Flags used for distinguishing key events sent by Keyboard Manager // Flags used for distinguishing key events sent by Keyboard Manager
inline const ULONG_PTR KEYBOARDMANAGER_SINGLEKEY_FLAG = 0x11; // Single key remaps inline const ULONG_PTR KEYBOARDMANAGER_SINGLEKEY_FLAG = 0x11; // Single key remaps

View File

@@ -51,11 +51,13 @@
<LinkIncremental>true</LinkIncremental> <LinkIncremental>true</LinkIncremental>
<OutDir>$(SolutionDir)$(Platform)\$(Configuration)\modules\$(ProjectName)\</OutDir> <OutDir>$(SolutionDir)$(Platform)\$(Configuration)\modules\$(ProjectName)\</OutDir>
<IntDir>$(Platform)\$(Configuration)\obj\$(ProjectName)\</IntDir> <IntDir>$(Platform)\$(Configuration)\obj\$(ProjectName)\</IntDir>
<RunCodeAnalysis>true</RunCodeAnalysis>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LinkIncremental>false</LinkIncremental> <LinkIncremental>false</LinkIncremental>
<OutDir>$(SolutionDir)$(Platform)\$(Configuration)\modules\$(ProjectName)\</OutDir> <OutDir>$(SolutionDir)$(Platform)\$(Configuration)\modules\$(ProjectName)\</OutDir>
<IntDir>$(Platform)\$(Configuration)\obj\$(ProjectName)\</IntDir> <IntDir>$(Platform)\$(Configuration)\obj\$(ProjectName)\</IntDir>
<RunCodeAnalysis>true</RunCodeAnalysis>
</PropertyGroup> </PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile> <ClCompile>

View File

@@ -51,11 +51,13 @@
<LinkIncremental>true</LinkIncremental> <LinkIncremental>true</LinkIncremental>
<OutDir>$(SolutionDir)$(Platform)\$(Configuration)\modules\KeyboardManager\</OutDir> <OutDir>$(SolutionDir)$(Platform)\$(Configuration)\modules\KeyboardManager\</OutDir>
<IntDir>$(Platform)\$(Configuration)\obj\$(ProjectName)\</IntDir> <IntDir>$(Platform)\$(Configuration)\obj\$(ProjectName)\</IntDir>
<RunCodeAnalysis>true</RunCodeAnalysis>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LinkIncremental>false</LinkIncremental> <LinkIncremental>false</LinkIncremental>
<OutDir>$(SolutionDir)$(Platform)\$(Configuration)\modules\KeyboardManager\</OutDir> <OutDir>$(SolutionDir)$(Platform)\$(Configuration)\modules\KeyboardManager\</OutDir>
<IntDir>$(Platform)\$(Configuration)\obj\$(ProjectName)\</IntDir> <IntDir>$(Platform)\$(Configuration)\obj\$(ProjectName)\</IntDir>
<RunCodeAnalysis>true</RunCodeAnalysis>
</PropertyGroup> </PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile> <ClCompile>

View File

@@ -52,11 +52,13 @@
<LinkIncremental>true</LinkIncremental> <LinkIncremental>true</LinkIncremental>
<OutDir>$(SolutionDir)$(Platform)\$(Configuration)\modules\KeyboardManager\</OutDir> <OutDir>$(SolutionDir)$(Platform)\$(Configuration)\modules\KeyboardManager\</OutDir>
<IntDir>$(Platform)\$(Configuration)\obj\$(ProjectName)\</IntDir> <IntDir>$(Platform)\$(Configuration)\obj\$(ProjectName)\</IntDir>
<RunCodeAnalysis>true</RunCodeAnalysis>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LinkIncremental>false</LinkIncremental> <LinkIncremental>false</LinkIncremental>
<OutDir>$(SolutionDir)$(Platform)\$(Configuration)\modules\KeyboardManager\</OutDir> <OutDir>$(SolutionDir)$(Platform)\$(Configuration)\modules\KeyboardManager\</OutDir>
<IntDir>$(Platform)\$(Configuration)\obj\$(ProjectName)\</IntDir> <IntDir>$(Platform)\$(Configuration)\obj\$(ProjectName)\</IntDir>
<RunCodeAnalysis>true</RunCodeAnalysis>
</PropertyGroup> </PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile> <ClCompile>