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; var ret = 0; var items = new string[1]; using (var pret = new PinnedObject(ret)) while (iEnumString.Next(1, items, pret) == 0 && ret == 1) yield return items[0]; } } }