ZeroInstall.Publish.Capture.SnapshotDiff.CollectFileTypes C# (CSharp) Method

CollectFileTypes() public method

Collects data about file types and also URL protocol handlers.
There was an error accessing the registry. Read access to the registry was not permitted.
public CollectFileTypes ( [ commandMapper, [ capabilities ) : void
commandMapper [ Provides best-match command-line to mapping.
capabilities [ The capability list to add the collected data to.
return void
        public void CollectFileTypes([NotNull] CommandMapper commandMapper, [NotNull] CapabilityList capabilities)
        {
            #region Sanity checks
            if (capabilities == null) throw new ArgumentNullException(nameof(capabilities));
            if (commandMapper == null) throw new ArgumentNullException(nameof(commandMapper));
            #endregion

            capabilities.Entries.AddRange((
                from progID in ProgIDs
                where !string.IsNullOrEmpty(progID)
                select GetFileType(progID, commandMapper)).WhereNotNull());
        }

Usage Example

        private static CapabilityList GetCapabilityList(CommandMapper commandMapper, SnapshotDiff diff)
        {
            var capabilities = new CapabilityList {
                OS = OS.Windows
            };
            string appName = null, appDescription = null;

            diff.CollectFileTypes(commandMapper, capabilities);
            diff.CollectContextMenus(commandMapper, capabilities);
            diff.CollectAutoPlays(commandMapper, capabilities);
            diff.CollectDefaultPrograms(commandMapper, capabilities, ref appName);

            var appRegistration = diff.GetAppRegistration(commandMapper, capabilities, ref appName, ref appDescription);

            if (appRegistration != null)
            {
                capabilities.Entries.Add(appRegistration);
            }
            else
            { // Only collect URL protocols if there wasn't already an application registration that covered them
                diff.CollectProtocolAssocs(commandMapper, capabilities);
            }

            return(capabilities);
        }
All Usage Examples Of ZeroInstall.Publish.Capture.SnapshotDiff::CollectFileTypes