public static IEnumerable<IVdsProvider> GetProviders(this IVdsService vdsService, VdsProviderMask providerMask = VdsProviderMask.Software) { IEnumVdsObject providerEnum; int hr = vdsService.QueryProviders(providerMask, out providerEnum); Marshal.ThrowExceptionForHR(hr); object iface; int fetched; while(0 == providerEnum.Next(1, out iface, out fetched)) { yield return iface as IVdsProvider; } }
public static IEnumerable <IVdsProvider> GetProviders(this IVdsService vdsService, VdsProviderMask providerMask = VdsProviderMask.Software) { IEnumVdsObject providerEnum; int hr = vdsService.QueryProviders(providerMask, out providerEnum); Marshal.ThrowExceptionForHR(hr); object iface; int fetched; while (0 == providerEnum.Next(1, out iface, out fetched)) { yield return(iface as IVdsProvider); } }