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:
- 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).
- 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 }
The post Windows 10 SDK Preview Build 16190 Released appeared first on Building Apps for Windows.