VARIANTVector
struct VARIANTVector
using System;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
namespace Windows.Win32.System.Variant
{
[CompilerFeatureRequired("RefStructs")]
internal ref struct VARIANTVector
{
[Nullable(1)]
public VARIANT[] Variants;
public unsafe VARIANTVector([Nullable(new byte[] {
2,
1
})] object[] values)
{
if (values == null)
Variants = Array.Empty<VARIANT>();
else {
VARIANT[] array = new VARIANT[values.Length];
fixed (VARIANT* ptr = array) {
for (int i = 0; i < values.Length; i++) {
Marshal.GetNativeVariantForObject(values[i], (IntPtr)(ptr + i));
}
}
Variants = array;
}
}
public void Dispose()
{
VARIANT[] variants = Variants;
for (int i = 0; i < variants.Length; i++) {
VARIANT vARIANT = variants[i];
vARIANT.Dispose();
}
Variants = Array.Empty<VARIANT>();
}
}
}