#pragma once // Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. #ifdef __cplusplus extern "C" { #endif #define ReleaseVerutilVersion(p) if (p) { VerFreeVersion(p); p = NULL; } typedef struct _VERUTIL_VERSION_RELEASE_LABEL { BOOL fNumeric; DWORD dwValue; SIZE_T cchLabelOffset; int cchLabel; } VERUTIL_VERSION_RELEASE_LABEL; typedef struct _VERUTIL_VERSION { LPWSTR sczVersion; WCHAR chPrefix; DWORD dwMajor; DWORD dwMinor; DWORD dwPatch; DWORD dwRevision; DWORD cReleaseLabels; VERUTIL_VERSION_RELEASE_LABEL* rgReleaseLabels; SIZE_T cchMetadataOffset; BOOL fInvalid; BOOL fHasMajor; BOOL fHasMinor; BOOL fHasPatch; BOOL fHasRevision; } VERUTIL_VERSION; /******************************************************************* VerCompareParsedVersions - compares the Verutil versions. *******************************************************************/ HRESULT DAPI VerCompareParsedVersions( __in_opt VERUTIL_VERSION* pVersion1, __in_opt VERUTIL_VERSION* pVersion2, __out int* pnResult ); /******************************************************************* VerCompareStringVersions - parses the strings with VerParseVersion and then compares the Verutil versions with VerCompareParsedVersions. *******************************************************************/ HRESULT DAPI VerCompareStringVersions( __in_z LPCWSTR wzVersion1, __in_z LPCWSTR wzVersion2, __in BOOL fStrict, __out int* pnResult ); /******************************************************************** VerCopyVersion - copies the given Verutil version. *******************************************************************/ HRESULT DAPI VerCopyVersion( __in VERUTIL_VERSION* pSource, __out VERUTIL_VERSION** ppVersion ); /******************************************************************** VerFreeVersion - frees any memory associated with a Verutil version. *******************************************************************/ void DAPI VerFreeVersion( __in VERUTIL_VERSION* pVersion ); /******************************************************************* VerParseVersion - parses the string into a Verutil version. *******************************************************************/ HRESULT DAPI VerParseVersion( __in_z LPCWSTR wzVersion, __in SIZE_T cchVersion, __in BOOL fStrict, __out VERUTIL_VERSION** ppVersion ); /******************************************************************* VerParseVersion - parses the QWORD into a Verutil version. *******************************************************************/ HRESULT DAPI VerVersionFromQword( __in DWORD64 qwVersion, __out VERUTIL_VERSION** ppVersion ); #ifdef __cplusplus } #endif