Note
Access to this page requires authorization. You can try signing in or .
Access to this page requires authorization. You can try .
uap:Extension
Declares an extensibility point for the app.
Element hierarchy
<Package>
└─ <Applications>
└─ <Application>
└─ <Extensions>
└─ <uap:Extension>
Syntax
<uap:Extension
Category = 'A required the extension category for a UAP extension.'
desktop11:AppLifecycleBehavior = 'An optional string that can have one of the following values: "systemManaged", or "unmanaged".'
Executable = 'An optional string between 1 and 256 characters in length that must end with ".exe" and cannot contain these characters: <, >, :, ", |, ?, or *.'
EntryPoint = 'An optional string between 1 and 256 characters in length that cannot start or end with a whitespace character.'
RuntimeType = 'An optional string between 1 and 255 characters in length that cannot start or end with a period or contain these characters: <, >, :, ", /, \, |, ?, or *.'
StartPage = 'An optional string between 1 and 256 characters in length that cannot contain these characters: <, >, :, ", |, ?, or *.'
ResourceGroup = 'An optional alphanumeric string between 1 and 255 characters in length. Must begin with an alphabetic character.'
uap10:TrustLevel = 'An optional string that can have one of the following values: "appContainer", or "mediumIL".'
uap10:RuntimeBehavior = 'An optional string that can have one of the following values: "windowsApp", "packagedClassicApp", or "win32App".'
uap10:HostId = 'An optional alphanumeric string between 1 and 255 characters in length. Must begin with an alphabetic character.'
uap10:Parameters = 'An optional string between 1 and 32767 characters in length with a non-whitespace character at its beginning and end.'
uap11:Id = 'An optional string between 1 and 255 characters in length with a non-whitespace character at its beginning and end.'
uap11:Subsystem = 'An optional string that can have one of the following values: "console", or "windows".'
uap11:SupportsMultipleInstances = 'An optional boolean value.'
uap11:ResourceGroup = 'An optional alphanumeric string between 1 and 255 characters in length. Must begin with an alphabetic character.'
uap11:CurrentDirectoryPath = 'An optional string that cannot contain these characters: <, >, |, ?, or *.'
uap11:Parameters = 'An optional string between 1 and 32767 characters in length with a non-whitespace character at its beginning and end.'
desktop7:CompatMode = 'An optional string that can have one of the following values: "classic", or "modern".'
desktop7:Scope = 'An optional string that can have one of the following values: "machine", or "user".' >
<!-- Child elements -->
uap:FileTypeAssociationChoice?
uap:ProtocolChoice?
uap:AppServiceChoice?
uap:AutoPlayContent?
uap:AutoPlayDevice?
uap:ShareTarget?
uap:FileOpenPicker?
uap:FileSavePicker?
uap:AppointmentsProvider?
uap:WebAccountProvider?
uap:DialProtocol?
uap:MediaPlayback?
uap:VoipCall?
</uap:Extension>
Key
? optional (zero or one)
Attributes
| Attribute | Description | Data type | Required | Default value |
|---|---|---|---|---|
| Category | The type of extension. | A string that must be one of the following values: windows.fileTypeAssociation, windows.protocol, windows.autoPlayContent, windows.autoPlayDevice, windows.shareTarget, windows.search, windows.fileOpenPicker, windows.fileSavePicker, windows.cachedFileUpdater, windows.cameraSettings, windows.accountPictureProvider, windows.printTaskSettings, windows.lockScreenCall, windows.appointmentsProvider, windows.alarm, windows.webAccountProvider, windows.dialProtocol, windows.appService, windows.mediaPlayback, windows.print3DWorkflow, windows.lockScreen, windows.aboveLockScreen, windows.personalAssistantLaunch, windows.voipCall. | Yes | |
| desktop11:AppLifecycleBehavior | An optional string that can have one of the following values: systemManaged, unmanaged. | No | ||
| Executable | The default launch executable. | An optional string between 1 and 256 characters in length that must end with ".exe" and cannot contain these characters: <, >, :, ", |, ?, or *. | No | |
| EntryPoint | The activatable class ID. | An optional string between 1 and 256 characters in length that cannot start or end with a whitespace character. | No | |
| RuntimeType | The runtime provider. Typically used when there are mixed frameworks in an app. | An optional string between 1 and 255 characters in length that cannot start or end with a period or contain these characters: <, >, :, ", /, , |, ?, or *. | No | |
| StartPage | The web page that handles the extensibility point. | An optional string between 1 and 256 characters in length that cannot contain these characters: <, >, :, ", |, ?, or *. | No | |
| ResourceGroup | A tag that you can use to group extension activations together for resource management purposes (for example, CPU and memory). | An optional alphanumeric string between 1 and 255 characters in length. Must begin with an alphabetic character. | No | |
| uap10:TrustLevel | Specifies the trust level of the extension. | An optional string that can have one of the following values: appContainer, mediumIL. | No | |
| uap10:RuntimeBehavior | Specifies the run time behavior of the extension. | An optional string that can have one of the following values: windowsApp, packagedClassicApp, win32App. | No | |
| uap10:HostId | Specifies the ID of the host runtime for the extension. | An optional alphanumeric string between 1 and 255 characters in length. Must begin with an alphabetic character. | No | |
| uap10:Parameters | Contains command line parameters to pass to the extension. Only supported for desktop apps that have package identity. | An optional string between 1 and 32767 characters in length with a non-whitespace character at its beginning and end. | No | |
| uap11:Id | An identifier for the extension. The ID must be unique for all extensions in a package. | An optional string between 1 and 255 characters in length with a non-whitespace character at its beginning and end. | No | |
| uap11:Subsystem | This attribute is useful for non-UWP processes that need to be started with a specific subsystem. In most cases this should be left as the default. | An optional string that can have one of the following values: console, windows. | No | |
| uap11:SupportsMultipleInstances | Specifies whether the extension supports multiple instances. | An optional boolean value. | No | |
| uap11:ResourceGroup | A tag that you can use to group extension activations together for resource management purposes (for example, CPU and memory). | An optional alphanumeric string between 1 and 255 characters in length. Must begin with an alphabetic character. | No | |
| uap11:CurrentDirectoryPath | Specifies the initial directory when launching the process. | An optional string that cannot contain these characters: <, >, |, ?, or *. | No | |
| uap11:Parameters | Contains command line parameters to pass to the extension. | An optional string between 1 and 32767 characters in length with a non-whitespace character at its beginning and end. | No | |
| desktop7:CompatMode | Specifies the compatibility mode for the extension. | An optional string that can have one of the following values: classic, modern. | No | |
| desktop7:Scope | Specifies whether the extension is per-user or per-machine. | An optional string that can have one of the following values: machine, user. | No |
Child elements
| Child element | Description |
|---|---|
| uap:AutoPlayContent | Declares an app extensibility point of type windows.autoPlayContent. The app provides the specified AutoPlay content actions. |
| uap:AutoPlayDevice | Declares an app extensibility point of type windows.autoPlayDevice. The app provides the specified AutoPlay device actions. |
| uap:ShareTarget | Declares an app extension point of type windows.shareTarget. The app can share the specified types of files. |
| uap:FileOpenPicker | Declares an app extensibility point of type windows.fileOpenPicker. The app lets the user choose and open the specified types of files. |
| uap:FileSavePicker | Declares an app extensibility point of type windows.fileSavePicker. The app lets the user choose the file name, extension, and storage location for the specified types of files. |
| uap:AppointmentsProvider | Declares an app extensibility point of type windows.appointmentsProvider. |
| uap:WebAccountProvider | Declares an app extensibility point of type windows.webAccountProvider. |
| uap:DialProtocol | Declares an app extensibility point of type windows.dialProtocol. |
| uap:MediaPlayback | Declares an app extensibility point of type mediaPlayback so that your app can declare that it performs video transcoding. |
| uap:VoipCall | Declares an app extensibility point of type voipCall so that your app can declare that it can perform an upgrade from a cellular call to a VoIP video call, and/or whether it is a VoIP app that supports dialing phone numbers directly. |
Parent elements
| Parent element | Description |
|---|---|
| Extensions |
Requirements
| Item | Value |
|---|---|
| Namespace | http://schemas.microsoft.com/appx/manifest/uap/windows10 |
| desktop11 | http://schemas.microsoft.com/appx/manifest/desktop/windows10/11 |
| desktop7 | http://schemas.microsoft.com/appx/manifest/desktop/windows10/7 |
| uap10 | http://schemas.microsoft.com/appx/manifest/uap/windows10/10 |
| uap11 | http://schemas.microsoft.com/appx/manifest/uap/windows10/11 |
| Minimum OS Version | Windows 10 version 1511 (Build 10586) |
Remarks
For most types of extensions, Extension@ResourceGroup must match Application@ResourceGroup (if Application@ResourceGroup is omitted then Extension@ResourceGroup should be omitted also).
For a UI-based contract: if Extension@ResourceGroup is not specified then it will be implicitly grouped with the Application; if Extension@ResourceGroup does not match Application@ResourceGroup then the manifest will fail schema validation.
If Extension@ResourceGroup is not specified for a background task, or for a contract that is based on a background task, it will be associated with a default group for all background tasks. Background task contracts are allowed to specify the same values as Application@ResourceGroup.
For the following Extensions, Extension@ResourceGroup allows the background task that is run to be grouped into different processes which will be resource- and lifecycle-managed independently of other groups: windows.backgroundTasks, windows.appServices, windows.preinstalledConfigTask, and windows.updateTask.
For example, if the manifest had these three entries.
<Extension Category="windows.backgroundTasks" EntryPoint="Fabrikam.BackgroundTask" ResourceGroup="Group1">
<BackgroundTasks>
<Task Type="timer"/>
</BackgroundTasks>
</Extension>
<Extension Category="windows.backgroundTasks" EntryPoint="Fabrikam.BackgroundTask2" ResourceGroup="Group2">
<BackgroundTasks>
<Task Type="controlChannel"/>
</BackgroundTasks>
</Extension>
<Extension Category="windows.backgroundTasks" EntryPoint="Fabrikam.BackgroundTask3" ResourceGroup="Group2">
<BackgroundTasks>
<Task Type="pushNotification"/>
</BackgroundTasks>
</Extension>
Then the last two background tasks would be activated into the same instance of backgroundtaskhost.exe if they were activated concurrently. However, a separate instance of backgroundtaskhost.exe would be spun up for the first entry because it has a different ResourceGroup.
If no ResourceGroup is specified for an extension then all background tasks are activated into the same instance of backgroundtaskhost.exe.
Additionally if one of these extensions(windows.backgroundTasks, windows.appServices, windows.preinstalledConfigTask, or windows.updateTask) specifies the same value of the ResourceGroup attribute of the parent Application element they will be activated in the same process as the UI.
The following extensions can be found in the declarations tab of the package designer UI - see the descriptions for each of these elements:
- Search: Registers the app as a search provider. The app's indexed content can appear as search results in the global search experience launched via the Search charm. Only one instance of this declaration is allowed per app.
- CachedFileUpdater: Registers the app as a cached file updater, allowing the app to provider updates to files that are accessed by other Microsoft Store apps. Only one instance of this declaration is allowed per app.
- Camera Settings: Enables the app to provide custom control panels for web camera devices. Only one instance of this declaration is allowed per app.
- AccountPictureProvider: Registers the app as an account pciture provider, allowing it to be launched in an account picture mode and to set the user's picture without additional prompting. Only one instance of this declaration is allowed per app.
- PrintTaskSettings: Enables the app to replace the basic print settings experience. Only one instance of this declaration is allowed per app.
- LockScreen: If a phone is locked, there is a limited amount of interaction that the user can perform. In some cases, a user would like to be able to answer a VoIP call without unlocking the phone. This contract makes that possible. Only one instance of this declaration is allowed per app.
- Alarm: An application can declare itself as the System Alarm App. When a user goes through the selection UI to set their System Alarm, only applications that are declared as System Alarm Apps can be selected. Only one instance of this declaration is allowed per app.
- BackgroundTasks: Background tasks enable applications to communicate with each other and enable one application to call another. In order to use contracts to provide or launch these background tasks, an application need to be declared as an app service. Multiple instances of this declaration are allowed in each app.
- Print3DWorkFlow: Manufacturers of 3D printers can provide a Universal Windows app to provide a unique experience in the 3D print dialog. If they do not, Windows provides a default 3D printing experience. Only one instance of this declaration is allowed per app.
- PersonalAssistantLaunch: Allows an app to integrate with Cortana. Only one instance of this declaration is allowed per app.
Examples
Feedback
Was this page helpful?
