// Copyright (c) Microsoft Corporation. // Licensed under the MIT License. using System.Collections.Generic; namespace autoShell; /// /// Registry of known applications, mapping friendly names to executable paths, /// AppUserModelIDs, and startup metadata. Shared across handlers that need /// to resolve, launch, or manipulate applications by friendly name. /// internal interface IAppRegistry { /// /// Gets the executable path for a friendly app name, or null if unknown. /// string GetExecutablePath(string friendlyName); /// /// Gets the AppUserModelID for a friendly app name, or null if unknown. /// Used as a fallback to launch apps via the shell AppsFolder. /// string GetAppUserModelId(string friendlyName); /// /// Resolves a friendly name to a process name (filename without extension). /// Returns the input unchanged if the friendly name is not in the registry. /// string ResolveProcessName(string friendlyName); /// /// Gets the working directory environment variable for a friendly app name, or null. /// The caller should expand it via Environment.ExpandEnvironmentVariables. /// string GetWorkingDirectoryEnvVar(string friendlyName); /// /// Gets extra command-line arguments for a friendly app name, or null. /// string GetArguments(string friendlyName); /// /// Returns all known installed application names (from the shell AppsFolder). /// IEnumerable GetAllAppNames(); }