From af10c45d7b3a44af0b461a557847fe03263dcc10 Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Thu, 22 Apr 2021 17:06:54 -0700 Subject: Move burn into burn --- src/burn/engine/variant.h | 100 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 src/burn/engine/variant.h (limited to 'src/burn/engine/variant.h') diff --git a/src/burn/engine/variant.h b/src/burn/engine/variant.h new file mode 100644 index 00000000..e460005b --- /dev/null +++ b/src/burn/engine/variant.h @@ -0,0 +1,100 @@ +#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. + + +#if defined(__cplusplus) +extern "C" { +#endif + + +// constants + +enum BURN_VARIANT_TYPE +{ + BURN_VARIANT_TYPE_NONE, + BURN_VARIANT_TYPE_FORMATTED, + BURN_VARIANT_TYPE_NUMERIC, + BURN_VARIANT_TYPE_STRING, // when formatting this value should be used as is (don't continue recursively formatting). + BURN_VARIANT_TYPE_VERSION, +}; + + +// struct + +typedef struct _BURN_VARIANT +{ + union + { + LONGLONG llValue; + VERUTIL_VERSION* pValue; + LPWSTR sczValue; + }; + BURN_VARIANT_TYPE Type; +} BURN_VARIANT; + + +// function declarations + +void BVariantUninitialize( + __in BURN_VARIANT* pVariant + ); +HRESULT BVariantGetNumeric( + __in BURN_VARIANT* pVariant, + __out LONGLONG* pllValue + ); +HRESULT BVariantGetString( + __in BURN_VARIANT* pVariant, + __out_z LPWSTR* psczValue + ); +HRESULT BVariantGetVersion( + __in BURN_VARIANT* pVariant, + __out VERUTIL_VERSION** ppValue + ); +HRESULT BVariantGetVersionHidden( + __in BURN_VARIANT* pVariant, + __in BOOL fHidden, + __out VERUTIL_VERSION** ppValue + ); +HRESULT BVariantGetVersionSilent( + __in BURN_VARIANT* pVariant, + __in BOOL fSilent, + __out VERUTIL_VERSION** ppValue + ); +HRESULT BVariantSetNumeric( + __in BURN_VARIANT* pVariant, + __in LONGLONG llValue + ); +HRESULT BVariantSetString( + __in BURN_VARIANT* pVariant, + __in_z_opt LPCWSTR wzValue, + __in DWORD_PTR cchValue, + __in BOOL fFormatted + ); +HRESULT BVariantSetVersion( + __in BURN_VARIANT* pVariant, + __in VERUTIL_VERSION* pValue + ); +/******************************************************************** +BVariantSetValue - Convenience function that calls BVariantUninitialize, + BVariantSetNumeric, BVariantSetString, or + BVariantSetVersion based on the type of pValue. +********************************************************************/ +HRESULT BVariantSetValue( + __in BURN_VARIANT* pVariant, + __in BURN_VARIANT* pValue + ); +/******************************************************************** +BVariantCopy - creates a copy of pSource. +********************************************************************/ +HRESULT BVariantCopy( + __in BURN_VARIANT* pSource, + __out BURN_VARIANT* pTarget + ); +HRESULT BVariantChangeType( + __in BURN_VARIANT* pVariant, + __in BURN_VARIANT_TYPE type + ); + +#if defined(__cplusplus) +} +#endif -- cgit v1.2.3-55-g6feb