SDK Archives - Windows Developer Blog https://blogs.windows.com/windowsdeveloper/tag/sdk/ Tue, 05 Nov 2024 14:04:25 +0000 en-US hourly 1 https://wordpress.org/?v=6.6.4 https://blogs.windows.com/wp-content/uploads/sites/3/2021/06/cropped-browser-icon-logo-32x32.jpg SDK Archives - Windows Developer Blog https://blogs.windows.com/windowsdeveloper/tag/sdk/ 32 32 What’s new in Windows App SDK 1.6 https://blogs.windows.com/windowsdeveloper/2024/09/04/whats-new-in-windows-app-sdk-1-6/ Wed, 04 Sep 2024 22:00:03 +0000 https://blogs.windows.com/windowsdeveloper/?p=57086 We are proud to announce that version 1.6 of the Windows App SDK is now available! Whether you’re looking for the incredible performance boost and footprint reduction of Native AOT support, enhancements for deploying your

The post What’s new in Windows App SDK 1.6 appeared first on Windows Developer Blog.

]]>
We are proud to announce that version 1.6 of the Windows App SDK is now available! Whether you’re looking for the incredible performance boost and footprint reduction of Native AOT support, enhancements for deploying your package, or quality of life improvements for controls like PipsPager and RatingControl, WinAppSDK 1.6 offers a raft of new features, performance boosts and structural changes that enable you to make your native Windows apps better than ever before.  The Windows App SDK provides a rich set of APIs and tools to help you build beautiful and fast Windows desktop apps, including any C++ Win32 or C# .NET app. You can harness the modern controls and polish of WinUI 3, which ships as part of the WinAppSDK, or if you have an existing app that uses Win32 such as WPF, you can take advantage of only the parts of the SDK that you need. The WinAppSDK also stays up to date with frequent and OS-independent releases so your app can always access the latest innovations.

Get started with the Windows App SDK 

Check out the Windows App SDK overview page to learn more about it and see how to get started. Then, if you’re ready to dive into Visual Studio and begin with your first WinUI 3 app, see our setup instructions to start developing Windows apps.  

New features and improvements 

Native AOT support 

With 1.6, the Windows App SDK now supports native Ahead-Of-Time (AOT) compilation! When publishing your app as a Native AOT app, you produce an app which has been compiled ahead of time to native code for faster startup time and a smaller memory footprint.  We’re very excited to bring the powerful capabilities of Native AOT to developers through the Windows App SDK! In our sample Contoso Camera app, we measured a 50% reduction in start time, an ~8x reduction in package size when using a framework package and a ~2x reduction in package size when using Windows App SDK in self-contained mode. While your results might vary, we encourage you to give Native AOT a try if it’s right for your app!  GIF of Bloom screensaver moving For more information about Native AOT, see Native AOT deployment. To get started with Native AOT in your Windows App SDK app, see our release notes for 1.6 for what you need to know and how to set it up. 

Decoupled WebView2 versioning 

Instead of embedding a hard-coded version of the Edge WebView2 SDK into the Windows App SDK, we now consume the Edge WebView2 SDK as a NuGet reference in 1.6. If your app uses WebView2 to display content, you can now choose a newer version of the Microsoft.Web.WebView2 package if you need to instead of the version that came with the Windows App SDK. Additionally, you can now reference NuGet packages which also reference the Edge WebView2 SDK, streamlining your dependencies.   With these updates, we’ve decoupled the WinAppSDK from the Edge WebView2 API surface and brought NuGet’s sophisticated package management capabilities to the WebView2 space. Your WebView2-powered app experiences are now more versatile than ever and can tap into the newest WebView2 offerings at any time! 

New Package Deployment APIs 

Flexible and robust package management has been a mainstay of the Windows App SDK since its inception, and with the release of 1.6 we’re only making it better. We’ve improved package management APIs with new enhancements and quality-of-life updates including package removal, provisioning and detection of pending registration and locally available updates, easy feature availability detection for light-up scenarios and more. If your app uses MSIX packaging, these enhancements are tailored to make your life easier!   For more details, you can peruse the pull request here or take a peek at the full spec here. 

Improved TabView tab tear-out 

The WinUI 3 TabView control has received a substantial update to the tab tear-out experience in 1.6 in the form of a new CanTearOutTabs mode, overhauling how a user drags tabs out of your app in a major way. In the new mode, dragging a tab out of your app’s TabView is very similar to the tab drag experience in Microsoft Edge and Google Chrome where a new window is immediately created during the drag. This allows users to visually see feedback of their action right away and it lets them drag the new window to the edge of the screen to maximize or snap it in one continuous motion.  If you enable the new CanTearOutTabs mode in your TabView, you won’t have to worry about any drag-and-drop API limitations because it doesn’t use them. And, you won’t have to worry about whether tearing tabs out of your app will work if the app is run as an Administrator, because that’s supported. The developer and user experiences are seamless and smooth. If your app uses TabView, you should take the new tear-out mode for a spin!  GIF of new CanTearOutTabs mode in your TabView, showing paragraph moving

Other control updates 

While smaller in scale, in 1.6 we’ve added some polish and updates to a few other controls in WinUI 3 as well. PipsPager now supports a new mode that wraps between the first and last items:  GIF of highlight moving through dots between two arrows And RatingControl is now more customizable since we moved some previously hard-coded properties to the theme resources. Now, you can override these values in your app to handcraft RatingControl’s appearance.  Screenshot of stars in a rating system We’ve also unsealed ItemsWrapGrid, which is a backwards-compatible change.  Screenshot of line of code with first word highlighted

Additional updates 

And finally, we’ve added a few other new APIs and features to round things out for 1.6. We filled a gap from UWP with a new ColorHelper.ToDisplayName() API, and we added a new Microsoft.Windows.Globalization.ApplicationLanguages class in MRTCore that includes a new PrimaryLanguageOverride feature for fine-tuning your app’s display language. 

Staying in the loop 

You can stay up to date with the team on the Windows App SDK GitHub repo and the WinUI GitHub repo, and through our quarterly WinUI Community Calls where we share roadmap updates and other exciting news, as well as demo new features.  You can also connect with us on X using #WindowsAppSDK and @WindowsUI.  We look forward to seeing the beautiful apps you create with WinAppSDK 1.6 & WinUI 3!  Happy coding!  Windows App SDK team ]]>
C#/WinRT Authoring Preview and Updates https://blogs.windows.com/windowsdeveloper/2021/02/09/c-winrt-authoring-preview-and-updates/ Tue, 09 Feb 2021 18:03:16 +0000 https://blogs.windows.com/windowsdeveloper/?p=56138 The C#/WinRT team is excited to announce our latest release, which includes a preview of

The post C#/WinRT Authoring Preview and Updates appeared first on Windows Developer Blog.

]]>
latest release, which includes a preview of C#/WinRT authoring with the latest C#/WinRT NuGet package, as well as updates to the .NET 5.0 SDK with the .NET February update. Since our last blog post on C#/WinRT v1.0, we have some new features to show off! The latest C#/WinRT NuGet package, which is version 1.1.2-prerelease.210208.6, includes a preview of C#/WinRT authoring. This allows component authors to create and package their own C# .NET 5 Windows Runtime components that can be consumed in native applications. In this blog post, we walkthrough the latest C#/WinRT authoring support.   C#/WinRT has also made a few additions and bug-fixes to the runtime and Windows projections as part of the .NET 5.0 SDK February update. These updates to the SDK align with C#/WinRT version 1.1.1, which was released last month. We have added support for SupportedOSPlatform attributes, which is a feature that provides platform compatibility assistance in Visual Studio for .NET 5 developers calling platform-specific APIs.   To keep up to date with the latest updates on C#/WinRT, visit the C#/WinRT repo and our docs page. 

Preview of C#/WinRT Authoring 

C# .NET 5 component authors can now create their own Windows Runtime types and package them as Windows Runtime components. You can implement runtime classes in a C# library project, generate its WinMD metadata file, and distribute the WinRT component as a NuGet package. C#/WinRT provides hosting support which loads the .NET runtime, so that your C# authored component can be consumed from non-.NET languages such as C++ and Rust. This preview of authoring also supports project references to your component with a few project modifications, with more details on how to configure this in these authoring docs. Authoring and consuming components with WinUI3 is not fully supported, but look out for WinUI 3 support in next month’s release!  In the following sections, we’ll dive deeper into authoring a simple WinRT component and consuming it as a package reference. We recommend that you upgrade to the latest .NET 5.0 SDK update while using C#/WinRT authoring. Here is a more detailed walkthrough for authoring, as well as the related sample code. For more details on C#/WinRT authoring and hosting support, refer to these docs. 

Authoring your WinRT component 

To author your C# runtime component, first create a new C# project in Visual Studio using the Class Library template. I named my project AuthoringDemo. Depending on your Visual Studio version, the project template may allow you to choose to target .NET 5, or it may be created using the netcoreapp3.1 target framework moniker. In either case, update the TargetFramework property in the project file to target .NET 5 with a specific Windows API versionhere we use the latest Windows version, net5.0-windows10.0.19041.0 
<PropertyGroup> 
  <TargetFramework>net5.0-windows10.0.19041.0</TargetFramework> 
  <Platforms>x64</Platforms> 
</PropertyGroup>
Next, add a NuGet reference to the latest C#/WinRT package. Right-click on your project, select Manage NuGet packagessearch for Microsoft.Windows.CsWinRT and install the latest packagewhich is version 1.1.2-prerelease.210208.6 as of this writing. You will need to add the following C#/WinRT properties to the project file 
<!-- CsWinRT Properties --> 
<PropertyGroup> 
  <CsWinRTComponent>true</CsWinRTComponent> 
  <CsWinRTWindowsMetadata>10.0.19041.0</CsWinRTWindowsMetadata>	  	 
</PropertyGroup>
The CsWinRTComponent property tells C#/WinRT that the .NET 5 component will follow the WinRT rules, and generates a WinMD file for the component so it can be hosted by other languages that support WinRT. For more details on C#/WinRT project properties, refer to our NuGet documentation.  You can implement your WinRT component using class (.cs) files in your C# library project. You can expose any WinRT types in your component, including .NET mappings of WinRT types. In general, make sure your component follows the relevant WinRT guidelines. Here I renamed the file to “Example.cs” and created a simple WinRT component.  
// Example.cs 
namespace AuthoringDemo 
{ 
    public sealed class Example 
    { 
        public int SampleProperty { get; set; }   

        public static string SayHello() 
        { 
            return "Hello from your C# WinRT component"; 
        } 
    } 
}

C#/WinRT also provides diagnostic error messages to ensure your authored WinRT components are valid. For existing UWP .NET Native managed components, the metadata for C# WinRT components is generated by the winmdexp tool. The Windows Runtime has more constraints on code than C#, so this tool was equipped with diagnostic messages to prevent you from writing runtime errors. In C#/WinRT we have added source generator with diagnostics, alerting you to similar errors in your code at build-time before a WinMD file is generated. Below is an example of one of these diagnostics—since currently all authored runtime classes must be marked sealed, you will see the following error if you forget to do so. 

"Error CsWinRT1005: Exporting unsealed types is not supported. Please mark type Example as sealed."

Build and package your WinRT component  

To generate a NuGet package for your component, add the GeneratePackageOnBuild property to your project file. I’ve also specified a custom output folder named “nuget” for my package to be generated to. Alternatively, you can right-click on the AuthoringDemo project and select Pack.  
<PropertyGroup> 
    <GeneratePackageOnBuild>true</GeneratePackageOnBuild> 
    <PackageOutputPath>.\nuget</PackageOutputPath> 
</PropertyGroup>
When the package is built, C#/WinRT automatically configures the hosting and component assemblies to allow for consumption from native apps. However, if you prefer not to rely on automatic packaging, these docs provide more details on generating a custom NuGet package.  Now build the AuthoringDemo project. You should be able to see the generated WinMD file under the Generated Files folder, as well as in your build output directory. Since we configured the project to generate a package on build, you can also see that “AuthoringDemo.1.0.0.nupkg” has been successfully created below. 

Consume your WinRT component from a native application 

To consume your component, first create a new native WinRT application. Here we added a new Windows Console Application (C++/WinRT) project to the solution named “CppConsoleApp”. From this project, add a NuGet package reference to the component, AuthoringDemo.1.0.0.nupkg. You may need to configure your package sources—to do this, click on the Settings gear in NuGet Package Manager, and add a package source to the appropriate path.   Here’s an example of what the package sources look like after adding the appropriate NuGet path. Make sure to select Update and then OK.   After configuring your package sources, you should now be able to search for and install the AuthoringDemo” package.  Next, you will need to add two files to the CppConsoleApp project to be able to host your component: WinRT.Host.runtimeconfig.json and CppConsoleApp.exe.manifest. For more details on the steps below and managed component hosting, see the hosting docs  To add the runtimeconfig and manifest files, right-click on the CppConsoleApp project and choose Add -> New Item, and use the Text File template. Here are the contents of WinRT.Host.runtimeconfig.json. Note for the “tfm entry, a custom self-contained .NET 5 installation can be referenced using the DOTNET_ROOT environment variable. 
{ 
    "runtimeOptions": { 
        "tfm": "net5.0", 
        "rollForward": "LatestMinor", 
        "framework": { 
            "name": "Microsoft.NETCore.App", 
            "version": "5.0.0" 
        } 
    } 
}
For the manifest file, since the application is not MSIX-packaged you need to include activatable class registrations for your runtime classes. Note that WinRT.Host.dll produced by C#/WinRT is used as the host DLL, and not the actual managed component DLL. Here are the contents of CppConsoleApp.exe.manifest: 
<?xml version="1.0" encoding="utf-8"?> 
<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1"> 
  <assemblyIdentity version="1.0.0.0" name="CppConsoleApp"/> 
  <file name="WinRT.Host.dll"> 
    <activatableClass 
        name="AuthoringDemo.Example" 
        threadingModel="both" 
        xmlns="urn:schemas-microsoft-com:winrt.v1" /> 
  </file> 
</assembly>
You will need to add both the WinRT.Host.runtimeconfig.json and CppConsoleApp.exe.manifest files to the application output. To do this in Visual Studio, select each of these files in your Solution Explorer, and in the Content field select True from the drop-down menu, like below.  Next in the pch.h under Header Files, add the following line of code to include your component:  
#include <winrt/AuthoringDemo.h>
Finally, in main.cpp under Source FilesI added the following code to use the authored component. 
#include "pch.h" 
#include "iostream" 
  
using namespace winrt; 
using namespace Windows::Foundation; 
using namespace std; 
  
int main() 
{ 
    init_apartment(); 
  
    AuthoringDemo::Example ex; 
    ex.SampleProperty(42); 
    wcout << ex.SampleProperty() << endl; 
    wcout << ex.SayHello().c_str() << endl; 
}
Now when you run the console application, you will see this in the output!  Thanks for following along with this walkthrough of C#/WinRT authoringin the upcoming weeks wwill continue improving the project support and end-to-end authoring experience, so stay tuned! The team is also working to provide more complete support for authoring and consuming components using WinUI 3. For more details on authoring and consuming C# WinRT componentssee this walkthrough and our authoring docs. 

.NET 5.0 SDK Updates - SupportedOSPlatform attributes 

In addition to the latest C#/WinRT authoring preview, the team has also made a couple updates for the .NET 5.0 SDK February update with C#/WinRT version 1.1.1. This includes several bug-fixes to the runtime and Windows SDK projections provided by C#/WinRT—a full list can be found here.  One C#/WinRT feature that we have added as part of the February update is support for SupportedOSPlatform attributes. With the integration of these attribute checks in Visual Studio, you now get a CA1416 warning when calling platform-specific APIs that are not supported on the platform versions your project supports. Let’s check out an example of what this looks like. 
using System;
using Windows.Devices.Display;
using Windows.Devices.Enumeration;
namespace Net5ConsoleApp
{
    class Program
    {   
        static async System.Threading.Tasks.Task Main(string[] args)
        {
            var deviceInformations = await DeviceInformation.FindAllAsync(DisplayMonitor.GetDeviceSelector());
            foreach (DeviceInformation device in deviceInformations)
            {
                DisplayMonitor displayMonitor = await DisplayMonitor.FromInterfaceIdAsync(device.Id);
                // Print some info about the display monitor
                Console.WriteLine("DisplayName: " + displayMonitor.DisplayName);
                Console.WriteLine("ConnectionKind: " + displayMonitor.ConnectionKind);
                // Warning CA1416: This call site is reachable on: 'Windows' 10.0.17763.0 and later.
                // 'DisplayMonitor.IsDolbyVisionSupportedInHdrMode.get' is only supported on: 'Windows' 10.0.19041.0 and later.
                Console.WriteLine("IsDolbyVisionSupported: " + displayMonitor.IsDolbyVisionSupportedInHdrMode);
            }
        }
    }
}
The program above is part of a .NET 5 console application, with the following properties set in the project file: 
<TargetFramework>net5.0-windows10.0.19041.0</TargetFramework> 
<SupportedOSPlatformVersion>10.0.17763.0</SupportedOSPlatformVersion>
The program uses the DisplayMonitor class in the WinRT APIs to print some information about display monitor devices that are connected to the system, such as the display name, connection kind, and whether it supports Dolby Vision in HDR mode, which is a new API addition in 19041. This is an example of what the output looks like—since I am running the application on a Windows OS version greater than 19041, there are no runtime errors.  Notice in the code above that the following warning message appears when accessing the last property, IsDolbyVisionSupportedInHdrMode 

Warning CA1416: This call site is reachable on: 'Windows' 10.0.17763.0 and later. 'DisplayMonitor.IsDolbyVisionSupportedInHdrMode.get' is only supported on: 'Windows' 10.0.19041.0 and later. 

This is because the application supports a lower OS platform version of 10.0.17763.0, while the property IsDolbyVisionSupportedInHdrMode is only available in 10.0.19041.0 or greater. Users running the application on a lower Windows version such as 10.0.17763.0 would get a runtime error without guarding this property call.   We do realize that this warning message leads developers to use version checks instead of presence checks, which may be undesirable for WinRT APIs. Because different Windows devices may support different APIs, our guidance is to always do presence checks for light up scenarios instead of explicit version checks. The recommendation for writing version adaptive code is to surround the property call with a presence check using one of the ApiInformation methods. This ensures that users running the application on an OS version lower than 10.0.19041.0 will not get any runtime errors. While the CA1416 warning persists, Visual Studio gives you the option to suppress it directly in the source file with a #pragma warning as shown below. Another option is to configure the severity of the warnings.
if (ApiInformation.IsPropertyPresent("Windows.Devices.Display.DisplayMonitor", "IsDolbyVisionSupportedInHdrMode")) 
{ 
#pragma warning disable CA1416 // Validate platform compatibility 
      Console.WriteLine("IsDolbyVisionSupported: " + displayMonitor.IsDolbyVisionSupportedInHdrMode); 
#pragma warning restore CA1416 // Validate platform compatibility 
}
As you can see, this feature helps ensure that developers call platform-specific Windows APIs appropriately when supporting earlier Windows OS versions by adding a warning message. 

Closing 

We encourage developers to try out C#/WinRT authoring and submit feedback to our repo as we continue to improve the project support for a more streamlined end-to-end authoring experience. We are working on support for more authoring scenarios such as integration with WinUI 3 desktop applications and authoring out-of-process components for use in packaged applications.  C#/WinRT also continues to make bug-fixes for the .NET 5.0 SDK as part of their monthly updates. To stay up to date on the latest fixes, file any issues, and for any questions or feedback, visit the C#/WinRT repo.  Angela Zhang – C#/WinRT PM ]]>
Start Developing on Windows 10, version 2004 Today https://blogs.windows.com/windowsdeveloper/2020/05/12/start-developing-on-windows-10-version-2004-today/ Tue, 12 May 2020 17:15:58 +0000 https://blogs.windows.com/windowsdeveloper/?p=55731 The Windows 10 SDK for Windows 10, version 2004 is now available with a go-live license. Build 19041, also known as the Windows 10 May 2020 Update, is now in the Release Preview Windows Insider ring. New APIs and Features for developers Every Windows 10 update is loaded with new APIs, but don’t worry, Windows Dev Center has […]

The post Start Developing on Windows 10, version 2004 Today appeared first on Windows Developer Blog.

]]>
Release Preview Windows Insider ring.

New APIs and Features for developers

Every Windows 10 update is loaded with new APIs, but don’t worry, Windows Dev Center has a full list of what is new for developers. In addition to the new APIs, check out these updates to the app model, MSIX and WSL.
  1. Windows Subsystem for Linux: The Windows Subsystem for Linux 2 is the latest and greatest version of WSL. It has significantly faster file IO performance (up to 20x faster) with full system call compatibility, meaning you can run more of the Linux apps you love (like Docker).
  2. Hosted App Model: Applications can now declare themselves as a host for other applications via the new HostRuntime extension. These hosted apps look and behave like independent apps and can have deep Windows integration, even though they get their main executable from the host app. This technology powers PWAs on Microsoft Edge. To get started using the Hosted App Model, see this blog.
  3. Sparse Signed Packages: Applications can now include a signed MSIX package in their existing installers and have their installers register it. This allows applications to keep their existing installers but still assign themselves identities. An identity makes the app known to Windows and allows for a more deeply integrated experience by enabling the app to call Windows APIs that require identities such as Tiles, Toasts, Notifications and BackgroundTasks. To take advantage of Sparse Signed Packages, see this blog.

Update your dev environment in two simple steps today

The first step in updating your dev environment is to update your system to the Windows 10, version 2004 (by using the Release Preview Ring). The Insider team has a great blog post that will walk you through how to get on the Release Preview Ring. Then, go into Visual Studio 2017 or 2019 and grab the new SDK, and you’ll be good to go. Once version 2004 goes to general availability in May, the SDK will become the default SDK inside Visual Studio.

Today, with Windows Insider Release Preview for Windows 10, version 2004 Update:

  1. Run the installer or go to https://www.visualstudio.com/downloads/ and download it.
  2. Go to “Individual Components.”
  3. Go to “SDKs, libraries, and frameworks” section.
  4. Check “Windows 10 SDK (10.0.19041).”
  5. Click “Install.”
Visual Studio - Windows 10 SDK

When the Windows 10, version 2004 goes to general availability:

  1. Run the Visual Studio installer, or go to https://www.visualstudio.com/downloads/ and download it.
  2. Select “Universal Windows Platform development” under Workloads — Windows 10 SDK (10.0.19041) will be included by default.
  3. Click “Install.”

Which workload should I choose?

Do you want tools for C++ desktop or game development for UWP? Be sure one of these two are selected:
  • C++ Universal Windows Platform tools in the UWP Workload section
  • Desktop development with C++ Workload and the Windows SDK 10 (10.0.19041)
  • If you want the Universal Windows Platform tools, Select the Universal Windows Platform tools workload.
Once your systems are updated and recompiled and your app is tested, submit your app to Dev Center.

Your Take on Windows 10, version 2004

Tell us what crazy things you’re working on with the new update by tweeting @WindowsDev.The Windows 10 SDK for Windows 10, version 2004 is now available with a go-live license. Build 19041, also known as the Windows 10 May 2020 Update, is now in the Release Preview Windows Insider ring.

New APIs and Features for developers

Every Windows 10 update is loaded with new APIs, but don’t worry, Windows Dev Center has a full list of what is new for developers. In addition to the new APIs, check out these updates to the app model, MSIX and WSL.
  1. Windows Subsystem for Linux: The Windows Subsystem for Linux 2 is the latest and greatest version of WSL. It has significantly faster file IO performance (up to 20x faster) with full system call compatibility, meaning you can run more of the Linux apps you love (like Docker).
  2. Hosted App Model: Applications can now declare themselves as a host for other applications via the new HostRuntime extension. These hosted apps look and behave like independent apps and can have deep Windows integration, even though they get their main executable from the host app. This technology powers PWAs on Microsoft Edge. To get started using the Hosted App Model, see this blog.
  3. Sparse Signed Packages: Applications can now include a signed MSIX package in their existing installers and have their installers register it. This allows applications to keep their existing installers but still assign themselves identities. An identity makes the app known to Windows and allows for a more deeply integrated experience by enabling the app to call Windows APIs that require identities such as Tiles, Toasts, Notifications and BackgroundTasks. To take advantage of Sparse Signed Packages, see this blog.

Update your dev environment in two simple steps today

The first step in updating your dev environment is to update your system to the Windows 10, version 2004 (by using the Release Preview Ring). The Insider team has a great blog post that will walk you through how to get on the Release Preview Ring. Then, go into Visual Studio 2017 or 2019 and grab the new SDK, and you’ll be good to go. Once version 2004 goes to general availability in May, the SDK will become the default SDK inside Visual Studio.

Today, with Windows Insider Release Preview for Windows 10, version 2004 Update:

  1. Run the installer or go to https://www.visualstudio.com/downloads/ and download it.
  2. Go to “Individual Components.”
  3. Go to “SDKs, libraries, and frameworks” section.
  4. Check “Windows 10 SDK (10.0.19041).”
  5. Click “Install.”
Visual Studio - Windows 10 SDK

When the Windows 10, version 2004 goes to general availability:

  1. Run the Visual Studio installer, or go to https://www.visualstudio.com/downloads/ and download it.
  2. Select “Universal Windows Platform development” under Workloads — Windows 10 SDK (10.0.19041) will be included by default.
  3. Click “Install.”

Which workload should I choose?

Do you want tools for C++ desktop or game development for UWP? Be sure one of these two are selected:
  • C++ Universal Windows Platform tools in the UWP Workload section
  • Desktop development with C++ Workload and the Windows SDK 10 (10.0.19041)
  • If you want the Universal Windows Platform tools, Select the Universal Windows Platform tools workload.
Once your systems are updated and recompiled and your app is tested, submit your app to Dev Center.

Your Take on Windows 10, version 2004

Tell us what crazy things you’re working on with the new update by tweeting @WindowsDev.]]>
Windows 10 SDK Preview Build 19041 available now! https://blogs.windows.com/windowsdeveloper/2019/12/17/windows-10-sdk-preview-build-19041-available-now/ Tue, 17 Dec 2019 18:32:29 +0000 https://blogs.windows.com/windowsdeveloper/?p=55616 Today, we released a new Windows 10 Preview Build of the SDK to be used in conjunction with Windows 10 Insider Preview (Build 19041 or greater). The Preview SDK Build 19041 contains bug fixes and under development changes to the API surface area. The Preview SDK can be downloaded from the developer section on Windows Insider. For […]

The post Windows 10 SDK Preview Build 19041 available now! appeared first on Windows Developer Blog.

]]>
Windows 10 Insider Preview (Build 19041 or greater). The Preview SDK Build 19041 contains bug fixes and under development changes to the API surface area. The Preview SDK can be downloaded from the developer section on Windows Insider. For feedback and updates to the known issues, please see the developer forum. For new developer feature requests, head over to our Windows Platform UserVoice.

Things to note:

  • This build works in conjunction with previously released SDKs and Visual Studio 2017 and 2019. You can install this SDK and still also continue to submit your apps that target Windows 10 build 1903 or earlier to the Microsoft Store.
  • The Windows SDK will now formally only be supported by Visual Studio 2017 and greater. You can download the Visual Studio 2019 here.
  • This build of the Windows SDK will install on released Windows builds and on Windows 10 Insider Preview builds.
  • In order to assist with script access to the SDK, the ISO will also be able to be accessed through the following static URL: https://software-download.microsoft.com/download/sg/Windows_InsiderPreview_SDK_en-us_19041_1.iso.

Tools Updates

Message Compiler (mc.exe)

  • Now detects the Unicode byte order mark (BOM) in .mc files. If the If the .mc file starts with a UTF-8 BOM, it will be read as a UTF-8 file. Otherwise, if it starts with a UTF-16LE BOM, it will be read as a UTF-16LE file. If the -u parameter was specified, it will be read as a UTF-16LE file. Otherwise, it will be read using the current code page (CP_ACP).
  • Now avoids one-definition-rule (ODR) problems in MC-generated C/C++ ETW helpers caused by conflicting configuration macros (e.g. when two .cpp files with conflicting definitions of MCGEN_EVENTWRITETRANSFER are linked into the same binary, the MC-generated ETW helpers will now respect the definition of MCGEN_EVENTWRITETRANSFER in each .cpp file instead of arbitrarily picking one or the other).

Windows Trace Preprocessor (tracewpp.exe)

  • Now supports Unicode input (.ini, .tpl, and source code) files. Input files starting with a UTF-8 or UTF-16 byte order mark (BOM) will be read as Unicode. Input files that do not start with a BOM will be read using the current code page (CP_ACP). For backwards-compatibility, if the -UnicodeIgnore command-line parameter is specified, files starting with a UTF-16 BOM will be treated as empty.
  • Now supports Unicode output (.tmh) files. By default, output files will be encoded using the current code page (CP_ACP). Use command-line parameters -cp:UTF-8 or -cp:UTF-16 to generate Unicode output files.
  • Behavior change: tracewpp now converts all input text to Unicode, performs processing in Unicode, and converts output text to the specified output encoding. Earlier versions of tracewpp avoided Unicode conversions and performed text processing assuming a single-byte character set. This may lead to behavior changes in cases where the input files do not conform to the current code page. In cases where this is a problem, consider converting the input files to UTF-8 (with BOM) and/or using the -cp:UTF-8 command-line parameter to avoid encoding ambiguity.

TraceLoggingProvider.h

  • Now avoids one-definition-rule (ODR) problems caused by conflicting configuration macros (e.g. when two .cpp files with conflicting definitions of TLG_EVENT_WRITE_TRANSFER are linked into the same binary, the TraceLoggingProvider.h helpers will now respect the definition of TLG_EVENT_WRITE_TRANSFER in each .cpp file instead of arbitrarily picking one or the other).
  • In C++ code, the TraceLoggingWrite macro has been updated to enable better code sharing between similar events using variadic templates.

Signing your apps with Device Guard Signing

Windows SDK Flight NuGet Feed

We have stood up a NuGet feed for the flighted builds of the SDK. You can now test preliminary builds of the Windows 10 WinRT API Pack, as well as a microsoft.windows.sdk.headless.contracts NuGet package. We use the following feed to flight our NuGet packages. Microsoft.Windows.SDK.Contracts which can be used with to add the latest Windows Runtime APIs support to your .NET Framework 4.5+ and .NET Core 3.0+ libraries and apps. The Windows 10 WinRT API Pack enables you to add the latest Windows Runtime APIs support to your .NET Framework 4.5+ and .NET Core 3.0+ libraries and apps. Microsoft.Windows.SDK.Headless.Contracts provides a subset of the Windows Runtime APIs for console apps excludes the APIs associated with a graphical user interface. This NuGet is used in conjunction with Windows ML container development. Check out the Getting Started guide for more information.

Breaking Changes

Removal of api-ms-win-net-isolation-l1-1-0.lib In this release api-ms-win-net-isolation-l1-1-0.lib has been removed from the Windows SDK. Apps that were linking against api-ms-win-net-isolation-l1-1-0.lib can switch to OneCoreUAP.lib as a replacement. Removal of IRPROPS.LIB In this release irprops.lib has been removed from the Windows SDK. Apps that were linking against irprops.lib can switch to bthprops.lib as a drop-in replacement. Removal of WUAPICommon.H and WUAPICommon.IDL In this release we have moved ENUM tagServerSelection from WUAPICommon.H to wupai.h and removed the header. If you would like to use the ENUM tagServerSelection, you will need to include wuapi.h or wuapi.idl.

API Updates, Additions and Removals

The following APIs have been added to the platform since the release of Windows 10 SDK, version 1903, build 18362.

Additions:

[code language="actionscript3"] namespace Windows.AI.MachineLearning { public sealed class LearningModelSessionOptions { bool CloseModelOnSessionCreation { get; set; } } } namespace Windows.ApplicationModel { public sealed class AppInfo { public static AppInfo Current { get; } Package Package { get; } public static AppInfo GetFromAppUserModelId(string appUserModelId); public static AppInfo GetFromAppUserModelIdForUser(User user, string appUserModelId); } public interface IAppInfoStatics public sealed class Package { StorageFolder EffectiveExternalLocation { get; } string EffectiveExternalPath { get; } string EffectivePath { get; } string InstalledPath { get; } bool IsStub { get; } StorageFolder MachineExternalLocation { get; } string MachineExternalPath { get; } string MutablePath { get; } StorageFolder UserExternalLocation { get; } string UserExternalPath { get; } IVectorView<AppListEntry> GetAppListEntries(); RandomAccessStreamReference GetLogoAsRandomAccessStreamReference(Size size); } } namespace Windows.ApplicationModel.AppService { public enum AppServiceConnectionStatus { AuthenticationError = 8, DisabledByPolicy = 10, NetworkNotAvailable = 9, WebServiceUnavailable = 11, } public enum AppServiceResponseStatus { AppUnavailable = 6, AuthenticationError = 7, DisabledByPolicy = 9, NetworkNotAvailable = 8, WebServiceUnavailable = 10, } public enum StatelessAppServiceResponseStatus { AuthenticationError = 11, DisabledByPolicy = 13, NetworkNotAvailable = 12, WebServiceUnavailable = 14, } } namespace Windows.ApplicationModel.Background { public sealed class BackgroundTaskBuilder { void SetTaskEntryPointClsid(Guid TaskEntryPoint); } public sealed class BluetoothLEAdvertisementPublisherTrigger : IBackgroundTrigger { bool IncludeTransmitPowerLevel { get; set; } bool IsAnonymous { get; set; } IReference<short> PreferredTransmitPowerLevelInDBm { get; set; } bool UseExtendedFormat { get; set; } } public sealed class BluetoothLEAdvertisementWatcherTrigger : IBackgroundTrigger { bool AllowExtendedAdvertisements { get; set; } } } namespace Windows.ApplicationModel.ConversationalAgent { public sealed class ActivationSignalDetectionConfiguration public enum ActivationSignalDetectionTrainingDataFormat public sealed class ActivationSignalDetector public enum ActivationSignalDetectorKind public enum ActivationSignalDetectorPowerState public sealed class ConversationalAgentDetectorManager public sealed class DetectionConfigurationAvailabilityChangedEventArgs public enum DetectionConfigurationAvailabilityChangeKind public sealed class DetectionConfigurationAvailabilityInfo public enum DetectionConfigurationTrainingStatus } namespace Windows.ApplicationModel.DataTransfer { public sealed class DataPackage { event TypedEventHandler<DataPackage, object> ShareCanceled; } } namespace Windows.Devices.Bluetooth { public sealed class BluetoothAdapter { bool IsExtendedAdvertisingSupported { get; } uint MaxAdvertisementDataLength { get; } } } namespace Windows.Devices.Bluetooth.Advertisement { public sealed class BluetoothLEAdvertisementPublisher { bool IncludeTransmitPowerLevel { get; set; } bool IsAnonymous { get; set; } IReference<short> PreferredTransmitPowerLevelInDBm { get; set; } bool UseExtendedAdvertisement { get; set; } } public sealed class BluetoothLEAdvertisementPublisherStatusChangedEventArgs { IReference<short> SelectedTransmitPowerLevelInDBm { get; } } public sealed class BluetoothLEAdvertisementReceivedEventArgs { BluetoothAddressType BluetoothAddressType { get; } bool IsAnonymous { get; } bool IsConnectable { get; } bool IsDirected { get; } bool IsScannable { get; } bool IsScanResponse { get; } IReference<short> TransmitPowerLevelInDBm { get; } } public enum BluetoothLEAdvertisementType { Extended = 5, } public sealed class BluetoothLEAdvertisementWatcher { bool AllowExtendedAdvertisements { get; set; } } public enum BluetoothLEScanningMode { None = 2, } } namespace Windows.Devices.Bluetooth.Background { public sealed class BluetoothLEAdvertisementPublisherTriggerDetails { IReference<short> SelectedTransmitPowerLevelInDBm { get; } } } namespace Windows.Devices.Display { public sealed class DisplayMonitor { bool IsDolbyVisionSupportedInHdrMode { get; } } } namespace Windows.Devices.Input { public sealed class PenButtonListener public sealed class PenDockedEventArgs public sealed class PenDockListener public sealed class PenTailButtonClickedEventArgs public sealed class PenTailButtonDoubleClickedEventArgs public sealed class PenTailButtonLongPressedEventArgs public sealed class PenUndockedEventArgs } namespace Windows.Devices.Sensors { public sealed class Accelerometer { AccelerometerDataThreshold ReportThreshold { get; } } public sealed class AccelerometerDataThreshold public sealed class Barometer { BarometerDataThreshold ReportThreshold { get; } } public sealed class BarometerDataThreshold public sealed class Compass { CompassDataThreshold ReportThreshold { get; } } public sealed class CompassDataThreshold public sealed class Gyrometer { GyrometerDataThreshold ReportThreshold { get; } } public sealed class GyrometerDataThreshold public sealed class Inclinometer { InclinometerDataThreshold ReportThreshold { get; } } public sealed class InclinometerDataThreshold public sealed class LightSensor { LightSensorDataThreshold ReportThreshold { get; } } public sealed class LightSensorDataThreshold public sealed class Magnetometer { MagnetometerDataThreshold ReportThreshold { get; } } public sealed class MagnetometerDataThreshold } namespace Windows.Foundation.Metadata { public sealed class AttributeNameAttribute : Attribute public sealed class FastAbiAttribute : Attribute public sealed class NoExceptionAttribute : Attribute } namespace Windows.Globalization { public sealed class Language { string AbbreviatedName { get; } public static IVector<string> GetMuiCompatibleLanguageListFromLanguageTags(IIterable<string> languageTags); } } namespace Windows.Graphics.Capture { public sealed class GraphicsCaptureSession : IClosable { bool IsCursorCaptureEnabled { get; set; } } } namespace Windows.Graphics.DirectX { public enum DirectXPixelFormat { SamplerFeedbackMinMipOpaque = 189, SamplerFeedbackMipRegionUsedOpaque = 190, } } namespace Windows.Graphics.Holographic { public sealed class HolographicFrame { HolographicFrameId Id { get; } } public struct HolographicFrameId public sealed class HolographicFrameRenderingReport public sealed class HolographicFrameScanoutMonitor : IClosable public sealed class HolographicFrameScanoutReport public sealed class HolographicSpace { HolographicFrameScanoutMonitor CreateFrameScanoutMonitor(uint maxQueuedReports); } } namespace Windows.Management.Deployment { public sealed class AddPackageOptions public enum DeploymentOptions : uint { StageInPlace = (uint)4194304, } public sealed class PackageManager { IAsyncOperationWithProgress<DeploymentResult, DeploymentProgress> AddPackageByUriAsync(Uri packageUri, AddPackageOptions options); IVector<Package> FindProvisionedPackages(); PackageStubPreference GetPackageStubPreference(string packageFamilyName); IAsyncOperationWithProgress<DeploymentResult, DeploymentProgress> RegisterPackageByUriAsync(Uri manifestUri, RegisterPackageOptions options); IAsyncOperationWithProgress<DeploymentResult, DeploymentProgress> RegisterPackagesByFullNameAsync(IIterable<string> packageFullNames, RegisterPackageOptions options); void SetPackageStubPreference(string packageFamilyName, PackageStubPreference useStub); IAsyncOperationWithProgress<DeploymentResult, DeploymentProgress> StagePackageByUriAsync(Uri packageUri, StagePackageOptions options); } public enum PackageStubPreference public enum PackageTypes : uint { All = (uint)4294967295, } public sealed class RegisterPackageOptions public enum RemovalOptions : uint { PreserveRoamableApplicationData = (uint)128, } public sealed class StagePackageOptions public enum StubPackageOption } namespace Windows.Media.Audio { public sealed class AudioPlaybackConnection : IClosable public sealed class AudioPlaybackConnectionOpenResult public enum AudioPlaybackConnectionOpenResultStatus public enum AudioPlaybackConnectionState } namespace Windows.Media.Capture { public sealed class MediaCapture : IClosable { MediaCaptureRelativePanelWatcher CreateRelativePanelWatcher(StreamingCaptureMode captureMode, DisplayRegion displayRegion); } public sealed class MediaCaptureInitializationSettings { Uri DeviceUri { get; set; } PasswordCredential DeviceUriPasswordCredential { get; set; } } public sealed class MediaCaptureRelativePanelWatcher : IClosable } namespace Windows.Media.Capture.Frames { public sealed class MediaFrameSourceInfo { Panel GetRelativePanel(DisplayRegion displayRegion); } } namespace Windows.Media.Devices { public sealed class PanelBasedOptimizationControl public sealed class VideoDeviceController : IMediaDeviceController { PanelBasedOptimizationControl PanelBasedOptimizationControl { get; } } } namespace Windows.Media.MediaProperties { public static class MediaEncodingSubtypes { public static string Pgs { get; } public static string Srt { get; } public static string Ssa { get; } public static string VobSub { get; } } public sealed class TimedMetadataEncodingProperties : IMediaEncodingProperties { public static TimedMetadataEncodingProperties CreatePgs(); public static TimedMetadataEncodingProperties CreateSrt(); public static TimedMetadataEncodingProperties CreateSsa(byte[] formatUserData); public static TimedMetadataEncodingProperties CreateVobSub(byte[] formatUserData); } } namespace Windows.Networking.BackgroundTransfer { public sealed class DownloadOperation : IBackgroundTransferOperation, IBackgroundTransferOperationPriority { void RemoveRequestHeader(string headerName); void SetRequestHeader(string headerName, string headerValue); } public sealed class UploadOperation : IBackgroundTransferOperation, IBackgroundTransferOperationPriority { void RemoveRequestHeader(string headerName); void SetRequestHeader(string headerName, string headerValue); } } namespace Windows.Networking.Connectivity { public enum NetworkAuthenticationType { Owe = 12, } } namespace Windows.Networking.NetworkOperators { public sealed class NetworkOperatorTetheringAccessPointConfiguration { TetheringWiFiBand Band { get; set; } bool IsBandSupported(TetheringWiFiBand band); IAsyncOperation<bool> IsBandSupportedAsync(TetheringWiFiBand band); } public sealed class NetworkOperatorTetheringManager { public static void DisableNoConnectionsTimeout(); public static IAsyncAction DisableNoConnectionsTimeoutAsync(); public static void EnableNoConnectionsTimeout(); public static IAsyncAction EnableNoConnectionsTimeoutAsync(); public static bool IsNoConnectionsTimeoutEnabled(); } public enum TetheringWiFiBand } namespace Windows.Networking.PushNotifications { public static class PushNotificationChannelManager { public static event EventHandler<PushNotificationChannelsRevokedEventArgs> ChannelsRevoked; } public sealed class PushNotificationChannelsRevokedEventArgs public sealed class RawNotification { IBuffer ContentBytes { get; } } } namespace Windows.Security.Authentication.Web.Core { public sealed class WebAccountMonitor { event TypedEventHandler<WebAccountMonitor, WebAccountEventArgs> AccountPictureUpdated; } } namespace Windows.Security.Isolation { public sealed class IsolatedWindowsEnvironment public enum IsolatedWindowsEnvironmentActivator public enum IsolatedWindowsEnvironmentAllowedClipboardFormats : uint public enum IsolatedWindowsEnvironmentAvailablePrinters : uint public enum IsolatedWindowsEnvironmentClipboardCopyPasteDirections : uint public struct IsolatedWindowsEnvironmentContract public struct IsolatedWindowsEnvironmentCreateProgress public sealed class IsolatedWindowsEnvironmentCreateResult public enum IsolatedWindowsEnvironmentCreateStatus public sealed class IsolatedWindowsEnvironmentFile public static class IsolatedWindowsEnvironmentHost public enum IsolatedWindowsEnvironmentHostError public sealed class IsolatedWindowsEnvironmentLaunchFileResult public enum IsolatedWindowsEnvironmentLaunchFileStatus public sealed class IsolatedWindowsEnvironmentOptions public static class IsolatedWindowsEnvironmentOwnerRegistration public sealed class IsolatedWindowsEnvironmentOwnerRegistrationData public sealed class IsolatedWindowsEnvironmentOwnerRegistrationResult public enum IsolatedWindowsEnvironmentOwnerRegistrationStatus public sealed class IsolatedWindowsEnvironmentProcess public enum IsolatedWindowsEnvironmentProcessState public enum IsolatedWindowsEnvironmentProgressState public sealed class IsolatedWindowsEnvironmentShareFolderRequestOptions public sealed class IsolatedWindowsEnvironmentShareFolderResult public enum IsolatedWindowsEnvironmentShareFolderStatus public sealed class IsolatedWindowsEnvironmentStartProcessResult public enum IsolatedWindowsEnvironmentStartProcessStatus public sealed class IsolatedWindowsEnvironmentTelemetryParameters public static class IsolatedWindowsHostMessenger public delegate void MessageReceivedCallback(Guid receiverId, IVectorView<object> message); } namespace Windows.Storage { public static class KnownFolders { public static IAsyncOperation<StorageFolder> GetFolderAsync(KnownFolderId folderId); public static IAsyncOperation<KnownFoldersAccessStatus> RequestAccessAsync(KnownFolderId folderId); public static IAsyncOperation<KnownFoldersAccessStatus> RequestAccessForUserAsync(User user, KnownFolderId folderId); } public enum KnownFoldersAccessStatus public sealed class StorageFile : IInputStreamReference, IRandomAccessStreamReference, IStorageFile, IStorageFile2, IStorageFilePropertiesWithAvailability, IStorageItem, IStorageItem2, IStorageItemProperties, IStorageItemProperties2, IStorageItemPropertiesWithProvider { public static IAsyncOperation<StorageFile> GetFileFromPathForUserAsync(User user, string path); } public sealed class StorageFolder : IStorageFolder, IStorageFolder2, IStorageFolderQueryOperations, IStorageItem, IStorageItem2, IStorageItemProperties, IStorageItemProperties2, IStorageItemPropertiesWithProvider { public static IAsyncOperation<StorageFolder> GetFolderFromPathForUserAsync(User user, string path); } } namespace Windows.Storage.Provider { public sealed class StorageProviderFileTypeInfo public sealed class StorageProviderSyncRootInfo { IVector<StorageProviderFileTypeInfo> FallbackFileTypeInfo { get; } } public static class StorageProviderSyncRootManager { public static bool IsSupported(); } } namespace Windows.System { public sealed class UserChangedEventArgs { IVectorView<UserWatcherUpdateKind> ChangedPropertyKinds { get; } } public enum UserWatcherUpdateKind } namespace Windows.UI.Composition.Interactions { public sealed class InteractionTracker : CompositionObject { int TryUpdatePosition(Vector3 value, InteractionTrackerClampingOption option, InteractionTrackerPositionUpdateOption posUpdateOption); } public enum InteractionTrackerPositionUpdateOption } namespace Windows.UI.Input { public sealed class CrossSlidingEventArgs { uint ContactCount { get; } } public sealed class DraggingEventArgs { uint ContactCount { get; } } public sealed class GestureRecognizer { uint HoldMaxContactCount { get; set; } uint HoldMinContactCount { get; set; } float HoldRadius { get; set; } TimeSpan HoldStartDelay { get; set; } uint TapMaxContactCount { get; set; } uint TapMinContactCount { get; set; } uint TranslationMaxContactCount { get; set; } uint TranslationMinContactCount { get; set; } } public sealed class HoldingEventArgs { uint ContactCount { get; } uint CurrentContactCount { get; } } public sealed class ManipulationCompletedEventArgs { uint ContactCount { get; } uint CurrentContactCount { get; } } public sealed class ManipulationInertiaStartingEventArgs { uint ContactCount { get; } } public sealed class ManipulationStartedEventArgs { uint ContactCount { get; } } public sealed class ManipulationUpdatedEventArgs { uint ContactCount { get; } uint CurrentContactCount { get; } } public sealed class RightTappedEventArgs { uint ContactCount { get; } } public sealed class SystemButtonEventController : AttachableInputObject public sealed class SystemFunctionButtonEventArgs public sealed class SystemFunctionLockChangedEventArgs public sealed class SystemFunctionLockIndicatorChangedEventArgs public sealed class TappedEventArgs { uint ContactCount { get; } } } namespace Windows.UI.Input.Inking { public sealed class InkModelerAttributes { bool UseVelocityBasedPressure { get; set; } } } namespace Windows.UI.Text { public enum RichEditMathMode public sealed class RichEditTextDocument : ITextDocument { void GetMath(out string value); void SetMath(string value); void SetMathMode(RichEditMathMode mode); } } namespace Windows.UI.ViewManagement { public sealed class UISettings { event TypedEventHandler<UISettings, UISettingsAnimationsEnabledChangedEventArgs> AnimationsEnabledChanged; event TypedEventHandler<UISettings, UISettingsMessageDurationChangedEventArgs> MessageDurationChanged; } public sealed class UISettingsAnimationsEnabledChangedEventArgs public sealed class UISettingsMessageDurationChangedEventArgs } namespace Windows.UI.ViewManagement.Core { public sealed class CoreInputView { event TypedEventHandler<CoreInputView, CoreInputViewHidingEventArgs> PrimaryViewHiding; event TypedEventHandler<CoreInputView, CoreInputViewShowingEventArgs> PrimaryViewShowing; } public sealed class CoreInputViewHidingEventArgs public enum CoreInputViewKind { Symbols = 4, } public sealed class CoreInputViewShowingEventArgs public sealed class UISettingsController } [/code]Today, we released a new Windows 10 Preview Build of the SDK to be used in conjunction with Windows 10 Insider Preview (Build 19041 or greater). The Preview SDK Build 19041 contains bug fixes and under development changes to the API surface area. The Preview SDK can be downloaded from the developer section on Windows Insider. For feedback and updates to the known issues, please see the developer forum. For new developer feature requests, head over to our Windows Platform UserVoice.

Things to note:

  • This build works in conjunction with previously released SDKs and Visual Studio 2017 and 2019. You can install this SDK and still also continue to submit your apps that target Windows 10 build 1903 or earlier to the Microsoft Store.
  • The Windows SDK will now formally only be supported by Visual Studio 2017 and greater. You can download the Visual Studio 2019 here.
  • This build of the Windows SDK will install on released Windows builds and on Windows 10 Insider Preview builds.
  • In order to assist with script access to the SDK, the ISO will also be able to be accessed through the following static URL: https://software-download.microsoft.com/download/sg/Windows_InsiderPreview_SDK_en-us_19041_1.iso.

Tools Updates

Message Compiler (mc.exe)

  • Now detects the Unicode byte order mark (BOM) in .mc files. If the If the .mc file starts with a UTF-8 BOM, it will be read as a UTF-8 file. Otherwise, if it starts with a UTF-16LE BOM, it will be read as a UTF-16LE file. If the -u parameter was specified, it will be read as a UTF-16LE file. Otherwise, it will be read using the current code page (CP_ACP).
  • Now avoids one-definition-rule (ODR) problems in MC-generated C/C++ ETW helpers caused by conflicting configuration macros (e.g. when two .cpp files with conflicting definitions of MCGEN_EVENTWRITETRANSFER are linked into the same binary, the MC-generated ETW helpers will now respect the definition of MCGEN_EVENTWRITETRANSFER in each .cpp file instead of arbitrarily picking one or the other).

Windows Trace Preprocessor (tracewpp.exe)

  • Now supports Unicode input (.ini, .tpl, and source code) files. Input files starting with a UTF-8 or UTF-16 byte order mark (BOM) will be read as Unicode. Input files that do not start with a BOM will be read using the current code page (CP_ACP). For backwards-compatibility, if the -UnicodeIgnore command-line parameter is specified, files starting with a UTF-16 BOM will be treated as empty.
  • Now supports Unicode output (.tmh) files. By default, output files will be encoded using the current code page (CP_ACP). Use command-line parameters -cp:UTF-8 or -cp:UTF-16 to generate Unicode output files.
  • Behavior change: tracewpp now converts all input text to Unicode, performs processing in Unicode, and converts output text to the specified output encoding. Earlier versions of tracewpp avoided Unicode conversions and performed text processing assuming a single-byte character set. This may lead to behavior changes in cases where the input files do not conform to the current code page. In cases where this is a problem, consider converting the input files to UTF-8 (with BOM) and/or using the -cp:UTF-8 command-line parameter to avoid encoding ambiguity.

TraceLoggingProvider.h

  • Now avoids one-definition-rule (ODR) problems caused by conflicting configuration macros (e.g. when two .cpp files with conflicting definitions of TLG_EVENT_WRITE_TRANSFER are linked into the same binary, the TraceLoggingProvider.h helpers will now respect the definition of TLG_EVENT_WRITE_TRANSFER in each .cpp file instead of arbitrarily picking one or the other).
  • In C++ code, the TraceLoggingWrite macro has been updated to enable better code sharing between similar events using variadic templates.

Signing your apps with Device Guard Signing

Windows SDK Flight NuGet Feed

We have stood up a NuGet feed for the flighted builds of the SDK. You can now test preliminary builds of the Windows 10 WinRT API Pack, as well as a microsoft.windows.sdk.headless.contracts NuGet package. We use the following feed to flight our NuGet packages. Microsoft.Windows.SDK.Contracts which can be used with to add the latest Windows Runtime APIs support to your .NET Framework 4.5+ and .NET Core 3.0+ libraries and apps. The Windows 10 WinRT API Pack enables you to add the latest Windows Runtime APIs support to your .NET Framework 4.5+ and .NET Core 3.0+ libraries and apps. Microsoft.Windows.SDK.Headless.Contracts provides a subset of the Windows Runtime APIs for console apps excludes the APIs associated with a graphical user interface. This NuGet is used in conjunction with Windows ML container development. Check out the Getting Started guide for more information.

Breaking Changes

Removal of api-ms-win-net-isolation-l1-1-0.lib In this release api-ms-win-net-isolation-l1-1-0.lib has been removed from the Windows SDK. Apps that were linking against api-ms-win-net-isolation-l1-1-0.lib can switch to OneCoreUAP.lib as a replacement. Removal of IRPROPS.LIB In this release irprops.lib has been removed from the Windows SDK. Apps that were linking against irprops.lib can switch to bthprops.lib as a drop-in replacement. Removal of WUAPICommon.H and WUAPICommon.IDL In this release we have moved ENUM tagServerSelection from WUAPICommon.H to wupai.h and removed the header. If you would like to use the ENUM tagServerSelection, you will need to include wuapi.h or wuapi.idl.

API Updates, Additions and Removals

The following APIs have been added to the platform since the release of Windows 10 SDK, version 1903, build 18362.

Additions:

[code language="actionscript3"] namespace Windows.AI.MachineLearning { public sealed class LearningModelSessionOptions { bool CloseModelOnSessionCreation { get; set; } } } namespace Windows.ApplicationModel { public sealed class AppInfo { public static AppInfo Current { get; } Package Package { get; } public static AppInfo GetFromAppUserModelId(string appUserModelId); public static AppInfo GetFromAppUserModelIdForUser(User user, string appUserModelId); } public interface IAppInfoStatics public sealed class Package { StorageFolder EffectiveExternalLocation { get; } string EffectiveExternalPath { get; } string EffectivePath { get; } string InstalledPath { get; } bool IsStub { get; } StorageFolder MachineExternalLocation { get; } string MachineExternalPath { get; } string MutablePath { get; } StorageFolder UserExternalLocation { get; } string UserExternalPath { get; } IVectorView<AppListEntry> GetAppListEntries(); RandomAccessStreamReference GetLogoAsRandomAccessStreamReference(Size size); } } namespace Windows.ApplicationModel.AppService { public enum AppServiceConnectionStatus { AuthenticationError = 8, DisabledByPolicy = 10, NetworkNotAvailable = 9, WebServiceUnavailable = 11, } public enum AppServiceResponseStatus { AppUnavailable = 6, AuthenticationError = 7, DisabledByPolicy = 9, NetworkNotAvailable = 8, WebServiceUnavailable = 10, } public enum StatelessAppServiceResponseStatus { AuthenticationError = 11, DisabledByPolicy = 13, NetworkNotAvailable = 12, WebServiceUnavailable = 14, } } namespace Windows.ApplicationModel.Background { public sealed class BackgroundTaskBuilder { void SetTaskEntryPointClsid(Guid TaskEntryPoint); } public sealed class BluetoothLEAdvertisementPublisherTrigger : IBackgroundTrigger { bool IncludeTransmitPowerLevel { get; set; } bool IsAnonymous { get; set; } IReference<short> PreferredTransmitPowerLevelInDBm { get; set; } bool UseExtendedFormat { get; set; } } public sealed class BluetoothLEAdvertisementWatcherTrigger : IBackgroundTrigger { bool AllowExtendedAdvertisements { get; set; } } } namespace Windows.ApplicationModel.ConversationalAgent { public sealed class ActivationSignalDetectionConfiguration public enum ActivationSignalDetectionTrainingDataFormat public sealed class ActivationSignalDetector public enum ActivationSignalDetectorKind public enum ActivationSignalDetectorPowerState public sealed class ConversationalAgentDetectorManager public sealed class DetectionConfigurationAvailabilityChangedEventArgs public enum DetectionConfigurationAvailabilityChangeKind public sealed class DetectionConfigurationAvailabilityInfo public enum DetectionConfigurationTrainingStatus } namespace Windows.ApplicationModel.DataTransfer { public sealed class DataPackage { event TypedEventHandler<DataPackage, object> ShareCanceled; } } namespace Windows.Devices.Bluetooth { public sealed class BluetoothAdapter { bool IsExtendedAdvertisingSupported { get; } uint MaxAdvertisementDataLength { get; } } } namespace Windows.Devices.Bluetooth.Advertisement { public sealed class BluetoothLEAdvertisementPublisher { bool IncludeTransmitPowerLevel { get; set; } bool IsAnonymous { get; set; } IReference<short> PreferredTransmitPowerLevelInDBm { get; set; } bool UseExtendedAdvertisement { get; set; } } public sealed class BluetoothLEAdvertisementPublisherStatusChangedEventArgs { IReference<short> SelectedTransmitPowerLevelInDBm { get; } } public sealed class BluetoothLEAdvertisementReceivedEventArgs { BluetoothAddressType BluetoothAddressType { get; } bool IsAnonymous { get; } bool IsConnectable { get; } bool IsDirected { get; } bool IsScannable { get; } bool IsScanResponse { get; } IReference<short> TransmitPowerLevelInDBm { get; } } public enum BluetoothLEAdvertisementType { Extended = 5, } public sealed class BluetoothLEAdvertisementWatcher { bool AllowExtendedAdvertisements { get; set; } } public enum BluetoothLEScanningMode { None = 2, } } namespace Windows.Devices.Bluetooth.Background { public sealed class BluetoothLEAdvertisementPublisherTriggerDetails { IReference<short> SelectedTransmitPowerLevelInDBm { get; } } } namespace Windows.Devices.Display { public sealed class DisplayMonitor { bool IsDolbyVisionSupportedInHdrMode { get; } } } namespace Windows.Devices.Input { public sealed class PenButtonListener public sealed class PenDockedEventArgs public sealed class PenDockListener public sealed class PenTailButtonClickedEventArgs public sealed class PenTailButtonDoubleClickedEventArgs public sealed class PenTailButtonLongPressedEventArgs public sealed class PenUndockedEventArgs } namespace Windows.Devices.Sensors { public sealed class Accelerometer { AccelerometerDataThreshold ReportThreshold { get; } } public sealed class AccelerometerDataThreshold public sealed class Barometer { BarometerDataThreshold ReportThreshold { get; } } public sealed class BarometerDataThreshold public sealed class Compass { CompassDataThreshold ReportThreshold { get; } } public sealed class CompassDataThreshold public sealed class Gyrometer { GyrometerDataThreshold ReportThreshold { get; } } public sealed class GyrometerDataThreshold public sealed class Inclinometer { InclinometerDataThreshold ReportThreshold { get; } } public sealed class InclinometerDataThreshold public sealed class LightSensor { LightSensorDataThreshold ReportThreshold { get; } } public sealed class LightSensorDataThreshold public sealed class Magnetometer { MagnetometerDataThreshold ReportThreshold { get; } } public sealed class MagnetometerDataThreshold } namespace Windows.Foundation.Metadata { public sealed class AttributeNameAttribute : Attribute public sealed class FastAbiAttribute : Attribute public sealed class NoExceptionAttribute : Attribute } namespace Windows.Globalization { public sealed class Language { string AbbreviatedName { get; } public static IVector<string> GetMuiCompatibleLanguageListFromLanguageTags(IIterable<string> languageTags); } } namespace Windows.Graphics.Capture { public sealed class GraphicsCaptureSession : IClosable { bool IsCursorCaptureEnabled { get; set; } } } namespace Windows.Graphics.DirectX { public enum DirectXPixelFormat { SamplerFeedbackMinMipOpaque = 189, SamplerFeedbackMipRegionUsedOpaque = 190, } } namespace Windows.Graphics.Holographic { public sealed class HolographicFrame { HolographicFrameId Id { get; } } public struct HolographicFrameId public sealed class HolographicFrameRenderingReport public sealed class HolographicFrameScanoutMonitor : IClosable public sealed class HolographicFrameScanoutReport public sealed class HolographicSpace { HolographicFrameScanoutMonitor CreateFrameScanoutMonitor(uint maxQueuedReports); } } namespace Windows.Management.Deployment { public sealed class AddPackageOptions public enum DeploymentOptions : uint { StageInPlace = (uint)4194304, } public sealed class PackageManager { IAsyncOperationWithProgress<DeploymentResult, DeploymentProgress> AddPackageByUriAsync(Uri packageUri, AddPackageOptions options); IVector<Package> FindProvisionedPackages(); PackageStubPreference GetPackageStubPreference(string packageFamilyName); IAsyncOperationWithProgress<DeploymentResult, DeploymentProgress> RegisterPackageByUriAsync(Uri manifestUri, RegisterPackageOptions options); IAsyncOperationWithProgress<DeploymentResult, DeploymentProgress> RegisterPackagesByFullNameAsync(IIterable<string> packageFullNames, RegisterPackageOptions options); void SetPackageStubPreference(string packageFamilyName, PackageStubPreference useStub); IAsyncOperationWithProgress<DeploymentResult, DeploymentProgress> StagePackageByUriAsync(Uri packageUri, StagePackageOptions options); } public enum PackageStubPreference public enum PackageTypes : uint { All = (uint)4294967295, } public sealed class RegisterPackageOptions public enum RemovalOptions : uint { PreserveRoamableApplicationData = (uint)128, } public sealed class StagePackageOptions public enum StubPackageOption } namespace Windows.Media.Audio { public sealed class AudioPlaybackConnection : IClosable public sealed class AudioPlaybackConnectionOpenResult public enum AudioPlaybackConnectionOpenResultStatus public enum AudioPlaybackConnectionState } namespace Windows.Media.Capture { public sealed class MediaCapture : IClosable { MediaCaptureRelativePanelWatcher CreateRelativePanelWatcher(StreamingCaptureMode captureMode, DisplayRegion displayRegion); } public sealed class MediaCaptureInitializationSettings { Uri DeviceUri { get; set; } PasswordCredential DeviceUriPasswordCredential { get; set; } } public sealed class MediaCaptureRelativePanelWatcher : IClosable } namespace Windows.Media.Capture.Frames { public sealed class MediaFrameSourceInfo { Panel GetRelativePanel(DisplayRegion displayRegion); } } namespace Windows.Media.Devices { public sealed class PanelBasedOptimizationControl public sealed class VideoDeviceController : IMediaDeviceController { PanelBasedOptimizationControl PanelBasedOptimizationControl { get; } } } namespace Windows.Media.MediaProperties { public static class MediaEncodingSubtypes { public static string Pgs { get; } public static string Srt { get; } public static string Ssa { get; } public static string VobSub { get; } } public sealed class TimedMetadataEncodingProperties : IMediaEncodingProperties { public static TimedMetadataEncodingProperties CreatePgs(); public static TimedMetadataEncodingProperties CreateSrt(); public static TimedMetadataEncodingProperties CreateSsa(byte[] formatUserData); public static TimedMetadataEncodingProperties CreateVobSub(byte[] formatUserData); } } namespace Windows.Networking.BackgroundTransfer { public sealed class DownloadOperation : IBackgroundTransferOperation, IBackgroundTransferOperationPriority { void RemoveRequestHeader(string headerName); void SetRequestHeader(string headerName, string headerValue); } public sealed class UploadOperation : IBackgroundTransferOperation, IBackgroundTransferOperationPriority { void RemoveRequestHeader(string headerName); void SetRequestHeader(string headerName, string headerValue); } } namespace Windows.Networking.Connectivity { public enum NetworkAuthenticationType { Owe = 12, } } namespace Windows.Networking.NetworkOperators { public sealed class NetworkOperatorTetheringAccessPointConfiguration { TetheringWiFiBand Band { get; set; } bool IsBandSupported(TetheringWiFiBand band); IAsyncOperation<bool> IsBandSupportedAsync(TetheringWiFiBand band); } public sealed class NetworkOperatorTetheringManager { public static void DisableNoConnectionsTimeout(); public static IAsyncAction DisableNoConnectionsTimeoutAsync(); public static void EnableNoConnectionsTimeout(); public static IAsyncAction EnableNoConnectionsTimeoutAsync(); public static bool IsNoConnectionsTimeoutEnabled(); } public enum TetheringWiFiBand } namespace Windows.Networking.PushNotifications { public static class PushNotificationChannelManager { public static event EventHandler<PushNotificationChannelsRevokedEventArgs> ChannelsRevoked; } public sealed class PushNotificationChannelsRevokedEventArgs public sealed class RawNotification { IBuffer ContentBytes { get; } } } namespace Windows.Security.Authentication.Web.Core { public sealed class WebAccountMonitor { event TypedEventHandler<WebAccountMonitor, WebAccountEventArgs> AccountPictureUpdated; } } namespace Windows.Security.Isolation { public sealed class IsolatedWindowsEnvironment public enum IsolatedWindowsEnvironmentActivator public enum IsolatedWindowsEnvironmentAllowedClipboardFormats : uint public enum IsolatedWindowsEnvironmentAvailablePrinters : uint public enum IsolatedWindowsEnvironmentClipboardCopyPasteDirections : uint public struct IsolatedWindowsEnvironmentContract public struct IsolatedWindowsEnvironmentCreateProgress public sealed class IsolatedWindowsEnvironmentCreateResult public enum IsolatedWindowsEnvironmentCreateStatus public sealed class IsolatedWindowsEnvironmentFile public static class IsolatedWindowsEnvironmentHost public enum IsolatedWindowsEnvironmentHostError public sealed class IsolatedWindowsEnvironmentLaunchFileResult public enum IsolatedWindowsEnvironmentLaunchFileStatus public sealed class IsolatedWindowsEnvironmentOptions public static class IsolatedWindowsEnvironmentOwnerRegistration public sealed class IsolatedWindowsEnvironmentOwnerRegistrationData public sealed class IsolatedWindowsEnvironmentOwnerRegistrationResult public enum IsolatedWindowsEnvironmentOwnerRegistrationStatus public sealed class IsolatedWindowsEnvironmentProcess public enum IsolatedWindowsEnvironmentProcessState public enum IsolatedWindowsEnvironmentProgressState public sealed class IsolatedWindowsEnvironmentShareFolderRequestOptions public sealed class IsolatedWindowsEnvironmentShareFolderResult public enum IsolatedWindowsEnvironmentShareFolderStatus public sealed class IsolatedWindowsEnvironmentStartProcessResult public enum IsolatedWindowsEnvironmentStartProcessStatus public sealed class IsolatedWindowsEnvironmentTelemetryParameters public static class IsolatedWindowsHostMessenger public delegate void MessageReceivedCallback(Guid receiverId, IVectorView<object> message); } namespace Windows.Storage { public static class KnownFolders { public static IAsyncOperation<StorageFolder> GetFolderAsync(KnownFolderId folderId); public static IAsyncOperation<KnownFoldersAccessStatus> RequestAccessAsync(KnownFolderId folderId); public static IAsyncOperation<KnownFoldersAccessStatus> RequestAccessForUserAsync(User user, KnownFolderId folderId); } public enum KnownFoldersAccessStatus public sealed class StorageFile : IInputStreamReference, IRandomAccessStreamReference, IStorageFile, IStorageFile2, IStorageFilePropertiesWithAvailability, IStorageItem, IStorageItem2, IStorageItemProperties, IStorageItemProperties2, IStorageItemPropertiesWithProvider { public static IAsyncOperation<StorageFile> GetFileFromPathForUserAsync(User user, string path); } public sealed class StorageFolder : IStorageFolder, IStorageFolder2, IStorageFolderQueryOperations, IStorageItem, IStorageItem2, IStorageItemProperties, IStorageItemProperties2, IStorageItemPropertiesWithProvider { public static IAsyncOperation<StorageFolder> GetFolderFromPathForUserAsync(User user, string path); } } namespace Windows.Storage.Provider { public sealed class StorageProviderFileTypeInfo public sealed class StorageProviderSyncRootInfo { IVector<StorageProviderFileTypeInfo> FallbackFileTypeInfo { get; } } public static class StorageProviderSyncRootManager { public static bool IsSupported(); } } namespace Windows.System { public sealed class UserChangedEventArgs { IVectorView<UserWatcherUpdateKind> ChangedPropertyKinds { get; } } public enum UserWatcherUpdateKind } namespace Windows.UI.Composition.Interactions { public sealed class InteractionTracker : CompositionObject { int TryUpdatePosition(Vector3 value, InteractionTrackerClampingOption option, InteractionTrackerPositionUpdateOption posUpdateOption); } public enum InteractionTrackerPositionUpdateOption } namespace Windows.UI.Input { public sealed class CrossSlidingEventArgs { uint ContactCount { get; } } public sealed class DraggingEventArgs { uint ContactCount { get; } } public sealed class GestureRecognizer { uint HoldMaxContactCount { get; set; } uint HoldMinContactCount { get; set; } float HoldRadius { get; set; } TimeSpan HoldStartDelay { get; set; } uint TapMaxContactCount { get; set; } uint TapMinContactCount { get; set; } uint TranslationMaxContactCount { get; set; } uint TranslationMinContactCount { get; set; } } public sealed class HoldingEventArgs { uint ContactCount { get; } uint CurrentContactCount { get; } } public sealed class ManipulationCompletedEventArgs { uint ContactCount { get; } uint CurrentContactCount { get; } } public sealed class ManipulationInertiaStartingEventArgs { uint ContactCount { get; } } public sealed class ManipulationStartedEventArgs { uint ContactCount { get; } } public sealed class ManipulationUpdatedEventArgs { uint ContactCount { get; } uint CurrentContactCount { get; } } public sealed class RightTappedEventArgs { uint ContactCount { get; } } public sealed class SystemButtonEventController : AttachableInputObject public sealed class SystemFunctionButtonEventArgs public sealed class SystemFunctionLockChangedEventArgs public sealed class SystemFunctionLockIndicatorChangedEventArgs public sealed class TappedEventArgs { uint ContactCount { get; } } } namespace Windows.UI.Input.Inking { public sealed class InkModelerAttributes { bool UseVelocityBasedPressure { get; set; } } } namespace Windows.UI.Text { public enum RichEditMathMode public sealed class RichEditTextDocument : ITextDocument { void GetMath(out string value); void SetMath(string value); void SetMathMode(RichEditMathMode mode); } } namespace Windows.UI.ViewManagement { public sealed class UISettings { event TypedEventHandler<UISettings, UISettingsAnimationsEnabledChangedEventArgs> AnimationsEnabledChanged; event TypedEventHandler<UISettings, UISettingsMessageDurationChangedEventArgs> MessageDurationChanged; } public sealed class UISettingsAnimationsEnabledChangedEventArgs public sealed class UISettingsMessageDurationChangedEventArgs } namespace Windows.UI.ViewManagement.Core { public sealed class CoreInputView { event TypedEventHandler<CoreInputView, CoreInputViewHidingEventArgs> PrimaryViewHiding; event TypedEventHandler<CoreInputView, CoreInputViewShowingEventArgs> PrimaryViewShowing; } public sealed class CoreInputViewHidingEventArgs public enum CoreInputViewKind { Symbols = 4, } public sealed class CoreInputViewShowingEventArgs public sealed class UISettingsController } [/code]]]>
Windows 10 SDK Preview Build 19035 available now! https://blogs.windows.com/windowsdeveloper/2019/12/10/windows-10-sdk-preview-build-19035-available-now/ Tue, 10 Dec 2019 18:58:37 +0000 https://blogs.windows.com/windowsdeveloper/?p=55613 Today, we released a new Windows 10 Preview Build of the SDK to be used in conjunction with Windows 10 Insider Preview (Build 19035 or greater). The Preview SDK Build 19035 contains bug fixes and under development changes to the API surface area. The Preview SDK can be downloaded from developer section on Windows Insider. For feedback and […]

The post Windows 10 SDK Preview Build 19035 available now! appeared first on Windows Developer Blog.

]]>
Windows 10 Insider Preview (Build 19035 or greater). The Preview SDK Build 19035 contains bug fixes and under development changes to the API surface area. The Preview SDK can be downloaded from developer section on Windows Insider. For feedback and updates to the known issues, please see the developer forum. For new developer feature requests, head over to our Windows Platform UserVoice.

Things to note:

  • This build works in conjunction with previously released SDKs and Visual Studio 2017 and 2019. You can install this SDK and still also continue to submit your apps that target Windows 10 build 1903 or earlier to the Microsoft Store.
  • The Windows SDK will now formally only be supported by Visual Studio 2017 and greater. You can download the Visual Studio 2019 here.
  • This build of the Windows SDK will install on only on Windows 10 Insider Preview builds.
  • In order to assist with script access to the SDK, the ISO will also be able to be accessed through the following static URL: https://software-download.microsoft.com/download/sg/Windows_InsiderPreview_SDK_en-us_19035_1.iso.

Tools Updates

Message Compiler (mc.exe)

  • Now detects the Unicode byte order mark (BOM) in .mc files. If the If the .mc file starts with a UTF-8 BOM, it will be read as a UTF-8 file. Otherwise, if it starts with a UTF-16LE BOM, it will be read as a UTF-16LE file. If the -u parameter was specified, it will be read as a UTF-16LE file. Otherwise, it will be read using the current code page (CP_ACP).
  • Now avoids one-definition-rule (ODR) problems in MC-generated C/C++ ETW helpers caused by conflicting configuration macros (e.g. when two .cpp files with conflicting definitions of MCGEN_EVENTWRITETRANSFER are linked into the same binary, the MC-generated ETW helpers will now respect the definition of MCGEN_EVENTWRITETRANSFER in each .cpp file instead of arbitrarily picking one or the other).

Windows Trace Preprocessor (tracewpp.exe)

  • Now supports Unicode input (.ini, .tpl, and source code) files. Input files starting with a UTF-8 or UTF-16 byte order mark (BOM) will be read as Unicode. Input files that do not start with a BOM will be read using the current code page (CP_ACP). For backwards-compatibility, if the -UnicodeIgnore command-line parameter is specified, files starting with a UTF-16 BOM will be treated as empty.
  • Now supports Unicode output (.tmh) files. By default, output files will be encoded using the current code page (CP_ACP). Use command-line parameters -cp:UTF-8 or -cp:UTF-16 to generate Unicode output files.
  • Behavior change: tracewpp now converts all input text to Unicode, performs processing in Unicode, and converts output text to the specified output encoding. Earlier versions of tracewpp avoided Unicode conversions and performed text processing assuming a single-byte character set. This may lead to behavior changes in cases where the input files do not conform to the current code page. In cases where this is a problem, consider converting the input files to UTF-8 (with BOM) and/or using the -cp:UTF-8 command-line parameter to avoid encoding ambiguity.

TraceLoggingProvider.h

  • Now avoids one-definition-rule (ODR) problems caused by conflicting configuration macros (e.g. when two .cpp files with conflicting definitions of TLG_EVENT_WRITE_TRANSFER are linked into the same binary, the TraceLoggingProvider.h helpers will now respect the definition of TLG_EVENT_WRITE_TRANSFER in each .cpp file instead of arbitrarily picking one or the other).
  • In C++ code, the TraceLoggingWrite macro has been updated to enable better code sharing between similar events using variadic templates.

Signing your apps with Device Guard Signing

Windows SDK Flight NuGet Feed

We have stood up a NuGet feed for the flighted builds of the SDK. You can now test preliminary builds of the Windows 10 WinRT API Pack, as well as a microsoft.windows.sdk.headless.contracts NuGet package. We use the following feed to flight our NuGet packages. Microsoft.Windows.SDK.Contracts which can be used with to add the latest Windows Runtime APIs support to your .NET Framework 4.5+ and .NET Core 3.0+ libraries and apps. The Windows 10 WinRT API Pack enables you to add the latest Windows Runtime APIs support to your .NET Framework 4.5+ and .NET Core 3.0+ libraries and apps. Microsoft.Windows.SDK.Headless.Contracts provides a subset of the Windows Runtime APIs for console apps excludes the APIs associated with a graphical user interface. This NuGet is used in conjunction with Windows ML container development. Check out the Getting Started guide for more information.

Breaking Changes

Removal of api-ms-win-net-isolation-l1-1-0.lib

In this release api-ms-win-net-isolation-l1-1-0.lib has been removed from the Windows SDK. Apps that were linking against api-ms-win-net-isolation-l1-1-0.lib can switch to OneCoreUAP.lib as a replacement.

Removal of IRPROPS.LIB

In this release irprops.lib has been removed from the Windows SDK. Apps that were linking against irprops.lib can switch to bthprops.lib as a drop-in replacement.

Removal of WUAPICommon.H and WUAPICommon.IDL

In this release we have moved ENUM tagServerSelection from WUAPICommon.H to wupai.h and removed the header. If you would like to use the ENUM tagServerSelection, you will need to include wuapi.h or wuapi.idl.

API Updates, Additions and Removals

The following APIs have been added to the platform since the release of Windows 10 SDK, version 1903, build 18362.

Additions:

[code lang="csharp"] namespace Windows.AI.MachineLearning { public sealed class LearningModelSessionOptions { bool CloseModelOnSessionCreation { get; set; } } } namespace Windows.ApplicationModel { public sealed class AppInfo { public static AppInfo Current { get; } Package Package { get; } public static AppInfo GetFromAppUserModelId(string appUserModelId); public static AppInfo GetFromAppUserModelIdForUser(User user, string appUserModelId); } public interface IAppInfoStatics public sealed class Package { StorageFolder EffectiveExternalLocation { get; } string EffectiveExternalPath { get; } string EffectivePath { get; } string InstalledPath { get; } bool IsStub { get; } StorageFolder MachineExternalLocation { get; } string MachineExternalPath { get; } string MutablePath { get; } StorageFolder UserExternalLocation { get; } string UserExternalPath { get; } IVectorView<AppListEntry> GetAppListEntries(); RandomAccessStreamReference GetLogoAsRandomAccessStreamReference(Size size); } } namespace Windows.ApplicationModel.AppService { public enum AppServiceConnectionStatus { AuthenticationError = 8, DisabledByPolicy = 10, NetworkNotAvailable = 9, WebServiceUnavailable = 11, } public enum AppServiceResponseStatus { AppUnavailable = 6, AuthenticationError = 7, DisabledByPolicy = 9, NetworkNotAvailable = 8, WebServiceUnavailable = 10, } public enum StatelessAppServiceResponseStatus { AuthenticationError = 11, DisabledByPolicy = 13, NetworkNotAvailable = 12, WebServiceUnavailable = 14, } } namespace Windows.ApplicationModel.Background { public sealed class BackgroundTaskBuilder { void SetTaskEntryPointClsid(Guid TaskEntryPoint); } public sealed class BluetoothLEAdvertisementPublisherTrigger : IBackgroundTrigger { bool IncludeTransmitPowerLevel { get; set; } bool IsAnonymous { get; set; } IReference<short> PreferredTransmitPowerLevelInDBm { get; set; } bool UseExtendedFormat { get; set; } } public sealed class BluetoothLEAdvertisementWatcherTrigger : IBackgroundTrigger { bool AllowExtendedAdvertisements { get; set; } } } namespace Windows.ApplicationModel.ConversationalAgent { public sealed class ActivationSignalDetectionConfiguration public enum ActivationSignalDetectionTrainingDataFormat public sealed class ActivationSignalDetector public enum ActivationSignalDetectorKind public enum ActivationSignalDetectorPowerState public sealed class ConversationalAgentDetectorManager public sealed class DetectionConfigurationAvailabilityChangedEventArgs public enum DetectionConfigurationAvailabilityChangeKind public sealed class DetectionConfigurationAvailabilityInfo public enum DetectionConfigurationTrainingStatus } namespace Windows.ApplicationModel.DataTransfer { public sealed class DataPackage { event TypedEventHandler<DataPackage, object> ShareCanceled; } } namespace Windows.Devices.Bluetooth { public sealed class BluetoothAdapter { bool IsExtendedAdvertisingSupported { get; } uint MaxAdvertisementDataLength { get; } } } namespace Windows.Devices.Bluetooth.Advertisement { public sealed class BluetoothLEAdvertisementPublisher { bool IncludeTransmitPowerLevel { get; set; } bool IsAnonymous { get; set; } IReference<short> PreferredTransmitPowerLevelInDBm { get; set; } bool UseExtendedAdvertisement { get; set; } } public sealed class BluetoothLEAdvertisementPublisherStatusChangedEventArgs { IReference<short> SelectedTransmitPowerLevelInDBm { get; } } public sealed class BluetoothLEAdvertisementReceivedEventArgs { BluetoothAddressType BluetoothAddressType { get; } bool IsAnonymous { get; } bool IsConnectable { get; } bool IsDirected { get; } bool IsScannable { get; } bool IsScanResponse { get; } IReference<short> TransmitPowerLevelInDBm { get; } } public enum BluetoothLEAdvertisementType { Extended = 5, } public sealed class BluetoothLEAdvertisementWatcher { bool AllowExtendedAdvertisements { get; set; } } public enum BluetoothLEScanningMode { None = 2, } } namespace Windows.Devices.Bluetooth.Background { public sealed class BluetoothLEAdvertisementPublisherTriggerDetails { IReference<short> SelectedTransmitPowerLevelInDBm { get; } } } namespace Windows.Devices.Display { public sealed class DisplayMonitor { bool IsDolbyVisionSupportedInHdrMode { get; } } } namespace Windows.Devices.Input { public sealed class PenButtonListener public sealed class PenDockedEventArgs public sealed class PenDockListener public sealed class PenTailButtonClickedEventArgs public sealed class PenTailButtonDoubleClickedEventArgs public sealed class PenTailButtonLongPressedEventArgs public sealed class PenUndockedEventArgs } namespace Windows.Devices.Sensors { public sealed class Accelerometer { AccelerometerDataThreshold ReportThreshold { get; } } public sealed class AccelerometerDataThreshold public sealed class Barometer { BarometerDataThreshold ReportThreshold { get; } } public sealed class BarometerDataThreshold public sealed class Compass { CompassDataThreshold ReportThreshold { get; } } public sealed class CompassDataThreshold public sealed class Gyrometer { GyrometerDataThreshold ReportThreshold { get; } } public sealed class GyrometerDataThreshold public sealed class Inclinometer { InclinometerDataThreshold ReportThreshold { get; } } public sealed class InclinometerDataThreshold public sealed class LightSensor { LightSensorDataThreshold ReportThreshold { get; } } public sealed class LightSensorDataThreshold public sealed class Magnetometer { MagnetometerDataThreshold ReportThreshold { get; } } public sealed class MagnetometerDataThreshold } namespace Windows.Foundation.Metadata { public sealed class AttributeNameAttribute : Attribute public sealed class FastAbiAttribute : Attribute public sealed class NoExceptionAttribute : Attribute } namespace Windows.Globalization { public sealed class Language { string AbbreviatedName { get; } public static IVector<string> GetMuiCompatibleLanguageListFromLanguageTags(IIterable<string> languageTags); } } namespace Windows.Graphics.Capture { public sealed class GraphicsCaptureSession : IClosable { bool IsCursorCaptureEnabled { get; set; } } } namespace Windows.Graphics.DirectX { public enum DirectXPixelFormat { SamplerFeedbackMinMipOpaque = 189, SamplerFeedbackMipRegionUsedOpaque = 190, } } namespace Windows.Graphics.Holographic { public sealed class HolographicFrame { HolographicFrameId Id { get; } } public struct HolographicFrameId public sealed class HolographicFrameRenderingReport public sealed class HolographicFrameScanoutMonitor : IClosable public sealed class HolographicFrameScanoutReport public sealed class HolographicSpace { HolographicFrameScanoutMonitor CreateFrameScanoutMonitor(uint maxQueuedReports); } } namespace Windows.Management.Deployment { public sealed class AddPackageOptions public enum DeploymentOptions : uint { StageInPlace = (uint)4194304, } public sealed class PackageManager { IAsyncOperationWithProgress<DeploymentResult, DeploymentProgress> AddPackageByUriAsync(Uri packageUri, AddPackageOptions options); IVector<Package> FindProvisionedPackages(); PackageStubPreference GetPackageStubPreference(string packageFamilyName); IAsyncOperationWithProgress<DeploymentResult, DeploymentProgress> RegisterPackageByUriAsync(Uri manifestUri, RegisterPackageOptions options); IAsyncOperationWithProgress<DeploymentResult, DeploymentProgress> RegisterPackagesByFullNameAsync(IIterable<string> packageFullNames, RegisterPackageOptions options); void SetPackageStubPreference(string packageFamilyName, PackageStubPreference useStub); IAsyncOperationWithProgress<DeploymentResult, DeploymentProgress> StagePackageByUriAsync(Uri packageUri, StagePackageOptions options); } public enum PackageStubPreference public enum PackageTypes : uint { All = (uint)4294967295, } public sealed class RegisterPackageOptions public enum RemovalOptions : uint { PreserveRoamableApplicationData = (uint)128, } public sealed class StagePackageOptions public enum StubPackageOption } namespace Windows.Media.Audio { public sealed class AudioPlaybackConnection : IClosable public sealed class AudioPlaybackConnectionOpenResult public enum AudioPlaybackConnectionOpenResultStatus public enum AudioPlaybackConnectionState } namespace Windows.Media.Capture { public sealed class MediaCapture : IClosable { MediaCaptureRelativePanelWatcher CreateRelativePanelWatcher(StreamingCaptureMode captureMode, DisplayRegion displayRegion); } public sealed class MediaCaptureInitializationSettings { Uri DeviceUri { get; set; } PasswordCredential DeviceUriPasswordCredential { get; set; } } public sealed class MediaCaptureRelativePanelWatcher : IClosable } namespace Windows.Media.Capture.Frames { public sealed class MediaFrameSourceInfo { Panel GetRelativePanel(DisplayRegion displayRegion); } } namespace Windows.Media.Devices { public sealed class PanelBasedOptimizationControl public sealed class VideoDeviceController : IMediaDeviceController { PanelBasedOptimizationControl PanelBasedOptimizationControl { get; } } } namespace Windows.Media.MediaProperties { public static class MediaEncodingSubtypes { public static string Pgs { get; } public static string Srt { get; } public static string Ssa { get; } public static string VobSub { get; } } public sealed class TimedMetadataEncodingProperties : IMediaEncodingProperties { public static TimedMetadataEncodingProperties CreatePgs(); public static TimedMetadataEncodingProperties CreateSrt(); public static TimedMetadataEncodingProperties CreateSsa(byte[] formatUserData); public static TimedMetadataEncodingProperties CreateVobSub(byte[] formatUserData); } } namespace Windows.Networking.BackgroundTransfer { public sealed class DownloadOperation : IBackgroundTransferOperation, IBackgroundTransferOperationPriority { void RemoveRequestHeader(string headerName); void SetRequestHeader(string headerName, string headerValue); } public sealed class UploadOperation : IBackgroundTransferOperation, IBackgroundTransferOperationPriority { void RemoveRequestHeader(string headerName); void SetRequestHeader(string headerName, string headerValue); } } namespace Windows.Networking.Connectivity { public enum NetworkAuthenticationType { Owe = 12, } } namespace Windows.Networking.NetworkOperators { public sealed class NetworkOperatorTetheringAccessPointConfiguration { TetheringWiFiBand Band { get; set; } bool IsBandSupported(TetheringWiFiBand band); IAsyncOperation<bool> IsBandSupportedAsync(TetheringWiFiBand band); } public sealed class NetworkOperatorTetheringManager { public static void DisableNoConnectionsTimeout(); public static IAsyncAction DisableNoConnectionsTimeoutAsync(); public static void EnableNoConnectionsTimeout(); public static IAsyncAction EnableNoConnectionsTimeoutAsync(); public static bool IsNoConnectionsTimeoutEnabled(); } public enum TetheringWiFiBand } namespace Windows.Networking.PushNotifications { public static class PushNotificationChannelManager { public static event EventHandler<PushNotificationChannelsRevokedEventArgs> ChannelsRevoked; } public sealed class PushNotificationChannelsRevokedEventArgs public sealed class RawNotification { IBuffer ContentBytes { get; } } } namespace Windows.Security.Authentication.Web.Core { public sealed class WebAccountMonitor { event TypedEventHandler<WebAccountMonitor, WebAccountEventArgs> AccountPictureUpdated; } } namespace Windows.Security.Isolation { public sealed class IsolatedWindowsEnvironment public enum IsolatedWindowsEnvironmentActivator public enum IsolatedWindowsEnvironmentAllowedClipboardFormats : uint public enum IsolatedWindowsEnvironmentAvailablePrinters : uint public enum IsolatedWindowsEnvironmentClipboardCopyPasteDirections : uint public struct IsolatedWindowsEnvironmentContract public struct IsolatedWindowsEnvironmentCreateProgress public sealed class IsolatedWindowsEnvironmentCreateResult public enum IsolatedWindowsEnvironmentCreateStatus public sealed class IsolatedWindowsEnvironmentFile public static class IsolatedWindowsEnvironmentHost public enum IsolatedWindowsEnvironmentHostError public sealed class IsolatedWindowsEnvironmentLaunchFileResult public enum IsolatedWindowsEnvironmentLaunchFileStatus public sealed class IsolatedWindowsEnvironmentOptions public static class IsolatedWindowsEnvironmentOwnerRegistration public sealed class IsolatedWindowsEnvironmentOwnerRegistrationData public sealed class IsolatedWindowsEnvironmentOwnerRegistrationResult public enum IsolatedWindowsEnvironmentOwnerRegistrationStatus public sealed class IsolatedWindowsEnvironmentProcess public enum IsolatedWindowsEnvironmentProcessState public enum IsolatedWindowsEnvironmentProgressState public sealed class IsolatedWindowsEnvironmentShareFolderRequestOptions public sealed class IsolatedWindowsEnvironmentShareFolderResult public enum IsolatedWindowsEnvironmentShareFolderStatus public sealed class IsolatedWindowsEnvironmentStartProcessResult public enum IsolatedWindowsEnvironmentStartProcessStatus public sealed class IsolatedWindowsEnvironmentTelemetryParameters public static class IsolatedWindowsHostMessenger public delegate void MessageReceivedCallback(Guid receiverId, IVectorView<object> message); } namespace Windows.Storage { public static class KnownFolders { public static IAsyncOperation<StorageFolder> GetFolderAsync(KnownFolderId folderId); public static IAsyncOperation<KnownFoldersAccessStatus> RequestAccessAsync(KnownFolderId folderId); public static IAsyncOperation<KnownFoldersAccessStatus> RequestAccessForUserAsync(User user, KnownFolderId folderId); } public enum KnownFoldersAccessStatus public sealed class StorageFile : IInputStreamReference, IRandomAccessStreamReference, IStorageFile, IStorageFile2, IStorageFilePropertiesWithAvailability, IStorageItem, IStorageItem2, IStorageItemProperties, IStorageItemProperties2, IStorageItemPropertiesWithProvider { public static IAsyncOperation<StorageFile> GetFileFromPathForUserAsync(User user, string path); } public sealed class StorageFolder : IStorageFolder, IStorageFolder2, IStorageFolderQueryOperations, IStorageItem, IStorageItem2, IStorageItemProperties, IStorageItemProperties2, IStorageItemPropertiesWithProvider { public static IAsyncOperation<StorageFolder> GetFolderFromPathForUserAsync(User user, string path); } } namespace Windows.Storage.Provider { public sealed class StorageProviderFileTypeInfo public sealed class StorageProviderSyncRootInfo { IVector<StorageProviderFileTypeInfo> FallbackFileTypeInfo { get; } } public static class StorageProviderSyncRootManager { public static bool IsSupported(); } } namespace Windows.System { public sealed class UserChangedEventArgs { IVectorView<UserWatcherUpdateKind> ChangedPropertyKinds { get; } } public enum UserWatcherUpdateKind } namespace Windows.UI.Composition.Interactions { public sealed class InteractionTracker : CompositionObject { int TryUpdatePosition(Vector3 value, InteractionTrackerClampingOption option, InteractionTrackerPositionUpdateOption posUpdateOption); } public enum InteractionTrackerPositionUpdateOption } namespace Windows.UI.Input { public sealed class CrossSlidingEventArgs { uint ContactCount { get; } } public sealed class DraggingEventArgs { uint ContactCount { get; } } public sealed class GestureRecognizer { uint HoldMaxContactCount { get; set; } uint HoldMinContactCount { get; set; } float HoldRadius { get; set; } TimeSpan HoldStartDelay { get; set; } uint TapMaxContactCount { get; set; } uint TapMinContactCount { get; set; } uint TranslationMaxContactCount { get; set; } uint TranslationMinContactCount { get; set; } } public sealed class HoldingEventArgs { uint ContactCount { get; } uint CurrentContactCount { get; } } public sealed class ManipulationCompletedEventArgs { uint ContactCount { get; } uint CurrentContactCount { get; } } public sealed class ManipulationInertiaStartingEventArgs { uint ContactCount { get; } } public sealed class ManipulationStartedEventArgs { uint ContactCount { get; } } public sealed class ManipulationUpdatedEventArgs { uint ContactCount { get; } uint CurrentContactCount { get; } } public sealed class RightTappedEventArgs { uint ContactCount { get; } } public sealed class SystemButtonEventController : AttachableInputObject public sealed class SystemFunctionButtonEventArgs public sealed class SystemFunctionLockChangedEventArgs public sealed class SystemFunctionLockIndicatorChangedEventArgs public sealed class TappedEventArgs { uint ContactCount { get; } } } namespace Windows.UI.Input.Inking { public sealed class InkModelerAttributes { bool UseVelocityBasedPressure { get; set; } } } namespace Windows.UI.Text { public enum RichEditMathMode public sealed class RichEditTextDocument : ITextDocument { void GetMath(out string value); void SetMath(string value); void SetMathMode(RichEditMathMode mode); } } namespace Windows.UI.ViewManagement { public sealed class UISettings { event TypedEventHandler<UISettings, UISettingsAnimationsEnabledChangedEventArgs> AnimationsEnabledChanged; event TypedEventHandler<UISettings, UISettingsMessageDurationChangedEventArgs> MessageDurationChanged; } public sealed class UISettingsAnimationsEnabledChangedEventArgs public sealed class UISettingsMessageDurationChangedEventArgs } namespace Windows.UI.ViewManagement.Core { public sealed class CoreInputView { event TypedEventHandler<CoreInputView, CoreInputViewHidingEventArgs> PrimaryViewHiding; event TypedEventHandler<CoreInputView, CoreInputViewShowingEventArgs> PrimaryViewShowing; } public sealed class CoreInputViewHidingEventArgs public enum CoreInputViewKind { Symbols = 4, } public sealed class CoreInputViewShowingEventArgs public sealed class UISettingsController } [/code] Today, we released a new Windows 10 Preview Build of the SDK to be used in conjunction with Windows 10 Insider Preview (Build 19035 or greater). The Preview SDK Build 19035 contains bug fixes and under development changes to the API surface area. The Preview SDK can be downloaded from developer section on Windows Insider. For feedback and updates to the known issues, please see the developer forum. For new developer feature requests, head over to our Windows Platform UserVoice.

Things to note:

  • This build works in conjunction with previously released SDKs and Visual Studio 2017 and 2019. You can install this SDK and still also continue to submit your apps that target Windows 10 build 1903 or earlier to the Microsoft Store.
  • The Windows SDK will now formally only be supported by Visual Studio 2017 and greater. You can download the Visual Studio 2019 here.
  • This build of the Windows SDK will install on only on Windows 10 Insider Preview builds.
  • In order to assist with script access to the SDK, the ISO will also be able to be accessed through the following static URL: https://software-download.microsoft.com/download/sg/Windows_InsiderPreview_SDK_en-us_19035_1.iso.

Tools Updates

Message Compiler (mc.exe)

  • Now detects the Unicode byte order mark (BOM) in .mc files. If the If the .mc file starts with a UTF-8 BOM, it will be read as a UTF-8 file. Otherwise, if it starts with a UTF-16LE BOM, it will be read as a UTF-16LE file. If the -u parameter was specified, it will be read as a UTF-16LE file. Otherwise, it will be read using the current code page (CP_ACP).
  • Now avoids one-definition-rule (ODR) problems in MC-generated C/C++ ETW helpers caused by conflicting configuration macros (e.g. when two .cpp files with conflicting definitions of MCGEN_EVENTWRITETRANSFER are linked into the same binary, the MC-generated ETW helpers will now respect the definition of MCGEN_EVENTWRITETRANSFER in each .cpp file instead of arbitrarily picking one or the other).

Windows Trace Preprocessor (tracewpp.exe)

  • Now supports Unicode input (.ini, .tpl, and source code) files. Input files starting with a UTF-8 or UTF-16 byte order mark (BOM) will be read as Unicode. Input files that do not start with a BOM will be read using the current code page (CP_ACP). For backwards-compatibility, if the -UnicodeIgnore command-line parameter is specified, files starting with a UTF-16 BOM will be treated as empty.
  • Now supports Unicode output (.tmh) files. By default, output files will be encoded using the current code page (CP_ACP). Use command-line parameters -cp:UTF-8 or -cp:UTF-16 to generate Unicode output files.
  • Behavior change: tracewpp now converts all input text to Unicode, performs processing in Unicode, and converts output text to the specified output encoding. Earlier versions of tracewpp avoided Unicode conversions and performed text processing assuming a single-byte character set. This may lead to behavior changes in cases where the input files do not conform to the current code page. In cases where this is a problem, consider converting the input files to UTF-8 (with BOM) and/or using the -cp:UTF-8 command-line parameter to avoid encoding ambiguity.

TraceLoggingProvider.h

  • Now avoids one-definition-rule (ODR) problems caused by conflicting configuration macros (e.g. when two .cpp files with conflicting definitions of TLG_EVENT_WRITE_TRANSFER are linked into the same binary, the TraceLoggingProvider.h helpers will now respect the definition of TLG_EVENT_WRITE_TRANSFER in each .cpp file instead of arbitrarily picking one or the other).
  • In C++ code, the TraceLoggingWrite macro has been updated to enable better code sharing between similar events using variadic templates.

Signing your apps with Device Guard Signing

Windows SDK Flight NuGet Feed

We have stood up a NuGet feed for the flighted builds of the SDK. You can now test preliminary builds of the Windows 10 WinRT API Pack, as well as a microsoft.windows.sdk.headless.contracts NuGet package. We use the following feed to flight our NuGet packages. Microsoft.Windows.SDK.Contracts which can be used with to add the latest Windows Runtime APIs support to your .NET Framework 4.5+ and .NET Core 3.0+ libraries and apps. The Windows 10 WinRT API Pack enables you to add the latest Windows Runtime APIs support to your .NET Framework 4.5+ and .NET Core 3.0+ libraries and apps. Microsoft.Windows.SDK.Headless.Contracts provides a subset of the Windows Runtime APIs for console apps excludes the APIs associated with a graphical user interface. This NuGet is used in conjunction with Windows ML container development. Check out the Getting Started guide for more information.

Breaking Changes

Removal of api-ms-win-net-isolation-l1-1-0.lib

In this release api-ms-win-net-isolation-l1-1-0.lib has been removed from the Windows SDK. Apps that were linking against api-ms-win-net-isolation-l1-1-0.lib can switch to OneCoreUAP.lib as a replacement.

Removal of IRPROPS.LIB

In this release irprops.lib has been removed from the Windows SDK. Apps that were linking against irprops.lib can switch to bthprops.lib as a drop-in replacement.

Removal of WUAPICommon.H and WUAPICommon.IDL

In this release we have moved ENUM tagServerSelection from WUAPICommon.H to wupai.h and removed the header. If you would like to use the ENUM tagServerSelection, you will need to include wuapi.h or wuapi.idl.

API Updates, Additions and Removals

The following APIs have been added to the platform since the release of Windows 10 SDK, version 1903, build 18362.

Additions:

[code lang="csharp"] namespace Windows.AI.MachineLearning { public sealed class LearningModelSessionOptions { bool CloseModelOnSessionCreation { get; set; } } } namespace Windows.ApplicationModel { public sealed class AppInfo { public static AppInfo Current { get; } Package Package { get; } public static AppInfo GetFromAppUserModelId(string appUserModelId); public static AppInfo GetFromAppUserModelIdForUser(User user, string appUserModelId); } public interface IAppInfoStatics public sealed class Package { StorageFolder EffectiveExternalLocation { get; } string EffectiveExternalPath { get; } string EffectivePath { get; } string InstalledPath { get; } bool IsStub { get; } StorageFolder MachineExternalLocation { get; } string MachineExternalPath { get; } string MutablePath { get; } StorageFolder UserExternalLocation { get; } string UserExternalPath { get; } IVectorView<AppListEntry> GetAppListEntries(); RandomAccessStreamReference GetLogoAsRandomAccessStreamReference(Size size); } } namespace Windows.ApplicationModel.AppService { public enum AppServiceConnectionStatus { AuthenticationError = 8, DisabledByPolicy = 10, NetworkNotAvailable = 9, WebServiceUnavailable = 11, } public enum AppServiceResponseStatus { AppUnavailable = 6, AuthenticationError = 7, DisabledByPolicy = 9, NetworkNotAvailable = 8, WebServiceUnavailable = 10, } public enum StatelessAppServiceResponseStatus { AuthenticationError = 11, DisabledByPolicy = 13, NetworkNotAvailable = 12, WebServiceUnavailable = 14, } } namespace Windows.ApplicationModel.Background { public sealed class BackgroundTaskBuilder { void SetTaskEntryPointClsid(Guid TaskEntryPoint); } public sealed class BluetoothLEAdvertisementPublisherTrigger : IBackgroundTrigger { bool IncludeTransmitPowerLevel { get; set; } bool IsAnonymous { get; set; } IReference<short> PreferredTransmitPowerLevelInDBm { get; set; } bool UseExtendedFormat { get; set; } } public sealed class BluetoothLEAdvertisementWatcherTrigger : IBackgroundTrigger { bool AllowExtendedAdvertisements { get; set; } } } namespace Windows.ApplicationModel.ConversationalAgent { public sealed class ActivationSignalDetectionConfiguration public enum ActivationSignalDetectionTrainingDataFormat public sealed class ActivationSignalDetector public enum ActivationSignalDetectorKind public enum ActivationSignalDetectorPowerState public sealed class ConversationalAgentDetectorManager public sealed class DetectionConfigurationAvailabilityChangedEventArgs public enum DetectionConfigurationAvailabilityChangeKind public sealed class DetectionConfigurationAvailabilityInfo public enum DetectionConfigurationTrainingStatus } namespace Windows.ApplicationModel.DataTransfer { public sealed class DataPackage { event TypedEventHandler<DataPackage, object> ShareCanceled; } } namespace Windows.Devices.Bluetooth { public sealed class BluetoothAdapter { bool IsExtendedAdvertisingSupported { get; } uint MaxAdvertisementDataLength { get; } } } namespace Windows.Devices.Bluetooth.Advertisement { public sealed class BluetoothLEAdvertisementPublisher { bool IncludeTransmitPowerLevel { get; set; } bool IsAnonymous { get; set; } IReference<short> PreferredTransmitPowerLevelInDBm { get; set; } bool UseExtendedAdvertisement { get; set; } } public sealed class BluetoothLEAdvertisementPublisherStatusChangedEventArgs { IReference<short> SelectedTransmitPowerLevelInDBm { get; } } public sealed class BluetoothLEAdvertisementReceivedEventArgs { BluetoothAddressType BluetoothAddressType { get; } bool IsAnonymous { get; } bool IsConnectable { get; } bool IsDirected { get; } bool IsScannable { get; } bool IsScanResponse { get; } IReference<short> TransmitPowerLevelInDBm { get; } } public enum BluetoothLEAdvertisementType { Extended = 5, } public sealed class BluetoothLEAdvertisementWatcher { bool AllowExtendedAdvertisements { get; set; } } public enum BluetoothLEScanningMode { None = 2, } } namespace Windows.Devices.Bluetooth.Background { public sealed class BluetoothLEAdvertisementPublisherTriggerDetails { IReference<short> SelectedTransmitPowerLevelInDBm { get; } } } namespace Windows.Devices.Display { public sealed class DisplayMonitor { bool IsDolbyVisionSupportedInHdrMode { get; } } } namespace Windows.Devices.Input { public sealed class PenButtonListener public sealed class PenDockedEventArgs public sealed class PenDockListener public sealed class PenTailButtonClickedEventArgs public sealed class PenTailButtonDoubleClickedEventArgs public sealed class PenTailButtonLongPressedEventArgs public sealed class PenUndockedEventArgs } namespace Windows.Devices.Sensors { public sealed class Accelerometer { AccelerometerDataThreshold ReportThreshold { get; } } public sealed class AccelerometerDataThreshold public sealed class Barometer { BarometerDataThreshold ReportThreshold { get; } } public sealed class BarometerDataThreshold public sealed class Compass { CompassDataThreshold ReportThreshold { get; } } public sealed class CompassDataThreshold public sealed class Gyrometer { GyrometerDataThreshold ReportThreshold { get; } } public sealed class GyrometerDataThreshold public sealed class Inclinometer { InclinometerDataThreshold ReportThreshold { get; } } public sealed class InclinometerDataThreshold public sealed class LightSensor { LightSensorDataThreshold ReportThreshold { get; } } public sealed class LightSensorDataThreshold public sealed class Magnetometer { MagnetometerDataThreshold ReportThreshold { get; } } public sealed class MagnetometerDataThreshold } namespace Windows.Foundation.Metadata { public sealed class AttributeNameAttribute : Attribute public sealed class FastAbiAttribute : Attribute public sealed class NoExceptionAttribute : Attribute } namespace Windows.Globalization { public sealed class Language { string AbbreviatedName { get; } public static IVector<string> GetMuiCompatibleLanguageListFromLanguageTags(IIterable<string> languageTags); } } namespace Windows.Graphics.Capture { public sealed class GraphicsCaptureSession : IClosable { bool IsCursorCaptureEnabled { get; set; } } } namespace Windows.Graphics.DirectX { public enum DirectXPixelFormat { SamplerFeedbackMinMipOpaque = 189, SamplerFeedbackMipRegionUsedOpaque = 190, } } namespace Windows.Graphics.Holographic { public sealed class HolographicFrame { HolographicFrameId Id { get; } } public struct HolographicFrameId public sealed class HolographicFrameRenderingReport public sealed class HolographicFrameScanoutMonitor : IClosable public sealed class HolographicFrameScanoutReport public sealed class HolographicSpace { HolographicFrameScanoutMonitor CreateFrameScanoutMonitor(uint maxQueuedReports); } } namespace Windows.Management.Deployment { public sealed class AddPackageOptions public enum DeploymentOptions : uint { StageInPlace = (uint)4194304, } public sealed class PackageManager { IAsyncOperationWithProgress<DeploymentResult, DeploymentProgress> AddPackageByUriAsync(Uri packageUri, AddPackageOptions options); IVector<Package> FindProvisionedPackages(); PackageStubPreference GetPackageStubPreference(string packageFamilyName); IAsyncOperationWithProgress<DeploymentResult, DeploymentProgress> RegisterPackageByUriAsync(Uri manifestUri, RegisterPackageOptions options); IAsyncOperationWithProgress<DeploymentResult, DeploymentProgress> RegisterPackagesByFullNameAsync(IIterable<string> packageFullNames, RegisterPackageOptions options); void SetPackageStubPreference(string packageFamilyName, PackageStubPreference useStub); IAsyncOperationWithProgress<DeploymentResult, DeploymentProgress> StagePackageByUriAsync(Uri packageUri, StagePackageOptions options); } public enum PackageStubPreference public enum PackageTypes : uint { All = (uint)4294967295, } public sealed class RegisterPackageOptions public enum RemovalOptions : uint { PreserveRoamableApplicationData = (uint)128, } public sealed class StagePackageOptions public enum StubPackageOption } namespace Windows.Media.Audio { public sealed class AudioPlaybackConnection : IClosable public sealed class AudioPlaybackConnectionOpenResult public enum AudioPlaybackConnectionOpenResultStatus public enum AudioPlaybackConnectionState } namespace Windows.Media.Capture { public sealed class MediaCapture : IClosable { MediaCaptureRelativePanelWatcher CreateRelativePanelWatcher(StreamingCaptureMode captureMode, DisplayRegion displayRegion); } public sealed class MediaCaptureInitializationSettings { Uri DeviceUri { get; set; } PasswordCredential DeviceUriPasswordCredential { get; set; } } public sealed class MediaCaptureRelativePanelWatcher : IClosable } namespace Windows.Media.Capture.Frames { public sealed class MediaFrameSourceInfo { Panel GetRelativePanel(DisplayRegion displayRegion); } } namespace Windows.Media.Devices { public sealed class PanelBasedOptimizationControl public sealed class VideoDeviceController : IMediaDeviceController { PanelBasedOptimizationControl PanelBasedOptimizationControl { get; } } } namespace Windows.Media.MediaProperties { public static class MediaEncodingSubtypes { public static string Pgs { get; } public static string Srt { get; } public static string Ssa { get; } public static string VobSub { get; } } public sealed class TimedMetadataEncodingProperties : IMediaEncodingProperties { public static TimedMetadataEncodingProperties CreatePgs(); public static TimedMetadataEncodingProperties CreateSrt(); public static TimedMetadataEncodingProperties CreateSsa(byte[] formatUserData); public static TimedMetadataEncodingProperties CreateVobSub(byte[] formatUserData); } } namespace Windows.Networking.BackgroundTransfer { public sealed class DownloadOperation : IBackgroundTransferOperation, IBackgroundTransferOperationPriority { void RemoveRequestHeader(string headerName); void SetRequestHeader(string headerName, string headerValue); } public sealed class UploadOperation : IBackgroundTransferOperation, IBackgroundTransferOperationPriority { void RemoveRequestHeader(string headerName); void SetRequestHeader(string headerName, string headerValue); } } namespace Windows.Networking.Connectivity { public enum NetworkAuthenticationType { Owe = 12, } } namespace Windows.Networking.NetworkOperators { public sealed class NetworkOperatorTetheringAccessPointConfiguration { TetheringWiFiBand Band { get; set; } bool IsBandSupported(TetheringWiFiBand band); IAsyncOperation<bool> IsBandSupportedAsync(TetheringWiFiBand band); } public sealed class NetworkOperatorTetheringManager { public static void DisableNoConnectionsTimeout(); public static IAsyncAction DisableNoConnectionsTimeoutAsync(); public static void EnableNoConnectionsTimeout(); public static IAsyncAction EnableNoConnectionsTimeoutAsync(); public static bool IsNoConnectionsTimeoutEnabled(); } public enum TetheringWiFiBand } namespace Windows.Networking.PushNotifications { public static class PushNotificationChannelManager { public static event EventHandler<PushNotificationChannelsRevokedEventArgs> ChannelsRevoked; } public sealed class PushNotificationChannelsRevokedEventArgs public sealed class RawNotification { IBuffer ContentBytes { get; } } } namespace Windows.Security.Authentication.Web.Core { public sealed class WebAccountMonitor { event TypedEventHandler<WebAccountMonitor, WebAccountEventArgs> AccountPictureUpdated; } } namespace Windows.Security.Isolation { public sealed class IsolatedWindowsEnvironment public enum IsolatedWindowsEnvironmentActivator public enum IsolatedWindowsEnvironmentAllowedClipboardFormats : uint public enum IsolatedWindowsEnvironmentAvailablePrinters : uint public enum IsolatedWindowsEnvironmentClipboardCopyPasteDirections : uint public struct IsolatedWindowsEnvironmentContract public struct IsolatedWindowsEnvironmentCreateProgress public sealed class IsolatedWindowsEnvironmentCreateResult public enum IsolatedWindowsEnvironmentCreateStatus public sealed class IsolatedWindowsEnvironmentFile public static class IsolatedWindowsEnvironmentHost public enum IsolatedWindowsEnvironmentHostError public sealed class IsolatedWindowsEnvironmentLaunchFileResult public enum IsolatedWindowsEnvironmentLaunchFileStatus public sealed class IsolatedWindowsEnvironmentOptions public static class IsolatedWindowsEnvironmentOwnerRegistration public sealed class IsolatedWindowsEnvironmentOwnerRegistrationData public sealed class IsolatedWindowsEnvironmentOwnerRegistrationResult public enum IsolatedWindowsEnvironmentOwnerRegistrationStatus public sealed class IsolatedWindowsEnvironmentProcess public enum IsolatedWindowsEnvironmentProcessState public enum IsolatedWindowsEnvironmentProgressState public sealed class IsolatedWindowsEnvironmentShareFolderRequestOptions public sealed class IsolatedWindowsEnvironmentShareFolderResult public enum IsolatedWindowsEnvironmentShareFolderStatus public sealed class IsolatedWindowsEnvironmentStartProcessResult public enum IsolatedWindowsEnvironmentStartProcessStatus public sealed class IsolatedWindowsEnvironmentTelemetryParameters public static class IsolatedWindowsHostMessenger public delegate void MessageReceivedCallback(Guid receiverId, IVectorView<object> message); } namespace Windows.Storage { public static class KnownFolders { public static IAsyncOperation<StorageFolder> GetFolderAsync(KnownFolderId folderId); public static IAsyncOperation<KnownFoldersAccessStatus> RequestAccessAsync(KnownFolderId folderId); public static IAsyncOperation<KnownFoldersAccessStatus> RequestAccessForUserAsync(User user, KnownFolderId folderId); } public enum KnownFoldersAccessStatus public sealed class StorageFile : IInputStreamReference, IRandomAccessStreamReference, IStorageFile, IStorageFile2, IStorageFilePropertiesWithAvailability, IStorageItem, IStorageItem2, IStorageItemProperties, IStorageItemProperties2, IStorageItemPropertiesWithProvider { public static IAsyncOperation<StorageFile> GetFileFromPathForUserAsync(User user, string path); } public sealed class StorageFolder : IStorageFolder, IStorageFolder2, IStorageFolderQueryOperations, IStorageItem, IStorageItem2, IStorageItemProperties, IStorageItemProperties2, IStorageItemPropertiesWithProvider { public static IAsyncOperation<StorageFolder> GetFolderFromPathForUserAsync(User user, string path); } } namespace Windows.Storage.Provider { public sealed class StorageProviderFileTypeInfo public sealed class StorageProviderSyncRootInfo { IVector<StorageProviderFileTypeInfo> FallbackFileTypeInfo { get; } } public static class StorageProviderSyncRootManager { public static bool IsSupported(); } } namespace Windows.System { public sealed class UserChangedEventArgs { IVectorView<UserWatcherUpdateKind> ChangedPropertyKinds { get; } } public enum UserWatcherUpdateKind } namespace Windows.UI.Composition.Interactions { public sealed class InteractionTracker : CompositionObject { int TryUpdatePosition(Vector3 value, InteractionTrackerClampingOption option, InteractionTrackerPositionUpdateOption posUpdateOption); } public enum InteractionTrackerPositionUpdateOption } namespace Windows.UI.Input { public sealed class CrossSlidingEventArgs { uint ContactCount { get; } } public sealed class DraggingEventArgs { uint ContactCount { get; } } public sealed class GestureRecognizer { uint HoldMaxContactCount { get; set; } uint HoldMinContactCount { get; set; } float HoldRadius { get; set; } TimeSpan HoldStartDelay { get; set; } uint TapMaxContactCount { get; set; } uint TapMinContactCount { get; set; } uint TranslationMaxContactCount { get; set; } uint TranslationMinContactCount { get; set; } } public sealed class HoldingEventArgs { uint ContactCount { get; } uint CurrentContactCount { get; } } public sealed class ManipulationCompletedEventArgs { uint ContactCount { get; } uint CurrentContactCount { get; } } public sealed class ManipulationInertiaStartingEventArgs { uint ContactCount { get; } } public sealed class ManipulationStartedEventArgs { uint ContactCount { get; } } public sealed class ManipulationUpdatedEventArgs { uint ContactCount { get; } uint CurrentContactCount { get; } } public sealed class RightTappedEventArgs { uint ContactCount { get; } } public sealed class SystemButtonEventController : AttachableInputObject public sealed class SystemFunctionButtonEventArgs public sealed class SystemFunctionLockChangedEventArgs public sealed class SystemFunctionLockIndicatorChangedEventArgs public sealed class TappedEventArgs { uint ContactCount { get; } } } namespace Windows.UI.Input.Inking { public sealed class InkModelerAttributes { bool UseVelocityBasedPressure { get; set; } } } namespace Windows.UI.Text { public enum RichEditMathMode public sealed class RichEditTextDocument : ITextDocument { void GetMath(out string value); void SetMath(string value); void SetMathMode(RichEditMathMode mode); } } namespace Windows.UI.ViewManagement { public sealed class UISettings { event TypedEventHandler<UISettings, UISettingsAnimationsEnabledChangedEventArgs> AnimationsEnabledChanged; event TypedEventHandler<UISettings, UISettingsMessageDurationChangedEventArgs> MessageDurationChanged; } public sealed class UISettingsAnimationsEnabledChangedEventArgs public sealed class UISettingsMessageDurationChangedEventArgs } namespace Windows.UI.ViewManagement.Core { public sealed class CoreInputView { event TypedEventHandler<CoreInputView, CoreInputViewHidingEventArgs> PrimaryViewHiding; event TypedEventHandler<CoreInputView, CoreInputViewShowingEventArgs> PrimaryViewShowing; } public sealed class CoreInputViewHidingEventArgs public enum CoreInputViewKind { Symbols = 4, } public sealed class CoreInputViewShowingEventArgs public sealed class UISettingsController } [/code] ]]>
Windows 10 SDK Preview Build 19028 available now! https://blogs.windows.com/windowsdeveloper/2019/11/27/windows-10-sdk-preview-build-19028-available-now/ Wed, 27 Nov 2019 19:55:40 +0000 https://blogs.windows.com/windowsdeveloper/?p=55603 Today, we released a new Windows 10 Preview Build of the SDK to be used in conjunction with Windows 10 Insider Preview (Build 19028 or greater). The Preview SDK Build 19028 contains bug fixes and under development changes to the API surface area. The Preview SDK can be downloaded from developer section on Windows Insider. For feedback and […]

The post Windows 10 SDK Preview Build 19028 available now! appeared first on Windows Developer Blog.

]]>
Windows 10 Insider Preview (Build 19028 or greater). The Preview SDK Build 19028 contains bug fixes and under development changes to the API surface area. The Preview SDK can be downloaded from developer section on Windows Insider. For feedback and updates to the known issues, please see the developer forum. For new developer feature requests, head over to our Windows Platform UserVoice.

Things to note:

  • This build works in conjunction with previously released SDKs and Visual Studio 2017 and 2019. You can install this SDK and still also continue to submit your apps that target Windows 10 build 1903 or earlier to the Microsoft Store.
  • The Windows SDK will now formally only be supported by Visual Studio 2017 and greater. You can download the Visual Studio 2019 here.
  • This build of the Windows SDK will install on only on Windows 10 Insider Preview builds.
  • In order to assist with script access to the SDK, the ISO will also be able to be accessed through the following static URL: https://software-download.microsoft.com/download/sg/Windows_InsiderPreview_SDK_en-us_19028_1.iso.

Tools Updates

Message Compiler (mc.exe)

  • Now detects the Unicode byte order mark (BOM) in .mc files. If the If the .mc file starts with a UTF-8 BOM, it will be read as a UTF-8 file. Otherwise, if it starts with a UTF-16LE BOM, it will be read as a UTF-16LE file. Otherwise, if the -u parameter was specified, it will be read as a UTF-16LE file. Otherwise, it will be read using the current code page (CP_ACP).
  • Now avoids one-definition-rule (ODR) problems in MC-generated C/C++ ETW helpers caused by conflicting configuration macros (e.g. when two .cpp files with conflicting definitions of MCGEN_EVENTWRITETRANSFER are linked into the same binary, the MC-generated ETW helpers will now respect the definition of MCGEN_EVENTWRITETRANSFER in each .cpp file instead of arbitrarily picking one or the other).

Windows Trace Preprocessor (tracewpp.exe)

  • Now supports Unicode input (.ini, .tpl, and source code) files. Input files starting with a UTF-8 or UTF-16 byte order mark (BOM) will be read as Unicode. Input files that do not start with a BOM will be read using the current code page (CP_ACP). For backwards-compatibility, if the -UnicodeIgnore command-line parameter is specified, files starting with a UTF-16 BOM will be treated as empty.
  • Now supports Unicode output (.tmh) files. By default, output files will be encoded using the current code page (CP_ACP). Use command-line parameters -cp:UTF-8 or -cp:UTF-16 to generate Unicode output files.
  • Behavior change: tracewpp now converts all input text to Unicode, performs processing in Unicode, and converts output text to the specified output encoding. Earlier versions of tracewpp avoided Unicode conversions and performed text processing assuming a single-byte character set. This may lead to behavior changes in cases where the input files do not conform to the current code page. In cases where this is a problem, consider converting the input files to UTF-8 (with BOM) and/or using the -cp:UTF-8 command-line parameter to avoid encoding ambiguity.

TraceLoggingProvider.h

  • Now avoids one-definition-rule (ODR) problems caused by conflicting configuration macros (e.g. when two .cpp files with conflicting definitions of TLG_EVENT_WRITE_TRANSFER are linked into the same binary, the TraceLoggingProvider.h helpers will now respect the definition of TLG_EVENT_WRITE_TRANSFER in each .cpp file instead of arbitrarily picking one or the other).
  • In C++ code, the TraceLoggingWrite macro has been updated to enable better code sharing between similar events using variadic templates.

Signing your apps with Device Guard Signing

Windows SDK Flight NuGet Feed

We have stood up a NuGet feed for the flighted builds of the SDK. You can now test preliminary builds of the Windows 10 WinRT API Pack, as well as a microsoft.windows.sdk.headless.contracts NuGet package. We use the following feed to flight our NuGet packages. Microsoft.Windows.SDK.Contracts which can be used with to add the latest Windows Runtime APIs support to your .NET Framework 4.5+ and .NET Core 3.0+ libraries and apps. The Windows 10 WinRT API Pack enables you to add the latest Windows Runtime APIs support to your .NET Framework 4.5+ and .NET Core 3.0+ libraries and apps. Microsoft.Windows.SDK.Headless.Contracts provides a subset of the Windows Runtime APIs for console apps excludes the APIs associated with a graphical user interface. This NuGet is used in conjunction with Windows ML container development. Check out the Getting Started guide for more information.

Breaking Changes

Removal of api-ms-win-net-isolation-l1-1-0.lib In this release api-ms-win-net-isolation-l1-1-0.lib has been removed from the Windows SDK. Apps that were linking against api-ms-win-net-isolation-l1-1-0.lib can switch to OneCoreUAP.lib as a replacement. Removal of IRPROPS.LIB In this release irprops.lib has been removed from the Windows SDK. Apps that were linking against irprops.lib can switch to bthprops.lib as a drop-in replacement. Removal of WUAPICommon.H and WUAPICommon.IDL In this release we have moved ENUM tagServerSelection from WUAPICommon.H to wupai.h and removed the header. If you would like to use the ENUM tagServerSelection, you will need to include wuapi.h or wuapi.idl.

API Updates, Additions and Removals

The following APIs have been added to the platform since the release of Windows 10 SDK, version 1903, build 18362.

Additions:

[code lang="csharp"] namespace Windows.AI.MachineLearning { public sealed class LearningModelSessionOptions { bool CloseModelOnSessionCreation { get; set; } } } namespace Windows.ApplicationModel { public sealed class AppInfo { public static AppInfo Current { get; } Package Package { get; } public static AppInfo GetFromAppUserModelId(string appUserModelId); public static AppInfo GetFromAppUserModelIdForUser(User user, string appUserModelId); } public interface IAppInfoStatics public sealed class Package { StorageFolder EffectiveExternalLocation { get; } string EffectiveExternalPath { get; } string EffectivePath { get; } string InstalledPath { get; } bool IsStub { get; } StorageFolder MachineExternalLocation { get; } string MachineExternalPath { get; } string MutablePath { get; } StorageFolder UserExternalLocation { get; } string UserExternalPath { get; } IVectorView<AppListEntry> GetAppListEntries(); RandomAccessStreamReference GetLogoAsRandomAccessStreamReference(Size size); } } namespace Windows.ApplicationModel.AppService { public enum AppServiceConnectionStatus { AuthenticationError = 8, DisabledByPolicy = 10, NetworkNotAvailable = 9, WebServiceUnavailable = 11, } public enum AppServiceResponseStatus { AppUnavailable = 6, AuthenticationError = 7, DisabledByPolicy = 9, NetworkNotAvailable = 8, WebServiceUnavailable = 10, } public enum StatelessAppServiceResponseStatus { AuthenticationError = 11, DisabledByPolicy = 13, NetworkNotAvailable = 12, WebServiceUnavailable = 14, } } namespace Windows.ApplicationModel.Background { public sealed class BackgroundTaskBuilder { void SetTaskEntryPointClsid(Guid TaskEntryPoint); } public sealed class BluetoothLEAdvertisementPublisherTrigger : IBackgroundTrigger { bool IncludeTransmitPowerLevel { get; set; } bool IsAnonymous { get; set; } IReference<short> PreferredTransmitPowerLevelInDBm { get; set; } bool UseExtendedFormat { get; set; } } public sealed class BluetoothLEAdvertisementWatcherTrigger : IBackgroundTrigger { bool AllowExtendedAdvertisements { get; set; } } } namespace Windows.ApplicationModel.ConversationalAgent { public sealed class ActivationSignalDetectionConfiguration public enum ActivationSignalDetectionTrainingDataFormat public sealed class ActivationSignalDetector public enum ActivationSignalDetectorKind public enum ActivationSignalDetectorPowerState public sealed class ConversationalAgentDetectorManager public sealed class DetectionConfigurationAvailabilityChangedEventArgs public enum DetectionConfigurationAvailabilityChangeKind public sealed class DetectionConfigurationAvailabilityInfo public enum DetectionConfigurationTrainingStatus } namespace Windows.ApplicationModel.DataTransfer { public sealed class DataPackage { event TypedEventHandler<DataPackage, object> ShareCanceled; } } namespace Windows.Devices.Bluetooth { public sealed class BluetoothAdapter { bool IsExtendedAdvertisingSupported { get; } uint MaxAdvertisementDataLength { get; } } } namespace Windows.Devices.Bluetooth.Advertisement { public sealed class BluetoothLEAdvertisementPublisher { bool IncludeTransmitPowerLevel { get; set; } bool IsAnonymous { get; set; } IReference<short> PreferredTransmitPowerLevelInDBm { get; set; } bool UseExtendedAdvertisement { get; set; } } public sealed class BluetoothLEAdvertisementPublisherStatusChangedEventArgs { IReference<short> SelectedTransmitPowerLevelInDBm { get; } } public sealed class BluetoothLEAdvertisementReceivedEventArgs { BluetoothAddressType BluetoothAddressType { get; } bool IsAnonymous { get; } bool IsConnectable { get; } bool IsDirected { get; } bool IsScannable { get; } bool IsScanResponse { get; } IReference<short> TransmitPowerLevelInDBm { get; } } public enum BluetoothLEAdvertisementType { Extended = 5, } public sealed class BluetoothLEAdvertisementWatcher { bool AllowExtendedAdvertisements { get; set; } } public enum BluetoothLEScanningMode { None = 2, } } namespace Windows.Devices.Bluetooth.Background { public sealed class BluetoothLEAdvertisementPublisherTriggerDetails { IReference<short> SelectedTransmitPowerLevelInDBm { get; } } } namespace Windows.Devices.Display { public sealed class DisplayMonitor { bool IsDolbyVisionSupportedInHdrMode { get; } } } namespace Windows.Devices.Input { public sealed class PenButtonListener public sealed class PenDockedEventArgs public sealed class PenDockListener public sealed class PenTailButtonClickedEventArgs public sealed class PenTailButtonDoubleClickedEventArgs public sealed class PenTailButtonLongPressedEventArgs public sealed class PenUndockedEventArgs } namespace Windows.Devices.Sensors { public sealed class Accelerometer { AccelerometerDataThreshold ReportThreshold { get; } } public sealed class AccelerometerDataThreshold public sealed class Barometer { BarometerDataThreshold ReportThreshold { get; } } public sealed class BarometerDataThreshold public sealed class Compass { CompassDataThreshold ReportThreshold { get; } } public sealed class CompassDataThreshold public sealed class Gyrometer { GyrometerDataThreshold ReportThreshold { get; } } public sealed class GyrometerDataThreshold public sealed class Inclinometer { InclinometerDataThreshold ReportThreshold { get; } } public sealed class InclinometerDataThreshold public sealed class LightSensor { LightSensorDataThreshold ReportThreshold { get; } } public sealed class LightSensorDataThreshold public sealed class Magnetometer { MagnetometerDataThreshold ReportThreshold { get; } } public sealed class MagnetometerDataThreshold } namespace Windows.Foundation.Metadata { public sealed class AttributeNameAttribute : Attribute public sealed class FastAbiAttribute : Attribute public sealed class NoExceptionAttribute : Attribute } namespace Windows.Globalization { public sealed class Language { string AbbreviatedName { get; } public static IVector<string> GetMuiCompatibleLanguageListFromLanguageTags(IIterable<string> languageTags); } } namespace Windows.Graphics.Capture { public sealed class GraphicsCaptureSession : IClosable { bool IsCursorCaptureEnabled { get; set; } } } namespace Windows.Graphics.DirectX { public enum DirectXPixelFormat { SamplerFeedbackMinMipOpaque = 189, SamplerFeedbackMipRegionUsedOpaque = 190, } } namespace Windows.Graphics.Holographic { public sealed class HolographicFrame { HolographicFrameId Id { get; } } public struct HolographicFrameId public sealed class HolographicFrameRenderingReport public sealed class HolographicFrameScanoutMonitor : IClosable public sealed class HolographicFrameScanoutReport public sealed class HolographicSpace { HolographicFrameScanoutMonitor CreateFrameScanoutMonitor(uint maxQueuedReports); } } namespace Windows.Management.Deployment { public sealed class AddPackageOptions public enum DeploymentOptions : uint { StageInPlace = (uint)4194304, } public sealed class PackageManager { IAsyncOperationWithProgress<DeploymentResult, DeploymentProgress> AddPackageByUriAsync(Uri packageUri, AddPackageOptions options); IVector<Package> FindProvisionedPackages(); PackageStubPreference GetPackageStubPreference(string packageFamilyName); IAsyncOperationWithProgress<DeploymentResult, DeploymentProgress> RegisterPackageByUriAsync(Uri manifestUri, RegisterPackageOptions options); IAsyncOperationWithProgress<DeploymentResult, DeploymentProgress> RegisterPackagesByFullNameAsync(IIterable<string> packageFullNames, RegisterPackageOptions options); void SetPackageStubPreference(string packageFamilyName, PackageStubPreference useStub); IAsyncOperationWithProgress<DeploymentResult, DeploymentProgress> StagePackageByUriAsync(Uri packageUri, StagePackageOptions options); } public enum PackageStubPreference public enum PackageTypes : uint { All = (uint)4294967295, } public sealed class RegisterPackageOptions public enum RemovalOptions : uint { PreserveRoamableApplicationData = (uint)128, } public sealed class StagePackageOptions public enum StubPackageOption } namespace Windows.Media.Audio { public sealed class AudioPlaybackConnection : IClosable public sealed class AudioPlaybackConnectionOpenResult public enum AudioPlaybackConnectionOpenResultStatus public enum AudioPlaybackConnectionState } namespace Windows.Media.Capture { public sealed class MediaCapture : IClosable { MediaCaptureRelativePanelWatcher CreateRelativePanelWatcher(StreamingCaptureMode captureMode, DisplayRegion displayRegion); } public sealed class MediaCaptureInitializationSettings { Uri DeviceUri { get; set; } PasswordCredential DeviceUriPasswordCredential { get; set; } } public sealed class MediaCaptureRelativePanelWatcher : IClosable } namespace Windows.Media.Capture.Frames { public sealed class MediaFrameSourceInfo { Panel GetRelativePanel(DisplayRegion displayRegion); } } namespace Windows.Media.Devices { public sealed class PanelBasedOptimizationControl public sealed class VideoDeviceController : IMediaDeviceController { PanelBasedOptimizationControl PanelBasedOptimizationControl { get; } } } namespace Windows.Media.MediaProperties { public static class MediaEncodingSubtypes { public static string Pgs { get; } public static string Srt { get; } public static string Ssa { get; } public static string VobSub { get; } } public sealed class TimedMetadataEncodingProperties : IMediaEncodingProperties { public static TimedMetadataEncodingProperties CreatePgs(); public static TimedMetadataEncodingProperties CreateSrt(); public static TimedMetadataEncodingProperties CreateSsa(byte[] formatUserData); public static TimedMetadataEncodingProperties CreateVobSub(byte[] formatUserData); } } namespace Windows.Networking.BackgroundTransfer { public sealed class DownloadOperation : IBackgroundTransferOperation, IBackgroundTransferOperationPriority { void RemoveRequestHeader(string headerName); void SetRequestHeader(string headerName, string headerValue); } public sealed class UploadOperation : IBackgroundTransferOperation, IBackgroundTransferOperationPriority { void RemoveRequestHeader(string headerName); void SetRequestHeader(string headerName, string headerValue); } } namespace Windows.Networking.Connectivity { public enum NetworkAuthenticationType { Owe = 12, } } namespace Windows.Networking.NetworkOperators { public sealed class NetworkOperatorTetheringAccessPointConfiguration { TetheringWiFiBand Band { get; set; } bool IsBandSupported(TetheringWiFiBand band); IAsyncOperation<bool> IsBandSupportedAsync(TetheringWiFiBand band); } public sealed class NetworkOperatorTetheringManager { public static void DisableNoConnectionsTimeout(); public static IAsyncAction DisableNoConnectionsTimeoutAsync(); public static void EnableNoConnectionsTimeout(); public static IAsyncAction EnableNoConnectionsTimeoutAsync(); public static bool IsNoConnectionsTimeoutEnabled(); } public enum TetheringWiFiBand } namespace Windows.Networking.PushNotifications { public static class PushNotificationChannelManager { public static event EventHandler<PushNotificationChannelsRevokedEventArgs> ChannelsRevoked; } public sealed class PushNotificationChannelsRevokedEventArgs public sealed class RawNotification { IBuffer ContentBytes { get; } } } namespace Windows.Security.Authentication.Web.Core { public sealed class WebAccountMonitor { event TypedEventHandler<WebAccountMonitor, WebAccountEventArgs> AccountPictureUpdated; } } namespace Windows.Security.Isolation { public sealed class IsolatedWindowsEnvironment public enum IsolatedWindowsEnvironmentActivator public enum IsolatedWindowsEnvironmentAllowedClipboardFormats : uint public enum IsolatedWindowsEnvironmentAvailablePrinters : uint public enum IsolatedWindowsEnvironmentClipboardCopyPasteDirections : uint public struct IsolatedWindowsEnvironmentContract public struct IsolatedWindowsEnvironmentCreateProgress public sealed class IsolatedWindowsEnvironmentCreateResult public enum IsolatedWindowsEnvironmentCreateStatus public sealed class IsolatedWindowsEnvironmentFile public static class IsolatedWindowsEnvironmentHost public enum IsolatedWindowsEnvironmentHostError public sealed class IsolatedWindowsEnvironmentLaunchFileResult public enum IsolatedWindowsEnvironmentLaunchFileStatus public sealed class IsolatedWindowsEnvironmentOptions public static class IsolatedWindowsEnvironmentOwnerRegistration public sealed class IsolatedWindowsEnvironmentOwnerRegistrationData public sealed class IsolatedWindowsEnvironmentOwnerRegistrationResult public enum IsolatedWindowsEnvironmentOwnerRegistrationStatus public sealed class IsolatedWindowsEnvironmentProcess public enum IsolatedWindowsEnvironmentProcessState public enum IsolatedWindowsEnvironmentProgressState public sealed class IsolatedWindowsEnvironmentShareFolderRequestOptions public sealed class IsolatedWindowsEnvironmentShareFolderResult public enum IsolatedWindowsEnvironmentShareFolderStatus public sealed class IsolatedWindowsEnvironmentStartProcessResult public enum IsolatedWindowsEnvironmentStartProcessStatus public sealed class IsolatedWindowsEnvironmentTelemetryParameters public static class IsolatedWindowsHostMessenger public delegate void MessageReceivedCallback(Guid receiverId, IVectorView<object> message); } namespace Windows.Storage { public static class KnownFolders { public static IAsyncOperation<StorageFolder> GetFolderAsync(KnownFolderId folderId); public static IAsyncOperation<KnownFoldersAccessStatus> RequestAccessAsync(KnownFolderId folderId); public static IAsyncOperation<KnownFoldersAccessStatus> RequestAccessForUserAsync(User user, KnownFolderId folderId); } public enum KnownFoldersAccessStatus public sealed class StorageFile : IInputStreamReference, IRandomAccessStreamReference, IStorageFile, IStorageFile2, IStorageFilePropertiesWithAvailability, IStorageItem, IStorageItem2, IStorageItemProperties, IStorageItemProperties2, IStorageItemPropertiesWithProvider { public static IAsyncOperation<StorageFile> GetFileFromPathForUserAsync(User user, string path); } public sealed class StorageFolder : IStorageFolder, IStorageFolder2, IStorageFolderQueryOperations, IStorageItem, IStorageItem2, IStorageItemProperties, IStorageItemProperties2, IStorageItemPropertiesWithProvider { public static IAsyncOperation<StorageFolder> GetFolderFromPathForUserAsync(User user, string path); } } namespace Windows.Storage.Provider { public sealed class StorageProviderFileTypeInfo public sealed class StorageProviderSyncRootInfo { IVector<StorageProviderFileTypeInfo> FallbackFileTypeInfo { get; } } public static class StorageProviderSyncRootManager { public static bool IsSupported(); } } namespace Windows.System { public sealed class UserChangedEventArgs { IVectorView<UserWatcherUpdateKind> ChangedPropertyKinds { get; } } public enum UserWatcherUpdateKind } namespace Windows.UI.Composition.Interactions { public sealed class InteractionTracker : CompositionObject { int TryUpdatePosition(Vector3 value, InteractionTrackerClampingOption option, InteractionTrackerPositionUpdateOption posUpdateOption); } public enum InteractionTrackerPositionUpdateOption } namespace Windows.UI.Input { public sealed class CrossSlidingEventArgs { uint ContactCount { get; } } public sealed class DraggingEventArgs { uint ContactCount { get; } } public sealed class GestureRecognizer { uint HoldMaxContactCount { get; set; } uint HoldMinContactCount { get; set; } float HoldRadius { get; set; } TimeSpan HoldStartDelay { get; set; } uint TapMaxContactCount { get; set; } uint TapMinContactCount { get; set; } uint TranslationMaxContactCount { get; set; } uint TranslationMinContactCount { get; set; } } public sealed class HoldingEventArgs { uint ContactCount { get; } uint CurrentContactCount { get; } } public sealed class ManipulationCompletedEventArgs { uint ContactCount { get; } uint CurrentContactCount { get; } } public sealed class ManipulationInertiaStartingEventArgs { uint ContactCount { get; } } public sealed class ManipulationStartedEventArgs { uint ContactCount { get; } } public sealed class ManipulationUpdatedEventArgs { uint ContactCount { get; } uint CurrentContactCount { get; } } public sealed class RightTappedEventArgs { uint ContactCount { get; } } public sealed class SystemButtonEventController : AttachableInputObject public sealed class SystemFunctionButtonEventArgs public sealed class SystemFunctionLockChangedEventArgs public sealed class SystemFunctionLockIndicatorChangedEventArgs public sealed class TappedEventArgs { uint ContactCount { get; } } } namespace Windows.UI.Input.Inking { public sealed class InkModelerAttributes { bool UseVelocityBasedPressure { get; set; } } } namespace Windows.UI.Text { public enum RichEditMathMode public sealed class RichEditTextDocument : ITextDocument { void GetMath(out string value); void SetMath(string value); void SetMathMode(RichEditMathMode mode); } } namespace Windows.UI.ViewManagement { public sealed class UISettings { event TypedEventHandler<UISettings, UISettingsAnimationsEnabledChangedEventArgs> AnimationsEnabledChanged; event TypedEventHandler<UISettings, UISettingsMessageDurationChangedEventArgs> MessageDurationChanged; } public sealed class UISettingsAnimationsEnabledChangedEventArgs public sealed class UISettingsMessageDurationChangedEventArgs } namespace Windows.UI.ViewManagement.Core { public sealed class CoreInputView { event TypedEventHandler<CoreInputView, CoreInputViewHidingEventArgs> PrimaryViewHiding; event TypedEventHandler<CoreInputView, CoreInputViewShowingEventArgs> PrimaryViewShowing; } public sealed class CoreInputViewHidingEventArgs public enum CoreInputViewKind { Symbols = 4, } public sealed class CoreInputViewShowingEventArgs public sealed class UISettingsController } [/code] Today, we released a new Windows 10 Preview Build of the SDK to be used in conjunction with Windows 10 Insider Preview (Build 19028 or greater). The Preview SDK Build 19028 contains bug fixes and under development changes to the API surface area. The Preview SDK can be downloaded from developer section on Windows Insider. For feedback and updates to the known issues, please see the developer forum. For new developer feature requests, head over to our Windows Platform UserVoice.

Things to note:

  • This build works in conjunction with previously released SDKs and Visual Studio 2017 and 2019. You can install this SDK and still also continue to submit your apps that target Windows 10 build 1903 or earlier to the Microsoft Store.
  • The Windows SDK will now formally only be supported by Visual Studio 2017 and greater. You can download the Visual Studio 2019 here.
  • This build of the Windows SDK will install on only on Windows 10 Insider Preview builds.
  • In order to assist with script access to the SDK, the ISO will also be able to be accessed through the following static URL: https://software-download.microsoft.com/download/sg/Windows_InsiderPreview_SDK_en-us_19028_1.iso.

Tools Updates

Message Compiler (mc.exe)

  • Now detects the Unicode byte order mark (BOM) in .mc files. If the If the .mc file starts with a UTF-8 BOM, it will be read as a UTF-8 file. Otherwise, if it starts with a UTF-16LE BOM, it will be read as a UTF-16LE file. Otherwise, if the -u parameter was specified, it will be read as a UTF-16LE file. Otherwise, it will be read using the current code page (CP_ACP).
  • Now avoids one-definition-rule (ODR) problems in MC-generated C/C++ ETW helpers caused by conflicting configuration macros (e.g. when two .cpp files with conflicting definitions of MCGEN_EVENTWRITETRANSFER are linked into the same binary, the MC-generated ETW helpers will now respect the definition of MCGEN_EVENTWRITETRANSFER in each .cpp file instead of arbitrarily picking one or the other).

Windows Trace Preprocessor (tracewpp.exe)

  • Now supports Unicode input (.ini, .tpl, and source code) files. Input files starting with a UTF-8 or UTF-16 byte order mark (BOM) will be read as Unicode. Input files that do not start with a BOM will be read using the current code page (CP_ACP). For backwards-compatibility, if the -UnicodeIgnore command-line parameter is specified, files starting with a UTF-16 BOM will be treated as empty.
  • Now supports Unicode output (.tmh) files. By default, output files will be encoded using the current code page (CP_ACP). Use command-line parameters -cp:UTF-8 or -cp:UTF-16 to generate Unicode output files.
  • Behavior change: tracewpp now converts all input text to Unicode, performs processing in Unicode, and converts output text to the specified output encoding. Earlier versions of tracewpp avoided Unicode conversions and performed text processing assuming a single-byte character set. This may lead to behavior changes in cases where the input files do not conform to the current code page. In cases where this is a problem, consider converting the input files to UTF-8 (with BOM) and/or using the -cp:UTF-8 command-line parameter to avoid encoding ambiguity.

TraceLoggingProvider.h

  • Now avoids one-definition-rule (ODR) problems caused by conflicting configuration macros (e.g. when two .cpp files with conflicting definitions of TLG_EVENT_WRITE_TRANSFER are linked into the same binary, the TraceLoggingProvider.h helpers will now respect the definition of TLG_EVENT_WRITE_TRANSFER in each .cpp file instead of arbitrarily picking one or the other).
  • In C++ code, the TraceLoggingWrite macro has been updated to enable better code sharing between similar events using variadic templates.

Signing your apps with Device Guard Signing

Windows SDK Flight NuGet Feed

We have stood up a NuGet feed for the flighted builds of the SDK. You can now test preliminary builds of the Windows 10 WinRT API Pack, as well as a microsoft.windows.sdk.headless.contracts NuGet package. We use the following feed to flight our NuGet packages. Microsoft.Windows.SDK.Contracts which can be used with to add the latest Windows Runtime APIs support to your .NET Framework 4.5+ and .NET Core 3.0+ libraries and apps. The Windows 10 WinRT API Pack enables you to add the latest Windows Runtime APIs support to your .NET Framework 4.5+ and .NET Core 3.0+ libraries and apps. Microsoft.Windows.SDK.Headless.Contracts provides a subset of the Windows Runtime APIs for console apps excludes the APIs associated with a graphical user interface. This NuGet is used in conjunction with Windows ML container development. Check out the Getting Started guide for more information.

Breaking Changes

Removal of api-ms-win-net-isolation-l1-1-0.lib In this release api-ms-win-net-isolation-l1-1-0.lib has been removed from the Windows SDK. Apps that were linking against api-ms-win-net-isolation-l1-1-0.lib can switch to OneCoreUAP.lib as a replacement. Removal of IRPROPS.LIB In this release irprops.lib has been removed from the Windows SDK. Apps that were linking against irprops.lib can switch to bthprops.lib as a drop-in replacement. Removal of WUAPICommon.H and WUAPICommon.IDL In this release we have moved ENUM tagServerSelection from WUAPICommon.H to wupai.h and removed the header. If you would like to use the ENUM tagServerSelection, you will need to include wuapi.h or wuapi.idl.

API Updates, Additions and Removals

The following APIs have been added to the platform since the release of Windows 10 SDK, version 1903, build 18362.

Additions:

[code lang="csharp"] namespace Windows.AI.MachineLearning { public sealed class LearningModelSessionOptions { bool CloseModelOnSessionCreation { get; set; } } } namespace Windows.ApplicationModel { public sealed class AppInfo { public static AppInfo Current { get; } Package Package { get; } public static AppInfo GetFromAppUserModelId(string appUserModelId); public static AppInfo GetFromAppUserModelIdForUser(User user, string appUserModelId); } public interface IAppInfoStatics public sealed class Package { StorageFolder EffectiveExternalLocation { get; } string EffectiveExternalPath { get; } string EffectivePath { get; } string InstalledPath { get; } bool IsStub { get; } StorageFolder MachineExternalLocation { get; } string MachineExternalPath { get; } string MutablePath { get; } StorageFolder UserExternalLocation { get; } string UserExternalPath { get; } IVectorView<AppListEntry> GetAppListEntries(); RandomAccessStreamReference GetLogoAsRandomAccessStreamReference(Size size); } } namespace Windows.ApplicationModel.AppService { public enum AppServiceConnectionStatus { AuthenticationError = 8, DisabledByPolicy = 10, NetworkNotAvailable = 9, WebServiceUnavailable = 11, } public enum AppServiceResponseStatus { AppUnavailable = 6, AuthenticationError = 7, DisabledByPolicy = 9, NetworkNotAvailable = 8, WebServiceUnavailable = 10, } public enum StatelessAppServiceResponseStatus { AuthenticationError = 11, DisabledByPolicy = 13, NetworkNotAvailable = 12, WebServiceUnavailable = 14, } } namespace Windows.ApplicationModel.Background { public sealed class BackgroundTaskBuilder { void SetTaskEntryPointClsid(Guid TaskEntryPoint); } public sealed class BluetoothLEAdvertisementPublisherTrigger : IBackgroundTrigger { bool IncludeTransmitPowerLevel { get; set; } bool IsAnonymous { get; set; } IReference<short> PreferredTransmitPowerLevelInDBm { get; set; } bool UseExtendedFormat { get; set; } } public sealed class BluetoothLEAdvertisementWatcherTrigger : IBackgroundTrigger { bool AllowExtendedAdvertisements { get; set; } } } namespace Windows.ApplicationModel.ConversationalAgent { public sealed class ActivationSignalDetectionConfiguration public enum ActivationSignalDetectionTrainingDataFormat public sealed class ActivationSignalDetector public enum ActivationSignalDetectorKind public enum ActivationSignalDetectorPowerState public sealed class ConversationalAgentDetectorManager public sealed class DetectionConfigurationAvailabilityChangedEventArgs public enum DetectionConfigurationAvailabilityChangeKind public sealed class DetectionConfigurationAvailabilityInfo public enum DetectionConfigurationTrainingStatus } namespace Windows.ApplicationModel.DataTransfer { public sealed class DataPackage { event TypedEventHandler<DataPackage, object> ShareCanceled; } } namespace Windows.Devices.Bluetooth { public sealed class BluetoothAdapter { bool IsExtendedAdvertisingSupported { get; } uint MaxAdvertisementDataLength { get; } } } namespace Windows.Devices.Bluetooth.Advertisement { public sealed class BluetoothLEAdvertisementPublisher { bool IncludeTransmitPowerLevel { get; set; } bool IsAnonymous { get; set; } IReference<short> PreferredTransmitPowerLevelInDBm { get; set; } bool UseExtendedAdvertisement { get; set; } } public sealed class BluetoothLEAdvertisementPublisherStatusChangedEventArgs { IReference<short> SelectedTransmitPowerLevelInDBm { get; } } public sealed class BluetoothLEAdvertisementReceivedEventArgs { BluetoothAddressType BluetoothAddressType { get; } bool IsAnonymous { get; } bool IsConnectable { get; } bool IsDirected { get; } bool IsScannable { get; } bool IsScanResponse { get; } IReference<short> TransmitPowerLevelInDBm { get; } } public enum BluetoothLEAdvertisementType { Extended = 5, } public sealed class BluetoothLEAdvertisementWatcher { bool AllowExtendedAdvertisements { get; set; } } public enum BluetoothLEScanningMode { None = 2, } } namespace Windows.Devices.Bluetooth.Background { public sealed class BluetoothLEAdvertisementPublisherTriggerDetails { IReference<short> SelectedTransmitPowerLevelInDBm { get; } } } namespace Windows.Devices.Display { public sealed class DisplayMonitor { bool IsDolbyVisionSupportedInHdrMode { get; } } } namespace Windows.Devices.Input { public sealed class PenButtonListener public sealed class PenDockedEventArgs public sealed class PenDockListener public sealed class PenTailButtonClickedEventArgs public sealed class PenTailButtonDoubleClickedEventArgs public sealed class PenTailButtonLongPressedEventArgs public sealed class PenUndockedEventArgs } namespace Windows.Devices.Sensors { public sealed class Accelerometer { AccelerometerDataThreshold ReportThreshold { get; } } public sealed class AccelerometerDataThreshold public sealed class Barometer { BarometerDataThreshold ReportThreshold { get; } } public sealed class BarometerDataThreshold public sealed class Compass { CompassDataThreshold ReportThreshold { get; } } public sealed class CompassDataThreshold public sealed class Gyrometer { GyrometerDataThreshold ReportThreshold { get; } } public sealed class GyrometerDataThreshold public sealed class Inclinometer { InclinometerDataThreshold ReportThreshold { get; } } public sealed class InclinometerDataThreshold public sealed class LightSensor { LightSensorDataThreshold ReportThreshold { get; } } public sealed class LightSensorDataThreshold public sealed class Magnetometer { MagnetometerDataThreshold ReportThreshold { get; } } public sealed class MagnetometerDataThreshold } namespace Windows.Foundation.Metadata { public sealed class AttributeNameAttribute : Attribute public sealed class FastAbiAttribute : Attribute public sealed class NoExceptionAttribute : Attribute } namespace Windows.Globalization { public sealed class Language { string AbbreviatedName { get; } public static IVector<string> GetMuiCompatibleLanguageListFromLanguageTags(IIterable<string> languageTags); } } namespace Windows.Graphics.Capture { public sealed class GraphicsCaptureSession : IClosable { bool IsCursorCaptureEnabled { get; set; } } } namespace Windows.Graphics.DirectX { public enum DirectXPixelFormat { SamplerFeedbackMinMipOpaque = 189, SamplerFeedbackMipRegionUsedOpaque = 190, } } namespace Windows.Graphics.Holographic { public sealed class HolographicFrame { HolographicFrameId Id { get; } } public struct HolographicFrameId public sealed class HolographicFrameRenderingReport public sealed class HolographicFrameScanoutMonitor : IClosable public sealed class HolographicFrameScanoutReport public sealed class HolographicSpace { HolographicFrameScanoutMonitor CreateFrameScanoutMonitor(uint maxQueuedReports); } } namespace Windows.Management.Deployment { public sealed class AddPackageOptions public enum DeploymentOptions : uint { StageInPlace = (uint)4194304, } public sealed class PackageManager { IAsyncOperationWithProgress<DeploymentResult, DeploymentProgress> AddPackageByUriAsync(Uri packageUri, AddPackageOptions options); IVector<Package> FindProvisionedPackages(); PackageStubPreference GetPackageStubPreference(string packageFamilyName); IAsyncOperationWithProgress<DeploymentResult, DeploymentProgress> RegisterPackageByUriAsync(Uri manifestUri, RegisterPackageOptions options); IAsyncOperationWithProgress<DeploymentResult, DeploymentProgress> RegisterPackagesByFullNameAsync(IIterable<string> packageFullNames, RegisterPackageOptions options); void SetPackageStubPreference(string packageFamilyName, PackageStubPreference useStub); IAsyncOperationWithProgress<DeploymentResult, DeploymentProgress> StagePackageByUriAsync(Uri packageUri, StagePackageOptions options); } public enum PackageStubPreference public enum PackageTypes : uint { All = (uint)4294967295, } public sealed class RegisterPackageOptions public enum RemovalOptions : uint { PreserveRoamableApplicationData = (uint)128, } public sealed class StagePackageOptions public enum StubPackageOption } namespace Windows.Media.Audio { public sealed class AudioPlaybackConnection : IClosable public sealed class AudioPlaybackConnectionOpenResult public enum AudioPlaybackConnectionOpenResultStatus public enum AudioPlaybackConnectionState } namespace Windows.Media.Capture { public sealed class MediaCapture : IClosable { MediaCaptureRelativePanelWatcher CreateRelativePanelWatcher(StreamingCaptureMode captureMode, DisplayRegion displayRegion); } public sealed class MediaCaptureInitializationSettings { Uri DeviceUri { get; set; } PasswordCredential DeviceUriPasswordCredential { get; set; } } public sealed class MediaCaptureRelativePanelWatcher : IClosable } namespace Windows.Media.Capture.Frames { public sealed class MediaFrameSourceInfo { Panel GetRelativePanel(DisplayRegion displayRegion); } } namespace Windows.Media.Devices { public sealed class PanelBasedOptimizationControl public sealed class VideoDeviceController : IMediaDeviceController { PanelBasedOptimizationControl PanelBasedOptimizationControl { get; } } } namespace Windows.Media.MediaProperties { public static class MediaEncodingSubtypes { public static string Pgs { get; } public static string Srt { get; } public static string Ssa { get; } public static string VobSub { get; } } public sealed class TimedMetadataEncodingProperties : IMediaEncodingProperties { public static TimedMetadataEncodingProperties CreatePgs(); public static TimedMetadataEncodingProperties CreateSrt(); public static TimedMetadataEncodingProperties CreateSsa(byte[] formatUserData); public static TimedMetadataEncodingProperties CreateVobSub(byte[] formatUserData); } } namespace Windows.Networking.BackgroundTransfer { public sealed class DownloadOperation : IBackgroundTransferOperation, IBackgroundTransferOperationPriority { void RemoveRequestHeader(string headerName); void SetRequestHeader(string headerName, string headerValue); } public sealed class UploadOperation : IBackgroundTransferOperation, IBackgroundTransferOperationPriority { void RemoveRequestHeader(string headerName); void SetRequestHeader(string headerName, string headerValue); } } namespace Windows.Networking.Connectivity { public enum NetworkAuthenticationType { Owe = 12, } } namespace Windows.Networking.NetworkOperators { public sealed class NetworkOperatorTetheringAccessPointConfiguration { TetheringWiFiBand Band { get; set; } bool IsBandSupported(TetheringWiFiBand band); IAsyncOperation<bool> IsBandSupportedAsync(TetheringWiFiBand band); } public sealed class NetworkOperatorTetheringManager { public static void DisableNoConnectionsTimeout(); public static IAsyncAction DisableNoConnectionsTimeoutAsync(); public static void EnableNoConnectionsTimeout(); public static IAsyncAction EnableNoConnectionsTimeoutAsync(); public static bool IsNoConnectionsTimeoutEnabled(); } public enum TetheringWiFiBand } namespace Windows.Networking.PushNotifications { public static class PushNotificationChannelManager { public static event EventHandler<PushNotificationChannelsRevokedEventArgs> ChannelsRevoked; } public sealed class PushNotificationChannelsRevokedEventArgs public sealed class RawNotification { IBuffer ContentBytes { get; } } } namespace Windows.Security.Authentication.Web.Core { public sealed class WebAccountMonitor { event TypedEventHandler<WebAccountMonitor, WebAccountEventArgs> AccountPictureUpdated; } } namespace Windows.Security.Isolation { public sealed class IsolatedWindowsEnvironment public enum IsolatedWindowsEnvironmentActivator public enum IsolatedWindowsEnvironmentAllowedClipboardFormats : uint public enum IsolatedWindowsEnvironmentAvailablePrinters : uint public enum IsolatedWindowsEnvironmentClipboardCopyPasteDirections : uint public struct IsolatedWindowsEnvironmentContract public struct IsolatedWindowsEnvironmentCreateProgress public sealed class IsolatedWindowsEnvironmentCreateResult public enum IsolatedWindowsEnvironmentCreateStatus public sealed class IsolatedWindowsEnvironmentFile public static class IsolatedWindowsEnvironmentHost public enum IsolatedWindowsEnvironmentHostError public sealed class IsolatedWindowsEnvironmentLaunchFileResult public enum IsolatedWindowsEnvironmentLaunchFileStatus public sealed class IsolatedWindowsEnvironmentOptions public static class IsolatedWindowsEnvironmentOwnerRegistration public sealed class IsolatedWindowsEnvironmentOwnerRegistrationData public sealed class IsolatedWindowsEnvironmentOwnerRegistrationResult public enum IsolatedWindowsEnvironmentOwnerRegistrationStatus public sealed class IsolatedWindowsEnvironmentProcess public enum IsolatedWindowsEnvironmentProcessState public enum IsolatedWindowsEnvironmentProgressState public sealed class IsolatedWindowsEnvironmentShareFolderRequestOptions public sealed class IsolatedWindowsEnvironmentShareFolderResult public enum IsolatedWindowsEnvironmentShareFolderStatus public sealed class IsolatedWindowsEnvironmentStartProcessResult public enum IsolatedWindowsEnvironmentStartProcessStatus public sealed class IsolatedWindowsEnvironmentTelemetryParameters public static class IsolatedWindowsHostMessenger public delegate void MessageReceivedCallback(Guid receiverId, IVectorView<object> message); } namespace Windows.Storage { public static class KnownFolders { public static IAsyncOperation<StorageFolder> GetFolderAsync(KnownFolderId folderId); public static IAsyncOperation<KnownFoldersAccessStatus> RequestAccessAsync(KnownFolderId folderId); public static IAsyncOperation<KnownFoldersAccessStatus> RequestAccessForUserAsync(User user, KnownFolderId folderId); } public enum KnownFoldersAccessStatus public sealed class StorageFile : IInputStreamReference, IRandomAccessStreamReference, IStorageFile, IStorageFile2, IStorageFilePropertiesWithAvailability, IStorageItem, IStorageItem2, IStorageItemProperties, IStorageItemProperties2, IStorageItemPropertiesWithProvider { public static IAsyncOperation<StorageFile> GetFileFromPathForUserAsync(User user, string path); } public sealed class StorageFolder : IStorageFolder, IStorageFolder2, IStorageFolderQueryOperations, IStorageItem, IStorageItem2, IStorageItemProperties, IStorageItemProperties2, IStorageItemPropertiesWithProvider { public static IAsyncOperation<StorageFolder> GetFolderFromPathForUserAsync(User user, string path); } } namespace Windows.Storage.Provider { public sealed class StorageProviderFileTypeInfo public sealed class StorageProviderSyncRootInfo { IVector<StorageProviderFileTypeInfo> FallbackFileTypeInfo { get; } } public static class StorageProviderSyncRootManager { public static bool IsSupported(); } } namespace Windows.System { public sealed class UserChangedEventArgs { IVectorView<UserWatcherUpdateKind> ChangedPropertyKinds { get; } } public enum UserWatcherUpdateKind } namespace Windows.UI.Composition.Interactions { public sealed class InteractionTracker : CompositionObject { int TryUpdatePosition(Vector3 value, InteractionTrackerClampingOption option, InteractionTrackerPositionUpdateOption posUpdateOption); } public enum InteractionTrackerPositionUpdateOption } namespace Windows.UI.Input { public sealed class CrossSlidingEventArgs { uint ContactCount { get; } } public sealed class DraggingEventArgs { uint ContactCount { get; } } public sealed class GestureRecognizer { uint HoldMaxContactCount { get; set; } uint HoldMinContactCount { get; set; } float HoldRadius { get; set; } TimeSpan HoldStartDelay { get; set; } uint TapMaxContactCount { get; set; } uint TapMinContactCount { get; set; } uint TranslationMaxContactCount { get; set; } uint TranslationMinContactCount { get; set; } } public sealed class HoldingEventArgs { uint ContactCount { get; } uint CurrentContactCount { get; } } public sealed class ManipulationCompletedEventArgs { uint ContactCount { get; } uint CurrentContactCount { get; } } public sealed class ManipulationInertiaStartingEventArgs { uint ContactCount { get; } } public sealed class ManipulationStartedEventArgs { uint ContactCount { get; } } public sealed class ManipulationUpdatedEventArgs { uint ContactCount { get; } uint CurrentContactCount { get; } } public sealed class RightTappedEventArgs { uint ContactCount { get; } } public sealed class SystemButtonEventController : AttachableInputObject public sealed class SystemFunctionButtonEventArgs public sealed class SystemFunctionLockChangedEventArgs public sealed class SystemFunctionLockIndicatorChangedEventArgs public sealed class TappedEventArgs { uint ContactCount { get; } } } namespace Windows.UI.Input.Inking { public sealed class InkModelerAttributes { bool UseVelocityBasedPressure { get; set; } } } namespace Windows.UI.Text { public enum RichEditMathMode public sealed class RichEditTextDocument : ITextDocument { void GetMath(out string value); void SetMath(string value); void SetMathMode(RichEditMathMode mode); } } namespace Windows.UI.ViewManagement { public sealed class UISettings { event TypedEventHandler<UISettings, UISettingsAnimationsEnabledChangedEventArgs> AnimationsEnabledChanged; event TypedEventHandler<UISettings, UISettingsMessageDurationChangedEventArgs> MessageDurationChanged; } public sealed class UISettingsAnimationsEnabledChangedEventArgs public sealed class UISettingsMessageDurationChangedEventArgs } namespace Windows.UI.ViewManagement.Core { public sealed class CoreInputView { event TypedEventHandler<CoreInputView, CoreInputViewHidingEventArgs> PrimaryViewHiding; event TypedEventHandler<CoreInputView, CoreInputViewShowingEventArgs> PrimaryViewShowing; } public sealed class CoreInputViewHidingEventArgs public enum CoreInputViewKind { Symbols = 4, } public sealed class CoreInputViewShowingEventArgs public sealed class UISettingsController } [/code] ]]>
Windows 10 SDK Preview Build 19023 available now! https://blogs.windows.com/windowsdeveloper/2019/11/19/windows-10-sdk-preview-build-19023-available-now/ Tue, 19 Nov 2019 19:20:42 +0000 https://blogs.windows.com/windowsdeveloper/?p=55594 Today, we released a new Windows 10 Preview Build of the SDK to be used in conjunction with Windows 10 Insider Preview (Build 19023 or greater). The Preview SDK Build 19023 contains bug fixes and under development changes to the API surface area. The Preview SDK can be downloaded from developer section on Windows Insider. For feedback and […]

The post Windows 10 SDK Preview Build 19023 available now! appeared first on Windows Developer Blog.

]]>
Windows 10 Insider Preview (Build 19023 or greater). The Preview SDK Build 19023 contains bug fixes and under development changes to the API surface area. The Preview SDK can be downloaded from developer section on Windows Insider. For feedback and updates to the known issues, please see the developer forum. For new developer feature requests, head over to our Windows Platform UserVoice.

Things to note:

  • This build works in conjunction with previously released SDKs and Visual Studio 2017 and 2019. You can install this SDK and still also continue to submit your apps that target Windows 10 build 1903 or earlier to the Microsoft Store.
  • The Windows SDK will now formally only be supported by Visual Studio 2017 and greater. You can download the Visual Studio 2019 here.
  • This build of the Windows SDK will install on only on Windows 10 Insider Preview builds.
  • In order to assist with script access to the SDK, the ISO will also be able to be accessed through the following static URL: https://software-download.microsoft.com/download/sg/Windows_InsiderPreview_SDK_en-us_19023_1.iso.

Tools Updates

Message Compiler (mc.exe)

  • Now detects the Unicode byte order mark (BOM) in .mc files. If the If the .mc file starts with a UTF-8 BOM, it will be read as a UTF-8 file. Otherwise, if it starts with a UTF-16LE BOM, it will be read as a UTF-16LE file. If the -u parameter was specified, it will be read as a UTF-16LE file. Otherwise, it will be read using the current code page (CP_ACP).
  • Now avoids one-definition-rule (ODR) problems in MC-generated C/C++ ETW helpers caused by conflicting configuration macros (e.g. when two .cpp files with conflicting definitions of MCGEN_EVENTWRITETRANSFER are linked into the same binary, the MC-generated ETW helpers will now respect the definition of MCGEN_EVENTWRITETRANSFER in each .cpp file instead of arbitrarily picking one or the other).

Windows Trace Preprocessor (tracewpp.exe)

  • Now supports Unicode input (.ini, .tpl, and source code) files. Input files starting with a UTF-8 or UTF-16 byte order mark (BOM) will be read as Unicode. Input files that do not start with a BOM will be read using the current code page (CP_ACP). For backwards-compatibility, if the -UnicodeIgnore command-line parameter is specified, files starting with a UTF-16 BOM will be treated as empty.
  • Now supports Unicode output (.tmh) files. By default, output files will be encoded using the current code page (CP_ACP). Use command-line parameters -cp:UTF-8 or -cp:UTF-16 to generate Unicode output files.
  • Behavior change: tracewpp now converts all input text to Unicode, performs processing in Unicode, and converts output text to the specified output encoding. Earlier versions of tracewpp avoided Unicode conversions and performed text processing assuming a single-byte character set. This may lead to behavior changes in cases where the input files do not conform to the current code page. In cases where this is a problem, consider converting the input files to UTF-8 (with BOM) and/or using the -cp:UTF-8 command-line parameter to avoid encoding ambiguity.

TraceLoggingProvider.h

  • Now avoids one-definition-rule (ODR) problems caused by conflicting configuration macros (e.g. when two .cpp files with conflicting definitions of TLG_EVENT_WRITE_TRANSFER are linked into the same binary, the TraceLoggingProvider.h helpers will now respect the definition of TLG_EVENT_WRITE_TRANSFER in each .cpp file instead of arbitrarily picking one or the other).
  • In C++ code, the TraceLoggingWrite macro has been updated to enable better code sharing between similar events using variadic templates.

Signing your apps with Device Guard Signing

Windows SDK Flight NuGet Feed

We have stood up a NuGet feed for the flighted builds of the SDK. You can now test preliminary builds of theWindows 10 WinRT API Pack, as well as a microsoft.windows.sdk.headless.contracts NuGet package. We use the following feed to flight our NuGet packages. Microsoft.Windows.SDK.Contracts which can be used with to add the latest Windows Runtime APIs support to your .NET Framework 4.5+ and .NET Core 3.0+ libraries and apps. The Windows 10 WinRT API Pack enables you to add the latest Windows Runtime APIs support to your .NET Framework 4.5+ and .NET Core 3.0+ libraries and apps. Microsoft.Windows.SDK.Headless.Contracts provides a subset of the Windows Runtime APIs for console apps excludes the APIs associated with a graphical user interface.  This NuGet is used in conjunction with Windows ML container development. Check out the Getting Started guide for more information.

Breaking Changes

Removal of api-ms-win-net-isolation-l1-1-0.lib

In this release api-ms-win-net-isolation-l1-1-0.lib has been removed from the Windows SDK. Apps that were linking against api-ms-win-net-isolation-l1-1-0.lib can switch to OneCoreUAP.lib as a replacement.

Removal of IRPROPS.LIB

In this release irprops.lib has been removed from the Windows SDK. Apps that were linking against irprops.lib can switch to bthprops.lib as a drop-in replacement.

Removal of WUAPICommon.H and WUAPICommon.IDL

In this release we have moved ENUM tagServerSelection from WUAPICommon.H to wupai.h and removed the header. If you would like to use the ENUM tagServerSelection, you will need to include wuapi.h or wuapi.idl.

API Updates, Additions and Removals

The following APIs have been added to the platform since the release of Windows 10 SDK, version 1903, build 18362.

Additions:

[code lang="csharp"] namespace Windows.AI.MachineLearning { public sealed class LearningModelSessionOptions { bool CloseModelOnSessionCreation { get; set; } } } namespace Windows.ApplicationModel { public sealed class AppInfo { public static AppInfo Current { get; } Package Package { get; } public static AppInfo GetFromAppUserModelId(string appUserModelId); public static AppInfo GetFromAppUserModelIdForUser(User user, string appUserModelId); } public interface IAppInfoStatics public sealed class Package { StorageFolder EffectiveExternalLocation { get; } string EffectiveExternalPath { get; } string EffectivePath { get; } string InstalledPath { get; } bool IsStub { get; } StorageFolder MachineExternalLocation { get; } string MachineExternalPath { get; } string MutablePath { get; } StorageFolder UserExternalLocation { get; } string UserExternalPath { get; } IVectorView<AppListEntry> GetAppListEntries(); RandomAccessStreamReference GetLogoAsRandomAccessStreamReference(Size size); } } namespace Windows.ApplicationModel.AppService { public enum AppServiceConnectionStatus { AuthenticationError = 8, DisabledByPolicy = 10, NetworkNotAvailable = 9, WebServiceUnavailable = 11, } public enum AppServiceResponseStatus { AppUnavailable = 6, AuthenticationError = 7, DisabledByPolicy = 9, NetworkNotAvailable = 8, WebServiceUnavailable = 10, } public enum StatelessAppServiceResponseStatus { AuthenticationError = 11, DisabledByPolicy = 13, NetworkNotAvailable = 12, WebServiceUnavailable = 14, } } namespace Windows.ApplicationModel.Background { public sealed class BackgroundTaskBuilder { void SetTaskEntryPointClsid(Guid TaskEntryPoint); } public sealed class BluetoothLEAdvertisementPublisherTrigger : IBackgroundTrigger { bool IncludeTransmitPowerLevel { get; set; } bool IsAnonymous { get; set; } IReference<short> PreferredTransmitPowerLevelInDBm { get; set; } bool UseExtendedFormat { get; set; } } public sealed class BluetoothLEAdvertisementWatcherTrigger : IBackgroundTrigger { bool AllowExtendedAdvertisements { get; set; } } } namespace Windows.ApplicationModel.ConversationalAgent { public sealed class ActivationSignalDetectionConfiguration public enum ActivationSignalDetectionTrainingDataFormat public sealed class ActivationSignalDetector public enum ActivationSignalDetectorKind public enum ActivationSignalDetectorPowerState public sealed class ConversationalAgentDetectorManager public sealed class DetectionConfigurationAvailabilityChangedEventArgs public enum DetectionConfigurationAvailabilityChangeKind public sealed class DetectionConfigurationAvailabilityInfo public enum DetectionConfigurationTrainingStatus } namespace Windows.ApplicationModel.DataTransfer { public sealed class DataPackage { event TypedEventHandler<DataPackage, object> ShareCanceled; } } namespace Windows.Devices.Bluetooth { public sealed class BluetoothAdapter { bool IsExtendedAdvertisingSupported { get; } uint MaxAdvertisementDataLength { get; } } } namespace Windows.Devices.Bluetooth.Advertisement { public sealed class BluetoothLEAdvertisementPublisher { bool IncludeTransmitPowerLevel { get; set; } bool IsAnonymous { get; set; } IReference<short> PreferredTransmitPowerLevelInDBm { get; set; } bool UseExtendedAdvertisement { get; set; } } public sealed class BluetoothLEAdvertisementPublisherStatusChangedEventArgs { IReference<short> SelectedTransmitPowerLevelInDBm { get; } } public sealed class BluetoothLEAdvertisementReceivedEventArgs { BluetoothAddressType BluetoothAddressType { get; } bool IsAnonymous { get; } bool IsConnectable { get; } bool IsDirected { get; } bool IsScannable { get; } bool IsScanResponse { get; } IReference<short> TransmitPowerLevelInDBm { get; } } public enum BluetoothLEAdvertisementType { Extended = 5, } public sealed class BluetoothLEAdvertisementWatcher { bool AllowExtendedAdvertisements { get; set; } } public enum BluetoothLEScanningMode { None = 2, } } namespace Windows.Devices.Bluetooth.Background { public sealed class BluetoothLEAdvertisementPublisherTriggerDetails { IReference<short> SelectedTransmitPowerLevelInDBm { get; } } } namespace Windows.Devices.Display { public sealed class DisplayMonitor { bool IsDolbyVisionSupportedInHdrMode { get; } } } namespace Windows.Devices.Input { public sealed class PenButtonListener public sealed class PenDockedEventArgs public sealed class PenDockListener public sealed class PenTailButtonClickedEventArgs public sealed class PenTailButtonDoubleClickedEventArgs public sealed class PenTailButtonLongPressedEventArgs public sealed class PenUndockedEventArgs } namespace Windows.Devices.Sensors { public sealed class Accelerometer { AccelerometerDataThreshold ReportThreshold { get; } } public sealed class AccelerometerDataThreshold public sealed class Barometer { BarometerDataThreshold ReportThreshold { get; } } public sealed class BarometerDataThreshold public sealed class Compass { CompassDataThreshold ReportThreshold { get; } } public sealed class CompassDataThreshold public sealed class Gyrometer { GyrometerDataThreshold ReportThreshold { get; } } public sealed class GyrometerDataThreshold public sealed class Inclinometer { InclinometerDataThreshold ReportThreshold { get; } } public sealed class InclinometerDataThreshold public sealed class LightSensor { LightSensorDataThreshold ReportThreshold { get; } } public sealed class LightSensorDataThreshold public sealed class Magnetometer { MagnetometerDataThreshold ReportThreshold { get; } } public sealed class MagnetometerDataThreshold } namespace Windows.Foundation.Metadata { public sealed class AttributeNameAttribute : Attribute public sealed class FastAbiAttribute : Attribute public sealed class NoExceptionAttribute : Attribute } namespace Windows.Globalization { public sealed class Language { string AbbreviatedName { get; } public static IVector<string> GetMuiCompatibleLanguageListFromLanguageTags(IIterable<string> languageTags); } } namespace Windows.Graphics.Capture { public sealed class GraphicsCaptureSession : IClosable { bool IsCursorCaptureEnabled { get; set; } } } namespace Windows.Graphics.DirectX { public enum DirectXPixelFormat { SamplerFeedbackMinMipOpaque = 189, SamplerFeedbackMipRegionUsedOpaque = 190, } } namespace Windows.Graphics.Holographic { public sealed class HolographicFrame { HolographicFrameId Id { get; } } public struct HolographicFrameId public sealed class HolographicFrameRenderingReport public sealed class HolographicFrameScanoutMonitor : IClosable public sealed class HolographicFrameScanoutReport public sealed class HolographicSpace { HolographicFrameScanoutMonitor CreateFrameScanoutMonitor(uint maxQueuedReports); } } namespace Windows.Management.Deployment { public sealed class AddPackageOptions public enum DeploymentOptions : uint { StageInPlace = (uint)4194304, } public sealed class PackageManager { IAsyncOperationWithProgress<DeploymentResult, DeploymentProgress> AddPackageByUriAsync(Uri packageUri, AddPackageOptions options); IVector<Package> FindProvisionedPackages(); PackageStubPreference GetPackageStubPreference(string packageFamilyName); IAsyncOperationWithProgress<DeploymentResult, DeploymentProgress> RegisterPackageByUriAsync(Uri manifestUri, RegisterPackageOptions options); IAsyncOperationWithProgress<DeploymentResult, DeploymentProgress> RegisterPackagesByFullNameAsync(IIterable<string> packageFullNames, RegisterPackageOptions options); void SetPackageStubPreference(string packageFamilyName, PackageStubPreference useStub); IAsyncOperationWithProgress<DeploymentResult, DeploymentProgress> StagePackageByUriAsync(Uri packageUri, StagePackageOptions options); } public enum PackageStubPreference public enum PackageTypes : uint { All = (uint)4294967295, } public sealed class RegisterPackageOptions public enum RemovalOptions : uint { PreserveRoamableApplicationData = (uint)128, } public sealed class StagePackageOptions public enum StubPackageOption } namespace Windows.Media.Audio { public sealed class AudioPlaybackConnection : IClosable public sealed class AudioPlaybackConnectionOpenResult public enum AudioPlaybackConnectionOpenResultStatus public enum AudioPlaybackConnectionState } namespace Windows.Media.Capture { public sealed class MediaCapture : IClosable { MediaCaptureRelativePanelWatcher CreateRelativePanelWatcher(StreamingCaptureMode captureMode, DisplayRegion displayRegion); } public sealed class MediaCaptureInitializationSettings { Uri DeviceUri { get; set; } PasswordCredential DeviceUriPasswordCredential { get; set; } } public sealed class MediaCaptureRelativePanelWatcher : IClosable } namespace Windows.Media.Capture.Frames { public sealed class MediaFrameSourceInfo { Panel GetRelativePanel(DisplayRegion displayRegion); } } namespace Windows.Media.Devices { public sealed class PanelBasedOptimizationControl public sealed class VideoDeviceController : IMediaDeviceController { PanelBasedOptimizationControl PanelBasedOptimizationControl { get; } } } namespace Windows.Media.MediaProperties { public static class MediaEncodingSubtypes { public static string Pgs { get; } public static string Srt { get; } public static string Ssa { get; } public static string VobSub { get; } } public sealed class TimedMetadataEncodingProperties : IMediaEncodingProperties { public static TimedMetadataEncodingProperties CreatePgs(); public static TimedMetadataEncodingProperties CreateSrt(); public static TimedMetadataEncodingProperties CreateSsa(byte[] formatUserData); public static TimedMetadataEncodingProperties CreateVobSub(byte[] formatUserData); } } namespace Windows.Networking.BackgroundTransfer { public sealed class DownloadOperation : IBackgroundTransferOperation, IBackgroundTransferOperationPriority { void RemoveRequestHeader(string headerName); void SetRequestHeader(string headerName, string headerValue); } public sealed class UploadOperation : IBackgroundTransferOperation, IBackgroundTransferOperationPriority { void RemoveRequestHeader(string headerName); void SetRequestHeader(string headerName, string headerValue); } } namespace Windows.Networking.Connectivity { public enum NetworkAuthenticationType { Owe = 12, } } namespace Windows.Networking.NetworkOperators { public sealed class NetworkOperatorTetheringAccessPointConfiguration { TetheringWiFiBand Band { get; set; } bool IsBandSupported(TetheringWiFiBand band); IAsyncOperation<bool> IsBandSupportedAsync(TetheringWiFiBand band); } public sealed class NetworkOperatorTetheringManager { public static void DisableNoConnectionsTimeout(); public static IAsyncAction DisableNoConnectionsTimeoutAsync(); public static void EnableNoConnectionsTimeout(); public static IAsyncAction EnableNoConnectionsTimeoutAsync(); public static bool IsNoConnectionsTimeoutEnabled(); } public enum TetheringWiFiBand } namespace Windows.Networking.PushNotifications { public static class PushNotificationChannelManager { public static event EventHandler<PushNotificationChannelsRevokedEventArgs> ChannelsRevoked; } public sealed class PushNotificationChannelsRevokedEventArgs public sealed class RawNotification { IBuffer ContentBytes { get; } } } namespace Windows.Security.Authentication.Web.Core { public sealed class WebAccountMonitor { event TypedEventHandler<WebAccountMonitor, WebAccountEventArgs> AccountPictureUpdated; } } namespace Windows.Security.Isolation { public sealed class IsolatedWindowsEnvironment public enum IsolatedWindowsEnvironmentActivator public enum IsolatedWindowsEnvironmentAllowedClipboardFormats : uint public enum IsolatedWindowsEnvironmentAvailablePrinters : uint public enum IsolatedWindowsEnvironmentClipboardCopyPasteDirections : uint public struct IsolatedWindowsEnvironmentContract public struct IsolatedWindowsEnvironmentCreateProgress public sealed class IsolatedWindowsEnvironmentCreateResult public enum IsolatedWindowsEnvironmentCreateStatus public sealed class IsolatedWindowsEnvironmentFile public static class IsolatedWindowsEnvironmentHost public enum IsolatedWindowsEnvironmentHostError public sealed class IsolatedWindowsEnvironmentLaunchFileResult public enum IsolatedWindowsEnvironmentLaunchFileStatus public sealed class IsolatedWindowsEnvironmentOptions public static class IsolatedWindowsEnvironmentOwnerRegistration public sealed class IsolatedWindowsEnvironmentOwnerRegistrationData public sealed class IsolatedWindowsEnvironmentOwnerRegistrationResult public enum IsolatedWindowsEnvironmentOwnerRegistrationStatus public sealed class IsolatedWindowsEnvironmentProcess public enum IsolatedWindowsEnvironmentProcessState public enum IsolatedWindowsEnvironmentProgressState public sealed class IsolatedWindowsEnvironmentShareFolderRequestOptions public sealed class IsolatedWindowsEnvironmentShareFolderResult public enum IsolatedWindowsEnvironmentShareFolderStatus public sealed class IsolatedWindowsEnvironmentStartProcessResult public enum IsolatedWindowsEnvironmentStartProcessStatus public sealed class IsolatedWindowsEnvironmentTelemetryParameters public static class IsolatedWindowsHostMessenger public delegate void MessageReceivedCallback(Guid receiverId, IVectorView<object> message); } namespace Windows.Storage { public static class KnownFolders { public static IAsyncOperation<StorageFolder> GetFolderAsync(KnownFolderId folderId); public static IAsyncOperation<KnownFoldersAccessStatus> RequestAccessAsync(KnownFolderId folderId); public static IAsyncOperation<KnownFoldersAccessStatus> RequestAccessForUserAsync(User user, KnownFolderId folderId); } public enum KnownFoldersAccessStatus public sealed class StorageFile : IInputStreamReference, IRandomAccessStreamReference, IStorageFile, IStorageFile2, IStorageFilePropertiesWithAvailability, IStorageItem, IStorageItem2, IStorageItemProperties, IStorageItemProperties2, IStorageItemPropertiesWithProvider { public static IAsyncOperation<StorageFile> GetFileFromPathForUserAsync(User user, string path); } public sealed class StorageFolder : IStorageFolder, IStorageFolder2, IStorageFolderQueryOperations, IStorageItem, IStorageItem2, IStorageItemProperties, IStorageItemProperties2, IStorageItemPropertiesWithProvider { public static IAsyncOperation<StorageFolder> GetFolderFromPathForUserAsync(User user, string path); } } namespace Windows.Storage.Provider { public sealed class StorageProviderFileTypeInfo public sealed class StorageProviderSyncRootInfo { IVector<StorageProviderFileTypeInfo> FallbackFileTypeInfo { get; } } public static class StorageProviderSyncRootManager { public static bool IsSupported(); } } namespace Windows.System { public sealed class UserChangedEventArgs { IVectorView<UserWatcherUpdateKind> ChangedPropertyKinds { get; } } public enum UserWatcherUpdateKind } namespace Windows.UI.Composition.Interactions { public sealed class InteractionTracker : CompositionObject { int TryUpdatePosition(Vector3 value, InteractionTrackerClampingOption option, InteractionTrackerPositionUpdateOption posUpdateOption); } public enum InteractionTrackerPositionUpdateOption } namespace Windows.UI.Input { public sealed class CrossSlidingEventArgs { uint ContactCount { get; } } public sealed class DraggingEventArgs { uint ContactCount { get; } } public sealed class GestureRecognizer { uint HoldMaxContactCount { get; set; } uint HoldMinContactCount { get; set; } float HoldRadius { get; set; } TimeSpan HoldStartDelay { get; set; } uint TapMaxContactCount { get; set; } uint TapMinContactCount { get; set; } uint TranslationMaxContactCount { get; set; } uint TranslationMinContactCount { get; set; } } public sealed class HoldingEventArgs { uint ContactCount { get; } uint CurrentContactCount { get; } } public sealed class ManipulationCompletedEventArgs { uint ContactCount { get; } uint CurrentContactCount { get; } } public sealed class ManipulationInertiaStartingEventArgs { uint ContactCount { get; } } public sealed class ManipulationStartedEventArgs { uint ContactCount { get; } } public sealed class ManipulationUpdatedEventArgs { uint ContactCount { get; } uint CurrentContactCount { get; } } public sealed class RightTappedEventArgs { uint ContactCount { get; } } public sealed class SystemButtonEventController : AttachableInputObject public sealed class SystemFunctionButtonEventArgs public sealed class SystemFunctionLockChangedEventArgs public sealed class SystemFunctionLockIndicatorChangedEventArgs public sealed class TappedEventArgs { uint ContactCount { get; } } } namespace Windows.UI.Input.Inking { public sealed class InkModelerAttributes { bool UseVelocityBasedPressure { get; set; } } } namespace Windows.UI.Text { public enum RichEditMathMode public sealed class RichEditTextDocument : ITextDocument { void GetMath(out string value); void SetMath(string value); void SetMathMode(RichEditMathMode mode); } } namespace Windows.UI.ViewManagement { public sealed class UISettings { event TypedEventHandler<UISettings, UISettingsAnimationsEnabledChangedEventArgs> AnimationsEnabledChanged; event TypedEventHandler<UISettings, UISettingsMessageDurationChangedEventArgs> MessageDurationChanged; } public sealed class UISettingsAnimationsEnabledChangedEventArgs public sealed class UISettingsMessageDurationChangedEventArgs } namespace Windows.UI.ViewManagement.Core { public sealed class CoreInputView { event TypedEventHandler<CoreInputView, CoreInputViewHidingEventArgs> PrimaryViewHiding; event TypedEventHandler<CoreInputView, CoreInputViewShowingEventArgs> PrimaryViewShowing; } public sealed class CoreInputViewHidingEventArgs public enum CoreInputViewKind { Symbols = 4, } public sealed class CoreInputViewShowingEventArgs public sealed class UISettingsController } [/code] Today, we released a new Windows 10 Preview Build of the SDK to be used in conjunction with Windows 10 Insider Preview (Build 19023 or greater). The Preview SDK Build 19023 contains bug fixes and under development changes to the API surface area. The Preview SDK can be downloaded from developer section on Windows Insider. For feedback and updates to the known issues, please see the developer forum. For new developer feature requests, head over to our Windows Platform UserVoice.

Things to note:

  • This build works in conjunction with previously released SDKs and Visual Studio 2017 and 2019. You can install this SDK and still also continue to submit your apps that target Windows 10 build 1903 or earlier to the Microsoft Store.
  • The Windows SDK will now formally only be supported by Visual Studio 2017 and greater. You can download the Visual Studio 2019 here.
  • This build of the Windows SDK will install on only on Windows 10 Insider Preview builds.
  • In order to assist with script access to the SDK, the ISO will also be able to be accessed through the following static URL: https://software-download.microsoft.com/download/sg/Windows_InsiderPreview_SDK_en-us_19023_1.iso.

Tools Updates

Message Compiler (mc.exe)

  • Now detects the Unicode byte order mark (BOM) in .mc files. If the If the .mc file starts with a UTF-8 BOM, it will be read as a UTF-8 file. Otherwise, if it starts with a UTF-16LE BOM, it will be read as a UTF-16LE file. If the -u parameter was specified, it will be read as a UTF-16LE file. Otherwise, it will be read using the current code page (CP_ACP).
  • Now avoids one-definition-rule (ODR) problems in MC-generated C/C++ ETW helpers caused by conflicting configuration macros (e.g. when two .cpp files with conflicting definitions of MCGEN_EVENTWRITETRANSFER are linked into the same binary, the MC-generated ETW helpers will now respect the definition of MCGEN_EVENTWRITETRANSFER in each .cpp file instead of arbitrarily picking one or the other).

Windows Trace Preprocessor (tracewpp.exe)

  • Now supports Unicode input (.ini, .tpl, and source code) files. Input files starting with a UTF-8 or UTF-16 byte order mark (BOM) will be read as Unicode. Input files that do not start with a BOM will be read using the current code page (CP_ACP). For backwards-compatibility, if the -UnicodeIgnore command-line parameter is specified, files starting with a UTF-16 BOM will be treated as empty.
  • Now supports Unicode output (.tmh) files. By default, output files will be encoded using the current code page (CP_ACP). Use command-line parameters -cp:UTF-8 or -cp:UTF-16 to generate Unicode output files.
  • Behavior change: tracewpp now converts all input text to Unicode, performs processing in Unicode, and converts output text to the specified output encoding. Earlier versions of tracewpp avoided Unicode conversions and performed text processing assuming a single-byte character set. This may lead to behavior changes in cases where the input files do not conform to the current code page. In cases where this is a problem, consider converting the input files to UTF-8 (with BOM) and/or using the -cp:UTF-8 command-line parameter to avoid encoding ambiguity.

TraceLoggingProvider.h

  • Now avoids one-definition-rule (ODR) problems caused by conflicting configuration macros (e.g. when two .cpp files with conflicting definitions of TLG_EVENT_WRITE_TRANSFER are linked into the same binary, the TraceLoggingProvider.h helpers will now respect the definition of TLG_EVENT_WRITE_TRANSFER in each .cpp file instead of arbitrarily picking one or the other).
  • In C++ code, the TraceLoggingWrite macro has been updated to enable better code sharing between similar events using variadic templates.

Signing your apps with Device Guard Signing

Windows SDK Flight NuGet Feed

We have stood up a NuGet feed for the flighted builds of the SDK. You can now test preliminary builds of theWindows 10 WinRT API Pack, as well as a microsoft.windows.sdk.headless.contracts NuGet package. We use the following feed to flight our NuGet packages. Microsoft.Windows.SDK.Contracts which can be used with to add the latest Windows Runtime APIs support to your .NET Framework 4.5+ and .NET Core 3.0+ libraries and apps. The Windows 10 WinRT API Pack enables you to add the latest Windows Runtime APIs support to your .NET Framework 4.5+ and .NET Core 3.0+ libraries and apps. Microsoft.Windows.SDK.Headless.Contracts provides a subset of the Windows Runtime APIs for console apps excludes the APIs associated with a graphical user interface.  This NuGet is used in conjunction with Windows ML container development. Check out the Getting Started guide for more information.

Breaking Changes

Removal of api-ms-win-net-isolation-l1-1-0.lib

In this release api-ms-win-net-isolation-l1-1-0.lib has been removed from the Windows SDK. Apps that were linking against api-ms-win-net-isolation-l1-1-0.lib can switch to OneCoreUAP.lib as a replacement.

Removal of IRPROPS.LIB

In this release irprops.lib has been removed from the Windows SDK. Apps that were linking against irprops.lib can switch to bthprops.lib as a drop-in replacement.

Removal of WUAPICommon.H and WUAPICommon.IDL

In this release we have moved ENUM tagServerSelection from WUAPICommon.H to wupai.h and removed the header. If you would like to use the ENUM tagServerSelection, you will need to include wuapi.h or wuapi.idl.

API Updates, Additions and Removals

The following APIs have been added to the platform since the release of Windows 10 SDK, version 1903, build 18362.

Additions:

[code lang="csharp"] namespace Windows.AI.MachineLearning { public sealed class LearningModelSessionOptions { bool CloseModelOnSessionCreation { get; set; } } } namespace Windows.ApplicationModel { public sealed class AppInfo { public static AppInfo Current { get; } Package Package { get; } public static AppInfo GetFromAppUserModelId(string appUserModelId); public static AppInfo GetFromAppUserModelIdForUser(User user, string appUserModelId); } public interface IAppInfoStatics public sealed class Package { StorageFolder EffectiveExternalLocation { get; } string EffectiveExternalPath { get; } string EffectivePath { get; } string InstalledPath { get; } bool IsStub { get; } StorageFolder MachineExternalLocation { get; } string MachineExternalPath { get; } string MutablePath { get; } StorageFolder UserExternalLocation { get; } string UserExternalPath { get; } IVectorView<AppListEntry> GetAppListEntries(); RandomAccessStreamReference GetLogoAsRandomAccessStreamReference(Size size); } } namespace Windows.ApplicationModel.AppService { public enum AppServiceConnectionStatus { AuthenticationError = 8, DisabledByPolicy = 10, NetworkNotAvailable = 9, WebServiceUnavailable = 11, } public enum AppServiceResponseStatus { AppUnavailable = 6, AuthenticationError = 7, DisabledByPolicy = 9, NetworkNotAvailable = 8, WebServiceUnavailable = 10, } public enum StatelessAppServiceResponseStatus { AuthenticationError = 11, DisabledByPolicy = 13, NetworkNotAvailable = 12, WebServiceUnavailable = 14, } } namespace Windows.ApplicationModel.Background { public sealed class BackgroundTaskBuilder { void SetTaskEntryPointClsid(Guid TaskEntryPoint); } public sealed class BluetoothLEAdvertisementPublisherTrigger : IBackgroundTrigger { bool IncludeTransmitPowerLevel { get; set; } bool IsAnonymous { get; set; } IReference<short> PreferredTransmitPowerLevelInDBm { get; set; } bool UseExtendedFormat { get; set; } } public sealed class BluetoothLEAdvertisementWatcherTrigger : IBackgroundTrigger { bool AllowExtendedAdvertisements { get; set; } } } namespace Windows.ApplicationModel.ConversationalAgent { public sealed class ActivationSignalDetectionConfiguration public enum ActivationSignalDetectionTrainingDataFormat public sealed class ActivationSignalDetector public enum ActivationSignalDetectorKind public enum ActivationSignalDetectorPowerState public sealed class ConversationalAgentDetectorManager public sealed class DetectionConfigurationAvailabilityChangedEventArgs public enum DetectionConfigurationAvailabilityChangeKind public sealed class DetectionConfigurationAvailabilityInfo public enum DetectionConfigurationTrainingStatus } namespace Windows.ApplicationModel.DataTransfer { public sealed class DataPackage { event TypedEventHandler<DataPackage, object> ShareCanceled; } } namespace Windows.Devices.Bluetooth { public sealed class BluetoothAdapter { bool IsExtendedAdvertisingSupported { get; } uint MaxAdvertisementDataLength { get; } } } namespace Windows.Devices.Bluetooth.Advertisement { public sealed class BluetoothLEAdvertisementPublisher { bool IncludeTransmitPowerLevel { get; set; } bool IsAnonymous { get; set; } IReference<short> PreferredTransmitPowerLevelInDBm { get; set; } bool UseExtendedAdvertisement { get; set; } } public sealed class BluetoothLEAdvertisementPublisherStatusChangedEventArgs { IReference<short> SelectedTransmitPowerLevelInDBm { get; } } public sealed class BluetoothLEAdvertisementReceivedEventArgs { BluetoothAddressType BluetoothAddressType { get; } bool IsAnonymous { get; } bool IsConnectable { get; } bool IsDirected { get; } bool IsScannable { get; } bool IsScanResponse { get; } IReference<short> TransmitPowerLevelInDBm { get; } } public enum BluetoothLEAdvertisementType { Extended = 5, } public sealed class BluetoothLEAdvertisementWatcher { bool AllowExtendedAdvertisements { get; set; } } public enum BluetoothLEScanningMode { None = 2, } } namespace Windows.Devices.Bluetooth.Background { public sealed class BluetoothLEAdvertisementPublisherTriggerDetails { IReference<short> SelectedTransmitPowerLevelInDBm { get; } } } namespace Windows.Devices.Display { public sealed class DisplayMonitor { bool IsDolbyVisionSupportedInHdrMode { get; } } } namespace Windows.Devices.Input { public sealed class PenButtonListener public sealed class PenDockedEventArgs public sealed class PenDockListener public sealed class PenTailButtonClickedEventArgs public sealed class PenTailButtonDoubleClickedEventArgs public sealed class PenTailButtonLongPressedEventArgs public sealed class PenUndockedEventArgs } namespace Windows.Devices.Sensors { public sealed class Accelerometer { AccelerometerDataThreshold ReportThreshold { get; } } public sealed class AccelerometerDataThreshold public sealed class Barometer { BarometerDataThreshold ReportThreshold { get; } } public sealed class BarometerDataThreshold public sealed class Compass { CompassDataThreshold ReportThreshold { get; } } public sealed class CompassDataThreshold public sealed class Gyrometer { GyrometerDataThreshold ReportThreshold { get; } } public sealed class GyrometerDataThreshold public sealed class Inclinometer { InclinometerDataThreshold ReportThreshold { get; } } public sealed class InclinometerDataThreshold public sealed class LightSensor { LightSensorDataThreshold ReportThreshold { get; } } public sealed class LightSensorDataThreshold public sealed class Magnetometer { MagnetometerDataThreshold ReportThreshold { get; } } public sealed class MagnetometerDataThreshold } namespace Windows.Foundation.Metadata { public sealed class AttributeNameAttribute : Attribute public sealed class FastAbiAttribute : Attribute public sealed class NoExceptionAttribute : Attribute } namespace Windows.Globalization { public sealed class Language { string AbbreviatedName { get; } public static IVector<string> GetMuiCompatibleLanguageListFromLanguageTags(IIterable<string> languageTags); } } namespace Windows.Graphics.Capture { public sealed class GraphicsCaptureSession : IClosable { bool IsCursorCaptureEnabled { get; set; } } } namespace Windows.Graphics.DirectX { public enum DirectXPixelFormat { SamplerFeedbackMinMipOpaque = 189, SamplerFeedbackMipRegionUsedOpaque = 190, } } namespace Windows.Graphics.Holographic { public sealed class HolographicFrame { HolographicFrameId Id { get; } } public struct HolographicFrameId public sealed class HolographicFrameRenderingReport public sealed class HolographicFrameScanoutMonitor : IClosable public sealed class HolographicFrameScanoutReport public sealed class HolographicSpace { HolographicFrameScanoutMonitor CreateFrameScanoutMonitor(uint maxQueuedReports); } } namespace Windows.Management.Deployment { public sealed class AddPackageOptions public enum DeploymentOptions : uint { StageInPlace = (uint)4194304, } public sealed class PackageManager { IAsyncOperationWithProgress<DeploymentResult, DeploymentProgress> AddPackageByUriAsync(Uri packageUri, AddPackageOptions options); IVector<Package> FindProvisionedPackages(); PackageStubPreference GetPackageStubPreference(string packageFamilyName); IAsyncOperationWithProgress<DeploymentResult, DeploymentProgress> RegisterPackageByUriAsync(Uri manifestUri, RegisterPackageOptions options); IAsyncOperationWithProgress<DeploymentResult, DeploymentProgress> RegisterPackagesByFullNameAsync(IIterable<string> packageFullNames, RegisterPackageOptions options); void SetPackageStubPreference(string packageFamilyName, PackageStubPreference useStub); IAsyncOperationWithProgress<DeploymentResult, DeploymentProgress> StagePackageByUriAsync(Uri packageUri, StagePackageOptions options); } public enum PackageStubPreference public enum PackageTypes : uint { All = (uint)4294967295, } public sealed class RegisterPackageOptions public enum RemovalOptions : uint { PreserveRoamableApplicationData = (uint)128, } public sealed class StagePackageOptions public enum StubPackageOption } namespace Windows.Media.Audio { public sealed class AudioPlaybackConnection : IClosable public sealed class AudioPlaybackConnectionOpenResult public enum AudioPlaybackConnectionOpenResultStatus public enum AudioPlaybackConnectionState } namespace Windows.Media.Capture { public sealed class MediaCapture : IClosable { MediaCaptureRelativePanelWatcher CreateRelativePanelWatcher(StreamingCaptureMode captureMode, DisplayRegion displayRegion); } public sealed class MediaCaptureInitializationSettings { Uri DeviceUri { get; set; } PasswordCredential DeviceUriPasswordCredential { get; set; } } public sealed class MediaCaptureRelativePanelWatcher : IClosable } namespace Windows.Media.Capture.Frames { public sealed class MediaFrameSourceInfo { Panel GetRelativePanel(DisplayRegion displayRegion); } } namespace Windows.Media.Devices { public sealed class PanelBasedOptimizationControl public sealed class VideoDeviceController : IMediaDeviceController { PanelBasedOptimizationControl PanelBasedOptimizationControl { get; } } } namespace Windows.Media.MediaProperties { public static class MediaEncodingSubtypes { public static string Pgs { get; } public static string Srt { get; } public static string Ssa { get; } public static string VobSub { get; } } public sealed class TimedMetadataEncodingProperties : IMediaEncodingProperties { public static TimedMetadataEncodingProperties CreatePgs(); public static TimedMetadataEncodingProperties CreateSrt(); public static TimedMetadataEncodingProperties CreateSsa(byte[] formatUserData); public static TimedMetadataEncodingProperties CreateVobSub(byte[] formatUserData); } } namespace Windows.Networking.BackgroundTransfer { public sealed class DownloadOperation : IBackgroundTransferOperation, IBackgroundTransferOperationPriority { void RemoveRequestHeader(string headerName); void SetRequestHeader(string headerName, string headerValue); } public sealed class UploadOperation : IBackgroundTransferOperation, IBackgroundTransferOperationPriority { void RemoveRequestHeader(string headerName); void SetRequestHeader(string headerName, string headerValue); } } namespace Windows.Networking.Connectivity { public enum NetworkAuthenticationType { Owe = 12, } } namespace Windows.Networking.NetworkOperators { public sealed class NetworkOperatorTetheringAccessPointConfiguration { TetheringWiFiBand Band { get; set; } bool IsBandSupported(TetheringWiFiBand band); IAsyncOperation<bool> IsBandSupportedAsync(TetheringWiFiBand band); } public sealed class NetworkOperatorTetheringManager { public static void DisableNoConnectionsTimeout(); public static IAsyncAction DisableNoConnectionsTimeoutAsync(); public static void EnableNoConnectionsTimeout(); public static IAsyncAction EnableNoConnectionsTimeoutAsync(); public static bool IsNoConnectionsTimeoutEnabled(); } public enum TetheringWiFiBand } namespace Windows.Networking.PushNotifications { public static class PushNotificationChannelManager { public static event EventHandler<PushNotificationChannelsRevokedEventArgs> ChannelsRevoked; } public sealed class PushNotificationChannelsRevokedEventArgs public sealed class RawNotification { IBuffer ContentBytes { get; } } } namespace Windows.Security.Authentication.Web.Core { public sealed class WebAccountMonitor { event TypedEventHandler<WebAccountMonitor, WebAccountEventArgs> AccountPictureUpdated; } } namespace Windows.Security.Isolation { public sealed class IsolatedWindowsEnvironment public enum IsolatedWindowsEnvironmentActivator public enum IsolatedWindowsEnvironmentAllowedClipboardFormats : uint public enum IsolatedWindowsEnvironmentAvailablePrinters : uint public enum IsolatedWindowsEnvironmentClipboardCopyPasteDirections : uint public struct IsolatedWindowsEnvironmentContract public struct IsolatedWindowsEnvironmentCreateProgress public sealed class IsolatedWindowsEnvironmentCreateResult public enum IsolatedWindowsEnvironmentCreateStatus public sealed class IsolatedWindowsEnvironmentFile public static class IsolatedWindowsEnvironmentHost public enum IsolatedWindowsEnvironmentHostError public sealed class IsolatedWindowsEnvironmentLaunchFileResult public enum IsolatedWindowsEnvironmentLaunchFileStatus public sealed class IsolatedWindowsEnvironmentOptions public static class IsolatedWindowsEnvironmentOwnerRegistration public sealed class IsolatedWindowsEnvironmentOwnerRegistrationData public sealed class IsolatedWindowsEnvironmentOwnerRegistrationResult public enum IsolatedWindowsEnvironmentOwnerRegistrationStatus public sealed class IsolatedWindowsEnvironmentProcess public enum IsolatedWindowsEnvironmentProcessState public enum IsolatedWindowsEnvironmentProgressState public sealed class IsolatedWindowsEnvironmentShareFolderRequestOptions public sealed class IsolatedWindowsEnvironmentShareFolderResult public enum IsolatedWindowsEnvironmentShareFolderStatus public sealed class IsolatedWindowsEnvironmentStartProcessResult public enum IsolatedWindowsEnvironmentStartProcessStatus public sealed class IsolatedWindowsEnvironmentTelemetryParameters public static class IsolatedWindowsHostMessenger public delegate void MessageReceivedCallback(Guid receiverId, IVectorView<object> message); } namespace Windows.Storage { public static class KnownFolders { public static IAsyncOperation<StorageFolder> GetFolderAsync(KnownFolderId folderId); public static IAsyncOperation<KnownFoldersAccessStatus> RequestAccessAsync(KnownFolderId folderId); public static IAsyncOperation<KnownFoldersAccessStatus> RequestAccessForUserAsync(User user, KnownFolderId folderId); } public enum KnownFoldersAccessStatus public sealed class StorageFile : IInputStreamReference, IRandomAccessStreamReference, IStorageFile, IStorageFile2, IStorageFilePropertiesWithAvailability, IStorageItem, IStorageItem2, IStorageItemProperties, IStorageItemProperties2, IStorageItemPropertiesWithProvider { public static IAsyncOperation<StorageFile> GetFileFromPathForUserAsync(User user, string path); } public sealed class StorageFolder : IStorageFolder, IStorageFolder2, IStorageFolderQueryOperations, IStorageItem, IStorageItem2, IStorageItemProperties, IStorageItemProperties2, IStorageItemPropertiesWithProvider { public static IAsyncOperation<StorageFolder> GetFolderFromPathForUserAsync(User user, string path); } } namespace Windows.Storage.Provider { public sealed class StorageProviderFileTypeInfo public sealed class StorageProviderSyncRootInfo { IVector<StorageProviderFileTypeInfo> FallbackFileTypeInfo { get; } } public static class StorageProviderSyncRootManager { public static bool IsSupported(); } } namespace Windows.System { public sealed class UserChangedEventArgs { IVectorView<UserWatcherUpdateKind> ChangedPropertyKinds { get; } } public enum UserWatcherUpdateKind } namespace Windows.UI.Composition.Interactions { public sealed class InteractionTracker : CompositionObject { int TryUpdatePosition(Vector3 value, InteractionTrackerClampingOption option, InteractionTrackerPositionUpdateOption posUpdateOption); } public enum InteractionTrackerPositionUpdateOption } namespace Windows.UI.Input { public sealed class CrossSlidingEventArgs { uint ContactCount { get; } } public sealed class DraggingEventArgs { uint ContactCount { get; } } public sealed class GestureRecognizer { uint HoldMaxContactCount { get; set; } uint HoldMinContactCount { get; set; } float HoldRadius { get; set; } TimeSpan HoldStartDelay { get; set; } uint TapMaxContactCount { get; set; } uint TapMinContactCount { get; set; } uint TranslationMaxContactCount { get; set; } uint TranslationMinContactCount { get; set; } } public sealed class HoldingEventArgs { uint ContactCount { get; } uint CurrentContactCount { get; } } public sealed class ManipulationCompletedEventArgs { uint ContactCount { get; } uint CurrentContactCount { get; } } public sealed class ManipulationInertiaStartingEventArgs { uint ContactCount { get; } } public sealed class ManipulationStartedEventArgs { uint ContactCount { get; } } public sealed class ManipulationUpdatedEventArgs { uint ContactCount { get; } uint CurrentContactCount { get; } } public sealed class RightTappedEventArgs { uint ContactCount { get; } } public sealed class SystemButtonEventController : AttachableInputObject public sealed class SystemFunctionButtonEventArgs public sealed class SystemFunctionLockChangedEventArgs public sealed class SystemFunctionLockIndicatorChangedEventArgs public sealed class TappedEventArgs { uint ContactCount { get; } } } namespace Windows.UI.Input.Inking { public sealed class InkModelerAttributes { bool UseVelocityBasedPressure { get; set; } } } namespace Windows.UI.Text { public enum RichEditMathMode public sealed class RichEditTextDocument : ITextDocument { void GetMath(out string value); void SetMath(string value); void SetMathMode(RichEditMathMode mode); } } namespace Windows.UI.ViewManagement { public sealed class UISettings { event TypedEventHandler<UISettings, UISettingsAnimationsEnabledChangedEventArgs> AnimationsEnabledChanged; event TypedEventHandler<UISettings, UISettingsMessageDurationChangedEventArgs> MessageDurationChanged; } public sealed class UISettingsAnimationsEnabledChangedEventArgs public sealed class UISettingsMessageDurationChangedEventArgs } namespace Windows.UI.ViewManagement.Core { public sealed class CoreInputView { event TypedEventHandler<CoreInputView, CoreInputViewHidingEventArgs> PrimaryViewHiding; event TypedEventHandler<CoreInputView, CoreInputViewShowingEventArgs> PrimaryViewShowing; } public sealed class CoreInputViewHidingEventArgs public enum CoreInputViewKind { Symbols = 4, } public sealed class CoreInputViewShowingEventArgs public sealed class UISettingsController } [/code] ]]>
Windows 10 SDK Preview Build 19018 available now! https://blogs.windows.com/windowsdeveloper/2019/11/12/windows-10-sdk-preview-build-19018-available-now/ Tue, 12 Nov 2019 23:00:27 +0000 https://blogs.windows.com/windowsdeveloper/?p=55583 Today, we released a new Windows 10 Preview Build of the SDK to be used in conjunction with Windows 10 Insider Preview (Build 19018 or greater). The Preview SDK Build 19018 contains bug fixes and under development changes to the API surface area. The Preview SDK can be downloaded from developer section on Windows Insider. For feedback and […]

The post Windows 10 SDK Preview Build 19018 available now! appeared first on Windows Developer Blog.

]]>
Windows 10 Insider Preview (Build 19018 or greater). The Preview SDK Build 19018 contains bug fixes and under development changes to the API surface area. The Preview SDK can be downloaded from developer section on Windows Insider. For feedback and updates to the known issues, please see the developer forum. For new developer feature requests, head over to our Windows Platform UserVoice.

Things to note:

  • This build works in conjunction with previously released SDKs and Visual Studio 2017 and 2019. You can install this SDK and still also continue to submit your apps that target Windows 10 build 1903 or earlier to the Microsoft Store.
  • The Windows SDK will now formally only be supported by Visual Studio 2017 and greater. You can download the Visual Studio 2019 here.
  • This build of the Windows SDK will install on only on Windows 10 Insider Preview builds.
  • In order to assist with script access to the SDK, the ISO will also be able to be accessed through the following static URL: https://software-download.microsoft.com/download/sg/Windows_InsiderPreview_SDK_en-us_19018_1.iso.

Tools Updates

Message Compiler (mc.exe)

  • Now detects the Unicode byte order mark (BOM) in .mc files. If the If the .mc file starts with a UTF-8 BOM, it will be read as a UTF-8 file. Otherwise, if it starts with a UTF-16LE BOM, it will be read as a UTF-16LE file. If the -u parameter was specified, it will be read as a UTF-16LE file. Otherwise, it will be read using the current code page (CP_ACP).
  • Now avoids one-definition-rule (ODR) problems in MC-generated C/C++ ETW helpers caused by conflicting configuration macros (e.g. when two .cpp files with conflicting definitions of MCGEN_EVENTWRITETRANSFER are linked into the same binary, the MC-generated ETW helpers will now respect the definition of MCGEN_EVENTWRITETRANSFER in each .cpp file instead of arbitrarily picking one or the other).

Windows Trace Preprocessor (tracewpp.exe)

  • Now supports Unicode input (.ini, .tpl, and source code) files. Input files starting with a UTF-8 or UTF-16 byte order mark (BOM) will be read as Unicode. Input files that do not start with a BOM will be read using the current code page (CP_ACP). For backwards-compatibility, if the -UnicodeIgnore command-line parameter is specified, files starting with a UTF-16 BOM will be treated as empty.
  • Now supports Unicode output (.tmh) files. By default, output files will be encoded using the current code page (CP_ACP). Use command-line parameters -cp:UTF-8 or -cp:UTF-16 to generate Unicode output files.
  • Behavior change: tracewpp now converts all input text to Unicode, performs processing in Unicode, and converts output text to the specified output encoding. Earlier versions of tracewpp avoided Unicode conversions and performed text processing assuming a single-byte character set. This may lead to behavior changes in cases where the input files do not conform to the current code page. In cases where this is a problem, consider converting the input files to UTF-8 (with BOM) and/or using the -cp:UTF-8 command-line parameter to avoid encoding ambiguity.

TraceLoggingProvider.h

  • Now avoids one-definition-rule (ODR) problems caused by conflicting configuration macros (e.g. when two .cpp files with conflicting definitions of TLG_EVENT_WRITE_TRANSFER are linked into the same binary, the TraceLoggingProvider.h helpers will now respect the definition of TLG_EVENT_WRITE_TRANSFER in each .cpp file instead of arbitrarily picking one or the other).
  • In C++ code, the TraceLoggingWrite macro has been updated to enable better code sharing between similar events using variadic templates.

Signing your apps with Device Guard Signing

Windows SDK Flight NuGet Feed

We have stood up a NuGet feed for the flighted builds of the SDK. You can now test preliminary builds of the Windows 10 WinRT API Pack, as well as a microsoft.windows.sdk.headless.contracts NuGet package. We use the following feed to flight our NuGet packages. Microsoft.Windows.SDK.Contracts which can be used with to add the latest Windows Runtime APIs support to your .NET Framework 4.5+ and .NET Core 3.0+ libraries and apps. The Windows 10 WinRT API Pack enables you to add the latest Windows Runtime APIs support to your .NET Framework 4.5+ and .NET Core 3.0+ libraries and apps. Microsoft.Windows.SDK.Headless.Contracts provides a subset of the Windows Runtime APIs for console apps excludes the APIs associated with a graphical user interface. This NuGet is used in conjunction with Windows ML container development. Check out the Getting Started Guide for more information.

Breaking Changes

Removal of api-ms-win-net-isolation-l1-1-0.lib In this release api-ms-win-net-isolation-l1-1-0.lib has been removed from the Windows SDK. Apps that were linking against api-ms-win-net-isolation-l1-1-0.lib can switch to OneCoreUAP.lib as a replacement. Removal of IRPROPS.LIB In this release irprops.lib has been removed from the Windows SDK. Apps that were linking against irprops.lib can switch to bthprops.lib as a drop-in replacement. Removal of WUAPICommon.H and WUAPICommon.IDL In this release we have moved ENUM tagServerSelection from WUAPICommon.H to wupai.h and removed the header. If you would like to use the ENUM tagServerSelection, you will need to include wuapi.h or wuapi.idl.

API Updates, Additions and Removals

The following APIs have been added to the platform since the release of Windows 10 SDK, version 1903, build 18362.

Additions:

[code lang="csharp"] namespace Windows.AI.MachineLearning { public sealed class LearningModelSessionOptions { bool CloseModelOnSessionCreation { get; set; } } } namespace Windows.ApplicationModel { public sealed class AppInfo { public static AppInfo Current { get; } Package Package { get; } public static AppInfo GetFromAppUserModelId(string appUserModelId); public static AppInfo GetFromAppUserModelIdForUser(User user, string appUserModelId); } public interface IAppInfoStatics public sealed class Package { StorageFolder EffectiveExternalLocation { get; } string EffectiveExternalPath { get; } string EffectivePath { get; } string InstalledPath { get; } bool IsStub { get; } StorageFolder MachineExternalLocation { get; } string MachineExternalPath { get; } string MutablePath { get; } StorageFolder UserExternalLocation { get; } string UserExternalPath { get; } IVectorView<AppListEntry> GetAppListEntries(); RandomAccessStreamReference GetLogoAsRandomAccessStreamReference(Size size); } } namespace Windows.ApplicationModel.AppService { public enum AppServiceConnectionStatus { AuthenticationError = 8, DisabledByPolicy = 10, NetworkNotAvailable = 9, WebServiceUnavailable = 11, } public enum AppServiceResponseStatus { AppUnavailable = 6, AuthenticationError = 7, DisabledByPolicy = 9, NetworkNotAvailable = 8, WebServiceUnavailable = 10, } public enum StatelessAppServiceResponseStatus { AuthenticationError = 11, DisabledByPolicy = 13, NetworkNotAvailable = 12, WebServiceUnavailable = 14, } } namespace Windows.ApplicationModel.Background { public sealed class BackgroundTaskBuilder { void SetTaskEntryPointClsid(Guid TaskEntryPoint); } public sealed class BluetoothLEAdvertisementPublisherTrigger : IBackgroundTrigger { bool IncludeTransmitPowerLevel { get; set; } bool IsAnonymous { get; set; } IReference<short> PreferredTransmitPowerLevelInDBm { get; set; } bool UseExtendedFormat { get; set; } } public sealed class BluetoothLEAdvertisementWatcherTrigger : IBackgroundTrigger { bool AllowExtendedAdvertisements { get; set; } } } namespace Windows.ApplicationModel.ConversationalAgent { public sealed class ActivationSignalDetectionConfiguration public enum ActivationSignalDetectionTrainingDataFormat public sealed class ActivationSignalDetector public enum ActivationSignalDetectorKind public enum ActivationSignalDetectorPowerState public sealed class ConversationalAgentDetectorManager public sealed class DetectionConfigurationAvailabilityChangedEventArgs public enum DetectionConfigurationAvailabilityChangeKind public sealed class DetectionConfigurationAvailabilityInfo public enum DetectionConfigurationTrainingStatus } namespace Windows.ApplicationModel.DataTransfer { public sealed class DataPackage { event TypedEventHandler<DataPackage, object> ShareCanceled; } } namespace Windows.Devices.Bluetooth { public sealed class BluetoothAdapter { bool IsExtendedAdvertisingSupported { get; } uint MaxAdvertisementDataLength { get; } } } namespace Windows.Devices.Bluetooth.Advertisement { public sealed class BluetoothLEAdvertisementPublisher { bool IncludeTransmitPowerLevel { get; set; } bool IsAnonymous { get; set; } IReference<short> PreferredTransmitPowerLevelInDBm { get; set; } bool UseExtendedAdvertisement { get; set; } } public sealed class BluetoothLEAdvertisementPublisherStatusChangedEventArgs { IReference<short> SelectedTransmitPowerLevelInDBm { get; } } public sealed class BluetoothLEAdvertisementReceivedEventArgs { BluetoothAddressType BluetoothAddressType { get; } bool IsAnonymous { get; } bool IsConnectable { get; } bool IsDirected { get; } bool IsScannable { get; } bool IsScanResponse { get; } IReference<short> TransmitPowerLevelInDBm { get; } } public enum BluetoothLEAdvertisementType { Extended = 5, } public sealed class BluetoothLEAdvertisementWatcher { bool AllowExtendedAdvertisements { get; set; } } public enum BluetoothLEScanningMode { None = 2, } } namespace Windows.Devices.Bluetooth.Background { public sealed class BluetoothLEAdvertisementPublisherTriggerDetails { IReference<short> SelectedTransmitPowerLevelInDBm { get; } } } namespace Windows.Devices.Display { public sealed class DisplayMonitor { bool IsDolbyVisionSupportedInHdrMode { get; } } } namespace Windows.Devices.Input { public sealed class PenButtonListener public sealed class PenDockedEventArgs public sealed class PenDockListener public sealed class PenTailButtonClickedEventArgs public sealed class PenTailButtonDoubleClickedEventArgs public sealed class PenTailButtonLongPressedEventArgs public sealed class PenUndockedEventArgs } namespace Windows.Devices.Sensors { public sealed class Accelerometer { AccelerometerDataThreshold ReportThreshold { get; } } public sealed class AccelerometerDataThreshold public sealed class Barometer { BarometerDataThreshold ReportThreshold { get; } } public sealed class BarometerDataThreshold public sealed class Compass { CompassDataThreshold ReportThreshold { get; } } public sealed class CompassDataThreshold public sealed class Gyrometer { GyrometerDataThreshold ReportThreshold { get; } } public sealed class GyrometerDataThreshold public sealed class Inclinometer { InclinometerDataThreshold ReportThreshold { get; } } public sealed class InclinometerDataThreshold public sealed class LightSensor { LightSensorDataThreshold ReportThreshold { get; } } public sealed class LightSensorDataThreshold public sealed class Magnetometer { MagnetometerDataThreshold ReportThreshold { get; } } public sealed class MagnetometerDataThreshold } namespace Windows.Foundation.Metadata { public sealed class AttributeNameAttribute : Attribute public sealed class FastAbiAttribute : Attribute public sealed class NoExceptionAttribute : Attribute } namespace Windows.Globalization { public sealed class Language { string AbbreviatedName { get; } public static IVector<string> GetMuiCompatibleLanguageListFromLanguageTags(IIterable<string> languageTags); } } namespace Windows.Graphics.Capture { public sealed class GraphicsCaptureSession : IClosable { bool IsCursorCaptureEnabled { get; set; } } } namespace Windows.Graphics.DirectX { public enum DirectXPixelFormat { SamplerFeedbackMinMipOpaque = 189, SamplerFeedbackMipRegionUsedOpaque = 190, } } namespace Windows.Graphics.Holographic { public sealed class HolographicFrame { HolographicFrameId Id { get; } } public struct HolographicFrameId public sealed class HolographicFrameRenderingReport public sealed class HolographicFrameScanoutMonitor : IClosable public sealed class HolographicFrameScanoutReport public sealed class HolographicSpace { HolographicFrameScanoutMonitor CreateFrameScanoutMonitor(uint maxQueuedReports); } } namespace Windows.Management.Deployment { public sealed class AddPackageOptions public enum DeploymentOptions : uint { StageInPlace = (uint)4194304, } public sealed class PackageManager { IAsyncOperationWithProgress<DeploymentResult, DeploymentProgress> AddPackageByUriAsync(Uri packageUri, AddPackageOptions options); IVector<Package> FindProvisionedPackages(); PackageStubPreference GetPackageStubPreference(string packageFamilyName); IAsyncOperationWithProgress<DeploymentResult, DeploymentProgress> RegisterPackageByUriAsync(Uri manifestUri, RegisterPackageOptions options); IAsyncOperationWithProgress<DeploymentResult, DeploymentProgress> RegisterPackagesByFullNameAsync(IIterable<string> packageFullNames, RegisterPackageOptions options); void SetPackageStubPreference(string packageFamilyName, PackageStubPreference useStub); IAsyncOperationWithProgress<DeploymentResult, DeploymentProgress> StagePackageByUriAsync(Uri packageUri, StagePackageOptions options); } public enum PackageStubPreference public enum PackageTypes : uint { All = (uint)4294967295, } public sealed class RegisterPackageOptions public enum RemovalOptions : uint { PreserveRoamableApplicationData = (uint)128, } public sealed class StagePackageOptions public enum StubPackageOption } namespace Windows.Media.Audio { public sealed class AudioPlaybackConnection : IClosable public sealed class AudioPlaybackConnectionOpenResult public enum AudioPlaybackConnectionOpenResultStatus public enum AudioPlaybackConnectionState } namespace Windows.Media.Capture { public sealed class MediaCapture : IClosable { MediaCaptureRelativePanelWatcher CreateRelativePanelWatcher(StreamingCaptureMode captureMode, DisplayRegion displayRegion); } public sealed class MediaCaptureInitializationSettings { Uri DeviceUri { get; set; } PasswordCredential DeviceUriPasswordCredential { get; set; } } public sealed class MediaCaptureRelativePanelWatcher : IClosable } namespace Windows.Media.Capture.Frames { public sealed class MediaFrameSourceInfo { Panel GetRelativePanel(DisplayRegion displayRegion); } } namespace Windows.Media.Devices { public sealed class PanelBasedOptimizationControl public sealed class VideoDeviceController : IMediaDeviceController { PanelBasedOptimizationControl PanelBasedOptimizationControl { get; } } } namespace Windows.Media.MediaProperties { public static class MediaEncodingSubtypes { public static string Pgs { get; } public static string Srt { get; } public static string Ssa { get; } public static string VobSub { get; } } public sealed class TimedMetadataEncodingProperties : IMediaEncodingProperties { public static TimedMetadataEncodingProperties CreatePgs(); public static TimedMetadataEncodingProperties CreateSrt(); public static TimedMetadataEncodingProperties CreateSsa(byte[] formatUserData); public static TimedMetadataEncodingProperties CreateVobSub(byte[] formatUserData); } } namespace Windows.Networking.BackgroundTransfer { public sealed class DownloadOperation : IBackgroundTransferOperation, IBackgroundTransferOperationPriority { void RemoveRequestHeader(string headerName); void SetRequestHeader(string headerName, string headerValue); } public sealed class UploadOperation : IBackgroundTransferOperation, IBackgroundTransferOperationPriority { void RemoveRequestHeader(string headerName); void SetRequestHeader(string headerName, string headerValue); } } namespace Windows.Networking.Connectivity { public enum NetworkAuthenticationType { Owe = 12, } } namespace Windows.Networking.NetworkOperators { public sealed class NetworkOperatorTetheringAccessPointConfiguration { TetheringWiFiBand Band { get; set; } bool IsBandSupported(TetheringWiFiBand band); IAsyncOperation<bool> IsBandSupportedAsync(TetheringWiFiBand band); } public sealed class NetworkOperatorTetheringManager { public static void DisableNoConnectionsTimeout(); public static IAsyncAction DisableNoConnectionsTimeoutAsync(); public static void EnableNoConnectionsTimeout(); public static IAsyncAction EnableNoConnectionsTimeoutAsync(); public static bool IsNoConnectionsTimeoutEnabled(); } public enum TetheringWiFiBand } namespace Windows.Networking.PushNotifications { public static class PushNotificationChannelManager { public static event EventHandler<PushNotificationChannelsRevokedEventArgs> ChannelsRevoked; } public sealed class PushNotificationChannelsRevokedEventArgs public sealed class RawNotification { IBuffer ContentBytes { get; } } } namespace Windows.Security.Authentication.Web.Core { public sealed class WebAccountMonitor { event TypedEventHandler<WebAccountMonitor, WebAccountEventArgs> AccountPictureUpdated; } } namespace Windows.Security.Isolation { public sealed class IsolatedWindowsEnvironment public enum IsolatedWindowsEnvironmentActivator public enum IsolatedWindowsEnvironmentAllowedClipboardFormats : uint public enum IsolatedWindowsEnvironmentAvailablePrinters : uint public enum IsolatedWindowsEnvironmentClipboardCopyPasteDirections : uint public struct IsolatedWindowsEnvironmentContract public struct IsolatedWindowsEnvironmentCreateProgress public sealed class IsolatedWindowsEnvironmentCreateResult public enum IsolatedWindowsEnvironmentCreateStatus public sealed class IsolatedWindowsEnvironmentFile public static class IsolatedWindowsEnvironmentHost public enum IsolatedWindowsEnvironmentHostError public sealed class IsolatedWindowsEnvironmentLaunchFileResult public enum IsolatedWindowsEnvironmentLaunchFileStatus public sealed class IsolatedWindowsEnvironmentOptions public static class IsolatedWindowsEnvironmentOwnerRegistration public sealed class IsolatedWindowsEnvironmentOwnerRegistrationData public sealed class IsolatedWindowsEnvironmentOwnerRegistrationResult public enum IsolatedWindowsEnvironmentOwnerRegistrationStatus public sealed class IsolatedWindowsEnvironmentProcess public enum IsolatedWindowsEnvironmentProcessState public enum IsolatedWindowsEnvironmentProgressState public sealed class IsolatedWindowsEnvironmentShareFolderRequestOptions public sealed class IsolatedWindowsEnvironmentShareFolderResult public enum IsolatedWindowsEnvironmentShareFolderStatus public sealed class IsolatedWindowsEnvironmentStartProcessResult public enum IsolatedWindowsEnvironmentStartProcessStatus public sealed class IsolatedWindowsEnvironmentTelemetryParameters public static class IsolatedWindowsHostMessenger public delegate void MessageReceivedCallback(Guid receiverId, IVectorView<object> message); } namespace Windows.Storage { public static class KnownFolders { public static IAsyncOperation<StorageFolder> GetFolderAsync(KnownFolderId folderId); public static IAsyncOperation<KnownFoldersAccessStatus> RequestAccessAsync(KnownFolderId folderId); public static IAsyncOperation<KnownFoldersAccessStatus> RequestAccessForUserAsync(User user, KnownFolderId folderId); } public enum KnownFoldersAccessStatus public sealed class StorageFile : IInputStreamReference, IRandomAccessStreamReference, IStorageFile, IStorageFile2, IStorageFilePropertiesWithAvailability, IStorageItem, IStorageItem2, IStorageItemProperties, IStorageItemProperties2, IStorageItemPropertiesWithProvider { public static IAsyncOperation<StorageFile> GetFileFromPathForUserAsync(User user, string path); } public sealed class StorageFolder : IStorageFolder, IStorageFolder2, IStorageFolderQueryOperations, IStorageItem, IStorageItem2, IStorageItemProperties, IStorageItemProperties2, IStorageItemPropertiesWithProvider { public static IAsyncOperation<StorageFolder> GetFolderFromPathForUserAsync(User user, string path); } } namespace Windows.Storage.Provider { public sealed class StorageProviderFileTypeInfo public sealed class StorageProviderSyncRootInfo { IVector<StorageProviderFileTypeInfo> FallbackFileTypeInfo { get; } } public static class StorageProviderSyncRootManager { public static bool IsSupported(); } } namespace Windows.System { public sealed class UserChangedEventArgs { IVectorView<UserWatcherUpdateKind> ChangedPropertyKinds { get; } } public enum UserWatcherUpdateKind } namespace Windows.UI.Composition.Interactions { public sealed class InteractionTracker : CompositionObject { int TryUpdatePosition(Vector3 value, InteractionTrackerClampingOption option, InteractionTrackerPositionUpdateOption posUpdateOption); } public enum InteractionTrackerPositionUpdateOption } namespace Windows.UI.Input { public sealed class CrossSlidingEventArgs { uint ContactCount { get; } } public sealed class DraggingEventArgs { uint ContactCount { get; } } public sealed class GestureRecognizer { uint HoldMaxContactCount { get; set; } uint HoldMinContactCount { get; set; } float HoldRadius { get; set; } TimeSpan HoldStartDelay { get; set; } uint TapMaxContactCount { get; set; } uint TapMinContactCount { get; set; } uint TranslationMaxContactCount { get; set; } uint TranslationMinContactCount { get; set; } } public sealed class HoldingEventArgs { uint ContactCount { get; } uint CurrentContactCount { get; } } public sealed class ManipulationCompletedEventArgs { uint ContactCount { get; } uint CurrentContactCount { get; } } public sealed class ManipulationInertiaStartingEventArgs { uint ContactCount { get; } } public sealed class ManipulationStartedEventArgs { uint ContactCount { get; } } public sealed class ManipulationUpdatedEventArgs { uint ContactCount { get; } uint CurrentContactCount { get; } } public sealed class RightTappedEventArgs { uint ContactCount { get; } } public sealed class SystemButtonEventController : AttachableInputObject public sealed class SystemFunctionButtonEventArgs public sealed class SystemFunctionLockChangedEventArgs public sealed class SystemFunctionLockIndicatorChangedEventArgs public sealed class TappedEventArgs { uint ContactCount { get; } } } namespace Windows.UI.Input.Inking { public sealed class InkModelerAttributes { bool UseVelocityBasedPressure { get; set; } } } namespace Windows.UI.Text { public enum RichEditMathMode public sealed class RichEditTextDocument : ITextDocument { void GetMath(out string value); void SetMath(string value); void SetMathMode(RichEditMathMode mode); } } namespace Windows.UI.ViewManagement { public sealed class UISettings { event TypedEventHandler<UISettings, UISettingsAnimationsEnabledChangedEventArgs> AnimationsEnabledChanged; event TypedEventHandler<UISettings, UISettingsMessageDurationChangedEventArgs> MessageDurationChanged; } public sealed class UISettingsAnimationsEnabledChangedEventArgs public sealed class UISettingsMessageDurationChangedEventArgs } namespace Windows.UI.ViewManagement.Core { public sealed class CoreInputView { event TypedEventHandler<CoreInputView, CoreInputViewHidingEventArgs> PrimaryViewHiding; event TypedEventHandler<CoreInputView, CoreInputViewShowingEventArgs> PrimaryViewShowing; } public sealed class CoreInputViewHidingEventArgs public enum CoreInputViewKind { Symbols = 4, } public sealed class CoreInputViewShowingEventArgs public sealed class UISettingsController } [/code] Today, we released a new Windows 10 Preview Build of the SDK to be used in conjunction with Windows 10 Insider Preview (Build 19018 or greater). The Preview SDK Build 19018 contains bug fixes and under development changes to the API surface area. The Preview SDK can be downloaded from developer section on Windows Insider. For feedback and updates to the known issues, please see the developer forum. For new developer feature requests, head over to our Windows Platform UserVoice.

Things to note:

  • This build works in conjunction with previously released SDKs and Visual Studio 2017 and 2019. You can install this SDK and still also continue to submit your apps that target Windows 10 build 1903 or earlier to the Microsoft Store.
  • The Windows SDK will now formally only be supported by Visual Studio 2017 and greater. You can download the Visual Studio 2019 here.
  • This build of the Windows SDK will install on only on Windows 10 Insider Preview builds.
  • In order to assist with script access to the SDK, the ISO will also be able to be accessed through the following static URL: https://software-download.microsoft.com/download/sg/Windows_InsiderPreview_SDK_en-us_19018_1.iso.

Tools Updates

Message Compiler (mc.exe)

  • Now detects the Unicode byte order mark (BOM) in .mc files. If the If the .mc file starts with a UTF-8 BOM, it will be read as a UTF-8 file. Otherwise, if it starts with a UTF-16LE BOM, it will be read as a UTF-16LE file. If the -u parameter was specified, it will be read as a UTF-16LE file. Otherwise, it will be read using the current code page (CP_ACP).
  • Now avoids one-definition-rule (ODR) problems in MC-generated C/C++ ETW helpers caused by conflicting configuration macros (e.g. when two .cpp files with conflicting definitions of MCGEN_EVENTWRITETRANSFER are linked into the same binary, the MC-generated ETW helpers will now respect the definition of MCGEN_EVENTWRITETRANSFER in each .cpp file instead of arbitrarily picking one or the other).

Windows Trace Preprocessor (tracewpp.exe)

  • Now supports Unicode input (.ini, .tpl, and source code) files. Input files starting with a UTF-8 or UTF-16 byte order mark (BOM) will be read as Unicode. Input files that do not start with a BOM will be read using the current code page (CP_ACP). For backwards-compatibility, if the -UnicodeIgnore command-line parameter is specified, files starting with a UTF-16 BOM will be treated as empty.
  • Now supports Unicode output (.tmh) files. By default, output files will be encoded using the current code page (CP_ACP). Use command-line parameters -cp:UTF-8 or -cp:UTF-16 to generate Unicode output files.
  • Behavior change: tracewpp now converts all input text to Unicode, performs processing in Unicode, and converts output text to the specified output encoding. Earlier versions of tracewpp avoided Unicode conversions and performed text processing assuming a single-byte character set. This may lead to behavior changes in cases where the input files do not conform to the current code page. In cases where this is a problem, consider converting the input files to UTF-8 (with BOM) and/or using the -cp:UTF-8 command-line parameter to avoid encoding ambiguity.

TraceLoggingProvider.h

  • Now avoids one-definition-rule (ODR) problems caused by conflicting configuration macros (e.g. when two .cpp files with conflicting definitions of TLG_EVENT_WRITE_TRANSFER are linked into the same binary, the TraceLoggingProvider.h helpers will now respect the definition of TLG_EVENT_WRITE_TRANSFER in each .cpp file instead of arbitrarily picking one or the other).
  • In C++ code, the TraceLoggingWrite macro has been updated to enable better code sharing between similar events using variadic templates.

Signing your apps with Device Guard Signing

Windows SDK Flight NuGet Feed

We have stood up a NuGet feed for the flighted builds of the SDK. You can now test preliminary builds of the Windows 10 WinRT API Pack, as well as a microsoft.windows.sdk.headless.contracts NuGet package. We use the following feed to flight our NuGet packages. Microsoft.Windows.SDK.Contracts which can be used with to add the latest Windows Runtime APIs support to your .NET Framework 4.5+ and .NET Core 3.0+ libraries and apps. The Windows 10 WinRT API Pack enables you to add the latest Windows Runtime APIs support to your .NET Framework 4.5+ and .NET Core 3.0+ libraries and apps. Microsoft.Windows.SDK.Headless.Contracts provides a subset of the Windows Runtime APIs for console apps excludes the APIs associated with a graphical user interface. This NuGet is used in conjunction with Windows ML container development. Check out the Getting Started Guide for more information.

Breaking Changes

Removal of api-ms-win-net-isolation-l1-1-0.lib In this release api-ms-win-net-isolation-l1-1-0.lib has been removed from the Windows SDK. Apps that were linking against api-ms-win-net-isolation-l1-1-0.lib can switch to OneCoreUAP.lib as a replacement. Removal of IRPROPS.LIB In this release irprops.lib has been removed from the Windows SDK. Apps that were linking against irprops.lib can switch to bthprops.lib as a drop-in replacement. Removal of WUAPICommon.H and WUAPICommon.IDL In this release we have moved ENUM tagServerSelection from WUAPICommon.H to wupai.h and removed the header. If you would like to use the ENUM tagServerSelection, you will need to include wuapi.h or wuapi.idl.

API Updates, Additions and Removals

The following APIs have been added to the platform since the release of Windows 10 SDK, version 1903, build 18362.

Additions:

[code lang="csharp"] namespace Windows.AI.MachineLearning { public sealed class LearningModelSessionOptions { bool CloseModelOnSessionCreation { get; set; } } } namespace Windows.ApplicationModel { public sealed class AppInfo { public static AppInfo Current { get; } Package Package { get; } public static AppInfo GetFromAppUserModelId(string appUserModelId); public static AppInfo GetFromAppUserModelIdForUser(User user, string appUserModelId); } public interface IAppInfoStatics public sealed class Package { StorageFolder EffectiveExternalLocation { get; } string EffectiveExternalPath { get; } string EffectivePath { get; } string InstalledPath { get; } bool IsStub { get; } StorageFolder MachineExternalLocation { get; } string MachineExternalPath { get; } string MutablePath { get; } StorageFolder UserExternalLocation { get; } string UserExternalPath { get; } IVectorView<AppListEntry> GetAppListEntries(); RandomAccessStreamReference GetLogoAsRandomAccessStreamReference(Size size); } } namespace Windows.ApplicationModel.AppService { public enum AppServiceConnectionStatus { AuthenticationError = 8, DisabledByPolicy = 10, NetworkNotAvailable = 9, WebServiceUnavailable = 11, } public enum AppServiceResponseStatus { AppUnavailable = 6, AuthenticationError = 7, DisabledByPolicy = 9, NetworkNotAvailable = 8, WebServiceUnavailable = 10, } public enum StatelessAppServiceResponseStatus { AuthenticationError = 11, DisabledByPolicy = 13, NetworkNotAvailable = 12, WebServiceUnavailable = 14, } } namespace Windows.ApplicationModel.Background { public sealed class BackgroundTaskBuilder { void SetTaskEntryPointClsid(Guid TaskEntryPoint); } public sealed class BluetoothLEAdvertisementPublisherTrigger : IBackgroundTrigger { bool IncludeTransmitPowerLevel { get; set; } bool IsAnonymous { get; set; } IReference<short> PreferredTransmitPowerLevelInDBm { get; set; } bool UseExtendedFormat { get; set; } } public sealed class BluetoothLEAdvertisementWatcherTrigger : IBackgroundTrigger { bool AllowExtendedAdvertisements { get; set; } } } namespace Windows.ApplicationModel.ConversationalAgent { public sealed class ActivationSignalDetectionConfiguration public enum ActivationSignalDetectionTrainingDataFormat public sealed class ActivationSignalDetector public enum ActivationSignalDetectorKind public enum ActivationSignalDetectorPowerState public sealed class ConversationalAgentDetectorManager public sealed class DetectionConfigurationAvailabilityChangedEventArgs public enum DetectionConfigurationAvailabilityChangeKind public sealed class DetectionConfigurationAvailabilityInfo public enum DetectionConfigurationTrainingStatus } namespace Windows.ApplicationModel.DataTransfer { public sealed class DataPackage { event TypedEventHandler<DataPackage, object> ShareCanceled; } } namespace Windows.Devices.Bluetooth { public sealed class BluetoothAdapter { bool IsExtendedAdvertisingSupported { get; } uint MaxAdvertisementDataLength { get; } } } namespace Windows.Devices.Bluetooth.Advertisement { public sealed class BluetoothLEAdvertisementPublisher { bool IncludeTransmitPowerLevel { get; set; } bool IsAnonymous { get; set; } IReference<short> PreferredTransmitPowerLevelInDBm { get; set; } bool UseExtendedAdvertisement { get; set; } } public sealed class BluetoothLEAdvertisementPublisherStatusChangedEventArgs { IReference<short> SelectedTransmitPowerLevelInDBm { get; } } public sealed class BluetoothLEAdvertisementReceivedEventArgs { BluetoothAddressType BluetoothAddressType { get; } bool IsAnonymous { get; } bool IsConnectable { get; } bool IsDirected { get; } bool IsScannable { get; } bool IsScanResponse { get; } IReference<short> TransmitPowerLevelInDBm { get; } } public enum BluetoothLEAdvertisementType { Extended = 5, } public sealed class BluetoothLEAdvertisementWatcher { bool AllowExtendedAdvertisements { get; set; } } public enum BluetoothLEScanningMode { None = 2, } } namespace Windows.Devices.Bluetooth.Background { public sealed class BluetoothLEAdvertisementPublisherTriggerDetails { IReference<short> SelectedTransmitPowerLevelInDBm { get; } } } namespace Windows.Devices.Display { public sealed class DisplayMonitor { bool IsDolbyVisionSupportedInHdrMode { get; } } } namespace Windows.Devices.Input { public sealed class PenButtonListener public sealed class PenDockedEventArgs public sealed class PenDockListener public sealed class PenTailButtonClickedEventArgs public sealed class PenTailButtonDoubleClickedEventArgs public sealed class PenTailButtonLongPressedEventArgs public sealed class PenUndockedEventArgs } namespace Windows.Devices.Sensors { public sealed class Accelerometer { AccelerometerDataThreshold ReportThreshold { get; } } public sealed class AccelerometerDataThreshold public sealed class Barometer { BarometerDataThreshold ReportThreshold { get; } } public sealed class BarometerDataThreshold public sealed class Compass { CompassDataThreshold ReportThreshold { get; } } public sealed class CompassDataThreshold public sealed class Gyrometer { GyrometerDataThreshold ReportThreshold { get; } } public sealed class GyrometerDataThreshold public sealed class Inclinometer { InclinometerDataThreshold ReportThreshold { get; } } public sealed class InclinometerDataThreshold public sealed class LightSensor { LightSensorDataThreshold ReportThreshold { get; } } public sealed class LightSensorDataThreshold public sealed class Magnetometer { MagnetometerDataThreshold ReportThreshold { get; } } public sealed class MagnetometerDataThreshold } namespace Windows.Foundation.Metadata { public sealed class AttributeNameAttribute : Attribute public sealed class FastAbiAttribute : Attribute public sealed class NoExceptionAttribute : Attribute } namespace Windows.Globalization { public sealed class Language { string AbbreviatedName { get; } public static IVector<string> GetMuiCompatibleLanguageListFromLanguageTags(IIterable<string> languageTags); } } namespace Windows.Graphics.Capture { public sealed class GraphicsCaptureSession : IClosable { bool IsCursorCaptureEnabled { get; set; } } } namespace Windows.Graphics.DirectX { public enum DirectXPixelFormat { SamplerFeedbackMinMipOpaque = 189, SamplerFeedbackMipRegionUsedOpaque = 190, } } namespace Windows.Graphics.Holographic { public sealed class HolographicFrame { HolographicFrameId Id { get; } } public struct HolographicFrameId public sealed class HolographicFrameRenderingReport public sealed class HolographicFrameScanoutMonitor : IClosable public sealed class HolographicFrameScanoutReport public sealed class HolographicSpace { HolographicFrameScanoutMonitor CreateFrameScanoutMonitor(uint maxQueuedReports); } } namespace Windows.Management.Deployment { public sealed class AddPackageOptions public enum DeploymentOptions : uint { StageInPlace = (uint)4194304, } public sealed class PackageManager { IAsyncOperationWithProgress<DeploymentResult, DeploymentProgress> AddPackageByUriAsync(Uri packageUri, AddPackageOptions options); IVector<Package> FindProvisionedPackages(); PackageStubPreference GetPackageStubPreference(string packageFamilyName); IAsyncOperationWithProgress<DeploymentResult, DeploymentProgress> RegisterPackageByUriAsync(Uri manifestUri, RegisterPackageOptions options); IAsyncOperationWithProgress<DeploymentResult, DeploymentProgress> RegisterPackagesByFullNameAsync(IIterable<string> packageFullNames, RegisterPackageOptions options); void SetPackageStubPreference(string packageFamilyName, PackageStubPreference useStub); IAsyncOperationWithProgress<DeploymentResult, DeploymentProgress> StagePackageByUriAsync(Uri packageUri, StagePackageOptions options); } public enum PackageStubPreference public enum PackageTypes : uint { All = (uint)4294967295, } public sealed class RegisterPackageOptions public enum RemovalOptions : uint { PreserveRoamableApplicationData = (uint)128, } public sealed class StagePackageOptions public enum StubPackageOption } namespace Windows.Media.Audio { public sealed class AudioPlaybackConnection : IClosable public sealed class AudioPlaybackConnectionOpenResult public enum AudioPlaybackConnectionOpenResultStatus public enum AudioPlaybackConnectionState } namespace Windows.Media.Capture { public sealed class MediaCapture : IClosable { MediaCaptureRelativePanelWatcher CreateRelativePanelWatcher(StreamingCaptureMode captureMode, DisplayRegion displayRegion); } public sealed class MediaCaptureInitializationSettings { Uri DeviceUri { get; set; } PasswordCredential DeviceUriPasswordCredential { get; set; } } public sealed class MediaCaptureRelativePanelWatcher : IClosable } namespace Windows.Media.Capture.Frames { public sealed class MediaFrameSourceInfo { Panel GetRelativePanel(DisplayRegion displayRegion); } } namespace Windows.Media.Devices { public sealed class PanelBasedOptimizationControl public sealed class VideoDeviceController : IMediaDeviceController { PanelBasedOptimizationControl PanelBasedOptimizationControl { get; } } } namespace Windows.Media.MediaProperties { public static class MediaEncodingSubtypes { public static string Pgs { get; } public static string Srt { get; } public static string Ssa { get; } public static string VobSub { get; } } public sealed class TimedMetadataEncodingProperties : IMediaEncodingProperties { public static TimedMetadataEncodingProperties CreatePgs(); public static TimedMetadataEncodingProperties CreateSrt(); public static TimedMetadataEncodingProperties CreateSsa(byte[] formatUserData); public static TimedMetadataEncodingProperties CreateVobSub(byte[] formatUserData); } } namespace Windows.Networking.BackgroundTransfer { public sealed class DownloadOperation : IBackgroundTransferOperation, IBackgroundTransferOperationPriority { void RemoveRequestHeader(string headerName); void SetRequestHeader(string headerName, string headerValue); } public sealed class UploadOperation : IBackgroundTransferOperation, IBackgroundTransferOperationPriority { void RemoveRequestHeader(string headerName); void SetRequestHeader(string headerName, string headerValue); } } namespace Windows.Networking.Connectivity { public enum NetworkAuthenticationType { Owe = 12, } } namespace Windows.Networking.NetworkOperators { public sealed class NetworkOperatorTetheringAccessPointConfiguration { TetheringWiFiBand Band { get; set; } bool IsBandSupported(TetheringWiFiBand band); IAsyncOperation<bool> IsBandSupportedAsync(TetheringWiFiBand band); } public sealed class NetworkOperatorTetheringManager { public static void DisableNoConnectionsTimeout(); public static IAsyncAction DisableNoConnectionsTimeoutAsync(); public static void EnableNoConnectionsTimeout(); public static IAsyncAction EnableNoConnectionsTimeoutAsync(); public static bool IsNoConnectionsTimeoutEnabled(); } public enum TetheringWiFiBand } namespace Windows.Networking.PushNotifications { public static class PushNotificationChannelManager { public static event EventHandler<PushNotificationChannelsRevokedEventArgs> ChannelsRevoked; } public sealed class PushNotificationChannelsRevokedEventArgs public sealed class RawNotification { IBuffer ContentBytes { get; } } } namespace Windows.Security.Authentication.Web.Core { public sealed class WebAccountMonitor { event TypedEventHandler<WebAccountMonitor, WebAccountEventArgs> AccountPictureUpdated; } } namespace Windows.Security.Isolation { public sealed class IsolatedWindowsEnvironment public enum IsolatedWindowsEnvironmentActivator public enum IsolatedWindowsEnvironmentAllowedClipboardFormats : uint public enum IsolatedWindowsEnvironmentAvailablePrinters : uint public enum IsolatedWindowsEnvironmentClipboardCopyPasteDirections : uint public struct IsolatedWindowsEnvironmentContract public struct IsolatedWindowsEnvironmentCreateProgress public sealed class IsolatedWindowsEnvironmentCreateResult public enum IsolatedWindowsEnvironmentCreateStatus public sealed class IsolatedWindowsEnvironmentFile public static class IsolatedWindowsEnvironmentHost public enum IsolatedWindowsEnvironmentHostError public sealed class IsolatedWindowsEnvironmentLaunchFileResult public enum IsolatedWindowsEnvironmentLaunchFileStatus public sealed class IsolatedWindowsEnvironmentOptions public static class IsolatedWindowsEnvironmentOwnerRegistration public sealed class IsolatedWindowsEnvironmentOwnerRegistrationData public sealed class IsolatedWindowsEnvironmentOwnerRegistrationResult public enum IsolatedWindowsEnvironmentOwnerRegistrationStatus public sealed class IsolatedWindowsEnvironmentProcess public enum IsolatedWindowsEnvironmentProcessState public enum IsolatedWindowsEnvironmentProgressState public sealed class IsolatedWindowsEnvironmentShareFolderRequestOptions public sealed class IsolatedWindowsEnvironmentShareFolderResult public enum IsolatedWindowsEnvironmentShareFolderStatus public sealed class IsolatedWindowsEnvironmentStartProcessResult public enum IsolatedWindowsEnvironmentStartProcessStatus public sealed class IsolatedWindowsEnvironmentTelemetryParameters public static class IsolatedWindowsHostMessenger public delegate void MessageReceivedCallback(Guid receiverId, IVectorView<object> message); } namespace Windows.Storage { public static class KnownFolders { public static IAsyncOperation<StorageFolder> GetFolderAsync(KnownFolderId folderId); public static IAsyncOperation<KnownFoldersAccessStatus> RequestAccessAsync(KnownFolderId folderId); public static IAsyncOperation<KnownFoldersAccessStatus> RequestAccessForUserAsync(User user, KnownFolderId folderId); } public enum KnownFoldersAccessStatus public sealed class StorageFile : IInputStreamReference, IRandomAccessStreamReference, IStorageFile, IStorageFile2, IStorageFilePropertiesWithAvailability, IStorageItem, IStorageItem2, IStorageItemProperties, IStorageItemProperties2, IStorageItemPropertiesWithProvider { public static IAsyncOperation<StorageFile> GetFileFromPathForUserAsync(User user, string path); } public sealed class StorageFolder : IStorageFolder, IStorageFolder2, IStorageFolderQueryOperations, IStorageItem, IStorageItem2, IStorageItemProperties, IStorageItemProperties2, IStorageItemPropertiesWithProvider { public static IAsyncOperation<StorageFolder> GetFolderFromPathForUserAsync(User user, string path); } } namespace Windows.Storage.Provider { public sealed class StorageProviderFileTypeInfo public sealed class StorageProviderSyncRootInfo { IVector<StorageProviderFileTypeInfo> FallbackFileTypeInfo { get; } } public static class StorageProviderSyncRootManager { public static bool IsSupported(); } } namespace Windows.System { public sealed class UserChangedEventArgs { IVectorView<UserWatcherUpdateKind> ChangedPropertyKinds { get; } } public enum UserWatcherUpdateKind } namespace Windows.UI.Composition.Interactions { public sealed class InteractionTracker : CompositionObject { int TryUpdatePosition(Vector3 value, InteractionTrackerClampingOption option, InteractionTrackerPositionUpdateOption posUpdateOption); } public enum InteractionTrackerPositionUpdateOption } namespace Windows.UI.Input { public sealed class CrossSlidingEventArgs { uint ContactCount { get; } } public sealed class DraggingEventArgs { uint ContactCount { get; } } public sealed class GestureRecognizer { uint HoldMaxContactCount { get; set; } uint HoldMinContactCount { get; set; } float HoldRadius { get; set; } TimeSpan HoldStartDelay { get; set; } uint TapMaxContactCount { get; set; } uint TapMinContactCount { get; set; } uint TranslationMaxContactCount { get; set; } uint TranslationMinContactCount { get; set; } } public sealed class HoldingEventArgs { uint ContactCount { get; } uint CurrentContactCount { get; } } public sealed class ManipulationCompletedEventArgs { uint ContactCount { get; } uint CurrentContactCount { get; } } public sealed class ManipulationInertiaStartingEventArgs { uint ContactCount { get; } } public sealed class ManipulationStartedEventArgs { uint ContactCount { get; } } public sealed class ManipulationUpdatedEventArgs { uint ContactCount { get; } uint CurrentContactCount { get; } } public sealed class RightTappedEventArgs { uint ContactCount { get; } } public sealed class SystemButtonEventController : AttachableInputObject public sealed class SystemFunctionButtonEventArgs public sealed class SystemFunctionLockChangedEventArgs public sealed class SystemFunctionLockIndicatorChangedEventArgs public sealed class TappedEventArgs { uint ContactCount { get; } } } namespace Windows.UI.Input.Inking { public sealed class InkModelerAttributes { bool UseVelocityBasedPressure { get; set; } } } namespace Windows.UI.Text { public enum RichEditMathMode public sealed class RichEditTextDocument : ITextDocument { void GetMath(out string value); void SetMath(string value); void SetMathMode(RichEditMathMode mode); } } namespace Windows.UI.ViewManagement { public sealed class UISettings { event TypedEventHandler<UISettings, UISettingsAnimationsEnabledChangedEventArgs> AnimationsEnabledChanged; event TypedEventHandler<UISettings, UISettingsMessageDurationChangedEventArgs> MessageDurationChanged; } public sealed class UISettingsAnimationsEnabledChangedEventArgs public sealed class UISettingsMessageDurationChangedEventArgs } namespace Windows.UI.ViewManagement.Core { public sealed class CoreInputView { event TypedEventHandler<CoreInputView, CoreInputViewHidingEventArgs> PrimaryViewHiding; event TypedEventHandler<CoreInputView, CoreInputViewShowingEventArgs> PrimaryViewShowing; } public sealed class CoreInputViewHidingEventArgs public enum CoreInputViewKind { Symbols = 4, } public sealed class CoreInputViewShowingEventArgs public sealed class UISettingsController } [/code] ]]>
Windows 10 SDK Preview Build 19013 available now! https://blogs.windows.com/windowsdeveloper/2019/11/07/windows-10-sdk-preview-build-19013-available-now/ Thu, 07 Nov 2019 22:03:26 +0000 https://blogs.windows.com/windowsdeveloper/?p=55572 Today, we released a new Windows 10 Preview Build of the SDK to be used in conjunction with Windows 10 Insider Preview (Build 19013 or greater). The Preview SDK Build 19013 contains bug fixes and under development changes to the API surface area. The Preview SDK can be downloaded from developer section on Windows Insider. For feedback and […]

The post Windows 10 SDK Preview Build 19013 available now! appeared first on Windows Developer Blog.

]]>
Windows 10 Insider Preview (Build 19013 or greater). The Preview SDK Build 19013 contains bug fixes and under development changes to the API surface area. The Preview SDK can be downloaded from developer section on Windows Insider. For feedback and updates to the known issues, please see the developer forum. For new developer feature requests, head over to our Windows Platform UserVoice.

Things to note:

  • This build works in conjunction with previously released SDKs and Visual Studio 2017 and 2019. You can install this SDK and still also continue to submit your apps that target Windows 10 build 1903 or earlier to the Microsoft Store.
  • The Windows SDK will now formally only be supported by Visual Studio 2017 and greater. You can download the Visual Studio 2019 here.
  • This build of the Windows SDK will install on only on Windows 10 Insider Preview builds.
  • In order to assist with script access to the SDK, the ISO will also be able to be accessed through the following static URL: https://software-download.microsoft.com/download/sg/Windows_InsiderPreview_SDK_en-us_19013_1.iso.

Tools Updates

Message Compiler (mc.exe)

  • Now detects the Unicode byte order mark (BOM) in .mc files. If the If the .mc file starts with a UTF-8 BOM, it will be read as a UTF-8 file. Otherwise, if it starts with a UTF-16LE BOM, it will be read as a UTF-16LE file. If the -u parameter was specified, it will be read as a UTF-16LE file. Otherwise, it will be read using the current code page (CP_ACP).
  • Now avoids one-definition-rule (ODR) problems in MC-generated C/C++ ETW helpers caused by conflicting configuration macros (e.g. when two .cpp files with conflicting definitions of MCGEN_EVENTWRITETRANSFER are linked into the same binary, the MC-generated ETW helpers will now respect the definition of MCGEN_EVENTWRITETRANSFER in each .cpp file instead of arbitrarily picking one or the other).

Windows Trace Preprocessor (tracewpp.exe)

  • Now supports Unicode input (.ini, .tpl, and source code) files. Input files starting with a UTF-8 or UTF-16 byte order mark (BOM) will be read as Unicode. Input files that do not start with a BOM will be read using the current code page (CP_ACP). For backwards-compatibility, if the -UnicodeIgnore command-line parameter is specified, files starting with a UTF-16 BOM will be treated as empty.
  • Now supports Unicode output (.tmh) files. By default, output files will be encoded using the current code page (CP_ACP). Use command-line parameters -cp:UTF-8 or -cp:UTF-16 to generate Unicode output files.
  • Behavior change: tracewpp now converts all input text to Unicode, performs processing in Unicode, and converts output text to the specified output encoding. Earlier versions of tracewpp avoided Unicode conversions and performed text processing assuming a single-byte character set. This may lead to behavior changes in cases where the input files do not conform to the current code page. In cases where this is a problem, consider converting the input files to UTF-8 (with BOM) and/or using the -cp:UTF-8 command-line parameter to avoid encoding ambiguity.

TraceLoggingProvider.h

  • Now avoids one-definition-rule (ODR) problems caused by conflicting configuration macros (e.g. when two .cpp files with conflicting definitions of TLG_EVENT_WRITE_TRANSFER are linked into the same binary, the TraceLoggingProvider.h helpers will now respect the definition of TLG_EVENT_WRITE_TRANSFER in each .cpp file instead of arbitrarily picking one or the other).
  • In C++ code, the TraceLoggingWrite macro has been updated to enable better code sharing between similar events using variadic templates.

Signing your apps with Device Guard Signing

Windows SDK Flight NuGet Feed

We have stood up a NuGet feed for the flighted builds of the SDK. You can now test preliminary builds of the Windows 10 WinRT API Pack, as well as a microsoft.windows.sdk.headless.contracts NuGet package. We use the following feed to flight our NuGet packages. Microsoft.Windows.SDK.Contracts which can be used with to add the latest Windows Runtime APIs support to your .NET Framework 4.5+ and .NET Core 3.0+ libraries and apps. The Windows 10 WinRT API Pack enables you to add the latest Windows Runtime APIs support to your .NET Framework 4.5+ and .NET Core 3.0+ libraries and apps. Microsoft.Windows.SDK.Headless.Contracts provides a subset of the Windows Runtime APIs for console apps excludes the APIs associated with a graphical user interface. This NuGet is used in conjunction with Windows ML container development. Check out the Getting Started guide for more information.

Breaking Changes

Removal of api-ms-win-net-isolation-l1-1-0.lib

In this release api-ms-win-net-isolation-l1-1-0.lib has been removed from the Windows SDK. Apps that were linking against api-ms-win-net-isolation-l1-1-0.lib can switch to OneCoreUAP.lib as a replacement.

Removal of IRPROPS.LIB

In this release irprops.lib has been removed from the Windows SDK. Apps that were linking against irprops.lib can switch to bthprops.lib as a drop-in replacement.

Removal of WUAPICommon.H and WUAPICommon.IDL

In this release we have moved ENUM tagServerSelection from WUAPICommon.H to wupai.h and removed the header. If you would like to use the ENUM tagServerSelection, you will need to include wuapi.h or wuapi.idl.

API Updates, Additions and Removals

The following APIs have been added to the platform since the release of Windows 10 SDK, version 1903, build 18362.

Additions:

[code lang="csharp"] namespace Windows.AI.MachineLearning { public sealed class LearningModelSessionOptions { bool CloseModelOnSessionCreation { get; set; } } } namespace Windows.ApplicationModel { public sealed class AppInfo { public static AppInfo Current { get; } Package Package { get; } public static AppInfo GetFromAppUserModelId(string appUserModelId); public static AppInfo GetFromAppUserModelIdForUser(User user, string appUserModelId); } public interface IAppInfoStatics public sealed class Package { StorageFolder EffectiveExternalLocation { get; } string EffectiveExternalPath { get; } string EffectivePath { get; } string InstalledPath { get; } bool IsStub { get; } StorageFolder MachineExternalLocation { get; } string MachineExternalPath { get; } string MutablePath { get; } StorageFolder UserExternalLocation { get; } string UserExternalPath { get; } IVectorView<AppListEntry> GetAppListEntries(); RandomAccessStreamReference GetLogoAsRandomAccessStreamReference(Size size); } } namespace Windows.ApplicationModel.AppService { public enum AppServiceConnectionStatus { AuthenticationError = 8, DisabledByPolicy = 10, NetworkNotAvailable = 9, WebServiceUnavailable = 11, } public enum AppServiceResponseStatus { AppUnavailable = 6, AuthenticationError = 7, DisabledByPolicy = 9, NetworkNotAvailable = 8, WebServiceUnavailable = 10, } public enum StatelessAppServiceResponseStatus { AuthenticationError = 11, DisabledByPolicy = 13, NetworkNotAvailable = 12, WebServiceUnavailable = 14, } } namespace Windows.ApplicationModel.Background { public sealed class BackgroundTaskBuilder { void SetTaskEntryPointClsid(Guid TaskEntryPoint); } public sealed class BluetoothLEAdvertisementPublisherTrigger : IBackgroundTrigger { bool IncludeTransmitPowerLevel { get; set; } bool IsAnonymous { get; set; } IReference<short> PreferredTransmitPowerLevelInDBm { get; set; } bool UseExtendedFormat { get; set; } } public sealed class BluetoothLEAdvertisementWatcherTrigger : IBackgroundTrigger { bool AllowExtendedAdvertisements { get; set; } } } namespace Windows.ApplicationModel.ConversationalAgent { public sealed class ActivationSignalDetectionConfiguration public enum ActivationSignalDetectionTrainingDataFormat public sealed class ActivationSignalDetector public enum ActivationSignalDetectorKind public enum ActivationSignalDetectorPowerState public sealed class ConversationalAgentDetectorManager public sealed class DetectionConfigurationAvailabilityChangedEventArgs public enum DetectionConfigurationAvailabilityChangeKind public sealed class DetectionConfigurationAvailabilityInfo public enum DetectionConfigurationTrainingStatus } namespace Windows.ApplicationModel.DataTransfer { public sealed class DataPackage { event TypedEventHandler<DataPackage, object> ShareCanceled; } } namespace Windows.Devices.Bluetooth { public sealed class BluetoothAdapter { bool IsExtendedAdvertisingSupported { get; } uint MaxAdvertisementDataLength { get; } } } namespace Windows.Devices.Bluetooth.Advertisement { public sealed class BluetoothLEAdvertisementPublisher { bool IncludeTransmitPowerLevel { get; set; } bool IsAnonymous { get; set; } IReference<short> PreferredTransmitPowerLevelInDBm { get; set; } bool UseExtendedAdvertisement { get; set; } } public sealed class BluetoothLEAdvertisementPublisherStatusChangedEventArgs { IReference<short> SelectedTransmitPowerLevelInDBm { get; } } public sealed class BluetoothLEAdvertisementReceivedEventArgs { BluetoothAddressType BluetoothAddressType { get; } bool IsAnonymous { get; } bool IsConnectable { get; } bool IsDirected { get; } bool IsScannable { get; } bool IsScanResponse { get; } IReference<short> TransmitPowerLevelInDBm { get; } } public enum BluetoothLEAdvertisementType { Extended = 5, } public sealed class BluetoothLEAdvertisementWatcher { bool AllowExtendedAdvertisements { get; set; } } public enum BluetoothLEScanningMode { None = 2, } } namespace Windows.Devices.Bluetooth.Background { public sealed class BluetoothLEAdvertisementPublisherTriggerDetails { IReference<short> SelectedTransmitPowerLevelInDBm { get; } } } namespace Windows.Devices.Display { public sealed class DisplayMonitor { bool IsDolbyVisionSupportedInHdrMode { get; } } } namespace Windows.Devices.Input { public sealed class PenButtonListener public sealed class PenDockedEventArgs public sealed class PenDockListener public sealed class PenTailButtonClickedEventArgs public sealed class PenTailButtonDoubleClickedEventArgs public sealed class PenTailButtonLongPressedEventArgs public sealed class PenUndockedEventArgs } namespace Windows.Devices.Sensors { public sealed class Accelerometer { AccelerometerDataThreshold ReportThreshold { get; } } public sealed class AccelerometerDataThreshold public sealed class Barometer { BarometerDataThreshold ReportThreshold { get; } } public sealed class BarometerDataThreshold public sealed class Compass { CompassDataThreshold ReportThreshold { get; } } public sealed class CompassDataThreshold public sealed class Gyrometer { GyrometerDataThreshold ReportThreshold { get; } } public sealed class GyrometerDataThreshold public sealed class Inclinometer { InclinometerDataThreshold ReportThreshold { get; } } public sealed class InclinometerDataThreshold public sealed class LightSensor { LightSensorDataThreshold ReportThreshold { get; } } public sealed class LightSensorDataThreshold public sealed class Magnetometer { MagnetometerDataThreshold ReportThreshold { get; } } public sealed class MagnetometerDataThreshold } namespace Windows.Foundation.Metadata { public sealed class AttributeNameAttribute : Attribute public sealed class FastAbiAttribute : Attribute public sealed class NoExceptionAttribute : Attribute } namespace Windows.Globalization { public sealed class Language { string AbbreviatedName { get; } public static IVector<string> GetMuiCompatibleLanguageListFromLanguageTags(IIterable<string> languageTags); } } namespace Windows.Graphics.Capture { public sealed class GraphicsCaptureSession : IClosable { bool IsCursorCaptureEnabled { get; set; } } } namespace Windows.Graphics.DirectX { public enum DirectXPixelFormat { SamplerFeedbackMinMipOpaque = 189, SamplerFeedbackMipRegionUsedOpaque = 190, } } namespace Windows.Graphics.Holographic { public sealed class HolographicFrame { HolographicFrameId Id { get; } } public struct HolographicFrameId public sealed class HolographicFrameRenderingReport public sealed class HolographicFrameScanoutMonitor : IClosable public sealed class HolographicFrameScanoutReport public sealed class HolographicSpace { HolographicFrameScanoutMonitor CreateFrameScanoutMonitor(uint maxQueuedReports); } } namespace Windows.Management.Deployment { public sealed class AddPackageOptions public enum DeploymentOptions : uint { StageInPlace = (uint)4194304, } public sealed class PackageManager { IAsyncOperationWithProgress<DeploymentResult, DeploymentProgress> AddPackageByUriAsync(Uri packageUri, AddPackageOptions options); IVector<Package> FindProvisionedPackages(); PackageStubPreference GetPackageStubPreference(string packageFamilyName); IAsyncOperationWithProgress<DeploymentResult, DeploymentProgress> RegisterPackageByUriAsync(Uri manifestUri, RegisterPackageOptions options); IAsyncOperationWithProgress<DeploymentResult, DeploymentProgress> RegisterPackagesByFullNameAsync(IIterable<string> packageFullNames, RegisterPackageOptions options); void SetPackageStubPreference(string packageFamilyName, PackageStubPreference useStub); IAsyncOperationWithProgress<DeploymentResult, DeploymentProgress> StagePackageByUriAsync(Uri packageUri, StagePackageOptions options); } public enum PackageStubPreference public enum PackageTypes : uint { All = (uint)4294967295, } public sealed class RegisterPackageOptions public enum RemovalOptions : uint { PreserveRoamableApplicationData = (uint)128, } public sealed class StagePackageOptions public enum StubPackageOption } namespace Windows.Media.Audio { public sealed class AudioPlaybackConnection : IClosable public sealed class AudioPlaybackConnectionOpenResult public enum AudioPlaybackConnectionOpenResultStatus public enum AudioPlaybackConnectionState } namespace Windows.Media.Capture { public sealed class MediaCapture : IClosable { MediaCaptureRelativePanelWatcher CreateRelativePanelWatcher(StreamingCaptureMode captureMode, DisplayRegion displayRegion); } public sealed class MediaCaptureInitializationSettings { Uri DeviceUri { get; set; } PasswordCredential DeviceUriPasswordCredential { get; set; } } public sealed class MediaCaptureRelativePanelWatcher : IClosable } namespace Windows.Media.Capture.Frames { public sealed class MediaFrameSourceInfo { Panel GetRelativePanel(DisplayRegion displayRegion); } } namespace Windows.Media.Devices { public sealed class PanelBasedOptimizationControl public sealed class VideoDeviceController : IMediaDeviceController { PanelBasedOptimizationControl PanelBasedOptimizationControl { get; } } } namespace Windows.Media.MediaProperties { public static class MediaEncodingSubtypes { public static string Pgs { get; } public static string Srt { get; } public static string Ssa { get; } public static string VobSub { get; } } public sealed class TimedMetadataEncodingProperties : IMediaEncodingProperties { public static TimedMetadataEncodingProperties CreatePgs(); public static TimedMetadataEncodingProperties CreateSrt(); public static TimedMetadataEncodingProperties CreateSsa(byte[] formatUserData); public static TimedMetadataEncodingProperties CreateVobSub(byte[] formatUserData); } } namespace Windows.Networking.BackgroundTransfer { public sealed class DownloadOperation : IBackgroundTransferOperation, IBackgroundTransferOperationPriority { void RemoveRequestHeader(string headerName); void SetRequestHeader(string headerName, string headerValue); } public sealed class UploadOperation : IBackgroundTransferOperation, IBackgroundTransferOperationPriority { void RemoveRequestHeader(string headerName); void SetRequestHeader(string headerName, string headerValue); } } namespace Windows.Networking.Connectivity { public enum NetworkAuthenticationType { Owe = 12, } } namespace Windows.Networking.NetworkOperators { public sealed class NetworkOperatorTetheringAccessPointConfiguration { TetheringWiFiBand Band { get; set; } bool IsBandSupported(TetheringWiFiBand band); IAsyncOperation<bool> IsBandSupportedAsync(TetheringWiFiBand band); } public sealed class NetworkOperatorTetheringManager { public static void DisableNoConnectionsTimeout(); public static IAsyncAction DisableNoConnectionsTimeoutAsync(); public static void EnableNoConnectionsTimeout(); public static IAsyncAction EnableNoConnectionsTimeoutAsync(); public static bool IsNoConnectionsTimeoutEnabled(); } public enum TetheringWiFiBand } namespace Windows.Networking.PushNotifications { public static class PushNotificationChannelManager { public static event EventHandler<PushNotificationChannelsRevokedEventArgs> ChannelsRevoked; } public sealed class PushNotificationChannelsRevokedEventArgs public sealed class RawNotification { IBuffer ContentBytes { get; } } } namespace Windows.Security.Authentication.Web.Core { public sealed class WebAccountMonitor { event TypedEventHandler<WebAccountMonitor, WebAccountEventArgs> AccountPictureUpdated; } } namespace Windows.Security.Isolation { public sealed class IsolatedWindowsEnvironment public enum IsolatedWindowsEnvironmentActivator public enum IsolatedWindowsEnvironmentAllowedClipboardFormats : uint public enum IsolatedWindowsEnvironmentAvailablePrinters : uint public enum IsolatedWindowsEnvironmentClipboardCopyPasteDirections : uint public struct IsolatedWindowsEnvironmentContract public struct IsolatedWindowsEnvironmentCreateProgress public sealed class IsolatedWindowsEnvironmentCreateResult public enum IsolatedWindowsEnvironmentCreateStatus public sealed class IsolatedWindowsEnvironmentFile public static class IsolatedWindowsEnvironmentHost public enum IsolatedWindowsEnvironmentHostError public sealed class IsolatedWindowsEnvironmentLaunchFileResult public enum IsolatedWindowsEnvironmentLaunchFileStatus public sealed class IsolatedWindowsEnvironmentOptions public static class IsolatedWindowsEnvironmentOwnerRegistration public sealed class IsolatedWindowsEnvironmentOwnerRegistrationData public sealed class IsolatedWindowsEnvironmentOwnerRegistrationResult public enum IsolatedWindowsEnvironmentOwnerRegistrationStatus public sealed class IsolatedWindowsEnvironmentProcess public enum IsolatedWindowsEnvironmentProcessState public enum IsolatedWindowsEnvironmentProgressState public sealed class IsolatedWindowsEnvironmentShareFolderRequestOptions public sealed class IsolatedWindowsEnvironmentShareFolderResult public enum IsolatedWindowsEnvironmentShareFolderStatus public sealed class IsolatedWindowsEnvironmentStartProcessResult public enum IsolatedWindowsEnvironmentStartProcessStatus public sealed class IsolatedWindowsEnvironmentTelemetryParameters public static class IsolatedWindowsHostMessenger public delegate void MessageReceivedCallback(Guid receiverId, IVectorView<object> message); } namespace Windows.Storage { public static class KnownFolders { public static IAsyncOperation<StorageFolder> GetFolderAsync(KnownFolderId folderId); public static IAsyncOperation<KnownFoldersAccessStatus> RequestAccessAsync(KnownFolderId folderId); public static IAsyncOperation<KnownFoldersAccessStatus> RequestAccessForUserAsync(User user, KnownFolderId folderId); } public enum KnownFoldersAccessStatus public sealed class StorageFile : IInputStreamReference, IRandomAccessStreamReference, IStorageFile, IStorageFile2, IStorageFilePropertiesWithAvailability, IStorageItem, IStorageItem2, IStorageItemProperties, IStorageItemProperties2, IStorageItemPropertiesWithProvider { public static IAsyncOperation<StorageFile> GetFileFromPathForUserAsync(User user, string path); } public sealed class StorageFolder : IStorageFolder, IStorageFolder2, IStorageFolderQueryOperations, IStorageItem, IStorageItem2, IStorageItemProperties, IStorageItemProperties2, IStorageItemPropertiesWithProvider { public static IAsyncOperation<StorageFolder> GetFolderFromPathForUserAsync(User user, string path); } } namespace Windows.Storage.Provider { public sealed class StorageProviderFileTypeInfo public sealed class StorageProviderSyncRootInfo { IVector<StorageProviderFileTypeInfo> FallbackFileTypeInfo { get; } } public static class StorageProviderSyncRootManager { public static bool IsSupported(); } } namespace Windows.System { public sealed class UserChangedEventArgs { IVectorView<UserWatcherUpdateKind> ChangedPropertyKinds { get; } } public enum UserWatcherUpdateKind } namespace Windows.UI.Composition.Interactions { public sealed class InteractionTracker : CompositionObject { int TryUpdatePosition(Vector3 value, InteractionTrackerClampingOption option, InteractionTrackerPositionUpdateOption posUpdateOption); } public enum InteractionTrackerPositionUpdateOption } namespace Windows.UI.Input { public sealed class CrossSlidingEventArgs { uint ContactCount { get; } } public sealed class DraggingEventArgs { uint ContactCount { get; } } public sealed class GestureRecognizer { uint HoldMaxContactCount { get; set; } uint HoldMinContactCount { get; set; } float HoldRadius { get; set; } TimeSpan HoldStartDelay { get; set; } uint TapMaxContactCount { get; set; } uint TapMinContactCount { get; set; } uint TranslationMaxContactCount { get; set; } uint TranslationMinContactCount { get; set; } } public sealed class HoldingEventArgs { uint ContactCount { get; } uint CurrentContactCount { get; } } public sealed class ManipulationCompletedEventArgs { uint ContactCount { get; } uint CurrentContactCount { get; } } public sealed class ManipulationInertiaStartingEventArgs { uint ContactCount { get; } } public sealed class ManipulationStartedEventArgs { uint ContactCount { get; } } public sealed class ManipulationUpdatedEventArgs { uint ContactCount { get; } uint CurrentContactCount { get; } } public sealed class RightTappedEventArgs { uint ContactCount { get; } } public sealed class SystemButtonEventController : AttachableInputObject public sealed class SystemFunctionButtonEventArgs public sealed class SystemFunctionLockChangedEventArgs public sealed class SystemFunctionLockIndicatorChangedEventArgs public sealed class TappedEventArgs { uint ContactCount { get; } } } namespace Windows.UI.Input.Inking { public sealed class InkModelerAttributes { bool UseVelocityBasedPressure { get; set; } } } namespace Windows.UI.Text { public enum RichEditMathMode public sealed class RichEditTextDocument : ITextDocument { void GetMath(out string value); void SetMath(string value); void SetMathMode(RichEditMathMode mode); } } namespace Windows.UI.ViewManagement { public sealed class UISettings { event TypedEventHandler<UISettings, UISettingsAnimationsEnabledChangedEventArgs> AnimationsEnabledChanged; event TypedEventHandler<UISettings, UISettingsMessageDurationChangedEventArgs> MessageDurationChanged; } public sealed class UISettingsAnimationsEnabledChangedEventArgs public sealed class UISettingsMessageDurationChangedEventArgs } namespace Windows.UI.ViewManagement.Core { public sealed class CoreInputView { event TypedEventHandler<CoreInputView, CoreInputViewHidingEventArgs> PrimaryViewHiding; event TypedEventHandler<CoreInputView, CoreInputViewShowingEventArgs> PrimaryViewShowing; } public sealed class CoreInputViewHidingEventArgs public enum CoreInputViewKind { Symbols = 4, } public sealed class CoreInputViewShowingEventArgs public sealed class UISettingsController } [/code] Today, we released a new Windows 10 Preview Build of the SDK to be used in conjunction with Windows 10 Insider Preview (Build 19013 or greater). The Preview SDK Build 19013 contains bug fixes and under development changes to the API surface area. The Preview SDK can be downloaded from developer section on Windows Insider. For feedback and updates to the known issues, please see the developer forum. For new developer feature requests, head over to our Windows Platform UserVoice.

Things to note:

  • This build works in conjunction with previously released SDKs and Visual Studio 2017 and 2019. You can install this SDK and still also continue to submit your apps that target Windows 10 build 1903 or earlier to the Microsoft Store.
  • The Windows SDK will now formally only be supported by Visual Studio 2017 and greater. You can download the Visual Studio 2019 here.
  • This build of the Windows SDK will install on only on Windows 10 Insider Preview builds.
  • In order to assist with script access to the SDK, the ISO will also be able to be accessed through the following static URL: https://software-download.microsoft.com/download/sg/Windows_InsiderPreview_SDK_en-us_19013_1.iso.

Tools Updates

Message Compiler (mc.exe)

  • Now detects the Unicode byte order mark (BOM) in .mc files. If the If the .mc file starts with a UTF-8 BOM, it will be read as a UTF-8 file. Otherwise, if it starts with a UTF-16LE BOM, it will be read as a UTF-16LE file. If the -u parameter was specified, it will be read as a UTF-16LE file. Otherwise, it will be read using the current code page (CP_ACP).
  • Now avoids one-definition-rule (ODR) problems in MC-generated C/C++ ETW helpers caused by conflicting configuration macros (e.g. when two .cpp files with conflicting definitions of MCGEN_EVENTWRITETRANSFER are linked into the same binary, the MC-generated ETW helpers will now respect the definition of MCGEN_EVENTWRITETRANSFER in each .cpp file instead of arbitrarily picking one or the other).

Windows Trace Preprocessor (tracewpp.exe)

  • Now supports Unicode input (.ini, .tpl, and source code) files. Input files starting with a UTF-8 or UTF-16 byte order mark (BOM) will be read as Unicode. Input files that do not start with a BOM will be read using the current code page (CP_ACP). For backwards-compatibility, if the -UnicodeIgnore command-line parameter is specified, files starting with a UTF-16 BOM will be treated as empty.
  • Now supports Unicode output (.tmh) files. By default, output files will be encoded using the current code page (CP_ACP). Use command-line parameters -cp:UTF-8 or -cp:UTF-16 to generate Unicode output files.
  • Behavior change: tracewpp now converts all input text to Unicode, performs processing in Unicode, and converts output text to the specified output encoding. Earlier versions of tracewpp avoided Unicode conversions and performed text processing assuming a single-byte character set. This may lead to behavior changes in cases where the input files do not conform to the current code page. In cases where this is a problem, consider converting the input files to UTF-8 (with BOM) and/or using the -cp:UTF-8 command-line parameter to avoid encoding ambiguity.

TraceLoggingProvider.h

  • Now avoids one-definition-rule (ODR) problems caused by conflicting configuration macros (e.g. when two .cpp files with conflicting definitions of TLG_EVENT_WRITE_TRANSFER are linked into the same binary, the TraceLoggingProvider.h helpers will now respect the definition of TLG_EVENT_WRITE_TRANSFER in each .cpp file instead of arbitrarily picking one or the other).
  • In C++ code, the TraceLoggingWrite macro has been updated to enable better code sharing between similar events using variadic templates.

Signing your apps with Device Guard Signing

Windows SDK Flight NuGet Feed

We have stood up a NuGet feed for the flighted builds of the SDK. You can now test preliminary builds of the Windows 10 WinRT API Pack, as well as a microsoft.windows.sdk.headless.contracts NuGet package. We use the following feed to flight our NuGet packages. Microsoft.Windows.SDK.Contracts which can be used with to add the latest Windows Runtime APIs support to your .NET Framework 4.5+ and .NET Core 3.0+ libraries and apps. The Windows 10 WinRT API Pack enables you to add the latest Windows Runtime APIs support to your .NET Framework 4.5+ and .NET Core 3.0+ libraries and apps. Microsoft.Windows.SDK.Headless.Contracts provides a subset of the Windows Runtime APIs for console apps excludes the APIs associated with a graphical user interface. This NuGet is used in conjunction with Windows ML container development. Check out the Getting Started guide for more information.

Breaking Changes

Removal of api-ms-win-net-isolation-l1-1-0.lib

In this release api-ms-win-net-isolation-l1-1-0.lib has been removed from the Windows SDK. Apps that were linking against api-ms-win-net-isolation-l1-1-0.lib can switch to OneCoreUAP.lib as a replacement.

Removal of IRPROPS.LIB

In this release irprops.lib has been removed from the Windows SDK. Apps that were linking against irprops.lib can switch to bthprops.lib as a drop-in replacement.

Removal of WUAPICommon.H and WUAPICommon.IDL

In this release we have moved ENUM tagServerSelection from WUAPICommon.H to wupai.h and removed the header. If you would like to use the ENUM tagServerSelection, you will need to include wuapi.h or wuapi.idl.

API Updates, Additions and Removals

The following APIs have been added to the platform since the release of Windows 10 SDK, version 1903, build 18362.

Additions:

[code lang="csharp"] namespace Windows.AI.MachineLearning { public sealed class LearningModelSessionOptions { bool CloseModelOnSessionCreation { get; set; } } } namespace Windows.ApplicationModel { public sealed class AppInfo { public static AppInfo Current { get; } Package Package { get; } public static AppInfo GetFromAppUserModelId(string appUserModelId); public static AppInfo GetFromAppUserModelIdForUser(User user, string appUserModelId); } public interface IAppInfoStatics public sealed class Package { StorageFolder EffectiveExternalLocation { get; } string EffectiveExternalPath { get; } string EffectivePath { get; } string InstalledPath { get; } bool IsStub { get; } StorageFolder MachineExternalLocation { get; } string MachineExternalPath { get; } string MutablePath { get; } StorageFolder UserExternalLocation { get; } string UserExternalPath { get; } IVectorView<AppListEntry> GetAppListEntries(); RandomAccessStreamReference GetLogoAsRandomAccessStreamReference(Size size); } } namespace Windows.ApplicationModel.AppService { public enum AppServiceConnectionStatus { AuthenticationError = 8, DisabledByPolicy = 10, NetworkNotAvailable = 9, WebServiceUnavailable = 11, } public enum AppServiceResponseStatus { AppUnavailable = 6, AuthenticationError = 7, DisabledByPolicy = 9, NetworkNotAvailable = 8, WebServiceUnavailable = 10, } public enum StatelessAppServiceResponseStatus { AuthenticationError = 11, DisabledByPolicy = 13, NetworkNotAvailable = 12, WebServiceUnavailable = 14, } } namespace Windows.ApplicationModel.Background { public sealed class BackgroundTaskBuilder { void SetTaskEntryPointClsid(Guid TaskEntryPoint); } public sealed class BluetoothLEAdvertisementPublisherTrigger : IBackgroundTrigger { bool IncludeTransmitPowerLevel { get; set; } bool IsAnonymous { get; set; } IReference<short> PreferredTransmitPowerLevelInDBm { get; set; } bool UseExtendedFormat { get; set; } } public sealed class BluetoothLEAdvertisementWatcherTrigger : IBackgroundTrigger { bool AllowExtendedAdvertisements { get; set; } } } namespace Windows.ApplicationModel.ConversationalAgent { public sealed class ActivationSignalDetectionConfiguration public enum ActivationSignalDetectionTrainingDataFormat public sealed class ActivationSignalDetector public enum ActivationSignalDetectorKind public enum ActivationSignalDetectorPowerState public sealed class ConversationalAgentDetectorManager public sealed class DetectionConfigurationAvailabilityChangedEventArgs public enum DetectionConfigurationAvailabilityChangeKind public sealed class DetectionConfigurationAvailabilityInfo public enum DetectionConfigurationTrainingStatus } namespace Windows.ApplicationModel.DataTransfer { public sealed class DataPackage { event TypedEventHandler<DataPackage, object> ShareCanceled; } } namespace Windows.Devices.Bluetooth { public sealed class BluetoothAdapter { bool IsExtendedAdvertisingSupported { get; } uint MaxAdvertisementDataLength { get; } } } namespace Windows.Devices.Bluetooth.Advertisement { public sealed class BluetoothLEAdvertisementPublisher { bool IncludeTransmitPowerLevel { get; set; } bool IsAnonymous { get; set; } IReference<short> PreferredTransmitPowerLevelInDBm { get; set; } bool UseExtendedAdvertisement { get; set; } } public sealed class BluetoothLEAdvertisementPublisherStatusChangedEventArgs { IReference<short> SelectedTransmitPowerLevelInDBm { get; } } public sealed class BluetoothLEAdvertisementReceivedEventArgs { BluetoothAddressType BluetoothAddressType { get; } bool IsAnonymous { get; } bool IsConnectable { get; } bool IsDirected { get; } bool IsScannable { get; } bool IsScanResponse { get; } IReference<short> TransmitPowerLevelInDBm { get; } } public enum BluetoothLEAdvertisementType { Extended = 5, } public sealed class BluetoothLEAdvertisementWatcher { bool AllowExtendedAdvertisements { get; set; } } public enum BluetoothLEScanningMode { None = 2, } } namespace Windows.Devices.Bluetooth.Background { public sealed class BluetoothLEAdvertisementPublisherTriggerDetails { IReference<short> SelectedTransmitPowerLevelInDBm { get; } } } namespace Windows.Devices.Display { public sealed class DisplayMonitor { bool IsDolbyVisionSupportedInHdrMode { get; } } } namespace Windows.Devices.Input { public sealed class PenButtonListener public sealed class PenDockedEventArgs public sealed class PenDockListener public sealed class PenTailButtonClickedEventArgs public sealed class PenTailButtonDoubleClickedEventArgs public sealed class PenTailButtonLongPressedEventArgs public sealed class PenUndockedEventArgs } namespace Windows.Devices.Sensors { public sealed class Accelerometer { AccelerometerDataThreshold ReportThreshold { get; } } public sealed class AccelerometerDataThreshold public sealed class Barometer { BarometerDataThreshold ReportThreshold { get; } } public sealed class BarometerDataThreshold public sealed class Compass { CompassDataThreshold ReportThreshold { get; } } public sealed class CompassDataThreshold public sealed class Gyrometer { GyrometerDataThreshold ReportThreshold { get; } } public sealed class GyrometerDataThreshold public sealed class Inclinometer { InclinometerDataThreshold ReportThreshold { get; } } public sealed class InclinometerDataThreshold public sealed class LightSensor { LightSensorDataThreshold ReportThreshold { get; } } public sealed class LightSensorDataThreshold public sealed class Magnetometer { MagnetometerDataThreshold ReportThreshold { get; } } public sealed class MagnetometerDataThreshold } namespace Windows.Foundation.Metadata { public sealed class AttributeNameAttribute : Attribute public sealed class FastAbiAttribute : Attribute public sealed class NoExceptionAttribute : Attribute } namespace Windows.Globalization { public sealed class Language { string AbbreviatedName { get; } public static IVector<string> GetMuiCompatibleLanguageListFromLanguageTags(IIterable<string> languageTags); } } namespace Windows.Graphics.Capture { public sealed class GraphicsCaptureSession : IClosable { bool IsCursorCaptureEnabled { get; set; } } } namespace Windows.Graphics.DirectX { public enum DirectXPixelFormat { SamplerFeedbackMinMipOpaque = 189, SamplerFeedbackMipRegionUsedOpaque = 190, } } namespace Windows.Graphics.Holographic { public sealed class HolographicFrame { HolographicFrameId Id { get; } } public struct HolographicFrameId public sealed class HolographicFrameRenderingReport public sealed class HolographicFrameScanoutMonitor : IClosable public sealed class HolographicFrameScanoutReport public sealed class HolographicSpace { HolographicFrameScanoutMonitor CreateFrameScanoutMonitor(uint maxQueuedReports); } } namespace Windows.Management.Deployment { public sealed class AddPackageOptions public enum DeploymentOptions : uint { StageInPlace = (uint)4194304, } public sealed class PackageManager { IAsyncOperationWithProgress<DeploymentResult, DeploymentProgress> AddPackageByUriAsync(Uri packageUri, AddPackageOptions options); IVector<Package> FindProvisionedPackages(); PackageStubPreference GetPackageStubPreference(string packageFamilyName); IAsyncOperationWithProgress<DeploymentResult, DeploymentProgress> RegisterPackageByUriAsync(Uri manifestUri, RegisterPackageOptions options); IAsyncOperationWithProgress<DeploymentResult, DeploymentProgress> RegisterPackagesByFullNameAsync(IIterable<string> packageFullNames, RegisterPackageOptions options); void SetPackageStubPreference(string packageFamilyName, PackageStubPreference useStub); IAsyncOperationWithProgress<DeploymentResult, DeploymentProgress> StagePackageByUriAsync(Uri packageUri, StagePackageOptions options); } public enum PackageStubPreference public enum PackageTypes : uint { All = (uint)4294967295, } public sealed class RegisterPackageOptions public enum RemovalOptions : uint { PreserveRoamableApplicationData = (uint)128, } public sealed class StagePackageOptions public enum StubPackageOption } namespace Windows.Media.Audio { public sealed class AudioPlaybackConnection : IClosable public sealed class AudioPlaybackConnectionOpenResult public enum AudioPlaybackConnectionOpenResultStatus public enum AudioPlaybackConnectionState } namespace Windows.Media.Capture { public sealed class MediaCapture : IClosable { MediaCaptureRelativePanelWatcher CreateRelativePanelWatcher(StreamingCaptureMode captureMode, DisplayRegion displayRegion); } public sealed class MediaCaptureInitializationSettings { Uri DeviceUri { get; set; } PasswordCredential DeviceUriPasswordCredential { get; set; } } public sealed class MediaCaptureRelativePanelWatcher : IClosable } namespace Windows.Media.Capture.Frames { public sealed class MediaFrameSourceInfo { Panel GetRelativePanel(DisplayRegion displayRegion); } } namespace Windows.Media.Devices { public sealed class PanelBasedOptimizationControl public sealed class VideoDeviceController : IMediaDeviceController { PanelBasedOptimizationControl PanelBasedOptimizationControl { get; } } } namespace Windows.Media.MediaProperties { public static class MediaEncodingSubtypes { public static string Pgs { get; } public static string Srt { get; } public static string Ssa { get; } public static string VobSub { get; } } public sealed class TimedMetadataEncodingProperties : IMediaEncodingProperties { public static TimedMetadataEncodingProperties CreatePgs(); public static TimedMetadataEncodingProperties CreateSrt(); public static TimedMetadataEncodingProperties CreateSsa(byte[] formatUserData); public static TimedMetadataEncodingProperties CreateVobSub(byte[] formatUserData); } } namespace Windows.Networking.BackgroundTransfer { public sealed class DownloadOperation : IBackgroundTransferOperation, IBackgroundTransferOperationPriority { void RemoveRequestHeader(string headerName); void SetRequestHeader(string headerName, string headerValue); } public sealed class UploadOperation : IBackgroundTransferOperation, IBackgroundTransferOperationPriority { void RemoveRequestHeader(string headerName); void SetRequestHeader(string headerName, string headerValue); } } namespace Windows.Networking.Connectivity { public enum NetworkAuthenticationType { Owe = 12, } } namespace Windows.Networking.NetworkOperators { public sealed class NetworkOperatorTetheringAccessPointConfiguration { TetheringWiFiBand Band { get; set; } bool IsBandSupported(TetheringWiFiBand band); IAsyncOperation<bool> IsBandSupportedAsync(TetheringWiFiBand band); } public sealed class NetworkOperatorTetheringManager { public static void DisableNoConnectionsTimeout(); public static IAsyncAction DisableNoConnectionsTimeoutAsync(); public static void EnableNoConnectionsTimeout(); public static IAsyncAction EnableNoConnectionsTimeoutAsync(); public static bool IsNoConnectionsTimeoutEnabled(); } public enum TetheringWiFiBand } namespace Windows.Networking.PushNotifications { public static class PushNotificationChannelManager { public static event EventHandler<PushNotificationChannelsRevokedEventArgs> ChannelsRevoked; } public sealed class PushNotificationChannelsRevokedEventArgs public sealed class RawNotification { IBuffer ContentBytes { get; } } } namespace Windows.Security.Authentication.Web.Core { public sealed class WebAccountMonitor { event TypedEventHandler<WebAccountMonitor, WebAccountEventArgs> AccountPictureUpdated; } } namespace Windows.Security.Isolation { public sealed class IsolatedWindowsEnvironment public enum IsolatedWindowsEnvironmentActivator public enum IsolatedWindowsEnvironmentAllowedClipboardFormats : uint public enum IsolatedWindowsEnvironmentAvailablePrinters : uint public enum IsolatedWindowsEnvironmentClipboardCopyPasteDirections : uint public struct IsolatedWindowsEnvironmentContract public struct IsolatedWindowsEnvironmentCreateProgress public sealed class IsolatedWindowsEnvironmentCreateResult public enum IsolatedWindowsEnvironmentCreateStatus public sealed class IsolatedWindowsEnvironmentFile public static class IsolatedWindowsEnvironmentHost public enum IsolatedWindowsEnvironmentHostError public sealed class IsolatedWindowsEnvironmentLaunchFileResult public enum IsolatedWindowsEnvironmentLaunchFileStatus public sealed class IsolatedWindowsEnvironmentOptions public static class IsolatedWindowsEnvironmentOwnerRegistration public sealed class IsolatedWindowsEnvironmentOwnerRegistrationData public sealed class IsolatedWindowsEnvironmentOwnerRegistrationResult public enum IsolatedWindowsEnvironmentOwnerRegistrationStatus public sealed class IsolatedWindowsEnvironmentProcess public enum IsolatedWindowsEnvironmentProcessState public enum IsolatedWindowsEnvironmentProgressState public sealed class IsolatedWindowsEnvironmentShareFolderRequestOptions public sealed class IsolatedWindowsEnvironmentShareFolderResult public enum IsolatedWindowsEnvironmentShareFolderStatus public sealed class IsolatedWindowsEnvironmentStartProcessResult public enum IsolatedWindowsEnvironmentStartProcessStatus public sealed class IsolatedWindowsEnvironmentTelemetryParameters public static class IsolatedWindowsHostMessenger public delegate void MessageReceivedCallback(Guid receiverId, IVectorView<object> message); } namespace Windows.Storage { public static class KnownFolders { public static IAsyncOperation<StorageFolder> GetFolderAsync(KnownFolderId folderId); public static IAsyncOperation<KnownFoldersAccessStatus> RequestAccessAsync(KnownFolderId folderId); public static IAsyncOperation<KnownFoldersAccessStatus> RequestAccessForUserAsync(User user, KnownFolderId folderId); } public enum KnownFoldersAccessStatus public sealed class StorageFile : IInputStreamReference, IRandomAccessStreamReference, IStorageFile, IStorageFile2, IStorageFilePropertiesWithAvailability, IStorageItem, IStorageItem2, IStorageItemProperties, IStorageItemProperties2, IStorageItemPropertiesWithProvider { public static IAsyncOperation<StorageFile> GetFileFromPathForUserAsync(User user, string path); } public sealed class StorageFolder : IStorageFolder, IStorageFolder2, IStorageFolderQueryOperations, IStorageItem, IStorageItem2, IStorageItemProperties, IStorageItemProperties2, IStorageItemPropertiesWithProvider { public static IAsyncOperation<StorageFolder> GetFolderFromPathForUserAsync(User user, string path); } } namespace Windows.Storage.Provider { public sealed class StorageProviderFileTypeInfo public sealed class StorageProviderSyncRootInfo { IVector<StorageProviderFileTypeInfo> FallbackFileTypeInfo { get; } } public static class StorageProviderSyncRootManager { public static bool IsSupported(); } } namespace Windows.System { public sealed class UserChangedEventArgs { IVectorView<UserWatcherUpdateKind> ChangedPropertyKinds { get; } } public enum UserWatcherUpdateKind } namespace Windows.UI.Composition.Interactions { public sealed class InteractionTracker : CompositionObject { int TryUpdatePosition(Vector3 value, InteractionTrackerClampingOption option, InteractionTrackerPositionUpdateOption posUpdateOption); } public enum InteractionTrackerPositionUpdateOption } namespace Windows.UI.Input { public sealed class CrossSlidingEventArgs { uint ContactCount { get; } } public sealed class DraggingEventArgs { uint ContactCount { get; } } public sealed class GestureRecognizer { uint HoldMaxContactCount { get; set; } uint HoldMinContactCount { get; set; } float HoldRadius { get; set; } TimeSpan HoldStartDelay { get; set; } uint TapMaxContactCount { get; set; } uint TapMinContactCount { get; set; } uint TranslationMaxContactCount { get; set; } uint TranslationMinContactCount { get; set; } } public sealed class HoldingEventArgs { uint ContactCount { get; } uint CurrentContactCount { get; } } public sealed class ManipulationCompletedEventArgs { uint ContactCount { get; } uint CurrentContactCount { get; } } public sealed class ManipulationInertiaStartingEventArgs { uint ContactCount { get; } } public sealed class ManipulationStartedEventArgs { uint ContactCount { get; } } public sealed class ManipulationUpdatedEventArgs { uint ContactCount { get; } uint CurrentContactCount { get; } } public sealed class RightTappedEventArgs { uint ContactCount { get; } } public sealed class SystemButtonEventController : AttachableInputObject public sealed class SystemFunctionButtonEventArgs public sealed class SystemFunctionLockChangedEventArgs public sealed class SystemFunctionLockIndicatorChangedEventArgs public sealed class TappedEventArgs { uint ContactCount { get; } } } namespace Windows.UI.Input.Inking { public sealed class InkModelerAttributes { bool UseVelocityBasedPressure { get; set; } } } namespace Windows.UI.Text { public enum RichEditMathMode public sealed class RichEditTextDocument : ITextDocument { void GetMath(out string value); void SetMath(string value); void SetMathMode(RichEditMathMode mode); } } namespace Windows.UI.ViewManagement { public sealed class UISettings { event TypedEventHandler<UISettings, UISettingsAnimationsEnabledChangedEventArgs> AnimationsEnabledChanged; event TypedEventHandler<UISettings, UISettingsMessageDurationChangedEventArgs> MessageDurationChanged; } public sealed class UISettingsAnimationsEnabledChangedEventArgs public sealed class UISettingsMessageDurationChangedEventArgs } namespace Windows.UI.ViewManagement.Core { public sealed class CoreInputView { event TypedEventHandler<CoreInputView, CoreInputViewHidingEventArgs> PrimaryViewHiding; event TypedEventHandler<CoreInputView, CoreInputViewShowingEventArgs> PrimaryViewShowing; } public sealed class CoreInputViewHidingEventArgs public enum CoreInputViewKind { Symbols = 4, } public sealed class CoreInputViewShowingEventArgs public sealed class UISettingsController } [/code] ]]>
Windows 10 SDK Preview Build 19008 available now! https://blogs.windows.com/windowsdeveloper/2019/10/29/windows-10-sdk-preview-build-19008-available-now/ Tue, 29 Oct 2019 17:39:32 +0000 https://blogs.windows.com/windowsdeveloper/?p=55535 Today, we released a new Windows 10 Preview Build of the SDK to be used in conjunction with Windows 10 Insider Preview (Build 19008 or greater). The Preview SDK Build 19008 contains bug fixes and under development changes to the API surface area. The Preview SDK can be downloaded from developer section on Windows Insider. For feedback and […]

The post Windows 10 SDK Preview Build 19008 available now! appeared first on Windows Developer Blog.

]]>
Windows 10 Insider Preview (Build 19008 or greater). The Preview SDK Build 19008 contains bug fixes and under development changes to the API surface area. The Preview SDK can be downloaded from developer section on Windows Insider. For feedback and updates to the known issues, please see the developer forum. For new developer feature requests, head over to our Windows Platform UserVoice.

Things to note:

  • This build works in conjunction with previously released SDKs and Visual Studio 2017 and 2019. You can install this SDK and still also continue to submit your apps that target Windows 10 build 1903 or earlier to the Microsoft Store.
  • The Windows SDK will now formally only be supported by Visual Studio 2017 and greater. You can download the Visual Studio 2019 here.
  • This build of the Windows SDK will install on only on Windows 10 Insider Preview builds.
  • In order to assist with script access to the SDK, the ISO will also be able to be accessed through the following static URL: https://software-download.microsoft.com/download/sg/Windows_InsiderPreview_SDK_en-us_19008_1.iso.

Tools Updates

Message Compiler (mc.exe)

  • Now detects the Unicode byte order mark (BOM) in .mc files. If the If the .mc file starts with a UTF-8 BOM, it will be read as a UTF-8 file. Otherwise, if it starts with a UTF-16LE BOM, it will be read as a UTF-16LE file. If the -u parameter was specified, it will be read as a UTF-16LE file. Otherwise, it will be read using the current code page (CP_ACP).
  • Now avoids one-definition-rule (ODR) problems in MC-generated C/C++ ETW helpers caused by conflicting configuration macros (e.g. when two .cpp files with conflicting definitions of MCGEN_EVENTWRITETRANSFER are linked into the same binary, the MC-generated ETW helpers will now respect the definition of MCGEN_EVENTWRITETRANSFER in each .cpp file instead of arbitrarily picking one or the other).

Windows Trace Preprocessor (tracewpp.exe)

  • Now supports Unicode input (.ini, .tpl, and source code) files. Input files starting with a UTF-8 or UTF-16 byte order mark (BOM) will be read as Unicode. Input files that do not start with a BOM will be read using the current code page (CP_ACP). For backwards-compatibility, if the -UnicodeIgnore command-line parameter is specified, files starting with a UTF-16 BOM will be treated as empty.
  • Now supports Unicode output (.tmh) files. By default, output files will be encoded using the current code page (CP_ACP). Use command-line parameters -cp:UTF-8 or -cp:UTF-16 to generate Unicode output files.
  • Behavior change: tracewpp now converts all input text to Unicode, performs processing in Unicode, and converts output text to the specified output encoding. Earlier versions of tracewpp avoided Unicode conversions and performed text processing assuming a single-byte character set. This may lead to behavior changes in cases where the input files do not conform to the current code page. In cases where this is a problem, consider converting the input files to UTF-8 (with BOM) and/or using the -cp:UTF-8 command-line parameter to avoid encoding ambiguity.

TraceLoggingProvider.h

  • Now avoids one-definition-rule (ODR) problems caused by conflicting configuration macros (e.g. when two .cpp files with conflicting definitions of TLG_EVENT_WRITE_TRANSFER are linked into the same binary, the TraceLoggingProvider.h helpers will now respect the definition of TLG_EVENT_WRITE_TRANSFER in each .cpp file instead of arbitrarily picking one or the other).
  • In C++ code, the TraceLoggingWrite macro has been updated to enable better code sharing between similar events using variadic templates.

Signing your apps with Device Guard Signing

  • We are making it easier for you to sign your app. Device Guard signing is a Device Guard feature that is available in Microsoft Store for Business and Education. Signing allows enterprises to guarantee every app comes from a trusted source. Our goal is to make signing your MSIX package easier. Documentation on Device Guard Signing can be found here: https://docs.microsoft.com/windows/msix/package/signing-package-device-guard-signing

Windows SDK Flight NuGet Feed

We have stood up a NuGet feed for the flighted builds of the SDK. You can now test preliminary builds of the Windows 10 WinRT API Pack, as well as a microsoft.windows.sdk.headless.contracts NuGet package. We use the following feed to flight our NuGet packages. Microsoft.Windows.SDK.Contracts which can be used with to add the latest Windows Runtime APIs support to your .NET Framework 4.5+ and .NET Core 3.0+ libraries and apps. The Windows 10 WinRT API Pack enables you to add the latest Windows Runtime APIs support to your .NET Framework 4.5+ and .NET Core 3.0+ libraries and apps. Microsoft.Windows.SDK.Headless.Contracts provides a subset of the Windows Runtime APIs for console apps excludes the APIs associated with a graphical user interface. This NuGet is used in conjunction with Windows ML container development. Check out the Getting Started guide for more information.

Breaking Changes

Removal of api-ms-win-net-isolation-l1-1-0.lib

In this release api-ms-win-net-isolation-l1-1-0.lib has been removed from the Windows SDK. Apps that were linking against api-ms-win-net-isolation-l1-1-0.lib can switch to OneCoreUAP.lib as a replacement.

Removal of IRPROPS.LIB

In this release, irprops.lib has been removed from the Windows SDK. Apps that were linking against irprops.lib can switch to bthprops.lib as a drop-in replacement.

Removal of WUAPICommon.H and WUAPICommon.IDL

In this release we have moved ENUM tagServerSelection from WUAPICommon.H to wupai.h and removed the header. If you would like to use the ENUM tagServerSelection, you will need to include wuapi.h or wuapi.idl.

API Updates, Additions and Removals

The following APIs have been added to the platform since the release of Windows 10 SDK, version 1903, build 18362.

Additions:

[code lang="csharp"] namespace Windows.AI.MachineLearning { public sealed class LearningModelSessionOptions { bool CloseModelOnSessionCreation { get; set; } } } namespace Windows.ApplicationModel { public sealed class AppInfo { public static AppInfo Current { get; } Package Package { get; } public static AppInfo GetFromAppUserModelId(string appUserModelId); public static AppInfo GetFromAppUserModelIdForUser(User user, string appUserModelId); } public interface IAppInfoStatics public sealed class Package { StorageFolder EffectiveExternalLocation { get; } string EffectiveExternalPath { get; } string EffectivePath { get; } string InstalledPath { get; } bool IsStub { get; } StorageFolder MachineExternalLocation { get; } string MachineExternalPath { get; } string MutablePath { get; } StorageFolder UserExternalLocation { get; } string UserExternalPath { get; } IVectorView<AppListEntry> GetAppListEntries(); RandomAccessStreamReference GetLogoAsRandomAccessStreamReference(Size size); } } namespace Windows.ApplicationModel.AppService { public enum AppServiceConnectionStatus { AuthenticationError = 8, DisabledByPolicy = 10, NetworkNotAvailable = 9, WebServiceUnavailable = 11, } public enum AppServiceResponseStatus { AppUnavailable = 6, AuthenticationError = 7, DisabledByPolicy = 9, NetworkNotAvailable = 8, WebServiceUnavailable = 10, } public enum StatelessAppServiceResponseStatus { AuthenticationError = 11, DisabledByPolicy = 13, NetworkNotAvailable = 12, WebServiceUnavailable = 14, } } namespace Windows.ApplicationModel.Background { public sealed class BackgroundTaskBuilder { void SetTaskEntryPointClsid(Guid TaskEntryPoint); } public sealed class BluetoothLEAdvertisementPublisherTrigger : IBackgroundTrigger { bool IncludeTransmitPowerLevel { get; set; } bool IsAnonymous { get; set; } IReference<short> PreferredTransmitPowerLevelInDBm { get; set; } bool UseExtendedFormat { get; set; } } public sealed class BluetoothLEAdvertisementWatcherTrigger : IBackgroundTrigger { bool AllowExtendedAdvertisements { get; set; } } } namespace Windows.ApplicationModel.ConversationalAgent { public sealed class ActivationSignalDetectionConfiguration public enum ActivationSignalDetectionTrainingDataFormat public sealed class ActivationSignalDetector public enum ActivationSignalDetectorKind public enum ActivationSignalDetectorPowerState public sealed class ConversationalAgentDetectorManager public sealed class DetectionConfigurationAvailabilityChangedEventArgs public enum DetectionConfigurationAvailabilityChangeKind public sealed class DetectionConfigurationAvailabilityInfo public enum DetectionConfigurationTrainingStatus } namespace Windows.ApplicationModel.DataTransfer { public sealed class DataPackage { event TypedEventHandler<DataPackage, object> ShareCanceled; } } namespace Windows.Devices.Bluetooth { public sealed class BluetoothAdapter { bool IsExtendedAdvertisingSupported { get; } uint MaxAdvertisementDataLength { get; } } } namespace Windows.Devices.Bluetooth.Advertisement { public sealed class BluetoothLEAdvertisementPublisher { bool IncludeTransmitPowerLevel { get; set; } bool IsAnonymous { get; set; } IReference<short> PreferredTransmitPowerLevelInDBm { get; set; } bool UseExtendedAdvertisement { get; set; } } public sealed class BluetoothLEAdvertisementPublisherStatusChangedEventArgs { IReference<short> SelectedTransmitPowerLevelInDBm { get; } } public sealed class BluetoothLEAdvertisementReceivedEventArgs { BluetoothAddressType BluetoothAddressType { get; } bool IsAnonymous { get; } bool IsConnectable { get; } bool IsDirected { get; } bool IsScannable { get; } bool IsScanResponse { get; } IReference<short> TransmitPowerLevelInDBm { get; } } public enum BluetoothLEAdvertisementType { Extended = 5, } public sealed class BluetoothLEAdvertisementWatcher { bool AllowExtendedAdvertisements { get; set; } } public enum BluetoothLEScanningMode { None = 2, } } namespace Windows.Devices.Bluetooth.Background { public sealed class BluetoothLEAdvertisementPublisherTriggerDetails { IReference<short> SelectedTransmitPowerLevelInDBm { get; } } } namespace Windows.Devices.Display { public sealed class DisplayMonitor { bool IsDolbyVisionSupportedInHdrMode { get; } } } namespace Windows.Devices.Input { public sealed class PenButtonListener public sealed class PenDockedEventArgs public sealed class PenDockListener public sealed class PenTailButtonClickedEventArgs public sealed class PenTailButtonDoubleClickedEventArgs public sealed class PenTailButtonLongPressedEventArgs public sealed class PenUndockedEventArgs } namespace Windows.Devices.Sensors { public sealed class Accelerometer { AccelerometerDataThreshold ReportThreshold { get; } } public sealed class AccelerometerDataThreshold public sealed class Barometer { BarometerDataThreshold ReportThreshold { get; } } public sealed class BarometerDataThreshold public sealed class Compass { CompassDataThreshold ReportThreshold { get; } } public sealed class CompassDataThreshold public sealed class Gyrometer { GyrometerDataThreshold ReportThreshold { get; } } public sealed class GyrometerDataThreshold public sealed class Inclinometer { InclinometerDataThreshold ReportThreshold { get; } } public sealed class InclinometerDataThreshold public sealed class LightSensor { LightSensorDataThreshold ReportThreshold { get; } } public sealed class LightSensorDataThreshold public sealed class Magnetometer { MagnetometerDataThreshold ReportThreshold { get; } } public sealed class MagnetometerDataThreshold } namespace Windows.Foundation.Metadata { public sealed class AttributeNameAttribute : Attribute public sealed class FastAbiAttribute : Attribute public sealed class NoExceptionAttribute : Attribute } namespace Windows.Globalization { public sealed class Language { string AbbreviatedName { get; } public static IVector<string> GetMuiCompatibleLanguageListFromLanguageTags(IIterable<string> languageTags); } } namespace Windows.Graphics.Capture { public sealed class GraphicsCaptureSession : IClosable { bool IsCursorCaptureEnabled { get; set; } } } namespace Windows.Graphics.DirectX { public enum DirectXPixelFormat { SamplerFeedbackMinMipOpaque = 189, SamplerFeedbackMipRegionUsedOpaque = 190, } } namespace Windows.Graphics.Holographic { public sealed class HolographicFrame { HolographicFrameId Id { get; } } public struct HolographicFrameId public sealed class HolographicFrameRenderingReport public sealed class HolographicFrameScanoutMonitor : IClosable public sealed class HolographicFrameScanoutReport public sealed class HolographicSpace { HolographicFrameScanoutMonitor CreateFrameScanoutMonitor(uint maxQueuedReports); } } namespace Windows.Management.Deployment { public sealed class AddPackageOptions public enum DeploymentOptions : uint { StageInPlace = (uint)4194304, } public sealed class PackageManager { IAsyncOperationWithProgress<DeploymentResult, DeploymentProgress> AddPackageByUriAsync(Uri packageUri, AddPackageOptions options); IVector<Package> FindProvisionedPackages(); PackageStubPreference GetPackageStubPreference(string packageFamilyName); IAsyncOperationWithProgress<DeploymentResult, DeploymentProgress> RegisterPackageByUriAsync(Uri manifestUri, RegisterPackageOptions options); IAsyncOperationWithProgress<DeploymentResult, DeploymentProgress> RegisterPackagesByFullNameAsync(IIterable<string> packageFullNames, RegisterPackageOptions options); void SetPackageStubPreference(string packageFamilyName, PackageStubPreference useStub); IAsyncOperationWithProgress<DeploymentResult, DeploymentProgress> StagePackageByUriAsync(Uri packageUri, StagePackageOptions options); } public enum PackageStubPreference public enum PackageTypes : uint { All = (uint)4294967295, } public sealed class RegisterPackageOptions public enum RemovalOptions : uint { PreserveRoamableApplicationData = (uint)128, } public sealed class StagePackageOptions public enum StubPackageOption } namespace Windows.Media.Audio { public sealed class AudioPlaybackConnection : IClosable public sealed class AudioPlaybackConnectionOpenResult public enum AudioPlaybackConnectionOpenResultStatus public enum AudioPlaybackConnectionState } namespace Windows.Media.Capture { public sealed class MediaCapture : IClosable { MediaCaptureRelativePanelWatcher CreateRelativePanelWatcher(StreamingCaptureMode captureMode, DisplayRegion displayRegion); } public sealed class MediaCaptureInitializationSettings { Uri DeviceUri { get; set; } PasswordCredential DeviceUriPasswordCredential { get; set; } } public sealed class MediaCaptureRelativePanelWatcher : IClosable } namespace Windows.Media.Capture.Frames { public sealed class MediaFrameSourceInfo { Panel GetRelativePanel(DisplayRegion displayRegion); } } namespace Windows.Media.Devices { public sealed class PanelBasedOptimizationControl } namespace Windows.Media.MediaProperties { public static class MediaEncodingSubtypes { public static string Pgs { get; } public static string Srt { get; } public static string Ssa { get; } public static string VobSub { get; } } public sealed class TimedMetadataEncodingProperties : IMediaEncodingProperties { public static TimedMetadataEncodingProperties CreatePgs(); public static TimedMetadataEncodingProperties CreateSrt(); public static TimedMetadataEncodingProperties CreateSsa(byte[] formatUserData); public static TimedMetadataEncodingProperties CreateVobSub(byte[] formatUserData); } } namespace Windows.Networking.BackgroundTransfer { public sealed class DownloadOperation : IBackgroundTransferOperation, IBackgroundTransferOperationPriority { void RemoveRequestHeader(string headerName); void SetRequestHeader(string headerName, string headerValue); } public sealed class UploadOperation : IBackgroundTransferOperation, IBackgroundTransferOperationPriority { void RemoveRequestHeader(string headerName); void SetRequestHeader(string headerName, string headerValue); } } namespace Windows.Networking.Connectivity { public enum NetworkAuthenticationType { Owe = 12, } } namespace Windows.Networking.NetworkOperators { public sealed class NetworkOperatorTetheringAccessPointConfiguration { TetheringWiFiBand Band { get; set; } bool IsBandSupported(TetheringWiFiBand band); IAsyncOperation<bool> IsBandSupportedAsync(TetheringWiFiBand band); } public sealed class NetworkOperatorTetheringManager { public static void DisableNoConnectionsTimeout(); public static IAsyncAction DisableNoConnectionsTimeoutAsync(); public static void EnableNoConnectionsTimeout(); public static IAsyncAction EnableNoConnectionsTimeoutAsync(); public static bool IsNoConnectionsTimeoutEnabled(); } public enum TetheringWiFiBand } namespace Windows.Networking.PushNotifications { public static class PushNotificationChannelManager { public static event EventHandler<PushNotificationChannelsRevokedEventArgs> ChannelsRevoked; } public sealed class PushNotificationChannelsRevokedEventArgs public sealed class RawNotification { IBuffer ContentBytes { get; } } } namespace Windows.Security.Authentication.Web.Core { public sealed class WebAccountMonitor { event TypedEventHandler<WebAccountMonitor, WebAccountEventArgs> AccountPictureUpdated; } } namespace Windows.Security.Isolation { public sealed class IsolatedWindowsEnvironment public enum IsolatedWindowsEnvironmentActivator public enum IsolatedWindowsEnvironmentAllowedClipboardFormats : uint public enum IsolatedWindowsEnvironmentAvailablePrinters : uint public enum IsolatedWindowsEnvironmentClipboardCopyPasteDirections : uint public struct IsolatedWindowsEnvironmentContract public struct IsolatedWindowsEnvironmentCreateProgress public sealed class IsolatedWindowsEnvironmentCreateResult public enum IsolatedWindowsEnvironmentCreateStatus public sealed class IsolatedWindowsEnvironmentFile public static class IsolatedWindowsEnvironmentHost public enum IsolatedWindowsEnvironmentHostError public sealed class IsolatedWindowsEnvironmentLaunchFileResult public enum IsolatedWindowsEnvironmentLaunchFileStatus public sealed class IsolatedWindowsEnvironmentOptions public static class IsolatedWindowsEnvironmentOwnerRegistration public sealed class IsolatedWindowsEnvironmentOwnerRegistrationData public sealed class IsolatedWindowsEnvironmentOwnerRegistrationResult public enum IsolatedWindowsEnvironmentOwnerRegistrationStatus public sealed class IsolatedWindowsEnvironmentProcess public enum IsolatedWindowsEnvironmentProcessState public enum IsolatedWindowsEnvironmentProgressState public sealed class IsolatedWindowsEnvironmentShareFolderRequestOptions public sealed class IsolatedWindowsEnvironmentShareFolderResult public enum IsolatedWindowsEnvironmentShareFolderStatus public sealed class IsolatedWindowsEnvironmentStartProcessResult public enum IsolatedWindowsEnvironmentStartProcessStatus public sealed class IsolatedWindowsEnvironmentTelemetryParameters public static class IsolatedWindowsHostMessenger public delegate void MessageReceivedCallback(Guid receiverId, IVectorView<object> message); } namespace Windows.Storage { public static class KnownFolders { public static IAsyncOperation<StorageFolder> GetFolderAsync(KnownFolderId folderId); public static IAsyncOperation<KnownFoldersAccessStatus> RequestAccessAsync(KnownFolderId folderId); public static IAsyncOperation<KnownFoldersAccessStatus> RequestAccessForUserAsync(User user, KnownFolderId folderId); } public enum KnownFoldersAccessStatus public sealed class StorageFile : IInputStreamReference, IRandomAccessStreamReference, IStorageFile, IStorageFile2, IStorageFilePropertiesWithAvailability, IStorageItem, IStorageItem2, IStorageItemProperties, IStorageItemProperties2, IStorageItemPropertiesWithProvider { public static IAsyncOperation<StorageFile> GetFileFromPathForUserAsync(User user, string path); } public sealed class StorageFolder : IStorageFolder, IStorageFolder2, IStorageFolderQueryOperations, IStorageItem, IStorageItem2, IStorageItemProperties, IStorageItemProperties2, IStorageItemPropertiesWithProvider { public static IAsyncOperation<StorageFolder> GetFolderFromPathForUserAsync(User user, string path); } } namespace Windows.Storage.Provider { public sealed class StorageProviderFileTypeInfo public sealed class StorageProviderSyncRootInfo { IVector<StorageProviderFileTypeInfo> FallbackFileTypeInfo { get; } } public static class StorageProviderSyncRootManager { public static bool IsSupported(); } } namespace Windows.System { public sealed class UserChangedEventArgs { IVectorView<UserWatcherUpdateKind> ChangedPropertyKinds { get; } } public enum UserWatcherUpdateKind } namespace Windows.UI.Composition.Interactions { public sealed class InteractionTracker : CompositionObject { int TryUpdatePosition(Vector3 value, InteractionTrackerClampingOption option, InteractionTrackerPositionUpdateOption posUpdateOption); } public enum InteractionTrackerPositionUpdateOption } namespace Windows.UI.Input { public sealed class CrossSlidingEventArgs { uint ContactCount { get; } } public sealed class DraggingEventArgs { uint ContactCount { get; } } public sealed class GestureRecognizer { uint HoldMaxContactCount { get; set; } uint HoldMinContactCount { get; set; } float HoldRadius { get; set; } TimeSpan HoldStartDelay { get; set; } uint TapMaxContactCount { get; set; } uint TapMinContactCount { get; set; } uint TranslationMaxContactCount { get; set; } uint TranslationMinContactCount { get; set; } } public sealed class HoldingEventArgs { uint ContactCount { get; } uint CurrentContactCount { get; } } public sealed class ManipulationCompletedEventArgs { uint ContactCount { get; } uint CurrentContactCount { get; } } public sealed class ManipulationInertiaStartingEventArgs { uint ContactCount { get; } } public sealed class ManipulationStartedEventArgs { uint ContactCount { get; } } public sealed class ManipulationUpdatedEventArgs { uint ContactCount { get; } uint CurrentContactCount { get; } } public sealed class RightTappedEventArgs { uint ContactCount { get; } } public sealed class SystemButtonEventController : AttachableInputObject public sealed class SystemFunctionButtonEventArgs public sealed class SystemFunctionLockChangedEventArgs public sealed class SystemFunctionLockIndicatorChangedEventArgs public sealed class TappedEventArgs { uint ContactCount { get; } } } namespace Windows.UI.Input.Inking { public sealed class InkModelerAttributes { bool UseVelocityBasedPressure { get; set; } } } namespace Windows.UI.Text { public enum RichEditMathMode public sealed class RichEditTextDocument : ITextDocument { void GetMath(out string value); void SetMath(string value); void SetMathMode(RichEditMathMode mode); } } namespace Windows.UI.ViewManagement { public sealed class ApplicationView { bool CriticalInputMismatch { get; set; } bool TemporaryInputMismatch { get; set; } void ApplyApplicationUserModelID(string value); } public sealed class UISettings { event TypedEventHandler<UISettings, UISettingsAnimationsEnabledChangedEventArgs> AnimationsEnabledChanged; event TypedEventHandler<UISettings, UISettingsMessageDurationChangedEventArgs> MessageDurationChanged; } public sealed class UISettingsAnimationsEnabledChangedEventArgs public sealed class UISettingsMessageDurationChangedEventArgs } namespace Windows.UI.ViewManagement.Core { public sealed class CoreInputView { event TypedEventHandler<CoreInputView, CoreInputViewHidingEventArgs> PrimaryViewHiding; event TypedEventHandler<CoreInputView, CoreInputViewShowingEventArgs> PrimaryViewShowing; } public sealed class CoreInputViewHidingEventArgs public enum CoreInputViewKind { Symbols = 4, } public sealed class CoreInputViewShowingEventArgs public sealed class UISettingsController } [/code] Today, we released a new Windows 10 Preview Build of the SDK to be used in conjunction with Windows 10 Insider Preview (Build 19008 or greater). The Preview SDK Build 19008 contains bug fixes and under development changes to the API surface area. The Preview SDK can be downloaded from developer section on Windows Insider. For feedback and updates to the known issues, please see the developer forum. For new developer feature requests, head over to our Windows Platform UserVoice.

Things to note:

  • This build works in conjunction with previously released SDKs and Visual Studio 2017 and 2019. You can install this SDK and still also continue to submit your apps that target Windows 10 build 1903 or earlier to the Microsoft Store.
  • The Windows SDK will now formally only be supported by Visual Studio 2017 and greater. You can download the Visual Studio 2019 here.
  • This build of the Windows SDK will install on only on Windows 10 Insider Preview builds.
  • In order to assist with script access to the SDK, the ISO will also be able to be accessed through the following static URL: https://software-download.microsoft.com/download/sg/Windows_InsiderPreview_SDK_en-us_19008_1.iso.

Tools Updates

Message Compiler (mc.exe)

  • Now detects the Unicode byte order mark (BOM) in .mc files. If the If the .mc file starts with a UTF-8 BOM, it will be read as a UTF-8 file. Otherwise, if it starts with a UTF-16LE BOM, it will be read as a UTF-16LE file. If the -u parameter was specified, it will be read as a UTF-16LE file. Otherwise, it will be read using the current code page (CP_ACP).
  • Now avoids one-definition-rule (ODR) problems in MC-generated C/C++ ETW helpers caused by conflicting configuration macros (e.g. when two .cpp files with conflicting definitions of MCGEN_EVENTWRITETRANSFER are linked into the same binary, the MC-generated ETW helpers will now respect the definition of MCGEN_EVENTWRITETRANSFER in each .cpp file instead of arbitrarily picking one or the other).

Windows Trace Preprocessor (tracewpp.exe)

  • Now supports Unicode input (.ini, .tpl, and source code) files. Input files starting with a UTF-8 or UTF-16 byte order mark (BOM) will be read as Unicode. Input files that do not start with a BOM will be read using the current code page (CP_ACP). For backwards-compatibility, if the -UnicodeIgnore command-line parameter is specified, files starting with a UTF-16 BOM will be treated as empty.
  • Now supports Unicode output (.tmh) files. By default, output files will be encoded using the current code page (CP_ACP). Use command-line parameters -cp:UTF-8 or -cp:UTF-16 to generate Unicode output files.
  • Behavior change: tracewpp now converts all input text to Unicode, performs processing in Unicode, and converts output text to the specified output encoding. Earlier versions of tracewpp avoided Unicode conversions and performed text processing assuming a single-byte character set. This may lead to behavior changes in cases where the input files do not conform to the current code page. In cases where this is a problem, consider converting the input files to UTF-8 (with BOM) and/or using the -cp:UTF-8 command-line parameter to avoid encoding ambiguity.

TraceLoggingProvider.h

  • Now avoids one-definition-rule (ODR) problems caused by conflicting configuration macros (e.g. when two .cpp files with conflicting definitions of TLG_EVENT_WRITE_TRANSFER are linked into the same binary, the TraceLoggingProvider.h helpers will now respect the definition of TLG_EVENT_WRITE_TRANSFER in each .cpp file instead of arbitrarily picking one or the other).
  • In C++ code, the TraceLoggingWrite macro has been updated to enable better code sharing between similar events using variadic templates.

Signing your apps with Device Guard Signing

  • We are making it easier for you to sign your app. Device Guard signing is a Device Guard feature that is available in Microsoft Store for Business and Education. Signing allows enterprises to guarantee every app comes from a trusted source. Our goal is to make signing your MSIX package easier. Documentation on Device Guard Signing can be found here: https://docs.microsoft.com/windows/msix/package/signing-package-device-guard-signing

Windows SDK Flight NuGet Feed

We have stood up a NuGet feed for the flighted builds of the SDK. You can now test preliminary builds of the Windows 10 WinRT API Pack, as well as a microsoft.windows.sdk.headless.contracts NuGet package. We use the following feed to flight our NuGet packages. Microsoft.Windows.SDK.Contracts which can be used with to add the latest Windows Runtime APIs support to your .NET Framework 4.5+ and .NET Core 3.0+ libraries and apps. The Windows 10 WinRT API Pack enables you to add the latest Windows Runtime APIs support to your .NET Framework 4.5+ and .NET Core 3.0+ libraries and apps. Microsoft.Windows.SDK.Headless.Contracts provides a subset of the Windows Runtime APIs for console apps excludes the APIs associated with a graphical user interface. This NuGet is used in conjunction with Windows ML container development. Check out the Getting Started guide for more information.

Breaking Changes

Removal of api-ms-win-net-isolation-l1-1-0.lib

In this release api-ms-win-net-isolation-l1-1-0.lib has been removed from the Windows SDK. Apps that were linking against api-ms-win-net-isolation-l1-1-0.lib can switch to OneCoreUAP.lib as a replacement.

Removal of IRPROPS.LIB

In this release, irprops.lib has been removed from the Windows SDK. Apps that were linking against irprops.lib can switch to bthprops.lib as a drop-in replacement.

Removal of WUAPICommon.H and WUAPICommon.IDL

In this release we have moved ENUM tagServerSelection from WUAPICommon.H to wupai.h and removed the header. If you would like to use the ENUM tagServerSelection, you will need to include wuapi.h or wuapi.idl.

API Updates, Additions and Removals

The following APIs have been added to the platform since the release of Windows 10 SDK, version 1903, build 18362.

Additions:

[code lang="csharp"] namespace Windows.AI.MachineLearning { public sealed class LearningModelSessionOptions { bool CloseModelOnSessionCreation { get; set; } } } namespace Windows.ApplicationModel { public sealed class AppInfo { public static AppInfo Current { get; } Package Package { get; } public static AppInfo GetFromAppUserModelId(string appUserModelId); public static AppInfo GetFromAppUserModelIdForUser(User user, string appUserModelId); } public interface IAppInfoStatics public sealed class Package { StorageFolder EffectiveExternalLocation { get; } string EffectiveExternalPath { get; } string EffectivePath { get; } string InstalledPath { get; } bool IsStub { get; } StorageFolder MachineExternalLocation { get; } string MachineExternalPath { get; } string MutablePath { get; } StorageFolder UserExternalLocation { get; } string UserExternalPath { get; } IVectorView<AppListEntry> GetAppListEntries(); RandomAccessStreamReference GetLogoAsRandomAccessStreamReference(Size size); } } namespace Windows.ApplicationModel.AppService { public enum AppServiceConnectionStatus { AuthenticationError = 8, DisabledByPolicy = 10, NetworkNotAvailable = 9, WebServiceUnavailable = 11, } public enum AppServiceResponseStatus { AppUnavailable = 6, AuthenticationError = 7, DisabledByPolicy = 9, NetworkNotAvailable = 8, WebServiceUnavailable = 10, } public enum StatelessAppServiceResponseStatus { AuthenticationError = 11, DisabledByPolicy = 13, NetworkNotAvailable = 12, WebServiceUnavailable = 14, } } namespace Windows.ApplicationModel.Background { public sealed class BackgroundTaskBuilder { void SetTaskEntryPointClsid(Guid TaskEntryPoint); } public sealed class BluetoothLEAdvertisementPublisherTrigger : IBackgroundTrigger { bool IncludeTransmitPowerLevel { get; set; } bool IsAnonymous { get; set; } IReference<short> PreferredTransmitPowerLevelInDBm { get; set; } bool UseExtendedFormat { get; set; } } public sealed class BluetoothLEAdvertisementWatcherTrigger : IBackgroundTrigger { bool AllowExtendedAdvertisements { get; set; } } } namespace Windows.ApplicationModel.ConversationalAgent { public sealed class ActivationSignalDetectionConfiguration public enum ActivationSignalDetectionTrainingDataFormat public sealed class ActivationSignalDetector public enum ActivationSignalDetectorKind public enum ActivationSignalDetectorPowerState public sealed class ConversationalAgentDetectorManager public sealed class DetectionConfigurationAvailabilityChangedEventArgs public enum DetectionConfigurationAvailabilityChangeKind public sealed class DetectionConfigurationAvailabilityInfo public enum DetectionConfigurationTrainingStatus } namespace Windows.ApplicationModel.DataTransfer { public sealed class DataPackage { event TypedEventHandler<DataPackage, object> ShareCanceled; } } namespace Windows.Devices.Bluetooth { public sealed class BluetoothAdapter { bool IsExtendedAdvertisingSupported { get; } uint MaxAdvertisementDataLength { get; } } } namespace Windows.Devices.Bluetooth.Advertisement { public sealed class BluetoothLEAdvertisementPublisher { bool IncludeTransmitPowerLevel { get; set; } bool IsAnonymous { get; set; } IReference<short> PreferredTransmitPowerLevelInDBm { get; set; } bool UseExtendedAdvertisement { get; set; } } public sealed class BluetoothLEAdvertisementPublisherStatusChangedEventArgs { IReference<short> SelectedTransmitPowerLevelInDBm { get; } } public sealed class BluetoothLEAdvertisementReceivedEventArgs { BluetoothAddressType BluetoothAddressType { get; } bool IsAnonymous { get; } bool IsConnectable { get; } bool IsDirected { get; } bool IsScannable { get; } bool IsScanResponse { get; } IReference<short> TransmitPowerLevelInDBm { get; } } public enum BluetoothLEAdvertisementType { Extended = 5, } public sealed class BluetoothLEAdvertisementWatcher { bool AllowExtendedAdvertisements { get; set; } } public enum BluetoothLEScanningMode { None = 2, } } namespace Windows.Devices.Bluetooth.Background { public sealed class BluetoothLEAdvertisementPublisherTriggerDetails { IReference<short> SelectedTransmitPowerLevelInDBm { get; } } } namespace Windows.Devices.Display { public sealed class DisplayMonitor { bool IsDolbyVisionSupportedInHdrMode { get; } } } namespace Windows.Devices.Input { public sealed class PenButtonListener public sealed class PenDockedEventArgs public sealed class PenDockListener public sealed class PenTailButtonClickedEventArgs public sealed class PenTailButtonDoubleClickedEventArgs public sealed class PenTailButtonLongPressedEventArgs public sealed class PenUndockedEventArgs } namespace Windows.Devices.Sensors { public sealed class Accelerometer { AccelerometerDataThreshold ReportThreshold { get; } } public sealed class AccelerometerDataThreshold public sealed class Barometer { BarometerDataThreshold ReportThreshold { get; } } public sealed class BarometerDataThreshold public sealed class Compass { CompassDataThreshold ReportThreshold { get; } } public sealed class CompassDataThreshold public sealed class Gyrometer { GyrometerDataThreshold ReportThreshold { get; } } public sealed class GyrometerDataThreshold public sealed class Inclinometer { InclinometerDataThreshold ReportThreshold { get; } } public sealed class InclinometerDataThreshold public sealed class LightSensor { LightSensorDataThreshold ReportThreshold { get; } } public sealed class LightSensorDataThreshold public sealed class Magnetometer { MagnetometerDataThreshold ReportThreshold { get; } } public sealed class MagnetometerDataThreshold } namespace Windows.Foundation.Metadata { public sealed class AttributeNameAttribute : Attribute public sealed class FastAbiAttribute : Attribute public sealed class NoExceptionAttribute : Attribute } namespace Windows.Globalization { public sealed class Language { string AbbreviatedName { get; } public static IVector<string> GetMuiCompatibleLanguageListFromLanguageTags(IIterable<string> languageTags); } } namespace Windows.Graphics.Capture { public sealed class GraphicsCaptureSession : IClosable { bool IsCursorCaptureEnabled { get; set; } } } namespace Windows.Graphics.DirectX { public enum DirectXPixelFormat { SamplerFeedbackMinMipOpaque = 189, SamplerFeedbackMipRegionUsedOpaque = 190, } } namespace Windows.Graphics.Holographic { public sealed class HolographicFrame { HolographicFrameId Id { get; } } public struct HolographicFrameId public sealed class HolographicFrameRenderingReport public sealed class HolographicFrameScanoutMonitor : IClosable public sealed class HolographicFrameScanoutReport public sealed class HolographicSpace { HolographicFrameScanoutMonitor CreateFrameScanoutMonitor(uint maxQueuedReports); } } namespace Windows.Management.Deployment { public sealed class AddPackageOptions public enum DeploymentOptions : uint { StageInPlace = (uint)4194304, } public sealed class PackageManager { IAsyncOperationWithProgress<DeploymentResult, DeploymentProgress> AddPackageByUriAsync(Uri packageUri, AddPackageOptions options); IVector<Package> FindProvisionedPackages(); PackageStubPreference GetPackageStubPreference(string packageFamilyName); IAsyncOperationWithProgress<DeploymentResult, DeploymentProgress> RegisterPackageByUriAsync(Uri manifestUri, RegisterPackageOptions options); IAsyncOperationWithProgress<DeploymentResult, DeploymentProgress> RegisterPackagesByFullNameAsync(IIterable<string> packageFullNames, RegisterPackageOptions options); void SetPackageStubPreference(string packageFamilyName, PackageStubPreference useStub); IAsyncOperationWithProgress<DeploymentResult, DeploymentProgress> StagePackageByUriAsync(Uri packageUri, StagePackageOptions options); } public enum PackageStubPreference public enum PackageTypes : uint { All = (uint)4294967295, } public sealed class RegisterPackageOptions public enum RemovalOptions : uint { PreserveRoamableApplicationData = (uint)128, } public sealed class StagePackageOptions public enum StubPackageOption } namespace Windows.Media.Audio { public sealed class AudioPlaybackConnection : IClosable public sealed class AudioPlaybackConnectionOpenResult public enum AudioPlaybackConnectionOpenResultStatus public enum AudioPlaybackConnectionState } namespace Windows.Media.Capture { public sealed class MediaCapture : IClosable { MediaCaptureRelativePanelWatcher CreateRelativePanelWatcher(StreamingCaptureMode captureMode, DisplayRegion displayRegion); } public sealed class MediaCaptureInitializationSettings { Uri DeviceUri { get; set; } PasswordCredential DeviceUriPasswordCredential { get; set; } } public sealed class MediaCaptureRelativePanelWatcher : IClosable } namespace Windows.Media.Capture.Frames { public sealed class MediaFrameSourceInfo { Panel GetRelativePanel(DisplayRegion displayRegion); } } namespace Windows.Media.Devices { public sealed class PanelBasedOptimizationControl } namespace Windows.Media.MediaProperties { public static class MediaEncodingSubtypes { public static string Pgs { get; } public static string Srt { get; } public static string Ssa { get; } public static string VobSub { get; } } public sealed class TimedMetadataEncodingProperties : IMediaEncodingProperties { public static TimedMetadataEncodingProperties CreatePgs(); public static TimedMetadataEncodingProperties CreateSrt(); public static TimedMetadataEncodingProperties CreateSsa(byte[] formatUserData); public static TimedMetadataEncodingProperties CreateVobSub(byte[] formatUserData); } } namespace Windows.Networking.BackgroundTransfer { public sealed class DownloadOperation : IBackgroundTransferOperation, IBackgroundTransferOperationPriority { void RemoveRequestHeader(string headerName); void SetRequestHeader(string headerName, string headerValue); } public sealed class UploadOperation : IBackgroundTransferOperation, IBackgroundTransferOperationPriority { void RemoveRequestHeader(string headerName); void SetRequestHeader(string headerName, string headerValue); } } namespace Windows.Networking.Connectivity { public enum NetworkAuthenticationType { Owe = 12, } } namespace Windows.Networking.NetworkOperators { public sealed class NetworkOperatorTetheringAccessPointConfiguration { TetheringWiFiBand Band { get; set; } bool IsBandSupported(TetheringWiFiBand band); IAsyncOperation<bool> IsBandSupportedAsync(TetheringWiFiBand band); } public sealed class NetworkOperatorTetheringManager { public static void DisableNoConnectionsTimeout(); public static IAsyncAction DisableNoConnectionsTimeoutAsync(); public static void EnableNoConnectionsTimeout(); public static IAsyncAction EnableNoConnectionsTimeoutAsync(); public static bool IsNoConnectionsTimeoutEnabled(); } public enum TetheringWiFiBand } namespace Windows.Networking.PushNotifications { public static class PushNotificationChannelManager { public static event EventHandler<PushNotificationChannelsRevokedEventArgs> ChannelsRevoked; } public sealed class PushNotificationChannelsRevokedEventArgs public sealed class RawNotification { IBuffer ContentBytes { get; } } } namespace Windows.Security.Authentication.Web.Core { public sealed class WebAccountMonitor { event TypedEventHandler<WebAccountMonitor, WebAccountEventArgs> AccountPictureUpdated; } } namespace Windows.Security.Isolation { public sealed class IsolatedWindowsEnvironment public enum IsolatedWindowsEnvironmentActivator public enum IsolatedWindowsEnvironmentAllowedClipboardFormats : uint public enum IsolatedWindowsEnvironmentAvailablePrinters : uint public enum IsolatedWindowsEnvironmentClipboardCopyPasteDirections : uint public struct IsolatedWindowsEnvironmentContract public struct IsolatedWindowsEnvironmentCreateProgress public sealed class IsolatedWindowsEnvironmentCreateResult public enum IsolatedWindowsEnvironmentCreateStatus public sealed class IsolatedWindowsEnvironmentFile public static class IsolatedWindowsEnvironmentHost public enum IsolatedWindowsEnvironmentHostError public sealed class IsolatedWindowsEnvironmentLaunchFileResult public enum IsolatedWindowsEnvironmentLaunchFileStatus public sealed class IsolatedWindowsEnvironmentOptions public static class IsolatedWindowsEnvironmentOwnerRegistration public sealed class IsolatedWindowsEnvironmentOwnerRegistrationData public sealed class IsolatedWindowsEnvironmentOwnerRegistrationResult public enum IsolatedWindowsEnvironmentOwnerRegistrationStatus public sealed class IsolatedWindowsEnvironmentProcess public enum IsolatedWindowsEnvironmentProcessState public enum IsolatedWindowsEnvironmentProgressState public sealed class IsolatedWindowsEnvironmentShareFolderRequestOptions public sealed class IsolatedWindowsEnvironmentShareFolderResult public enum IsolatedWindowsEnvironmentShareFolderStatus public sealed class IsolatedWindowsEnvironmentStartProcessResult public enum IsolatedWindowsEnvironmentStartProcessStatus public sealed class IsolatedWindowsEnvironmentTelemetryParameters public static class IsolatedWindowsHostMessenger public delegate void MessageReceivedCallback(Guid receiverId, IVectorView<object> message); } namespace Windows.Storage { public static class KnownFolders { public static IAsyncOperation<StorageFolder> GetFolderAsync(KnownFolderId folderId); public static IAsyncOperation<KnownFoldersAccessStatus> RequestAccessAsync(KnownFolderId folderId); public static IAsyncOperation<KnownFoldersAccessStatus> RequestAccessForUserAsync(User user, KnownFolderId folderId); } public enum KnownFoldersAccessStatus public sealed class StorageFile : IInputStreamReference, IRandomAccessStreamReference, IStorageFile, IStorageFile2, IStorageFilePropertiesWithAvailability, IStorageItem, IStorageItem2, IStorageItemProperties, IStorageItemProperties2, IStorageItemPropertiesWithProvider { public static IAsyncOperation<StorageFile> GetFileFromPathForUserAsync(User user, string path); } public sealed class StorageFolder : IStorageFolder, IStorageFolder2, IStorageFolderQueryOperations, IStorageItem, IStorageItem2, IStorageItemProperties, IStorageItemProperties2, IStorageItemPropertiesWithProvider { public static IAsyncOperation<StorageFolder> GetFolderFromPathForUserAsync(User user, string path); } } namespace Windows.Storage.Provider { public sealed class StorageProviderFileTypeInfo public sealed class StorageProviderSyncRootInfo { IVector<StorageProviderFileTypeInfo> FallbackFileTypeInfo { get; } } public static class StorageProviderSyncRootManager { public static bool IsSupported(); } } namespace Windows.System { public sealed class UserChangedEventArgs { IVectorView<UserWatcherUpdateKind> ChangedPropertyKinds { get; } } public enum UserWatcherUpdateKind } namespace Windows.UI.Composition.Interactions { public sealed class InteractionTracker : CompositionObject { int TryUpdatePosition(Vector3 value, InteractionTrackerClampingOption option, InteractionTrackerPositionUpdateOption posUpdateOption); } public enum InteractionTrackerPositionUpdateOption } namespace Windows.UI.Input { public sealed class CrossSlidingEventArgs { uint ContactCount { get; } } public sealed class DraggingEventArgs { uint ContactCount { get; } } public sealed class GestureRecognizer { uint HoldMaxContactCount { get; set; } uint HoldMinContactCount { get; set; } float HoldRadius { get; set; } TimeSpan HoldStartDelay { get; set; } uint TapMaxContactCount { get; set; } uint TapMinContactCount { get; set; } uint TranslationMaxContactCount { get; set; } uint TranslationMinContactCount { get; set; } } public sealed class HoldingEventArgs { uint ContactCount { get; } uint CurrentContactCount { get; } } public sealed class ManipulationCompletedEventArgs { uint ContactCount { get; } uint CurrentContactCount { get; } } public sealed class ManipulationInertiaStartingEventArgs { uint ContactCount { get; } } public sealed class ManipulationStartedEventArgs { uint ContactCount { get; } } public sealed class ManipulationUpdatedEventArgs { uint ContactCount { get; } uint CurrentContactCount { get; } } public sealed class RightTappedEventArgs { uint ContactCount { get; } } public sealed class SystemButtonEventController : AttachableInputObject public sealed class SystemFunctionButtonEventArgs public sealed class SystemFunctionLockChangedEventArgs public sealed class SystemFunctionLockIndicatorChangedEventArgs public sealed class TappedEventArgs { uint ContactCount { get; } } } namespace Windows.UI.Input.Inking { public sealed class InkModelerAttributes { bool UseVelocityBasedPressure { get; set; } } } namespace Windows.UI.Text { public enum RichEditMathMode public sealed class RichEditTextDocument : ITextDocument { void GetMath(out string value); void SetMath(string value); void SetMathMode(RichEditMathMode mode); } } namespace Windows.UI.ViewManagement { public sealed class ApplicationView { bool CriticalInputMismatch { get; set; } bool TemporaryInputMismatch { get; set; } void ApplyApplicationUserModelID(string value); } public sealed class UISettings { event TypedEventHandler<UISettings, UISettingsAnimationsEnabledChangedEventArgs> AnimationsEnabledChanged; event TypedEventHandler<UISettings, UISettingsMessageDurationChangedEventArgs> MessageDurationChanged; } public sealed class UISettingsAnimationsEnabledChangedEventArgs public sealed class UISettingsMessageDurationChangedEventArgs } namespace Windows.UI.ViewManagement.Core { public sealed class CoreInputView { event TypedEventHandler<CoreInputView, CoreInputViewHidingEventArgs> PrimaryViewHiding; event TypedEventHandler<CoreInputView, CoreInputViewShowingEventArgs> PrimaryViewShowing; } public sealed class CoreInputViewHidingEventArgs public enum CoreInputViewKind { Symbols = 4, } public sealed class CoreInputViewShowingEventArgs public sealed class UISettingsController } [/code] ]]>