private static void CollectFileAssocsEx([NotNull] RegistryKey capsKey, [NotNull] CapabilityList capabilities)
{
#region Sanity checks
if (capsKey == null) throw new ArgumentNullException(nameof(capsKey));
if (capabilities == null) throw new ArgumentNullException(nameof(capabilities));
#endregion
using (var fileAssocKey = capsKey.OpenSubKey(DesktopIntegration.Windows.AppRegistration.RegSubKeyFileAssocs))
{
if (fileAssocKey == null) return;
foreach (string extension in fileAssocKey.GetValueNames())
{
var progID = fileAssocKey.GetValue(extension, "") as string;
if (!string.IsNullOrEmpty(progID)) AddExtensionToFileType(extension, progID, capabilities);
}
}
}