aboutsummaryrefslogtreecommitdiff
path: root/src/burn/engine/variant.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/burn/engine/variant.h')
-rw-r--r--src/burn/engine/variant.h100
1 files changed, 100 insertions, 0 deletions
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 @@
1#pragma once
2// 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.
3
4
5#if defined(__cplusplus)
6extern "C" {
7#endif
8
9
10// constants
11
12enum BURN_VARIANT_TYPE
13{
14 BURN_VARIANT_TYPE_NONE,
15 BURN_VARIANT_TYPE_FORMATTED,
16 BURN_VARIANT_TYPE_NUMERIC,
17 BURN_VARIANT_TYPE_STRING, // when formatting this value should be used as is (don't continue recursively formatting).
18 BURN_VARIANT_TYPE_VERSION,
19};
20
21
22// struct
23
24typedef struct _BURN_VARIANT
25{
26 union
27 {
28 LONGLONG llValue;
29 VERUTIL_VERSION* pValue;
30 LPWSTR sczValue;
31 };
32 BURN_VARIANT_TYPE Type;
33} BURN_VARIANT;
34
35
36// function declarations
37
38void BVariantUninitialize(
39 __in BURN_VARIANT* pVariant
40 );
41HRESULT BVariantGetNumeric(
42 __in BURN_VARIANT* pVariant,
43 __out LONGLONG* pllValue
44 );
45HRESULT BVariantGetString(
46 __in BURN_VARIANT* pVariant,
47 __out_z LPWSTR* psczValue
48 );
49HRESULT BVariantGetVersion(
50 __in BURN_VARIANT* pVariant,
51 __out VERUTIL_VERSION** ppValue
52 );
53HRESULT BVariantGetVersionHidden(
54 __in BURN_VARIANT* pVariant,
55 __in BOOL fHidden,
56 __out VERUTIL_VERSION** ppValue
57 );
58HRESULT BVariantGetVersionSilent(
59 __in BURN_VARIANT* pVariant,
60 __in BOOL fSilent,
61 __out VERUTIL_VERSION** ppValue
62 );
63HRESULT BVariantSetNumeric(
64 __in BURN_VARIANT* pVariant,
65 __in LONGLONG llValue
66 );
67HRESULT BVariantSetString(
68 __in BURN_VARIANT* pVariant,
69 __in_z_opt LPCWSTR wzValue,
70 __in DWORD_PTR cchValue,
71 __in BOOL fFormatted
72 );
73HRESULT BVariantSetVersion(
74 __in BURN_VARIANT* pVariant,
75 __in VERUTIL_VERSION* pValue
76 );
77/********************************************************************
78BVariantSetValue - Convenience function that calls BVariantUninitialize,
79 BVariantSetNumeric, BVariantSetString, or
80 BVariantSetVersion based on the type of pValue.
81********************************************************************/
82HRESULT BVariantSetValue(
83 __in BURN_VARIANT* pVariant,
84 __in BURN_VARIANT* pValue
85 );
86/********************************************************************
87BVariantCopy - creates a copy of pSource.
88********************************************************************/
89HRESULT BVariantCopy(
90 __in BURN_VARIANT* pSource,
91 __out BURN_VARIANT* pTarget
92 );
93HRESULT BVariantChangeType(
94 __in BURN_VARIANT* pVariant,
95 __in BURN_VARIANT_TYPE type
96 );
97
98#if defined(__cplusplus)
99}
100#endif