May 11, 2017 10:30 am

Windows 10 SDK Preview Build 16190 Released

By / Senior Technical Product Manager

Today, we released a new Windows 10 Preview Build of the SDK to be used in conjunction with Windows 10 Insider Preview (Build 16190 or greater). The Preview SDK Build 16190 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 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. You can install this SDK and still also continue to submit your apps that target Windows 10 Creators build or earlier to the store.
  • The Windows SDK will now formally only be supported by Visual Studio 2017 and greater. You can download the Visual Studio 2017 here.

What’s New

This release of the Windows 10 SDK Preview Build, we have introduced the following new controls: NavigationView, TreeView, RatingsControl, ColorPicker, ParallaxView and PersonPicture to the Windows.UI.XAML.Controls namespace. It also adds brushes for Acrylic and Reveal, part of the Fluent Design System. See also the new XAML Controls Gallery in the Windows Universal Samples collection.

See API Updates and Additions for additional APIs.

Known Issue

  • Failed to compile WRL projects due to missing WindowsContracts.h

When building WRL projects, your code may fail to compile due to a missing file: WindowsContracts.h. This will be addressed in the next update. To work around this, create an empty header file: WindowsContracts.H and include it in your include Search path.

Breaking Changes

  • WinRT type header generation moving from MIDL to MIDLRT

Header generation for WinRT types is moving from being generated by the MIDL tool to the MIDLRT tool. This change will enable significant performance enhancements and will also enable a number of new features.

The most common issue developers are likely to encounter is the addition of deprecation support to the generated WinRT headers. With this change, if you consume a deprecated API, the C++ compiler will now generate a warning indicating that your code is accessing a deprecated type.

Consider the following when evaluating how your code will be impacted:

  1. The WinMDIDL tool used to emit cpp_quote directives to work around a MIDL header generation limitation. Those cpp_quote directives are incompatible with the new header generation logic and need to be removed (or the IDL file needs to be regenerated).
  2. WinRT types that are marked as [deprecated] are now also marked as [[deprecated]] in the generated C++ headers. This means that you may encounter C4996 warnings indicating that you are accessing a deprecated type. To resolve this issue, you can define DISABLE_WINRT_DEPRECATION in the preprocessor definitions for your project to ignore the deprecations.
  • Windows Runtime enumeration definitions are now compliant with C++ standard

To further align Visual C++ with the ISO standard for C++, enumerations for Windows Runtime types are now standards-compliant. If you develop software with the Windows 10 SDK, this change might affect you.

Specifically, variables in operations with enumerations that are marked as flags must be cast as unsigned integers. An operation that uses a signed integer with an enumeration constant will result in a compiler error, because enumeration constants are now unsigned integers. The affected enumerations are flags enumerations supplied by the SDK and enumerations that you cast with the [flags] attribute.


GamePadReading->get_Buttons(&NewButtonMask);
 
for(int index=0;index<32;index++)
{
int bit = 1 << index;
if( ((NewButtonMask & bit) == bit) && ((CurrentButtonMask & bit) != bit))
{
JustPressedButtonMask |= (GamepadButtons)bit;

However, because this code relies on GamepadButtons, which has the attribute System.FlagsAttribute, bit must instead be cast as unsigned:


unsigned int bit = 1 << index;

API Updates and Additions

When targeting new APIs, consider writing your app to be adaptive in order to run correctly on the widest number of Windows 10 devices. Please see Dynamically detecting features with API contracts (10 by 10) for more information.


namespace Windows.ApplicationModel.Activation {
  public enum ActivationKind {
    Console = 1019,
    PrintWorkflowForegroundTask = 1018,
  }
  public sealed class ConsoleActivatedEventArgs : IActivatedEventArgs, IConsoleActivatedEventArgs
  public interface IConsoleActivatedEventArgs : IActivatedEventArgs
}
namespace Windows.ApplicationModel.Cards {
  public static class CardBuilder
  public interface ICardBuilderStatics
  public interface ICardElement
}
namespace Windows.ApplicationModel.Core {
  public static class CoreApplication {
    public static IAsyncOperation<RestartResult> RequestRestartAsync(string launchArguments);
    public static IAsyncOperation<RestartResult> RequestRestartForUserAsync(User user, string launchArguments);
  }
  public sealed class CoreApplicationView {
    DispatcherQueue DispatcherQueue { get; }
  }
  public enum RestartResult
}
namespace Windows.ApplicationModel.DataTransfer {
  public sealed class DataTransferManager {
    public static void ShowShareUI(ShareUIOptions shareOptions);
  }
  public interface IDataTransferManagerStatics3
  public sealed class ShareUIOptions
  public enum ShareUITheme
}
namespace Windows.ApplicationModel.DataTransfer.ShareTarget {
  public sealed class ShareOperation {
    IVectorView<Contact> Contacts { get; }
  }
}
namespace Windows.ApplicationModel.Payments {
  public sealed class PaymentMediator {
    IAsyncOperation<bool> CanMakePaymentAsync(PaymentRequest paymentRequest);
  }
}
namespace Windows.ApplicationModel.UserActivities {
  public sealed class UserActivity
  public sealed class UserActivityChannel
  public sealed class UserActivitySession : IClosable
  public enum UserActivityState
  public sealed class UserActivityVisualElements
}
namespace Windows.ApplicationModel.UserActivities.Core {
  public static class CoreUserActivityManager
}
namespace Windows.Devices.Bluetooth {
  public sealed class BluetoothDevice : IClosable {
    BluetoothDeviceId BluetoothDeviceId { get; }
  }
  public sealed class BluetoothDeviceId {
    public static BluetoothDeviceId FromId(string deviceId);
  }
  public sealed class BluetoothLEDevice : IClosable {
    BluetoothDeviceId BluetoothDeviceId { get; }
  }
}
namespace Windows.Devices.Bluetooth.GenericAttributeProfile {
  public sealed class GattClientNotificationResult {
    ushort BytesSent { get; }
  }
}
namespace Windows.Graphics.Printing.PrintTicket {
  public sealed class PrintTicketCapabilities
  public sealed class PrintTicketFeature
  public enum PrintTicketFeatureSelectionType
  public sealed class PrintTicketOption
  public enum PrintTicketParameterDataType
  public sealed class PrintTicketParameterDefinition
  public sealed class PrintTicketParameterInitializer
  public sealed class PrintTicketValue
  public enum PrintTicketValueType
  public sealed class WorkflowPrintTicket
  public sealed class WorkflowPrintTicketValidationResult
}
namespace Windows.Graphics.Printing.Workflow {
  public sealed class PrintWorkflowBackgroundSession
  public sealed class PrintWorkflowBackgroundSetupRequestedEventArgs
  public sealed class PrintWorkflowConfiguration
  public sealed class PrintWorkflowForegroundSession
  public sealed class PrintWorkflowForegroundSetupRequestedEventArgs
  public sealed class PrintWorkflowObjectModelSourceFileContent
  public sealed class PrintWorkflowObjectModelTargetPackage
  public enum PrintWorkflowSessionStatus
  public sealed class PrintWorkflowSourceContent
  public sealed class PrintWorkflowSpoolStreamContent
  public sealed class PrintWorkflowStreamTarget
  public sealed class PrintWorkflowSubmittedEventArgs
  public sealed class PrintWorkflowSubmittedOperation
  public enum PrintWorkflowSubmittedStatus
  public sealed class PrintWorkflowTarget
  public sealed class PrintWorkflowTriggerDetails
  public sealed class PrintWorkflowUIActivatedEventArgs : IActivatedEventArgs, IActivatedEventArgsWithUser
  public sealed class PrintWorkflowXpsDataAvailableEventArgs
}
namespace Windows.Media.Core {
  public sealed class MediaStreamSource : IMediaSource {
    bool IsLive { get; set; }
  }
  public sealed class MseStreamSource : IMediaSource {
    IReference<MseTimeRange> LiveSeekableRange { get; set; }
  }
}
namespace Windows.Media.Playback {
  public sealed class MediaPlaybackSessionBufferingStartedEventArgs
  public sealed class MediaPlayer : IClosable {
    event TypedEventHandler<MediaPlayer, object> SubtitleFrameChanged;
    bool RenderSubtitlesToSurface(IDirect3DSurface destination);
    bool RenderSubtitlesToSurface(IDirect3DSurface destination, Rect targetRectangle);
  }
}
namespace Windows.Media.Protection.PlayReady {
  public enum PlayReadyEncryptionAlgorithm {
    Aes128Cbc = 5,
    Unspecified = 65535,
  }
  public enum PlayReadyHardwareDRMFeatures {
    Aes128Cbc = 3,
  }
}
namespace Windows.Media.SpeechRecognition {
  public sealed class SpeechRecognizer : IClosable {
    public static IAsyncOperation<bool> TrySetSystemSpeechLanguageAsync(Language speechLanguage);
  }
}
namespace Windows.Media.Streaming.Adaptive {
  public sealed class AdaptiveMediaSourceDiagnosticAvailableEventArgs {
    HResult ExtendedError { get; }
  }
  public enum AdaptiveMediaSourceDiagnosticType {
    FatalMediaSourceError = 8,
  }
}
namespace Windows.Security.Authentication.Web.Provider {
  public static class WebAccountManager {
    public static IAsyncAction InvalidateAppCacheAsync();
    public static IAsyncAction InvalidateAppCacheAsync(WebAccount webAccount);
  }
}
namespace Windows.Storage {
  public sealed class StorageLibrary {
    IAsyncOperation<bool> AreFolderSuggestionsAvailableAsync();
  }
}
namespace Windows.Storage.CloudStorage {
  public sealed class CloudDataChangedEventArgs
  public sealed class CloudDataManager
  public enum CloudDataSerializationFormat
  public sealed class CloudDataSnapshot
  public sealed class CloudDataStore
  public sealed class CloudDataTypeSchema
}
namespace Windows.Storage.Provider {
  public struct CustomStateDefinition
  public enum HydrationPolicy
  public enum NavPaneLocation
  public enum PopulationPolicy
  public enum ProtectionMode
  public sealed class SyncRootInformation
  public sealed class SyncRootManager
}
namespace Windows.System {
  public sealed class AppDiagnosticInfo {
    ResourceGroupInfoWatcher CreateResourceGroupWatcher();
    public static AppDiagnosticInfoWatcher CreateWatcher();
    IVector<ResourceGroupInfo> GetResourceGroups();
    public static IAsyncOperation<IVector<AppDiagnosticInfo>> RequestInfoForAppAsync(string aumid);
    public static IAsyncOperation<IVector<AppDiagnosticInfo>> RequestInfoForPackageAsync(string packageFamilyName);
    public static IAsyncOperation<DiagnosticPermission> RequestPermissionAsync();
  }
  public sealed class AppDiagnosticInfoWatcher
  public sealed class AppDiagnosticInfoWatcherEventArgs
  public enum AppDiagnosticInfoWatcherStatus
  public sealed class BackgroundTaskReport
  public enum DiagnosticPermission
  public sealed class DispatcherQueue
  public sealed class DispatcherQueueController
  public delegate void DispatcherQueueHandler();
  public enum DispatcherQueuePriority
  public sealed class DispatcherQueueTimer
  public enum EnergyQuotaState
  public enum ExecutionState
  public sealed class MemoryReport
  public sealed class ResourceGroupInfo
  public sealed class ResourceGroupInfoWatcher
  public sealed class ResourceGroupInfoWatcherEventArgs
  public sealed class ResourceGroupInfoWatcherExecutionStateChangedEventArgs
  public enum ResourceGroupInfoWatcherStatus
  public sealed class StateReport
}
namespace Windows.System.Diagnostics {
  public sealed class ProcessDiagnosticInfo {
    bool IsPackaged { get; }
    IVector<AppDiagnosticInfo> TryGetAppDiagnosticInfo();
    public static ProcessDiagnosticInfo TryGetForProcessId(uint processId);
  }
}
namespace Windows.System.UserProfile {
  public static class GlobalizationPreferences {
    public static bool TrySetHomeGeographicRegion(string region);
    public static bool TrySetLanguages(IIterable<string> languageTags);
  }
}
namespace Windows.UI.Composition {
  public sealed class AmbientLight : CompositionLight {
    float Intensity { get; set; }
 }
  public sealed class CompositionAnchor : CompositionObject
  public class CompositionAnimation : CompositionObject, ICompositionAnimationBase {
    ExpressionProperties ExpressionProperties { get; }
  }
  public enum CompositionDropShadowSourcePolicy
 public class CompositionIsland : CompositionObject
  public sealed class CompositionIslandEventArgs
  public enum CompositionIslandVisibilityHints
  public class CompositionLight : CompositionObject {
    VisualUnorderedCollection Exclusions { get; }
  }
  public sealed class Compositor : IClosable {
    VisualIslandSite CreateVisualIslandSite();
    VisualTreeIsland CreateVisualTreeIsland();
  }
  public sealed class DistantLight : CompositionLight {
    float Intensity { get; set; }
  }
  public sealed class DropShadow : CompositionShadow {
    CompositionDropShadowSourcePolicy SourcePolicy { get; set; }
  }
  public sealed class ExpressionProperties : CompositionObject, IIterable<IKeyValuePair<string, string>>, IMap<string, string>
  public sealed class FramedIslandSite : CompositionObject, ICompositionIslandSite
  public sealed class HwndIslandSite : CompositionObject, ICompositionIslandSite
  public interface ICompositionIslandSite
  public interface IVisual3
  public sealed class PointLight : CompositionLight {
    float Intensity { get; set; }
  }
  public sealed class PopupIslandSite : CompositionObject, ICompositionIslandSite
  public sealed class SpotLight : CompositionLight {
    float InnerConeIntensity { get; set; }
    float OuterConeIntensity { get; set; }
  }
  public class Visual : CompositionObject, IVisual3 {
    CompositionAnchor CreateAnchor();
  }
  public sealed class VisualIslandSite : CompositionObject, ICompositionIslandSite
  public sealed class VisualIslandSiteEventArgs
  public sealed class VisualTreeIsland : CompositionIsland
}
namespace Windows.UI.Composition.Effects {
  public sealed class SceneLightingEffect : IGraphicsEffect, IGraphicsEffectSource {
    SceneLightingEffectBrdfType BrdfType { get; set; }
  }
  public enum SceneLightingEffectBrdfType
}
namespace Windows.UI.Core {
  public sealed class CoreWindow : ICorePointerRedirector, ICoreWindow {
    DispatcherQueue DispatcherQueue { get; }
  }
}
namespace Windows.UI.Input.Spatial {
  public sealed class SpatialInteractionSource {
    SpatialInteractionSourceHandedness Handedness { get; }
  }
  public enum SpatialInteractionSourceHandedness
}
namespace Windows.UI.Text.Core {
  public enum CoreTextInputScope {
    Digits = 28,
    PinAlphanumeric = 65,
    PinNumeric = 64,
  }
}
namespace Windows.UI.ViewManagement {
  public sealed class CoreInputView
  public sealed class CoreInputViewFrameworkOccludingInputViewsChangedEventArgs
  public sealed class CoreInputViewOccludingInputViewsChangedEventArgs
  public struct CoreOccludingInputView
  public sealed class CoreOccludingInputViews : IIterable<CoreOccludingInputView>
  public enum CoreOccludingInputViewType
  public sealed class ViewModePreferences {
    Size CustomMaxSize { get; set; }
    Size CustomMinSize { get; set; }
  }
}
namespace Windows.UI.WebUI {
  public sealed class WebUIConsoleActivatedEventArgs : IActivatedEventArgs, IActivatedEventArgsDeferral, IConsoleActivatedEventArgs
}
namespace Windows.UI.Xaml {
  public class UIElement : DependencyObject {
    public static RoutedEvent PreviewKeyDownEvent { get; }
    public static RoutedEvent PreviewKeyUpEvent { get; }
    event KeyEventHandler PreviewKeyDown;
    event KeyEventHandler PreviewKeyUp;
  }
}
namespace Windows.UI.Xaml.Controls {
  public sealed class ColorChangedEventArgs
  public enum ColorChannel
  public class ColorPicker : Control
  public class ColorPickerSlider : Slider
  public sealed class ColorPickerSliderAutomationPeer : SliderAutomationPeer
  public class ColorSpectrum : Control
  public sealed class ColorSpectrumAutomationPeer : FrameworkElementAutomationPeer
  public enum ColorSpectrumComponents
  public enum ColorSpectrumShape
  public class Control : FrameworkElement {
    virtual void OnPreviewKeyDown(KeyRoutedEventArgs e);
    virtual void OnPreviewKeyUp(KeyRoutedEventArgs e);
  }
  public sealed class DisplayModeChangedEventArgs
  public struct HsvColor
  public interface IRefreshInfoProvider
  public class NavigationMenuItem : NavigationMenuItemBase
  public sealed class NavigationMenuItemAutomationPeer : FrameworkElementAutomationPeer
  public class NavigationMenuItemBase : Control
  public sealed class NavigationMenuItemBaseObservableCollection : IIterable<NavigationMenuItemBase>, IObservableVector<NavigationMenuItemBase>, IVector<NavigationMenuItemBase>
  public class NavigationMenuItemSeparator : NavigationMenuItemBase
  public class NavigationView : ContentControl
  public enum NavigationViewDisplayMode
  public enum ParallaxSourceOffsetKind
  public class ParallaxView : FrameworkElement
  public class PersonPicture : Control
  public sealed class PersonPictureAutomationPeer : FrameworkElementAutomationPeer
  public class RatingsControl : Control
  public sealed class RatingsControlAutomationPeer : FrameworkElementAutomationPeer
  public class RefreshContainer : ContentControl
  public sealed class RefreshInteractionRatioChangedEventArgs
  public sealed class RefreshRequestedEventArgs
  public sealed class RefreshStatusChangedEventArgs
  public class RefreshVisualizer : Control
  public enum RefreshVisualizerOrientation
  public enum RefreshVisualizerStatus
  public class RevealListViewItemPresenter : ListViewItemPresenter
  public enum Symbol {
    GlobalNavButton = 59136,
    Print = 59209,
    Share = 59181,
    XboxOneConsole = 59792,
  }
  public class TreeView : Control
  public sealed class TreeViewExpandingEventArgs
  public class TreeViewItem : ListViewItem
  public sealed class TreeViewItemAutomationPeer : ListViewItemAutomationPeer
  public sealed class TreeViewItemClickEventArgs
  public class TreeViewList : ListView
  public sealed class TreeViewListAutomationPeer : SelectorAutomationPeer
  public class TreeViewNode : DependencyObject, IBindableIterable, IBindableObservableVector, IBindableVector
  public sealed class XamlBooleanToVisibilityConverter : IValueConverter
  public sealed class XamlIntegerToIndentationConverter : IValueConverter
}
namespace Windows.UI.Xaml.Data {
  public enum UpdateSourceTrigger {
    LostFocus = 3,
  }
}
namespace Windows.UI.Xaml.Documents {
  public sealed class Hyperlink : Span {
    bool IsTabStop { get; set; }
    public static DependencyProperty IsTabStopProperty { get; }
    int TabIndex { get; set; }
    public static DependencyProperty TabIndexProperty { get; }
  }
}
namespace Windows.UI.Xaml.Media {
  public enum AcrylicBackgroundSource
  public class AcrylicBrush : XamlCompositionBrushBase
  public class RevealBackgroundBrush : RevealBrush
  public class RevealBorderBrush : RevealBrush
  public class RevealBrush : XamlCompositionBrushBase
  public static class RevealBrushHelper
  public enum RevealBrushHelperState
  public class XamlAmbientLight : XamlLight
}
namespace Windows.Graphics.Printing3D {
  public sealed class Printing3D3MFPackage {
    Printing3DPackageCompression Compression { get; set; }
  }
  public enum Printing3DPackageCompression
}

Updated May 11, 2017 10:45 am

Join the conversation

  1. I installed the latest Window build, 16199, vs2017 15.2, and the latest SDK.
    I can add new controls including NavigationView to a blank project, but the system says that controls cannot be added to the toolbox because the current designer does not support them.
    Was anyone able to use any of these new “fluent design” controls?

    • two controls did not hit 16190, swipe and pull to refresh. The designer crash with new controls is a known issue but looks like it didn’t hit my change notes 🙁 sorry about that