Presentation is loading. Please wait.

Presentation is loading. Please wait.

Default Programs by Ed Averett. Default Programs Overview Designed for apps that use common file types and protocols Browsers, media players, e-mail clients,

Similar presentations

Presentation on theme: "Default Programs by Ed Averett. Default Programs Overview Designed for apps that use common file types and protocols Browsers, media players, e-mail clients,"— Presentation transcript:

1 Default Programs by Ed Averett

2 Default Programs Overview Designed for apps that use common file types and protocols Browsers, media players, e-mail clients, photo viewers etc New application management feature Per user File, Protocol, MIME associations Adds transparency Better support for ISVs Super set of “Set Program Access and Defaults”

3 The Problem It is not easy for users to express choice Users don’t have a consistent way to make choices Some choices do not stick Users don’t have a central place to look at all the options It is hard for applications to promote capabilities, and present choices to the user Applications have to manage file associations by writing directly to the registry, which is a fragile and non-intuitive process Applications all find different ways of promoting their capabilities, and also invent new UI for every version for setting user choice Applications have no easy way to detect or correct file association information within the computer It’s not clear how applications should treat per user defaults, vs machine defaults

4 Goals for Windows Vista Make it easy for a user to express choice and have it stick throughout their experience by Providing a set of tools to allow users to make choice and view the information needed for them to express choice Make it easy for applications to present choices and capabilities to the user by providing Better ISV support for promoting capabilities APIs that makes setting choices more reliable Reusable UI components that are consistent and provide low cost solutions for ISVs

5 UX walkthrough

6 4 Microsoft-provided Shortcuts 4 OEM-provided Shortcuts

7 D:\Users\edaver\Pictures\layout\lay 4 Microsoft-provided Shortcuts 4 OEM-provided Shortcuts

8 What is Default Programs? Default programs is made up of 4 Control Panels to help users manage choice Set a default program users go to restore\apply program defaults File\Protocols associations CPL users go to manage granular file\protocol associations Auto play defaults CPL users go to manage default actions for device insertion Set Program Access and Defaults (SPAD) CPL Administrators go to manage per Machine defaults and hide access to middleware


10 What is “Set a Default Program” Usability studies tell us that Users don’t usually deal with file associations When stuff doesn’t work, they think an application is broken Why doesn’t App X come up anymore when I double click? Setting defaults correctly for a user normally means setting the right choices for each application Set your default program aims to address Easily restoring an application defaults Finding the application the user is interested in

11 List of Registered applications No selection by default Every application can register description text Digitally sign application to show URL



14 What is “Set a File Association” This is the evolution of what was “folder options” in XP New Features: Cleaner and friendlier UI No default selection





19 ISV Guidelines

20 What we want ISVs to do… Register to be part of default programs Sign Applications with embedded URL Reuse consistent UI provided by Windows Improve reliability and predictability of the system by using new APIs provided by Windows Follow UI guidelines for when to present user choice

21 Why should an ISV register? Registration has the following benefits Promotes better awareness of an applications capabilities ISVs can leverage free promotional space to educate users Opens up a set of common APIs that reduce development costs ISVs don’t have to continually manipulate the registry to reclaim & detect defaults Defaults actually stick when API is used (per user defaults) Allows applications to reuse the default programs UI ISVs no longer have to build custom UI that supports protocols and file types ISVs can present users with a predictable UI on Windows Vista and future releases of Windows

22 Space to promote capabilities

23 Reusable defaults UI

24 What Windows is providing Schema definition HKLM\%APPLICATIONCAPABILITYPATH% ApplicationDescription = REG_EXPAND_SZ "@path\to\dll.dll,- resourceId” ApplicationName = REG_EXPAND "@path\to\dll.dll,-resourceId” \FileAssociations.file-extension = REG_SZ "file-extension-progid" \UrlAssociations url-scheme = REG_SZ "url-scheme-progid“ \MIMEAssociations = REG_SZ “MIME-scheme-progid” \Startmenu (these are pointers to apps that have registered for canonicals in HKLM\software\clients) StartmenuInternet =”%app Name%” Mail =”%App Name%” HKLM\Software\RegisteredApplications unique-app-name = REG_SZ "%APPLICATIONCAPABILITYPATH%" Example (Contoso Web Browser) HKLM\software\Contoso\WebBrowser\Capabilities Descritpion =” The award-winning Web browser is better than ever. Search the internet in second and find anything you want. Use integrated tabs and new phishing detectors to enhance your internet experience.” \FileAssociations.htm = ContosoHTML.html = ContosoHTML.shtml = ContosoHTML.xht = ContosoHTML.xhtml = ContosoHTML \UrlAssociations http = Contoso.Url https = Contoso.Url ftp = Contoso.Url \Startmenu StartmenuInternet = “Contoso.exe” HKLM\software\RegisteredApplications Contoso.WebBrowser.1.06 = software\Contoso\WebBrowser\Capabilities Schema to register for defaults: All file associations, protocols, and MIME types used A Description of what the application does

25 Public APIs A set of public APIs are available for apps to: Restores all registered defaults SetAppAsDefaultAll([in, string] LPCWSTR pszAppRegistryName); Restore single registered default SetAppAsDefault([in, string] LPCWSTR pszAppRegistryName,[in, string] LPCWSTR pszSet[in] ASSOCIATIONTYPE atSetType); Query for the owner of a specific default QueryCurrentDefault( [in, string] LPCWSTR pszQuery, [in] ASSOCIATIONTYPE atQueryType, [in] ASSOCIATIONLEVEL alQueryLevel, [out, string] LPWSTR* ppszAssociation); Launch defaults UI for a specific app LaunchAdvancedAssociationUI ([in, string] LPCWSTR pszAppRegName);

26 Guidelines for user experience Guidelines Installations should effectively advertise an application to all users on the machine (Machine Defaults) User choice should be only presented when the application is run (User Defaults) Give each user the decision to decide how an app is part of their default experience Set these associations using new public APIs All apps that use common associations and protocols should register and re-use UI from default programs, E.g. Browsers, Media players, Photo viewers, E-mail clients

27 What should an ISV do at install? Applications should continue to install like XP and also register with default programs: Write binaries to disk (as in XP) Write application information in HKLM (as in XP) Claim machine level defaults (as in XP) Register with default programs (*new) Windows provides a schema to register All file associations used All protocols used All MIME types used A Description of what the application does

28 What should an ISV do at first-run Present a first-run experience for collecting user choice This experience should be done per-user, not of per-machine Recommended UI should contain 2 easy choices Accept all the defaults This claims all defaults via silent API (provided by Windows) Customize defaults Launches app specific File Associations view (reuses UI that Windows provides)

29 When defaults change…. When an app is no longer the default An App can check at run-time to see if it is default Windows provides a new API to do this reliably Apps should NOT silently reclaim defaults but present the user with choice. The recommended UI should look like Prompt the user that they are no longer the defaults and ask: Do you want to keep things the way they are? Do you want to make your default Tell me if is not the default (checkbox)

30 Summary Default programs is designed to make it easy to express user choice Applications must opt in to use default programs Apps need to register at install Default Programs gives ISVs and users better tools for managing user choice MSDN Documentation: us/shellcc/platform/shell/programmersguide/shell_new_vista/default_programs.asp Questions: email

31 Backup

32 Default Programs Design Flow

33 Autoplay

34 4 Microsoft-provided Shortcuts 4 OEM-provided Shortcuts

35 4 Microsoft-provided Shortcuts 4 OEM-provided Shortcuts




39 4 Microsoft-provided Shortcuts 4 OEM-provided Shortcuts

40 D:\Users\edaver\Pictures\layout\lay 4 Microsoft-provided Shortcuts 4 OEM-provided Shortcuts




44 Open With in the shell


Download ppt "Default Programs by Ed Averett. Default Programs Overview Designed for apps that use common file types and protocols Browsers, media players, e-mail clients,"

Similar presentations

Ads by Google