UWP APIs available to desktop apps

Desktop apps can use a wide range of Universal Windows Platform (UWP) APIs, even if they have not fully transitioned to a UWP app. This article lists the available classes your desktop app can use.

Many UWP APIs require package identity to be used in a desktop app. Most UWP APIs work well apps that have package identity. However, some feature areas are not yet fully tested or currently functioning as intended.

Feature area Details
Appointments, contacts, and emails Not all APIs are currently supported.
Authentication and user identity Not all APIs are currently supported.
Background tasks While desktop apps can register background tasks, only fully UWP apps can run as a background task. For more information, see the Background task sample on GitHub.
Bluetooth Not all APIs are currently supported.
Chat and phone calls Desktop apps cannot run on mobile until they are fully ported to UWP.
Contract activation Only full UWP apps can be activated by a contract.
Cryptography Not all APIs are currently supported.
Geolocation Not all APIs are currently supported.
File and folder pickers Apps with identity have full file system access and do not need UWP pickers.
Media Not all APIs are currently supported.
Point of service Not all APIs are currently supported.
Smart cards Not all APIs are currently supported.
PlayReady Not all APIs are currently supported.
VPN Not all APIs are currently supported.
Wallet Desktop apps cannot run on mobile until they are fully ported to UWP.
XAML UI Windows 10, version 1809, and earlier releases do not support hosting UWP XAML content in desktop apps. Starting in Windows 10, version 1903, you can use XAML Islands to host UWP XAML content.

Occasionally, APIs in these areas may appear to function correctly. However, if an API is not explicitly listed as supported, you should avoid using it as it may have unintended side effects or behavior. Support for these APIs may become available in future releases. In the interim, your app should use relevant Win32 or .NET APIs instead.

List of APIs

The following is a full list of UWP APIs supported in desktop apps. You can view APIs supported only in apps with package identity or APIs supported in all desktop apps.

For examples on how to use UWP APIs, see the Desktop Bridge Samples and Universal Windows Platform (UWP) app samples on GitHub. You can also consult the Building App for Windows blog post Calling Windows 10 APIs From a Desktop Application.

APIs supported only in apps with package identity

APIs supported in all desktop applications

APIs that have the DualApiPartition are supported in all desktop apps, including those with package identity and those without package identity. To determine whether an API you want to call from your desktop application is supported, find the reference article for the class or member you're interested in the reference documentation for WinRT namespaces. Then, check whether the Attributes section in the reference article includes the DualApiPartition attribute.

Next steps

Have questions? Ask us on Stack Overflow. Our team monitors these tags. You can also ask us here.