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