Changed VSS_MGMT_OBJECT_PROP to struct for marshaling

pull/363/head
David Hall 2022-12-28 16:49:56 -07:00
parent 56571b2522
commit c0f5ed1595
3 changed files with 11 additions and 2 deletions

View File

@ -930,7 +930,7 @@ namespace Vanara.PInvoke.VssApi
// VSS_MGMT_OBJECT_TYPE Type; VSS_MGMT_OBJECT_UNION Obj; } VSS_MGMT_OBJECT_PROP, *PVSS_MGMT_OBJECT_PROP;
[PInvokeData("vsmgmt.h", MSDNShortId = "NS:vsmgmt._VSS_MGMT_OBJECT_PROP")]
[StructLayout(LayoutKind.Sequential)]
public class VSS_MGMT_OBJECT_PROP : IDisposable
public struct VSS_MGMT_OBJECT_PROP : IDisposable
{
/// <summary>Object type. For more information, see VSS_MGMT_OBJECT_TYPE.</summary>
public VSS_MGMT_OBJECT_TYPE Type;
@ -1042,6 +1042,12 @@ namespace Vanara.PInvoke.VssApi
public static IEnumerable<VSS_MGMT_OBJECT_PROP> Enumerate(this IVssEnumMgmtObject emo) =>
new IEnumFromCom<VSS_MGMT_OBJECT_PROP>(emo.Next, emo.Reset, () => new VSS_MGMT_OBJECT_PROP());
/// <summary>Enumerates the <see cref="VSS_OBJECT_PROP"/> instances provided by an <see cref="IVssEnumObject"/>.</summary>
/// <param name="eo">The <see cref="IVssEnumObject"/> instance.</param>
/// <returns>A sequence of <see cref="VSS_OBJECT_PROP"/> structures.</returns>
public static IEnumerable<VSS_OBJECT_PROP> Enumerate(this IVssEnumObject eo) =>
new IEnumFromCom<VSS_OBJECT_PROP>(eo.Next, eo.Reset, () => new VSS_OBJECT_PROP());
/// <summary>The <c>GetProviderMgmtInterface</c> method returns an interface to further configure the system provider.</summary>
/// <param name="sm">The <see cref="IVssSnapshotMgmt"/> instance.</param>
/// <param name="ProviderId">

View File

@ -1,10 +1,12 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<TargetFramework>net6.0-windows</TargetFramework>
<AssemblyName>UnitTest.PInvoke.VssApi</AssemblyName>
<PlatformTarget>x64</PlatformTarget>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\..\..\PInvoke\Kernel32\Vanara.PInvoke.Kernel32.csproj" />
<ProjectReference Include="..\..\..\PInvoke\VssApiMgd\Vanara.PInvoke.VssApiMgd.csproj" />
<ProjectReference Include="..\..\..\PInvoke\VssApi\VssApi.vcxproj" />
</ItemGroup>
</Project>

View File

@ -56,6 +56,7 @@ namespace Vanara.PInvoke.Tests
default:
break;
}
prop.Dispose();
}
}
}