using System; using System.Collections.Generic; using System.Runtime.InteropServices.ComTypes; using Vanara.InteropServices; namespace Vanara.Extensions { /// Extensions for types in System.Runtime.InteropServices.ComTypes. public static class ComTypeExtensions { /// Enumerates the strings from an instance. /// The instance. /// A list of strings. /// iEnumString public static IEnumerable Enum(this IEnumString iEnumString) { if (iEnumString is null) yield break; using SafeCoTaskMemStruct ret = new(); var items = new string[1]; while (iEnumString.Next(1, items, ret) == 0 && ret.Value == 1) yield return items[0]; } } }