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];
}
}
}