Files
docker-wine-dotnet/VisualStudioMock/IEnumSetupInstances.cs
Roman Vanicek 36fe0d3bf2
Some checks failed
continuous-integration/drone/push Build is failing
Fully working COM to COM marshalling within .NET process
2025-02-05 23:04:10 +01:00

42 lines
1.8 KiB
C#

using System;
using System.Runtime.InteropServices;
namespace VisualStudioMock
{
/// <summary>
/// An enumerator of installed <see cref="ISetupInstance" /> objects.
/// </summary>
[ComImport]
[Guid("6380BCFF-41D3-4B2E-8B2E-BF8A6810C848")]
[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
[TypeIdentifier]
[ComVisible(true)]
public interface IEnumSetupInstances
{
/// <summary>
/// Retrieves the next set of product instances in the enumeration sequence.
/// </summary>
/// <param name="celt">The number of product instances to retrieve.</param>
/// <param name="rgelt">A pointer to an array of <see cref="ISetupInstance" />.</param>
/// <param name="pceltFetched">A pointer to the number of product instances retrieved. If <paramref name="celt" /> is 1 this parameter may be NULL.</param>
void Next([In] [MarshalAs(UnmanagedType.U4)] int celt, [Out] [MarshalAs(UnmanagedType.LPArray, ArraySubType = UnmanagedType.Interface)] ISetupInstance[] rgelt, [MarshalAs(UnmanagedType.U4)] out int pceltFetched);
/// <summary>
/// Skips the next set of product instances in the enumeration sequence.
/// </summary>
/// <param name="celt">The number of product instances to skip.</param>
void Skip([In] [MarshalAs(UnmanagedType.U4)] int celt);
/// <summary>
/// Resets the enumeration sequence to the beginning.
/// </summary>
void Reset();
/// <summary>
/// Creates a new enumeration object in the same state as the current enumeration object: the new object points to the same place in the enumeration sequence.
/// </summary>
/// <returns>A pointer to a pointer to a new <see cref="T:Microsoft.VisualStudio.Setup.Configuration.IEnumSetupInstances" /> interface. If the method fails, this parameter is undefined.</returns>
[return: MarshalAs(UnmanagedType.Interface)]
IEnumSetupInstances Clone();
}
}