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.
[code lang=”csharp”]
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;
[/code]
However, because this code relies on GamepadButtons, which has the attribute System.FlagsAttribute, bit must instead be cast as unsigned:
[code lang=”csharp”]
unsigned int bit = 1 << index;
[/code]
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.
[code lang=”csharp”]
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
}
[/code]