It's been two weeks since Microsoft shipped out its last Windows 10 SDK preview build for developers, but it has another on tap this week. The latest build pushes the version number up to 17723, which matches the Fast ring build released last week.
Though there are a number of things for developers to toy with in this release, there are no new features compared to previous SDK preview builds. However, here's a look at some of the highlights:
- Support get_strong and get_weak to create delegates: This update allows a developer to use either get_strong or get_weak instead of a raw this pointer when creating a delegate pointing to a member function.
- Add async cancellation callback: The most frequently requested feature for C++/WinRT's coroutine support has been the addition of a cancellation callback.
- Simplify the use of APIs expecting IBuffer parameters: Although most APIs prefer collections or arrays, enough APIs rely on IBuffer that it should be easier to use such APIs from C++. This update provides direct access to the data behind an IBuffer implementation using the same data naming convention used by the C++ standard library containers. This also avoids colliding with metadata names that conventionally begin with an uppercase letter.
- Conformance: Improved support for Clang and Visual C++'s stricter conformance modes.
- Improved code gen: Various improvements to reduce code size, improve inlining, and optimize factory caching.
- Remove unnecessary recursion: When the command line refers to a folder rather than a specific winmd, cppwinrt will no longer search recursively for winmd files. It causes performance problems in the OS build and can lead to usage errors that are hard to diagnose when developers inadvertently cause cppwinrt to consume more winmds than expected. The cppwinrt compiler also now handles duplicates more intelligently, making it more resilient to user error and poorly-formed winmd files.
- Declare both WINRT_CanUnloadNow and WINRT_GetActivationFactory in base.h: Callers don't need to declare them directly. Their signatures have also changed, amounting to a breaking change. The declarations alleviate most of the pain of this change. The change is necessitated by the fact that C++/WinRT no longer depends on the Windows headers and this change removes the dependency on the types from the Windows headers.
- Harden smart pointers: The event revokers didn't revoke when move-assigned a new value. This lead us to take a closer look at the smart pointer classes and we noticed that they were not reliably handling self-assignment. This is rooted in the com_ptr class template that most of the others rely on. We fixed com_ptr and updated the event revokers to handle move semantics correctly to ensure that they revoke upon assignment. The handle class template has also been hardened by the removal of the implicit constructor that made it easy to write incorrect code. This also turned bugs in the OS into compiler errors fixed in this PR.
In addition to the latest SDK preview release, Microsoft also pushed out a matching Windows Server 2019 preview build this week. Highlights include new predictive capabilities for System Insights, along with Kubernetes deployment on Windows Server.
If you're a developer, you can get your hands on Windows 10 SDK preview build 17723 from Microsoft's download page now. Likewise, you can pick up the latest Windows Server 2019 preview build at Microsoft's dedicated download page.
We may earn a commission for purchases using our links. Learn more.
Fix up your Xbox Elite Controller with these parts
Need some replacement parts for your Xbox One Elite Controller? From new paddles, grips, bumpers, thumbsticks, and more, we have you covered.
Hands-on with Windows 10 build 20161 showcasing the new Start menu
Yesterday, Microsoft released a new build of Windows 10 that includes an updated Start menu design with translucent Live Tiles, improvements to Notifications, and behavior changes to things like Tablet Mode and the Taskbar. It's been a while since Microsoft released a build with any surface-level changes, but now it's finally happened, we're back showcasing all the changes on video.
Everything we know about 'Xbox Series S' Lockhart
The Xbox Series X is getting a baby brother in the form of a console codenamed Lockhart, most likely to be called Xbox Series S. Here's what we know so far.
10 must-have apps for any new PC
You just purchased a new PC and set it up, and now you're looking for some great apps. Look no further. These are the best apps for your new Windows 10 PC.