commit 4d8b74fc400e0d1a092b74f95ce504448787babe
parent 0e1e0b4e760b9f54b287ec3c70f30aa79774061e
Author: Union Palenshus <palenshus@users.noreply.github.com>
Date: Wed, 25 Nov 2020 17:27:22 -0800
Adding export to WinGetUtil.dll to expose Version comparing (#652)
Diffstat:
3 files changed, 24 insertions(+), 0 deletions(-)
diff --git a/src/WinGetUtil/Exports.cpp b/src/WinGetUtil/Exports.cpp
@@ -227,4 +227,21 @@ extern "C"
return S_OK;
}
CATCH_RETURN()
+
+ WINGET_UTIL_API WinGetCompareVersions(
+ WINGET_STRING versionA,
+ WINGET_STRING versionB,
+ INT* comparisonResult) try
+ {
+ THROW_HR_IF(E_INVALIDARG, !versionA);
+ THROW_HR_IF(E_INVALIDARG, !versionB);
+
+ Version vA{ ConvertToUTF8(versionA) };
+ Version vB{ ConvertToUTF8(versionB) };
+
+ *comparisonResult = vA < vB ? -1 : (vA == vB ? 0 : 1);
+
+ return S_OK;
+ }
+ CATCH_RETURN()
}
diff --git a/src/WinGetUtil/Source.def b/src/WinGetUtil/Source.def
@@ -12,3 +12,4 @@ EXPORTS
WinGetSQLiteIndexCheckConsistency
WinGetValidateManifest
WinGetDownload
+ WinGetCompareVersions
diff --git a/src/WinGetUtil/WinGetUtil.h b/src/WinGetUtil/WinGetUtil.h
@@ -86,4 +86,10 @@ extern "C"
WINGET_STRING filePath,
BYTE* sha256Hash,
UINT32 sha256HashLength);
+
+ // Compares two version strings, returning -1 if versionA is less than versionB, 0 if they're equal, or 1 if versionA is greater than versionB
+ WINGET_UTIL_API WinGetCompareVersions(
+ WINGET_STRING versionA,
+ WINGET_STRING versionB,
+ INT* comparisonResult);
}