Category Archives: SDK

Auto Added by WPeMatico

Windows 10 SDK Preview Build 17046 now available

Today, we released a new Windows 10 Preview Build of the SDK to be used in conjunction with Windows 10 Insider Preview (Build 17046 or greater). The Preview SDK Build 17046 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. 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.
Known Issues
“All tests run with Windows App Certification Kit will fail. During installation, please uncheck Windows App Certification Kit”

Installation on an operating system that is not a Windows 10 Insider Preview build is not supported and may fail.
What’s New:
C++/WinRT Now Available:
The C++/WinRT headers and cppwinrt compiler (cppwinrt.exe) are now included in the Windows SDK. The compiler comes in handy if you need to consume a third-party WinRT component or if you need to author your own WinRT components with C++/WinRT. The easiest way to get working with it after installing the Windows Insider Preview SDK is to start the Visual Studio Developer Command Prompt and run the compiler in that environment. Authoring support is currently experimental and subject to change. Stay tuned as we will publish more detailed instructions on how to use the compiler in the coming week.The ModernCPP blog has a deeper dive into the CppWinRT compiler. Please give us feedback by creating an issue at: https://github.com/microsoft/cppwinrt.
Breaking Changes
New MIDL key words.
As a part of the “modernizing IDL” effort, several new keywords are added to the midlrt tool. These new keywords will cause build breaks if they are encountered in IDL files.
The new keywords are:
event
set
get
partial
unsealed
overridable
protected
importwinmd
If any of these keywords is used as an identifier, it will generate a build failure indicating a syntax error.
The error will be similar to:
1 >d:ossrconecorecomcombaseunittestastatestserverstestserver6idlremreleasetest.idl(12) : error MIDL2025 : [msg]syntax error [context]: expecting a declarator or * near “)”
To fix this, modify the identifier in error to an “@” prefix in front of the identifier. That will cause MIDL to treat the offending element as an identifier instead of a keyword.
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.
The following APIs have been added to the platform since the release of 16299.

namespace Windows.ApplicationModel {
public enum StartupTaskState {
EnabledByPolicy = 4,
}
}
namespace Windows.ApplicationModel.Background {
public sealed class MobileBroadbandPcoDataChangeTrigger : IBackgroundTrigger
public sealed class TetheringEntitlementCheckTrigger : IBackgroundTrigger
}
namespace Windows.ApplicationModel.Calls {
public enum PhoneCallMedia {
AudioAndRealTimeText = 2,
}
public sealed class VoipCallCoordinator {
VoipPhoneCall RequestNewAppInitiatedCall(string context, string contactName, string contactNumber, string serviceName, VoipPhoneCallMedia media);
VoipPhoneCall RequestNewIncomingCall(string context, string contactName, string contactNumber, Uri contactImage, string serviceName, Uri brandingImage, string callDetails, Uri ringtone, VoipPhoneCallMedia media, TimeSpan ringTimeout, string contactRemoteId);
}
public sealed class VoipPhoneCall {
void NotifyCallAccepted(VoipPhoneCallMedia media);
}
}
namespace Windows.ApplicationModel.Chat {
public sealed class RcsManagerChangedEventArgs
public enum RcsManagerChangeType
public sealed class RcsNotificationManager
}
namespace Windows.ApplicationModel.Store.Preview.InstallControl {
public sealed class AppInstallManager {
IAsyncOperation<IVectorView<AppInstallItem>> SearchForAllUpdatesAsync(string correlationVector, string clientId, AppUpdateOptions updateOptions);
IAsyncOperation<IVectorView<AppInstallItem>> SearchForAllUpdatesForUserAsync(User user, string correlationVector, string clientId, AppUpdateOptions updateOptions);
IAsyncOperation<AppInstallItem> SearchForUpdatesAsync(string productId, string skuId, string correlationVector, string clientId, AppUpdateOptions updateOptions);
IAsyncOperation<AppInstallItem> SearchForUpdatesForUserAsync(User user, string productId, string skuId, string correlationVector, string clientId, AppUpdateOptions updateOptions);
IAsyncOperation<IVectorView<AppInstallItem>> StartProductInstallAsync(string productId, string flightId, string clientId, string correlationVector, AppInstallOptions installOptions);
IAsyncOperation<IVectorView<AppInstallItem>> StartProductInstallForUserAsync(User user, string productId, string flightId, string clientId, string correlationVector, AppInstallOptions installOptions);
}
public sealed class AppInstallOptions
public sealed class AppInstallStatus {
bool IsStaged { get; }
}
public sealed class AppUpdateOptions
}
namespace Windows.ApplicationModel.UserActivities {
public sealed class UserActivity {
public UserActivity(string activityId);
}
public sealed class UserActivityChannel {
public static void DisableAutoSessionCreation();
}
public sealed class UserActivityVisualElements {
string AttributionDisplayText { get; set; }
}
}
namespace Windows.Devices.PointOfService {
public sealed class BarcodeScannerReport {
public BarcodeScannerReport(uint scanDataType, IBuffer scanData, IBuffer scanDataLabel);
}
public sealed class ClaimedBarcodeScanner : IClosable {
bool IsVideoPreviewShownOnEnable { get; set; }
void HideVideoPreview();
IAsyncOperation<bool> ShowVideoPreviewAsync();
}
public sealed class UnifiedPosErrorData {
public UnifiedPosErrorData(string message, UnifiedPosErrorSeverity severity, UnifiedPosErrorReason reason, uint extendedReason);
}
}
namespace Windows.Devices.PointOfService.Provider {
public sealed class BarcodeScannerDisableScannerRequest
public sealed class BarcodeScannerDisableScannerRequestEventArgs
public sealed class BarcodeScannerEnableScannerRequest
public sealed class BarcodeScannerEnableScannerRequestEventArgs
public sealed class BarcodeScannerGetSymbologyAttributesRequest
public sealed class BarcodeScannerGetSymbologyAttributesRequestEventArgs
public sealed class BarcodeScannerHideVideoPreviewRequest
public sealed class BarcodeScannerHideVideoPreviewRequestEventArgs
public sealed class BarcodeScannerProviderConnection : IClosable
public sealed class BarcodeScannerProviderTriggerDetails
public sealed class BarcodeScannerSetActiveSymbologiesRequest
public sealed class BarcodeScannerSetActiveSymbologiesRequestEventArgs
public sealed class BarcodeScannerSetSymbologyAttributesRequest
public sealed class BarcodeScannerSetSymbologyAttributesRequestEventArgs
public sealed class BarcodeScannerStartSoftwareTriggerRequest
public sealed class BarcodeScannerStartSoftwareTriggerRequestEventArgs
public sealed class BarcodeScannerStopSoftwareTriggerRequest
public sealed class BarcodeScannerStopSoftwareTriggerRequestEventArgs
public enum BarcodeScannerTriggerState
public sealed class BarcodeSymbologyAttributesBuilder
}
namespace Windows.Globalization {
public static class ApplicationLanguages {
public static IVectorView<string> GetLanguagesForUser(User user);
}
public sealed class Language {
LanguageLayoutDirection LayoutDirection { get; }
}
public enum LanguageLayoutDirection
}
namespace Windows.Graphics.Imaging {
public enum BitmapPixelFormat {
P010 = 104,
}
}
namespace Windows.Management.Deployment {
public sealed class PackageManager {
IAsyncOperationWithProgress<DeploymentResult, DeploymentProgress> RequestAddPackageAsync(Uri packageUri, IIterable<Uri> dependencyPackageUris, DeploymentOptions deploymentOptions, PackageVolume targetVolume, IIterable<string> optionalPackageFamilyNames, IIterable<Uri> relatedPackageUris, IIterable<Uri> packageUrisToInstall);
}
}
namespace Windows.Media.Audio {
public sealed class AudioGraph : IClosable {
IAsyncOperation<CreateMediaSourceAudioInputNodeResult> CreateMediaSourceAudioInputNodeAsync(MediaSource mediaSource);
IAsyncOperation<CreateMediaSourceAudioInputNodeResult> CreateMediaSourceAudioInputNodeAsync(MediaSource mediaSource, AudioNodeEmitter emitter);
}
public sealed class AudioGraphSettings {
double MaxPlaybackSpeedFactor { get; set; }
}
public sealed class AudioStateMonitor
public sealed class CreateMediaSourceAudioInputNodeResult
public sealed class MediaSourceAudioInputNode : IAudioInputNode, IAudioInputNode2, IAudioNode, IClosable
public enum MediaSourceAudioInputNodeCreationStatus
}
namespace Windows.Media.Capture {
public sealed class CapturedFrame : IClosable, IContentTypeProvider, IInputStream, IOutputStream, IRandomAccessStream, IRandomAccessStreamWithContentType {
BitmapPropertySet BitmapProperties { get; }
CapturedFrameControlValues ControlValues { get; }
}
public enum KnownVideoProfile {
HdrWithWcgPhoto = 8,
HdrWithWcgVideo = 7,
HighFrameRate = 5,
VariablePhotoSequence = 6,
VideoHdr8 = 9,
}
public sealed class MediaCaptureSettings {
IDirect3DDevice Direct3D11Device { get; }
}
public sealed class MediaCaptureVideoProfile {
IVectorView<MediaFrameSourceInfo> FrameSourceInfos { get; }
IMapView<Guid, object> Properties { get; }
}
public sealed class MediaCaptureVideoProfileMediaDescription {
IMapView<Guid, object> Properties { get; }
string Subtype { get; }
}
}
namespace Windows.Media.Capture.Frames {
public sealed class AudioMediaFrame
public sealed class MediaFrameFormat {
AudioEncodingProperties AudioEncodingProperties { get; }
}
public sealed class MediaFrameReference : IClosable {
AudioMediaFrame AudioMediaFrame { get; }
}
public sealed class MediaFrameSourceController {
AudioDeviceController AudioDeviceController { get; }
}
public sealed class MediaFrameSourceInfo {
string ProfileId { get; }
IVectorView<MediaCaptureVideoProfileMediaDescription> VideoProfileMediaDescription { get; }
}
public enum MediaFrameSourceKind {
Audio = 4,
Image = 5,
}
}
namespace Windows.Media.Core {
public sealed class MediaBindingEventArgs {
void SetDownloadOperation(DownloadOperation downloadOperation);
}
public sealed class MediaSource : IClosable, IMediaPlaybackSource {
DownloadOperation DownloadOperation { get; }
public static MediaSource CreateFromDownloadOperation(DownloadOperation downloadOperation);
}
}
namespace Windows.Media.Devices {
public sealed class VideoDeviceController : IMediaDeviceController {
VideoTemporalDenoisingControl VideoTemporalDenoisingControl { get; }
}
public sealed class VideoTemporalDenoisingControl
public enum VideoTemporalDenoisingMode
}
namespace Windows.Media.DialProtocol {
public sealed class DialReceiverApp {
IAsyncOperation<string> GetUniqueDeviceNameAsync();
}
}
namespace Windows.Media.MediaProperties {
public static class MediaEncodingSubtypes {
public static string P010 { get; }
}
public enum MediaPixelFormat {
P010 = 2,
}
}
namespace Windows.Media.Playback {
public sealed class MediaPlaybackSession {
MediaRotation PlaybackRotation { get; set; }
MediaPlaybackSessionOutputDegradationPolicyState GetOutputDegradationPolicyState();
}
public sealed class MediaPlaybackSessionOutputDegradationPolicyState
public enum MediaPlaybackSessionVideoConstrictionReason
}
namespace Windows.Media.Streaming.Adaptive {
public sealed class AdaptiveMediaSourceDiagnosticAvailableEventArgs {
string ResourceContentType { get; }
IReference<TimeSpan> ResourceDuration { get; }
}
public sealed class AdaptiveMediaSourceDownloadCompletedEventArgs {
string ResourceContentType { get; }
IReference<TimeSpan> ResourceDuration { get; }
}
public sealed class AdaptiveMediaSourceDownloadFailedEventArgs {
string ResourceContentType { get; }
IReference<TimeSpan> ResourceDuration { get; }
}
public sealed class AdaptiveMediaSourceDownloadRequestedEventArgs {
string ResourceContentType { get; }
IReference<TimeSpan> ResourceDuration { get; }
}
}
namespace Windows.Networking.BackgroundTransfer {
public sealed class DownloadOperation : IBackgroundTransferOperation, IBackgroundTransferOperationPriority {
void MakeCurrentInTransferGroup();
}
public sealed class UploadOperation : IBackgroundTransferOperation, IBackgroundTransferOperationPriority {
void MakeCurrentInTransferGroup();
}
}
namespace Windows.Networking.Connectivity {
public sealed class CellularApnContext {
string ProfileName { get; set; }
}
public sealed class ConnectionProfileFilter {
IReference<Guid> PurposeGuid { get; set; }
}
public sealed class WwanConnectionProfileDetails {
WwanNetworkIPKind IPKind { get; }
IVectorView<Guid> PurposeGuids { get; }
}
public enum WwanNetworkIPKind
}
namespace Windows.Networking.NetworkOperators {
public sealed class MobileBroadbandAntennaSar {
public MobileBroadbandAntennaSar(int antennaIndex, int sarBackoffIndex);
}
public sealed class MobileBroadbandModem {
IAsyncOperation<MobileBroadbandPco> TryGetPcoAsync();
}
public sealed class MobileBroadbandModemIsolation
public sealed class MobileBroadbandPco
public sealed class MobileBroadbandPcoDataChangeTriggerDetails
public sealed class TetheringEntitlementCheckTriggerDetails
}
namespace Windows.Networking.Sockets {
public sealed class ServerMessageWebSocket : IClosable
public sealed class ServerMessageWebSocketControl
public sealed class ServerMessageWebSocketInformation
public sealed class ServerStreamWebSocket : IClosable
public sealed class ServerStreamWebSocketInformation
}
namespace Windows.Networking.Vpn {
public sealed class VpnNativeProfile : IVpnProfile {
string IDi { get; set; }
VpnPayloadIdType IdiType { get; set; }
string IDr { get; set; }
VpnPayloadIdType IdrType { get; set; }
bool IsImsConfig { get; set; }
string PCscf { get; }
}
public enum VpnPayloadIdType
}
namespace Windows.Security.Authentication.Identity.Provider {
public enum SecondaryAuthenticationFactorAuthenticationMessage {
CanceledByUser = 22,
CenterHand = 23,
ConnectionRequired = 20,
DeviceUnavaliable = 28,
MoveHandCloser = 24,
MoveHandFarther = 25,
PlaceHandAbove = 26,
RecognitionFailed = 27,
TimeLimitExceeded = 21,
}
}
namespace Windows.Services.Maps {
public sealed class MapRouteDrivingOptions {
IReference<DateTime> DepartureTime { get; set; }
}
public sealed class PlaceInfo {
public static PlaceInfo CreateFromAddress(string displayAddress);
public static PlaceInfo CreateFromAddress(string displayAddress, string displayName);
}
}
namespace Windows.Services.Store {
public sealed class StoreCanAcquireLicenseResult
public enum StoreCanLicenseStatus
public sealed class StoreContext {
bool CanSilentlyDownloadStorePackageUpdates { get; }
IAsyncOperation<StoreCanAcquireLicenseResult> CanAcquireStoreLicenseForOptionalPackageAsync(Package optionalPackage);
IAsyncOperationWithProgress<StorePackageUpdateResult, StorePackageUpdateStatus> TrySilentDownloadAndInstallStorePackageUpdatesAsync(IIterable<StorePackageUpdate> storePackageUpdates);
IAsyncOperationWithProgress<StorePackageUpdateResult, StorePackageUpdateStatus> TrySilentDownloadStorePackageUpdatesAsync(IIterable<StorePackageUpdate> storePackageUpdates);
}
}
namespace Windows.Storage.Provider {
public interface IStorageProviderUriSource
public enum StorageProviderResolveContentUriResult
}
namespace Windows.System {
public sealed class AppActivationResult
public sealed class AppDiagnosticInfo {
IAsyncOperation<AppActivationResult> ActivateAsync();
}
public sealed class AppResourceGroupInfo {
IAsyncOperation<bool> TryResumeAsync();
IAsyncOperation<bool> TrySuspendAsync();
IAsyncOperation<bool> TryTerminateAsync();
}
public sealed class User {
public static User GetDefault();
}
public enum UserType {
SystemManaged = 4,
}
}
namespace Windows.System.Diagnostics {
public sealed class DiagnosticInvoker {
IAsyncOperationWithProgress<DiagnosticActionResult, DiagnosticActionState> RunDiagnosticActionFromStringAsync(string context);
}
}
namespace Windows.System.Diagnostics.DevicePortal {
public sealed class DevicePortalConnection {
ServerMessageWebSocket GetServerMessageWebSocketForRequest(HttpRequestMessage request);
ServerMessageWebSocket GetServerMessageWebSocketForRequest(HttpRequestMessage request, SocketMessageType messageType, string protocol);
ServerMessageWebSocket GetServerMessageWebSocketForRequest(HttpRequestMessage request, SocketMessageType messageType, string protocol, uint outboundBufferSizeInBytes, uint maxMessageSize, MessageWebSocketReceiveMode receiveMode);
ServerStreamWebSocket GetServerStreamWebSocketForRequest(HttpRequestMessage request);
ServerStreamWebSocket GetServerStreamWebSocketForRequest(HttpRequestMessage request, string protocol, uint outboundBufferSizeInBytes, bool noDelay);
}
public sealed class DevicePortalConnectionRequestReceivedEventArgs {
bool IsWebSocketUpgradeRequest { get; }
IVectorView<string> WebSocketProtocolsRequested { get; }
Deferral GetDeferral();
}
}
namespace Windows.System.RemoteSystems {
public static class KnownRemoteSystemCapabilities {
public static string NearShare { get; }
}
}
namespace Windows.System.UserProfile {
public static class GlobalizationPreferences {
public static GlobalizationPreferencesForUser GetForUser(User user);
}
public sealed class GlobalizationPreferencesForUser
}
namespace Windows.UI.ApplicationSettings {
public sealed class AccountsSettingsPane {
public static IAsyncAction ShowAddAccountForUserAsync(User user);
public static IAsyncAction ShowManageAccountsForUserAsync(User user);
}
public sealed class AccountsSettingsPaneCommandsRequestedEventArgs {
User User { get; }
}
}
namespace Windows.UI.Composition {
public sealed class BounceScalarNaturalMotionAnimation : ScalarNaturalMotionAnimation
public sealed class BounceVector2NaturalMotionAnimation : Vector2NaturalMotionAnimation
public sealed class BounceVector3NaturalMotionAnimation : Vector3NaturalMotionAnimation
public class CompositionLight : CompositionObject {
bool IsEnabled { get; set; }
}
public sealed class Compositor : IClosable {
string Comment { get; set; }
BounceScalarNaturalMotionAnimation CreateBounceScalarAnimation();
BounceVector2NaturalMotionAnimation CreateBounceVector2Animation();
BounceVector3NaturalMotionAnimation CreateBounceVector3Animation();
}
public sealed class PointLight : CompositionLight {
Vector2 AttenuationCutoff { get; set; }
}
public sealed class SpotLight : CompositionLight {
Vector2 AttenuationCutoff { get; set; }
}
}
namespace Windows.UI.Composition.Core {
public sealed class CompositorController : IClosable
}
namespace Windows.UI.Composition.Desktop {
public sealed class HwndTarget : CompositionTarget
}
namespace Windows.UI.Input.Spatial {
public sealed class SpatialInteractionController {
BatteryReport TryGetBatteryReport();
}
}
namespace Windows.UI.Xaml {
public sealed class BringIntoViewOptions {
double HorizontalAlignmentRatio { get; set; }
double HorizontalOffset { get; set; }
double VerticalAlignmentRatio { get; set; }
double VerticalOffset { get; set; }
}
public sealed class BringIntoViewRequestedEventArgs : RoutedEventArgs
public sealed class EffectiveViewportChangedEventArgs
public enum FocusVisualKind {
Reveal = 2,
}
public class FrameworkElement : UIElement {
event TypedEventHandler<FrameworkElement, EffectiveViewportChangedEventArgs> EffectiveViewportChanged;
void InvalidateViewport();
virtual bool IsViewport();
}
public class UIElement : DependencyObject {
public static RoutedEvent BringIntoViewRequestedEvent { get; }
public static RoutedEvent ContextRequestedEvent { get; }
KeyboardAcceleratorPlacementMode KeyboardAcceleratorPlacementMode { get; set; }
public static DependencyProperty KeyboardAcceleratorPlacementModeProperty { get; }
DependencyObject KeyboardAcceleratorToolTipTarget { get; set; }
public static DependencyProperty KeyboardAcceleratorToolTipTargetProperty { get; }
DependencyObject KeyTipTarget { get; set; }
public static DependencyProperty KeyTipTargetProperty { get; }
event TypedEventHandler<UIElement, BringIntoViewRequestedEventArgs> BringIntoViewRequested;
virtual void OnBringIntoViewRequested(BringIntoViewRequestedEventArgs e);
virtual void OnKeyboardAcceleratorInvoked(KeyboardAcceleratorInvokedEventArgs args);
}
}
namespace Windows.UI.Xaml.Automation.Peers {
public sealed class AutoSuggestBoxAutomationPeer : FrameworkElementAutomationPeer, IInvokeProvider {
void Invoke();
}
public class CalendarDatePickerAutomationPeer : FrameworkElementAutomationPeer, IInvokeProvider, IValueProvider
}
namespace Windows.UI.Xaml.Controls {
public class AppBarButton : Button, ICommandBarElement, ICommandBarElement2 {
string KeyboardAcceleratorText { get; set; }
public static DependencyProperty KeyboardAcceleratorTextProperty { get; }
AppBarButtonTemplateSettings TemplateSettings { get; }
}
public class AppBarToggleButton : ToggleButton, ICommandBarElement, ICommandBarElement2 {
string KeyboardAcceleratorText { get; set; }
public static DependencyProperty KeyboardAcceleratorTextProperty { get; }
AppBarToggleButtonTemplateSettings TemplateSettings { get; }
}
public class MenuFlyoutItem : MenuFlyoutItemBase {
string KeyboardAcceleratorText { get; set; }
public static DependencyProperty KeyboardAcceleratorTextProperty { get; }
MenuFlyoutItemTemplateSettings TemplateSettings { get; }
}
public class NavigationView : ContentControl {
string PaneTitle { get; set; }
public static DependencyProperty PaneTitleProperty { get; }
event TypedEventHandler<NavigationView, object> PaneClosed;
event TypedEventHandler<NavigationView, NavigationViewPaneClosingEventArgs> PaneClosing;
event TypedEventHandler<NavigationView, object> PaneOpened;
event TypedEventHandler<NavigationView, object> PaneOpening;
}
public sealed class NavigationViewPaneClosingEventArgs
public sealed class ScrollViewer : ContentControl {
bool IsResponsiveToOcclusions { get; set; }
public static DependencyProperty IsResponsiveToOcclusionsProperty { get; }
}
public enum WebViewPermissionType {
Screen = 5,
}
}
namespace Windows.UI.Xaml.Controls.Maps {
public sealed class MapControl : Control {
string Region { get; set; }
public static DependencyProperty RegionProperty { get; }
}
public class MapElement : DependencyObject {
bool IsEnabled { get; set; }
public static DependencyProperty IsEnabledProperty { get; }
}
}
namespace Windows.UI.Xaml.Controls.Primitives {
public sealed class AppBarButtonTemplateSettings : DependencyObject
public sealed class AppBarToggleButtonTemplateSettings : DependencyObject
public class ListViewItemPresenter : ContentPresenter {
bool DisableTilt { get; set; }
public static DependencyProperty DisableTiltProperty { get; }
}
public sealed class MenuFlyoutItemTemplateSettings : DependencyObject
}
namespace Windows.UI.Xaml.Input {
public sealed class GettingFocusEventArgs : RoutedEventArgs {
bool TryCancel();
bool TrySetNewFocusedElement(DependencyObject element);
}
public sealed class KeyboardAcceleratorInvokedEventArgs {
KeyboardAccelerator KeyboardAccelerator { get; }
}
public enum KeyboardAcceleratorPlacementMode
public sealed class LosingFocusEventArgs : RoutedEventArgs {
bool TryCancel();
bool TrySetNewFocusedElement(DependencyObject element);
}
}

The UWP Community Toolkit v2.1

We are extremely excited to announce the latest update to the UWP Community Toolkit, version 2.1!
This update builds on top of the previous version and continues to align the toolkit closer to the Windows 10 Fall Creators Update SDK. Thanks to the continued support and help of the community, all packages have been updated to target the Fall Creators Update, several controls, helpers, and extensions have been added or updated, and the documentation and design time experience have been greatly improved.
Below is a quick list of few of the major updates in this release. Head over to the release notes for a complete overview of what’s new in 2.1.
DockPanel
This release introduces the DockPanel control that provides an easy docking of elements to the left, right, top, bottom or center.

#DockPanel is now part of #UwpToolkit get the pre-release from here https://t.co/ccEz8R6qSa thanks to @metulev & @dotMorten for their review pic.twitter.com/Gfp566kFAE
— Ibraheem Osama (@IbraheemOM) November 2, 2017

HeaderedContentControl and HeaderedItemsControl
There are now two controls, HeaderedContentControl and HeaderedItemsControl that allow content to be easily displayed with a header that can be templated.

&lt;controls:HeaderedContentControl Header=&quot;Hello header!&quot;&gt;
&lt;Grid Background=&quot;Gray&quot;&gt;

&lt;/Grid&gt;
&lt;/&lt;controls:HeaderedContentControl&gt;

Connected and Implicit Animation in XAML
There are two new sets of XAML attached properties that enable working with composition animations directly in XAML
Implicit animations (including show and hide) can now be directly added to the elements in XAML

&lt;Border extensions:VisualExtensions.NormalizedCenterPoint=&quot;0.5&quot;&gt;

&lt;animations:Implicit.ShowAnimations&gt;
&lt;animations:TranslationAnimation Duration=&quot;0:0:1&quot;
To=&quot;0, 100, 0&quot; &gt;&lt;/animations:TranslationAnimation&gt;
&lt;animations:OpacityAnimation Duration=&quot;0:0:1&quot;
To=&quot;1.0&quot;&gt;&lt;/animations:OpacityAnimation&gt;
&lt;/animations:Implicit.ShowAnimations&gt;

&lt;/Border&gt;

Connected animations can now be defined directly on the element in XAML by simply adding the same key on elements on different pages

&lt;!– Page 1 –&gt;
&lt;Border x:Name=&quot;Element&quot; animations:Connected.Key=&quot;item&quot;&gt;&lt;/Border&gt;

&lt;!– Page 2 –&gt;
&lt;Border x:Name=&quot;Element&quot; animations:Connected.Key=&quot;item&quot;&gt;&lt;/Border&gt;

Improved design time experience
Added designer support for controls, including toolbox integration and improved design time experience by placing properties in the proper category in the properties grid with hover tooltip.

Added @VisualStudio Toolbox integration to #UWPToolkit: https://t.co/SZ6Tf3b0cf #DragNDropLikeItsHot pic.twitter.com/G4s73wXUsi
— Morten Nielsen (@dotMorten) August 31, 2017

New SystemInformation properties
SystemInformation class now includes new properties and methods to make it easier to provide first run (or related) experiences or collect richer analytics.

The #uwptoolkit got some new SystemInformation properties fresh from the oven thanks to @mrlacey. What would you use these for? https://t.co/cFjGWSBxPX pic.twitter.com/Pft6nWbx0M
— Nikola Metulev (@metulev) October 13, 2017

Easy transition to new Fall Creators Update controls
To enable a smooth transition from existing toolkit controls to the new Fall Creators Update controls, the HamburgeMenu and SlidableListItem have new properties to use the NavigationView and SwipeControl respectively when running on Fall Creators Update. Take a look at the documentation on how this works.
Documentation
All documentation is now available at Microsoft docs. In addition, there is new API documentation as part of .NET API Browser.
Built by the Community
This update would not have been possible if it wasn’t for the community support and participation. If you are interested in participating in the development, but don’t know how to get started, check out our “help wanted” issues on GitHub.
As a reminder, although most of the development efforts and usage of the UWP Community Toolkit is for Desktop apps, it also works great on Xbox One, Mobile, HoloLens, IoT and Surface Hub devices. You can get started by following this tutorial, or preview the latest features by installing the UWP Community Toolkit Sample App from the Microsoft Store.
To join the conversation on Twitter, use the #uwptoolkit hashtag.

Windows 10 SDK Preview Build 17040 now available

Today, we released a new Windows 10 Preview Build of the SDK to be used in conjunction with Windows 10 Insider Preview (Build 17040 or greater). The Preview SDK Build 17040 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. 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.
Known Issues
“All tests run with Windows App Certification Kit will fail.  During installation, please uncheck Windows App Certification Kit”

Installation on an operating system that is not a Windows 10 Insider Preview  build is not supported and may fail.
What’s New:
C++/WinRT Now Available:
The C++/WinRT headers and cppwinrt compiler (cppwinrt.exe) are now included in the Windows SDK. The compiler comes in handy if you need to consume a third-party WinRT component or if you need to author your own WinRT components with C++/WinRT. The easiest way to get working with it after installing the Windows Insider Preview SDK is to start the Visual Studio Developer Command Prompt and run the compiler in that environment. Authoring support is currently experimental and subject to change. Stay tuned as we will publish more detailed instructions on how to use the compiler in the coming week.The ModernCPP blog has a deeper dive into the CppWinRT compiler. Please give us feedback by creating an issue at: https://github.com/microsoft/cppwinrt.
Breaking Changes
New MIDL key words. 
As a part of the “modernizing IDL” effort, several new keywords are added to the midlrt tool. These new keywords will cause build breaks if they are encountered in IDL files.
The new keywords are:
event
set
get
partial
unsealed
overridable
protected
importwinmd
If any of these keywords is used as an identifier, it will generate a build failure indicating a syntax error.
The error will be similar to:
1 >d:ossrconecorecomcombaseunittestastatestserverstestserver6idlremreleasetest.idl(12) : error MIDL2025 : [msg]syntax error [context]: expecting a declarator or * near “)”
To fix this, modify the identifier in error to an “@” prefix in front of the identifier. That will cause MIDL to treat the offending element as an identifier instead of a keyword.
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.
The following APIs have been added to the platform since the release of 16299.

namespace Windows.ApplicationModel {
public enum StartupTaskState {
EnabledByPolicy = 4,
}
}
namespace Windows.ApplicationModel.Background {
public sealed class MobileBroadbandPcoDataChangeTrigger : IBackgroundTrigger
public sealed class TetheringEntitlementCheckTrigger : IBackgroundTrigger
}
namespace Windows.ApplicationModel.Calls {
public enum PhoneCallMedia {
AudioAndRealTimeText = 2,
}
public sealed class VoipCallCoordinator {
VoipPhoneCall RequestNewAppInitiatedCall(string context, string contactName, string contactNumber, string serviceName, VoipPhoneCallMedia media);
VoipPhoneCall RequestNewIncomingCall(string context, string contactName, string contactNumber, Uri contactImage, string serviceName, Uri brandingImage, string callDetails, Uri ringtone, VoipPhoneCallMedia media, TimeSpan ringTimeout, string contactRemoteId);
}
public sealed class VoipPhoneCall {
void NotifyCallAccepted(VoipPhoneCallMedia media);
}
}
namespace Windows.ApplicationModel.Chat {
public sealed class RcsManagerChangedEventArgs
public enum RcsManagerChangeType
public sealed class RcsNotificationManager
}
namespace Windows.ApplicationModel.UserActivities {
public sealed class UserActivity {
public UserActivity(string activityId);
}
public sealed class UserActivityChannel {
public static void DisableAutoSessionCreation();
}
public sealed class UserActivityVisualElements {
string AttributionDisplayText { get; set; }
}
}
namespace Windows.Devices.PointOfService {
public sealed class BarcodeScannerReport {
public BarcodeScannerReport(uint scanDataType, IBuffer scanData, IBuffer scanDataLabel);
}
public sealed class ClaimedBarcodeScanner : IClosable {
bool IsVideoPreviewShownOnEnable { get; set; }
void HideVideoPreview();
IAsyncOperation<bool> ShowVideoPreviewAsync();
}
public sealed class UnifiedPosErrorData {
public UnifiedPosErrorData(string message, UnifiedPosErrorSeverity severity, UnifiedPosErrorReason reason, uint extendedReason);
}
}
namespace Windows.Globalization {
public static class ApplicationLanguages {
public static IVectorView<string> GetLanguagesForUser(User user);
}
public sealed class Language {
LanguageLayoutDirection LayoutDirection { get; }
}
public enum LanguageLayoutDirection
}
namespace Windows.Graphics.Imaging {
public enum BitmapPixelFormat {
P010 = 104,
}
}
namespace Windows.Management.Deployment {
public sealed class PackageManager {
IAsyncOperationWithProgress<DeploymentResult, DeploymentProgress> RequestAddPackageAsync(Uri packageUri, IIterable<Uri> dependencyPackageUris, DeploymentOptions deploymentOptions, PackageVolume targetVolume, IIterable<string> optionalPackageFamilyNames, IIterable<Uri> relatedPackageUris, IIterable<Uri> packageUrisToInstall);
}
}
namespace Windows.Media.Audio {
public sealed class AudioGraph : IClosable {
IAsyncOperation<CreateMediaSourceAudioInputNodeResult> CreateMediaSourceAudioInputNodeAsync(MediaSource mediaSource);
IAsyncOperation<CreateMediaSourceAudioInputNodeResult> CreateMediaSourceAudioInputNodeAsync(MediaSource mediaSource, AudioNodeEmitter emitter);
}
public sealed class AudioGraphSettings {
double MaxPlaybackSpeedFactor { get; set; }
}
public sealed class AudioStateMonitor
public sealed class CreateMediaSourceAudioInputNodeResult
public sealed class MediaSourceAudioInputNode : IAudioInputNode, IAudioInputNode2, IAudioNode, IClosable
public enum MediaSourceAudioInputNodeCreationStatus
}
namespace Windows.Media.Capture {
public sealed class CapturedFrame : IClosable, IContentTypeProvider, IInputStream, IOutputStream, IRandomAccessStream, IRandomAccessStreamWithContentType {
BitmapPropertySet BitmapProperties { get; }
CapturedFrameControlValues ControlValues { get; }
}
public enum KnownVideoProfile {
HdrWithWcgPhoto = 8,
HdrWithWcgVideo = 7,
HighFrameRate = 5,
VariablePhotoSequence = 6,
VideoHdr8 = 9,
}
public sealed class MediaCaptureSettings {
IDirect3DDevice Direct3D11Device { get; }
}
public sealed class MediaCaptureVideoProfile {
IVectorView<MediaFrameSourceInfo> FrameSourceInfos { get; }
IMapView<Guid, object> Properties { get; }
}
public sealed class MediaCaptureVideoProfileMediaDescription {
IMapView<Guid, object> Properties { get; }
string Subtype { get; }
}
}
namespace Windows.Media.Capture.Frames {
public sealed class AudioMediaFrame
public sealed class MediaFrameFormat {
AudioEncodingProperties AudioEncodingProperties { get; }
}
public sealed class MediaFrameReference : IClosable {
AudioMediaFrame AudioMediaFrame { get; }
}
public sealed class MediaFrameSourceController {
AudioDeviceController AudioDeviceController { get; }
}
public sealed class MediaFrameSourceInfo {
string ProfileId { get; }
IVectorView<MediaCaptureVideoProfileMediaDescription> VideoProfileMediaDescription { get; }
}
public enum MediaFrameSourceKind {
Audio = 4,
Image = 5,
}
}
namespace Windows.Media.Core {
public sealed class MediaBindingEventArgs {
void SetDownloadOperation(DownloadOperation downloadOperation);
}
public sealed class MediaSource : IClosable, IMediaPlaybackSource {
DownloadOperation DownloadOperation { get; }
public static MediaSource CreateFromDownloadOperation(DownloadOperation downloadOperation);
}
}
namespace Windows.Media.Devices {
public sealed class VideoDeviceController : IMediaDeviceController {
VideoTemporalDenoisingControl VideoTemporalDenoisingControl { get; }
}
public sealed class VideoTemporalDenoisingControl
public enum VideoTemporalDenoisingMode
}
namespace Windows.Media.DialProtocol {
public sealed class DialReceiverApp {
IAsyncOperation<string> GetUniqueDeviceNameAsync();
}
}
namespace Windows.Media.MediaProperties {
public static class MediaEncodingSubtypes {
public static string P010 { get; }
}
public enum MediaPixelFormat {
P010 = 2,
}
}
namespace Windows.Media.Playback {
public sealed class MediaPlaybackSession {
MediaRotation PlaybackRotation { get; set; }
MediaPlaybackSessionOutputDegradationPolicyState GetOutputDegradationPolicyState();
}
public sealed class MediaPlaybackSessionOutputDegradationPolicyState
public enum MediaPlaybackSessionVideoConstrictionReason
}
namespace Windows.Media.Streaming.Adaptive {
public sealed class AdaptiveMediaSourceDiagnosticAvailableEventArgs {
string ResourceContentType { get; }
IReference<TimeSpan> ResourceDuration { get; }
}
public sealed class AdaptiveMediaSourceDownloadCompletedEventArgs {
string ResourceContentType { get; }
IReference<TimeSpan> ResourceDuration { get; }
}
public sealed class AdaptiveMediaSourceDownloadFailedEventArgs {
string ResourceContentType { get; }
IReference<TimeSpan> ResourceDuration { get; }
}
public sealed class AdaptiveMediaSourceDownloadRequestedEventArgs {
string ResourceContentType { get; }
IReference<TimeSpan> ResourceDuration { get; }
}
}
namespace Windows.Networking.BackgroundTransfer {
public sealed class DownloadOperation : IBackgroundTransferOperation, IBackgroundTransferOperationPriority {
void MakeCurrentInTransferGroup();
}
public sealed class UploadOperation : IBackgroundTransferOperation, IBackgroundTransferOperationPriority {
void MakeCurrentInTransferGroup();
}
}
namespace Windows.Networking.Connectivity {
public sealed class CellularApnContext {
string ProfileName { get; set; }
}
public sealed class ConnectionProfileFilter {
IReference<Guid> PurposeGuid { get; set; }
}
public sealed class WwanConnectionProfileDetails {
WwanNetworkIPKind IPKind { get; }
IVectorView<Guid> PurposeGuids { get; }
}
public enum WwanNetworkIPKind
}
namespace Windows.Networking.NetworkOperators {
public sealed class MobileBroadbandAntennaSar {
public MobileBroadbandAntennaSar(int antennaIndex, int sarBackoffIndex);
}
public sealed class MobileBroadbandModem {
IAsyncOperation<MobileBroadbandPco> TryGetPcoAsync();
}
public sealed class MobileBroadbandModemIsolation
public sealed class MobileBroadbandPco
public sealed class MobileBroadbandPcoDataChangeTriggerDetails
public sealed class TetheringEntitlementCheckTriggerDetails
}
namespace Windows.Networking.Sockets {
public sealed class ServerMessageWebSocket : IClosable
public sealed class ServerMessageWebSocketControl
public sealed class ServerMessageWebSocketInformation
public sealed class ServerStreamWebSocket : IClosable
public sealed class ServerStreamWebSocketInformation
}
namespace Windows.Networking.Vpn {
public sealed class VpnNativeProfile : IVpnProfile {
string IDi { get; set; }
VpnPayloadIdType IdiType { get; set; }
string IDr { get; set; }
VpnPayloadIdType IdrType { get; set; }
bool IsImsConfig { get; set; }
string PCscf { get; }
}
public enum VpnPayloadIdType
}
namespace Windows.Security.Authentication.Identity.Provider {
public enum SecondaryAuthenticationFactorAuthenticationMessage {
CanceledByUser = 22,
CenterHand = 23,
ConnectionRequired = 20,
DeviceUnavaliable = 28,
MoveHandCloser = 24,
MoveHandFarther = 25,
PlaceHandAbove = 26,
RecognitionFailed = 27,
TimeLimitExceeded = 21,
}
}
namespace Windows.Services.Maps {
public sealed class MapRouteDrivingOptions {
IReference<DateTime> DepartureTime { get; set; }
}
}
namespace Windows.System {
public sealed class AppActivationResult
public sealed class AppDiagnosticInfo {
IAsyncOperation<AppActivationResult> ActivateAsync();
}
public sealed class AppResourceGroupInfo {
IAsyncOperation<bool> TryResumeAsync();
IAsyncOperation<bool> TrySuspendAsync();
IAsyncOperation<bool> TryTerminateAsync();
}
public sealed class User {
public static User GetDefault();
}
public enum UserType {
SystemManaged = 4,
}
}
namespace Windows.System.Diagnostics {
public sealed class DiagnosticInvoker {
IAsyncOperationWithProgress<DiagnosticActionResult, DiagnosticActionState> RunDiagnosticActionFromStringAsync(string context);
}
}
namespace Windows.System.Diagnostics.DevicePortal {
public sealed class DevicePortalConnection {
ServerMessageWebSocket GetServerMessageWebSocketForRequest(HttpRequestMessage request);
ServerMessageWebSocket GetServerMessageWebSocketForRequest(HttpRequestMessage request, SocketMessageType messageType, string protocol);
ServerMessageWebSocket GetServerMessageWebSocketForRequest(HttpRequestMessage request, SocketMessageType messageType, string protocol, uint outboundBufferSizeInBytes, uint maxMessageSize, MessageWebSocketReceiveMode receiveMode);
ServerStreamWebSocket GetServerStreamWebSocketForRequest(HttpRequestMessage request);
ServerStreamWebSocket GetServerStreamWebSocketForRequest(HttpRequestMessage request, string protocol, uint outboundBufferSizeInBytes, bool noDelay);
}
public sealed class DevicePortalConnectionRequestReceivedEventArgs {
bool IsWebSocketUpgradeRequest { get; }
IVectorView<string> WebSocketProtocolsRequested { get; }
Deferral GetDeferral();
}
}
namespace Windows.System.RemoteSystems {
public static class KnownRemoteSystemCapabilities {
public static string NearShare { get; }
}
}
namespace Windows.System.UserProfile {
public static class GlobalizationPreferences {
public static GlobalizationPreferencesForUser GetForUser(User user);
}
public sealed class GlobalizationPreferencesForUser
}
namespace Windows.UI.ApplicationSettings {
public sealed class AccountsSettingsPane {
public static IAsyncAction ShowAddAccountForUserAsync(User user);
public static IAsyncAction ShowManageAccountsForUserAsync(User user);
}
public sealed class AccountsSettingsPaneCommandsRequestedEventArgs {
User User { get; }
}
}
namespace Windows.UI.Composition {
public sealed class BounceScalarNaturalMotionAnimation : ScalarNaturalMotionAnimation
public sealed class BounceVector2NaturalMotionAnimation : Vector2NaturalMotionAnimation
public sealed class BounceVector3NaturalMotionAnimation : Vector3NaturalMotionAnimation
public class CompositionLight : CompositionObject {
bool IsEnabled { get; set; }
}
public sealed class Compositor : IClosable {
string Comment { get; set; }
BounceScalarNaturalMotionAnimation CreateBounceScalarAnimation();
BounceVector2NaturalMotionAnimation CreateBounceVector2Animation();
BounceVector3NaturalMotionAnimation CreateBounceVector3Animation();
}
public sealed class PointLight : CompositionLight {
Vector2 AttenuationCutoff { get; set; }
}
public sealed class SpotLight : CompositionLight {
Vector2 AttenuationCutoff { get; set; }
}
}
namespace Windows.UI.Composition.Core {
public sealed class CompositorController : IClosable
}
namespace Windows.UI.Composition.Desktop {
public sealed class HwndTarget : CompositionTarget
}
namespace Windows.UI.Xaml {
public sealed class BringIntoViewOptions {
double HorizontalAlignmentRatio { get; set; }
double HorizontalOffset { get; set; }
double VerticalAlignmentRatio { get; set; }
double VerticalOffset { get; set; }
}
public sealed class BringIntoViewRequestedEventArgs : RoutedEventArgs
public sealed class EffectiveViewportChangedEventArgs
public enum FocusVisualKind {
Reveal = 2,
}
public class FrameworkElement : UIElement {
event TypedEventHandler<FrameworkElement, EffectiveViewportChangedEventArgs> EffectiveViewportChanged;
void InvalidateViewport();
virtual bool IsViewport();
}
public class UIElement : DependencyObject {
public static RoutedEvent BringIntoViewRequestedEvent { get; }
public static RoutedEvent ContextRequestedEvent { get; }
KeyboardAcceleratorPlacementMode KeyboardAcceleratorPlacementMode { get; set; }
public static DependencyProperty KeyboardAcceleratorPlacementModeProperty { get; }
DependencyObject KeyboardAcceleratorToolTipTarget { get; set; }
public static DependencyProperty KeyboardAcceleratorToolTipTargetProperty { get; }
DependencyObject KeyTipTarget { get; set; }
public static DependencyProperty KeyTipTargetProperty { get; }
event TypedEventHandler<UIElement, BringIntoViewRequestedEventArgs> BringIntoViewRequested;
virtual void OnBringIntoViewRequested(BringIntoViewRequestedEventArgs e);
virtual void OnKeyboardAcceleratorInvoked(KeyboardAcceleratorInvokedEventArgs args);
}
}
namespace Windows.UI.Xaml.Automation.Peers {
public sealed class AutoSuggestBoxAutomationPeer : FrameworkElementAutomationPeer, IInvokeProvider {
void Invoke();
}
public class CalendarDatePickerAutomationPeer : FrameworkElementAutomationPeer, IInvokeProvider, IValueProvider
}
namespace Windows.UI.Xaml.Controls {
public class AppBarButton : Button, ICommandBarElement, ICommandBarElement2 {
string KeyboardAcceleratorText { get; set; }
public static DependencyProperty KeyboardAcceleratorTextProperty { get; }
AppBarButtonTemplateSettings TemplateSettings { get; }
}
public class AppBarToggleButton : ToggleButton, ICommandBarElement, ICommandBarElement2 {
string KeyboardAcceleratorText { get; set; }
public static DependencyProperty KeyboardAcceleratorTextProperty { get; }
AppBarToggleButtonTemplateSettings TemplateSettings { get; }
}
public class MenuFlyoutItem : MenuFlyoutItemBase {
string KeyboardAcceleratorText { get; set; }
public static DependencyProperty KeyboardAcceleratorTextProperty { get; }
MenuFlyoutItemTemplateSettings TemplateSettings { get; }
}
public class NavigationView : ContentControl {
string PaneTitle { get; set; }
public static DependencyProperty PaneTitleProperty { get; }
event TypedEventHandler<NavigationView, object> PaneClosed;
event TypedEventHandler<NavigationView, NavigationViewPaneClosingEventArgs> PaneClosing;
event TypedEventHandler<NavigationView, object> PaneOpened;
event TypedEventHandler<NavigationView, object> PaneOpening;
}
public sealed class NavigationViewPaneClosingEventArgs
public sealed class ScrollViewer : ContentControl {
bool IsResponsiveToOcclusions { get; set; }
public static DependencyProperty IsResponsiveToOcclusionsProperty { get; }
}
public enum WebViewPermissionType {
Screen = 5,
}
}
namespace Windows.UI.Xaml.Controls.Maps {
public sealed class MapControl : Control {
string Region { get; set; }
public static DependencyProperty RegionProperty { get; }
}
public class MapElement : DependencyObject {
bool IsEnabled { get; set; }
public static DependencyProperty IsEnabledProperty { get; }
}
}
namespace Windows.UI.Xaml.Controls.Primitives {
public sealed class AppBarButtonTemplateSettings : DependencyObject
public sealed class AppBarToggleButtonTemplateSettings : DependencyObject
public class ListViewItemPresenter : ContentPresenter {
bool DisableTilt { get; set; }
public static DependencyProperty DisableTiltProperty { get; }
}
public sealed class MenuFlyoutItemTemplateSettings : DependencyObject
}
namespace Windows.UI.Xaml.Input {
public sealed class GettingFocusEventArgs : RoutedEventArgs {
bool TryCancel();
bool TrySetNewFocusedElement(DependencyObject element);
}
public sealed class KeyboardAcceleratorInvokedEventArgs {
KeyboardAccelerator KeyboardAccelerator { get; }
}
public enum KeyboardAcceleratorPlacementMode
public sealed class LosingFocusEventArgs : RoutedEventArgs {
bool TryCancel();
bool TrySetNewFocusedElement(DependencyObject element);
}
}

Windows 10 SDK Preview Build 17035 now available

Today, we released a new Windows 10 Preview Build of the SDK to be used in conjunction with Windows 10 Insider Preview (Build 17035 or greater). The Preview SDK Build 17035 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. 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.
Known Issues:
Installation on an operating system that is not a Windows 10 Insider Preview  build is not supported and may fail.
What’s New:
C++/WinRT Now Available:
The C++/WinRT headers and cppwinrt compiler (cppwinrt.exe) are now included in the Windows SDK. The compiler comes in handy if you need to consume a third-party WinRT component or if you need to author your own WinRT components with C++/WinRT. The easiest way to get working with it after installing the Windows Insider Preview SDK is to start the Visual Studio Developer Command Prompt and run the compiler in that environment. Authoring support is currently experimental and subject to change. Stay tuned as we will publish more detailed instructions on how to use the compiler in the coming week. The ModernCPP blog has a deeper dive into the CppWinRT compiler. Please give us feedback by creating an issue at: https://github.com/microsoft/cppwinrt.
Breaking Changes
New MIDL key words. 
As a part of the “modernizing IDL” effort, several new keywords are added to the midlrt tool. These new keywords will cause build breaks if they are encountered in IDL files.
The new keywords are:
event
set
get
partial
unsealed
overridable
protected
importwinmd
If any of these keywords are used as an identifier, it will generate a build failure indicating a syntax error.
The error will be similar to:
1 >d:ossrconecorecomcombaseunittestastatestserverstestserver6idlremreleasetest.idl(12) : error MIDL2025 : [msg]syntax error [context]: expecting a declarator or * near “)”
To fix this, modify the identifier in error to an “@” prefix in front of the identifier. That will cause MIDL to treat the offending element as an identifier instead of a keyword.
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.
The following APIs have been added to the platform since the release of 16299.

namespace Windows.ApplicationModel {
public enum StartupTaskState {
EnabledByPolicy = 4,
}
}
namespace Windows.ApplicationModel.Background {
public sealed class MobileBroadbandPcoDataChangeTrigger : IBackgroundTrigger
}
namespace Windows.ApplicationModel.Calls {
public enum PhoneCallMedia {
AudioAndRealTimeText = 2,
}
public sealed class VoipCallCoordinator {
VoipPhoneCall RequestNewAppInitiatedCall(string context, string contactName, string contactNumber, string serviceName, VoipPhoneCallMedia media);
VoipPhoneCall RequestNewIncomingCall(string context, string contactName, string contactNumber, Uri contactImage, string serviceName, Uri brandingImage, string callDetails, Uri ringtone, VoipPhoneCallMedia media, TimeSpan ringTimeout, string contactRemoteId);
}
public sealed class VoipPhoneCall {
void NotifyCallAccepted(VoipPhoneCallMedia media);
}
}
namespace Windows.ApplicationModel.Chat {
public sealed class RcsManagerChangedEventArgs
public enum RcsManagerChangeType
public sealed class RcsNotificationManager
}
namespace Windows.ApplicationModel.UserActivities {
public sealed class UserActivity {
public UserActivity();
}
public sealed class UserActivityChannel {
public static void DisableAutoSessionCreation();
}
public sealed class UserActivityVisualElements {
string AttributionDisplayText { get; set; }
}
}
namespace Windows.Devices.PointOfService {
public sealed class BarcodeScannerReport {
public BarcodeScannerReport(uint scanDataType, IBuffer scanData, IBuffer scanDataLabel);
}
public sealed class ClaimedBarcodeScanner : IClosable {
void HideVideoPreview();
IAsyncOperation<bool> ShowVideoPreviewAsync();
}
public sealed class UnifiedPosErrorData {
public UnifiedPosErrorData(string message, UnifiedPosErrorSeverity severity, UnifiedPosErrorReason reason, uint extendedReason);
}
}
namespace Windows.Globalization {
public static class ApplicationLanguages {
public static IVectorView<string> GetLanguagesForUser(User user);
}
public sealed class Language {
LanguageLayoutDirection LayoutDirection { get; }
}
public enum LanguageLayoutDirection
}
namespace Windows.Graphics.Imaging {
public enum BitmapPixelFormat {
P010 = 104,
}
}
namespace Windows.Management.Deployment {
public sealed class PackageManager {
IAsyncOperationWithProgress<DeploymentResult, DeploymentProgress> RequestAddPackageAsync(Uri packageUri, IIterable<Uri> dependencyPackageUris, DeploymentOptions deploymentOptions, PackageVolume targetVolume, IIterable<string> optionalPackageFamilyNames, IIterable<Uri> relatedPackageUris, IIterable<Uri> packageUrisToInstall);
}
}
namespace Windows.Media.Audio {
public sealed class AudioGraph : IClosable {
IAsyncOperation<CreateMediaSourceAudioInputNodeResult> CreateMediaSourceAudioInputNodeAsync(MediaSource mediaSource);
IAsyncOperation<CreateMediaSourceAudioInputNodeResult> CreateMediaSourceAudioInputNodeAsync(MediaSource mediaSource, AudioNodeEmitter emitter);
}
public sealed class AudioGraphSettings {
double MaxPlaybackSpeedFactor { get; set; }
}
public sealed class CreateMediaSourceAudioInputNodeResult
public sealed class MediaSourceAudioInputNode : IAudioInputNode, IAudioInputNode2, IAudioNode, IClosable
public enum MediaSourceAudioInputNodeCreationStatus
}
namespace Windows.Media.Capture {
public sealed class CapturedFrame : IClosable, IContentTypeProvider, IInputStream, IOutputStream, IRandomAccessStream, IRandomAccessStreamWithContentType {
BitmapPropertySet BitmapProperties { get; }
CapturedFrameControlValues ControlValues { get; }
}
}
namespace Windows.Media.Capture.Frames {
public sealed class AudioMediaFrame
public sealed class MediaFrameFormat {
AudioEncodingProperties AudioEncodingProperties { get; }
}
public sealed class MediaFrameReference : IClosable {
AudioMediaFrame AudioMediaFrame { get; }
}
public sealed class MediaFrameSourceController {
AudioDeviceController AudioDeviceController { get; }
}
public enum MediaFrameSourceKind {
Audio = 4,
}
}
namespace Windows.Media.Core {
public sealed class MediaBindingEventArgs {
void SetDownloadOperation(DownloadOperation downloadOperation);
}
public sealed class MediaSource : IClosable, IMediaPlaybackSource {
DownloadOperation DownloadOperation { get; }
public static MediaSource CreateFromDownloadOperation(DownloadOperation downloadOperation);
}
}
namespace Windows.Media.Devices {
public sealed class VideoDeviceController : IMediaDeviceController {
VideoTemporalDenoisingControl VideoTemporalDenoisingControl { get; }
}
public sealed class VideoTemporalDenoisingControl
public enum VideoTemporalDenoisingMode
}
namespace Windows.Media.DialProtocol {
public sealed class DialReceiverApp {
IAsyncOperation<string> GetUniqueDeviceNameAsync();
}
}
namespace Windows.Media.MediaProperties {
public static class MediaEncodingSubtypes {
public static string P010 { get; }
}
public enum MediaPixelFormat {
P010 = 2,
}
}
namespace Windows.Media.Playback {
public sealed class MediaPlaybackSession {
MediaRotation PlaybackRotation { get; set; }
MediaPlaybackSessionOutputDegradationPolicyState GetOutputDegradationPolicyState();
}
public sealed class MediaPlaybackSessionOutputDegradationPolicyState
public enum MediaPlaybackSessionVideoConstrictionReason
}
namespace Windows.Media.Streaming.Adaptive {
public sealed class AdaptiveMediaSourceDiagnosticAvailableEventArgs {
string ResourceContentType { get; }
IReference<TimeSpan> ResourceDuration { get; }
}
public sealed class AdaptiveMediaSourceDownloadCompletedEventArgs {
string ResourceContentType { get; }
IReference<TimeSpan> ResourceDuration { get; }
}
public sealed class AdaptiveMediaSourceDownloadFailedEventArgs {
string ResourceContentType { get; }
IReference<TimeSpan> ResourceDuration { get; }
}
public sealed class AdaptiveMediaSourceDownloadRequestedEventArgs {
string ResourceContentType { get; }
IReference<TimeSpan> ResourceDuration { get; }
}
}
namespace Windows.Networking.BackgroundTransfer {
public sealed class DownloadOperation : IBackgroundTransferOperation, IBackgroundTransferOperationPriority {
void MakeCurrentInTransferGroup();
}
public sealed class UploadOperation : IBackgroundTransferOperation, IBackgroundTransferOperationPriority {
void MakeCurrentInTransferGroup();
}
}
namespace Windows.Networking.Connectivity {
public sealed class CellularApnContext {
string ProfileName { get; set; }
}
public sealed class ConnectionProfileFilter {
IReference<Guid> PurposeGuid { get; set; }
}
public sealed class WwanConnectionProfileDetails {
WwanNetworkIPKind IPKind { get; }
IVectorView<Guid> PurposeGuids { get; }
}
public enum WwanNetworkIPKind
}
namespace Windows.Networking.NetworkOperators {
public sealed class MobileBroadbandAntennaSar {
public MobileBroadbandAntennaSar(int antennaIndex, int sarBackoffIndex);
}
public sealed class MobileBroadbandModem {
IAsyncOperation<MobileBroadbandPco> TryGetPcoAsync();
}
public sealed class MobileBroadbandModemIsolation
public sealed class MobileBroadbandPco
public sealed class MobileBroadbandPcoDataChangeTriggerDetails
}
namespace Windows.Networking.Sockets {
public sealed class ServerMessageWebSocket : IClosable
public sealed class ServerMessageWebSocketControl
public sealed class ServerMessageWebSocketInformation
public sealed class ServerStreamWebSocket : IClosable
public sealed class ServerStreamWebSocketInformation
}
namespace Windows.Networking.Vpn {
public sealed class VpnNativeProfile : IVpnProfile {
string IDi { get; set; }
VpnPayloadIdType IdiType { get; set; }
string IDr { get; set; }
VpnPayloadIdType IdrType { get; set; }
bool IsImsConfig { get; set; }
string PCscf { get; }
}
public enum VpnPayloadIdType
}
namespace Windows.Security.Authentication.Identity.Provider {
public enum SecondaryAuthenticationFactorAuthenticationMessage {
CanceledByUser = 22,
CenterHand = 23,
ConnectionRequired = 20,
DeviceUnavaliable = 28,
MoveHandCloser = 24,
MoveHandFarther = 25,
PlaceHandAbove = 26,
RecognitionFailed = 27,
TimeLimitExceeded = 21,
}
}
namespace Windows.Services.Maps {
public sealed class MapRouteDrivingOptions {
IReference<DateTime> DepartureTime { get; set; }
}
}
namespace Windows.System {
public sealed class AppActivationResult
public sealed class AppDiagnosticInfo {
IAsyncOperation<AppActivationResult> ActivateAsync();
}
public sealed class AppResourceGroupInfo {
IAsyncOperation<bool> TryResumeAsync();
IAsyncOperation<bool> TrySuspendAsync();
IAsyncOperation<bool> TryTerminateAsync();
}
}
namespace Windows.System.Diagnostics.DevicePortal {
public sealed class DevicePortalConnection {
ServerMessageWebSocket GetServerMessageWebSocketForRequest(HttpRequestMessage request);
ServerMessageWebSocket GetServerMessageWebSocketForRequest(HttpRequestMessage request, SocketMessageType messageType, string protocol);
ServerMessageWebSocket GetServerMessageWebSocketForRequest(HttpRequestMessage request, SocketMessageType messageType, string protocol, uint outboundBufferSizeInBytes, uint maxMessageSize, MessageWebSocketReceiveMode receiveMode);
ServerStreamWebSocket GetServerStreamWebSocketForRequest(HttpRequestMessage request);
ServerStreamWebSocket GetServerStreamWebSocketForRequest(HttpRequestMessage request, string protocol, uint outboundBufferSizeInBytes, bool noDelay);
}
public sealed class DevicePortalConnectionRequestReceivedEventArgs {
bool IsWebSocketUpgradeRequest { get; }
IVectorView<string> WebSocketProtocolsRequested { get; }
Deferral GetDeferral();
}
}
namespace Windows.System.RemoteSystems {
public static class KnownRemoteSystemCapabilities {
public static string NearShare { get; }
}
}
namespace Windows.System.UserProfile {
public static class GlobalizationPreferences {
public static GlobalizationPreferencesForUser GetForUser(User user);
}
public sealed class GlobalizationPreferencesForUser
}
namespace Windows.UI.Composition {
public class CompositionLight : CompositionObject {
bool IsEnabled { get; set; }
}
public sealed class Compositor : IClosable {
string Comment { get; set; }
}
public sealed class PointLight : CompositionLight {
Vector2 AttenuationCutoff { get; set; }
}
public sealed class SpotLight : CompositionLight {
Vector2 AttenuationCutoff { get; set; }
}
}
namespace Windows.UI.Composition.Core {
public sealed class CompositorController : IClosable
}
namespace Windows.UI.Xaml {
public sealed class BringIntoViewOptions {
IReference<double> HorizontalAlignmentRatio { get; set; }
Point Offset { get; set; }
IReference<double> VerticalAlignmentRatio { get; set; }
}
public sealed class BringIntoViewRequestedEventArgs : RoutedEventArgs
public sealed class EffectiveViewportChangedEventArgs
public class FrameworkElement : UIElement {
event TypedEventHandler<FrameworkElement, EffectiveViewportChangedEventArgs> EffectiveViewportChanged;
void InvalidateViewport();
virtual bool IsViewport();
}
public class UIElement : DependencyObject {
public static RoutedEvent BringIntoViewRequestedEvent { get; }
KeyboardAcceleratorPlacementMode KeyboardAcceleratorPlacementMode { get; set; }
public static DependencyProperty KeyboardAcceleratorPlacementModeProperty { get; }
DependencyObject KeyboardAcceleratorToolTipTarget { get; set; }
public static DependencyProperty KeyboardAcceleratorToolTipTargetProperty { get; }
DependencyObject KeyTipTarget { get; set; }
public static DependencyProperty KeyTipTargetProperty { get; }
event TypedEventHandler<UIElement, BringIntoViewRequestedEventArgs> BringIntoViewRequested;
virtual void OnBringIntoViewRequested(BringIntoViewRequestedEventArgs e);
virtual void OnKeyboardAcceleratorInvoked(KeyboardAcceleratorInvokedEventArgs args);
}
}
namespace Windows.UI.Xaml.Automation.Peers {
public sealed class AutoSuggestBoxAutomationPeer : FrameworkElementAutomationPeer, IInvokeProvider {
void Invoke();
}
}
namespace Windows.UI.Xaml.Controls {
public class AppBarButton : Button, ICommandBarElement, ICommandBarElement2 {
string KeyboardAcceleratorText { get; set; }
public static DependencyProperty KeyboardAcceleratorTextProperty { get; }
AppBarButtonTemplateSettings TemplateSettings { get; }
}
public class AppBarToggleButton : ToggleButton, ICommandBarElement, ICommandBarElement2 {
string KeyboardAcceleratorText { get; set; }
public static DependencyProperty KeyboardAcceleratorTextProperty { get; }
AppBarToggleButtonTemplateSettings TemplateSettings { get; }
}
public class MenuFlyoutItem : MenuFlyoutItemBase {
string KeyboardAcceleratorText { get; set; }
public static DependencyProperty KeyboardAcceleratorTextProperty { get; }
MenuFlyoutItemTemplateSettings TemplateSettings { get; }
}
public class NavigationView : ContentControl {
string PaneTitle { get; set; }
public static DependencyProperty PaneTitleProperty { get; }
event TypedEventHandler<NavigationView, object> PaneClosed;
event TypedEventHandler<NavigationView, NavigationViewPaneClosingEventArgs> PaneClosing;
event TypedEventHandler<NavigationView, object> PaneOpened;
event TypedEventHandler<NavigationView, object> PaneOpening;
}
public sealed class NavigationViewPaneClosingEventArgs
public enum WebViewPermissionType {
Screen = 5,
}
}
namespace Windows.UI.Xaml.Controls.Maps {
public sealed class MapControl : Control {
string Region { get; set; }
public static DependencyProperty RegionProperty { get; }
}
public class MapElement : DependencyObject {
bool IsEnabled { get; set; }
public static DependencyProperty IsEnabledProperty { get; }
}
}
namespace Windows.UI.Xaml.Controls.Primitives {
public sealed class AppBarButtonTemplateSettings : DependencyObject
public sealed class AppBarToggleButtonTemplateSettings : DependencyObject
public sealed class MenuFlyoutItemTemplateSettings : DependencyObject
}
namespace Windows.UI.Xaml.Input {
public sealed class KeyboardAcceleratorInvokedEventArgs {
KeyboardAccelerator KeyboardAccelerator { get; }
}
public enum KeyboardAcceleratorPlacementMode
}

Windows 10 at Microsoft Connect(); 2017

Today, at Microsoft Connect(); we spoke about the work we have been doing to align the concepts and tags that can be shared between Microsoft’s XAML UI systems.  With Windows 10 XAML and Xamarin.Forms, we expose the full and unique capabilities of each platform. Xamarin.Forms focuses on native mobile experiences and exposing the common subset of controls and capabilities needed most by mobile developers. Windows 10 XAML and WPF are optimized for native Windows experiences, including the most rich and demanding experiences optimized for use with mouse, keyboard and touch. We are releasing a preview of Xamarin.Forms which includes additional APIs that advance XAML Standard, including new types names and properties for common elements you will recognize from Windows 10 XAML. I encourage you to check out the APIs at: aka.ms/xamlstandard and provide us with your feedback. We look forward to working with you.
Connect(); Sessions
Tomorrow, on November 16th, you can view two Connect(); 2017 live sessions online to learn more about how to create beautiful and engaging applications. In “Engaging with your customers on any platform using the Microsoft Graph, Activity Feed, and Adaptive Cards” you’ll learn how customers’ lives are made more seamless through Microsoft Graph and Project Rome. Allowing customers to use Windows, Android and iOS together ensures continuity in busy lifestyles. Next, you’ll learn about the benefits Bots and Adaptive Cards bring to that same customer, as well as the businesses they are interacting with. And finally, we’ll show you how unique Windows experiences like Notifications and Timeline run smoothly and are quick and easy to integrate with Adaptive Cards. Be sure to tune in at 11 a.m. PST to learn about all of these rich features.
In our next session, also on November 16 at 12pm PST, we show you how to make your applications more beautiful. “Building amazing applications with the Fluent Design System” helps you transform your applications to be engaging, modern and visually rich. It includes the UX building blocks, guidelines, tools and end-to-end support developers need. You will learn how easy it is to use familiar technologies like XAML and C# to create applications that bring the Fluent Design System to life on Windows 10 across a range of devices and inputs. We will cover the different elements of the design system and how to use the latest controls, animations, effects and other platform capabilities to captivate your customers and maximize their productivity. To learn more about the features, visit: http://developer.microsoft.com/design.
Wrapping up
Last month, we shipped the Windows 10 Fall Creators Update SDK – we created tools and APIs to help developers build applications that will make customers want to engage and re-engage with your application – driving future growth and retention. We are constantly taking in your feedback and making Windows 10 a better place for all developers.

Ad Monetization Tips: Maximizing your App Ad revenues for the holidays using the Microsoft Ad Monetization platform

Did you know that app developers make the most money from Advertising during the holiday season than at any other time of the year? Advertisers spend huge sums promoting their brands through Digital Ad campaigns during this period.  Are you ready to take advantage of this and maximize Ad revenues for your Windows apps this holiday season?
If you haven’t already,  join the tens of thousands of Windows app developers using the Microsoft Advertising SDK and the Microsoft Ad Monetization platform as their Ad monetization solution. Integrating the SDK into your app is straightforward and you should be able to get up and running in just about a day. The Microsoft Ad Monetization platform provides higher fill rates and better eCPMs on a variety of Ad formats including Banner, Native and Interstitial Video Ads. The platform uses Machine Learning to maximize App Ad revenues by selecting the potentially highest yield Ad response on every Ad request. Also, with a single integration to the platform through the SDK, you get access to the growing portfolio of our Ad network partners such as SpotX, Smartclip etc. without making additional code changes when new networks get added.
If you are already using the Microsoft Advertising SDK for Ad monetization, here are the top five tips to maximize Ad revenues for your apps for the holidays.
1. Check the placement of your Ad in your app (link).
Placing the Ad in the right place on the app increases user visibility and click performance of the ad unit, which directly improves monetization. Advertisers are likely to bid higher if the Ad viewability scores are higher for your app. Optimize for viewability and clicks and see your revenue increase.
2. Switch from ‘Manual’ to ‘Automatic’ in Mediation settings for your Ad units.
By choosing the ‘Automatic’ option, you let the Microsoft Ad Monetization platform choose the best mediation settings to maximize the yield for your app. This is done using Machine learning algorithms that take into account several app, user and environment features to pick the optimal order of Ad networks to maximize Ad yield.
3. Use interstitial banner as fallback for video (link).
Video ads are a great way to monetize but when a video ad request is not converted into an impression, a great option is to use Interstitial banner as a fallback and make the most of the opportunity to monetize that ad space.
4. Check your app’s COPPA settings (link).
If your app does not target children under 13, then Targeted Ads are a great way to maximize your Ad monetization potential. Incorrect classification of your app as ‘directed at children under the age of 13’ while in reality it is not, can cause Ad revenues to drop as the Ads returned in this situation are not targeted/relevant. Also, Ad requests for such apps are not sent to Ad networks that are not COPPA compliant, thereby causing Ad fill rates on your app to drop.
5. Consider using high yield Ad formats in your app.
Have you considered adding in support for Ad formats such as Interstitial Video (link) and Native Ads (link) in your app? These richer Ad formats have higher yield than standard banner Ads and can make a considerable difference in your App Ad revenues especially during the holiday season.
Implementing these very simple steps is a great way to ensure you are maximizing the Ad monetization potential for your apps and setting yourself up for higher Ad revenues during this holiday season!

Windows 10 SDK Preview Build 17025

Today, we released a new Windows 10 Preview Build of the SDK to be used in conjunction with Windows 10 Insider Preview (Build 17025 or greater). The Preview SDK Build 17025 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. 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.
Known Issues
Installation on an operating system that is not a Windows 10 Insider Preview build is not supported and may fail.
 Breaking Changes
New MIDL key words.As a part of the “modernizing IDL” effort, several new keywords are added to the midlrt tool. These new keywords will cause build breaks if they are encountered in IDL files.
The new keywords are:
event
set
get
partial
unsealed
overridable
protected
importwinmd
If any of these keywords are used as an identifier, it will generate a build failure indicating a syntax error.
The error will be similar to:
1
>d:ossrconecorecomcombaseunittestastatestserverstestserver6idlremreleasetest.idl
(12) : error MIDL2025 : [msg]syntax error [context]: expecting a declarator or * near “)”
To fix this, modify the identifier in error to an “@” prefix in front of the identifier. That will cause MIDL to treat the offending element as an identifier instead of a keyword.
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.
The following APIs have been added to the platform since the release of 16299.

namespace Windows.ApplicationModel {
public enum StartupTaskState {
EnabledByPolicy = 4,
}
}
namespace Windows.ApplicationModel.Background {
public sealed class MobileBroadbandPcoDataChangeTrigger : IBackgroundTrigger
}
namespace Windows.ApplicationModel.Calls {
public enum PhoneCallMedia {
AudioAndRealTimeText = 2,
}
public sealed class VoipCallCoordinator {
VoipPhoneCall RequestNewAppInitiatedCall(string context, string contactName, string contactNumber, string serviceName, VoipPhoneCallMedia media);
VoipPhoneCall RequestNewIncomingCall(string context, string contactName, string contactNumber, Uri contactImage, string serviceName, Uri brandingImage, string callDetails, Uri ringtone, VoipPhoneCallMedia media, TimeSpan ringTimeout, string contactRemoteId);
}
public sealed class VoipPhoneCall {
void NotifyCallAccepted(VoipPhoneCallMedia media);
}
}
namespace Windows.ApplicationModel.UserActivities {
public sealed class UserActivity {
public UserActivity();
}
public sealed class UserActivityChannel {
public static void DisableAutoSessionCreation();
}
public sealed class UserActivityVisualElements {
string AttributionDisplayText { get; set; }
}
}
namespace Windows.Devices.PointOfService {
public sealed class BarcodeScannerReport {
public BarcodeScannerReport(uint scanDataType, IBuffer scanData, IBuffer scanDataLabel);
}
public sealed class ClaimedBarcodeScanner : IClosable {
void HideVideoPreview();
IAsyncOperation<bool> ShowVideoPreviewAsync();
}
public sealed class UnifiedPosErrorData {
public UnifiedPosErrorData(string message, UnifiedPosErrorSeverity severity, UnifiedPosErrorReason reason, uint extendedReason);
}
}
namespace Windows.Globalization {
public static class ApplicationLanguages {
public static IVectorView<string> GetLanguagesForUser(User user);
}
public sealed class Language {
LanguageLayoutDirection LayoutDirection { get; }
}
public enum LanguageLayoutDirection
}
namespace Windows.Graphics.Imaging {
public enum BitmapPixelFormat {
P010 = 104,
}
}
namespace Windows.Management.Deployment {
public sealed class PackageManager {
IAsyncOperationWithProgress<DeploymentResult, DeploymentProgress> RequestAddPackageAsync(Uri packageUri, IIterable<Uri> dependencyPackageUris, DeploymentOptions deploymentOptions, PackageVolume targetVolume, IIterable<string> optionalPackageFamilyNames, IIterable<Uri> relatedPackageUris, IIterable<Uri> packageUrisToInstall);
}
}
namespace Windows.Media.Capture {
public sealed class CapturedFrame : IClosable, IContentTypeProvider, IInputStream, IOutputStream, IRandomAccessStream, IRandomAccessStreamWithContentType {
BitmapPropertySet BitmapProperties { get; }
CapturedFrameControlValues ControlValues { get; }
}
}
namespace Windows.Media.Core {
public sealed class MediaBindingEventArgs {
void SetDownloadOperation(DownloadOperation downloadOperation);
}
public sealed class MediaSource : IClosable, IMediaPlaybackSource {
DownloadOperation DownloadOperation { get; }
public static MediaSource CreateFromDownloadOperation(DownloadOperation downloadOperation);
}
}
namespace Windows.Media.Devices {
public sealed class VideoDeviceController : IMediaDeviceController {
VideoTemporalDenoisingControl VideoTemporalDenoisingControl { get; }
}
public sealed class VideoTemporalDenoisingControl
public enum VideoTemporalDenoisingMode
}
namespace Windows.Media.MediaProperties {
public static class MediaEncodingSubtypes {
public static string P010 { get; }
}
public enum MediaPixelFormat {
P010 = 2,
}
}
namespace Windows.Networking.BackgroundTransfer {
public sealed class DownloadOperation : IBackgroundTransferOperation, IBackgroundTransferOperationPriority {
void MakeCurrentInTransferGroup();
}
public sealed class UploadOperation : IBackgroundTransferOperation, IBackgroundTransferOperationPriority {
void MakeCurrentInTransferGroup();
}
}
namespace Windows.Networking.Connectivity {
public sealed class CellularApnContext {
string ProfileName { get; set; }
}
public sealed class ConnectionProfileFilter {
IReference<Guid> PurposeGuid { get; set; }
}
public sealed class WwanConnectionProfileDetails {
WwanNetworkIPKind IPKind { get; }
IVectorView<Guid> PurposeGuids { get; }
}
public enum WwanNetworkIPKind
}
namespace Windows.Networking.NetworkOperators {
public sealed class MobileBroadbandAntennaSar {
public MobileBroadbandAntennaSar(int antennaIndex, int sarBackoffIndex);
}
public sealed class MobileBroadbandModem {
IAsyncOperation<MobileBroadbandPco> TryGetPcoAsync();
}
public sealed class MobileBroadbandModemIsolation
public sealed class MobileBroadbandPco
public sealed class MobileBroadbandPcoDataChangeTriggerDetails
}
namespace Windows.Networking.Sockets {
public sealed class ServerMessageWebSocket : IClosable
public sealed class ServerMessageWebSocketControl
public sealed class ServerMessageWebSocketInformation
public sealed class ServerStreamWebSocket : IClosable
public sealed class ServerStreamWebSocketInformation
}
namespace Windows.Security.Authentication.Identity.Provider {
public enum SecondaryAuthenticationFactorAuthenticationMessage {
CanceledByUser = 22,
CenterHand = 23,
ConnectionRequired = 20,
DeviceUnavaliable = 28,
MoveHandCloser = 24,
MoveHandFarther = 25,
PlaceHandAbove = 26,
RecognitionFailed = 27,
TimeLimitExceeded = 21,
}
}
namespace Windows.Services.Maps {
public sealed class MapRouteDrivingOptions {
IReference<DateTime> DepartureTime { get; set; }
}
}
namespace Windows.System {
public sealed class AppActivationResult
public sealed class AppDiagnosticInfo {
IAsyncOperation<AppActivationResult> ActivateAsync();
}
public sealed class AppResourceGroupInfo {
IAsyncOperation<bool> TryResumeAsync();
IAsyncOperation<bool> TrySuspendAsync();
IAsyncOperation<bool> TryTerminateAsync();
}
}
namespace Windows.System.Diagnostics.DevicePortal {
public sealed class DevicePortalConnection {
ServerMessageWebSocket GetServerMessageWebSocketForRequest(HttpRequestMessage request);
ServerMessageWebSocket GetServerMessageWebSocketForRequest(HttpRequestMessage request, SocketMessageType messageType, string protocol);
ServerMessageWebSocket GetServerMessageWebSocketForRequest(HttpRequestMessage request, SocketMessageType messageType, string protocol, uint outboundBufferSizeInBytes, uint maxMessageSize, MessageWebSocketReceiveMode receiveMode);
ServerStreamWebSocket GetServerStreamWebSocketForRequest(HttpRequestMessage request);
ServerStreamWebSocket GetServerStreamWebSocketForRequest(HttpRequestMessage request, string protocol, uint outboundBufferSizeInBytes, bool noDelay);
}
public sealed class DevicePortalConnectionRequestReceivedEventArgs {
bool IsWebSocketUpgradeRequest { get; }
IVectorView<string> WebSocketProtocolsRequested { get; }
Deferral GetDeferral();
}
}
namespace Windows.System.RemoteSystems {
public static class KnownRemoteSystemCapabilities {
public static string NearShare { get; }
}
}
namespace Windows.System.UserProfile {
public static class GlobalizationPreferences {
public static GlobalizationPreferencesForUser GetForUser(User user);
}
public sealed class GlobalizationPreferencesForUser
}
namespace Windows.UI.Composition {
public class CompositionLight : CompositionObject {
bool IsEnabled { get; set; }
}
public sealed class Compositor : IClosable {
string Comment { get; set; }
}
public sealed class PointLight : CompositionLight {
Vector2 AttenuationCutoff { get; set; }
}
public sealed class SpotLight : CompositionLight {
Vector2 AttenuationCutoff { get; set; }
}
}
namespace Windows.UI.Composition.Core {
public sealed class CompositorController : IClosable
}
namespace Windows.UI.Xaml {
public sealed class BringIntoViewOptions {
IReference<double> HorizontalAlignmentRatio { get; set; }
Point Offset { get; set; }
IReference<double> VerticalAlignmentRatio { get; set; }
}
public sealed class BringIntoViewRequestedEventArgs : RoutedEventArgs
public sealed class EffectiveViewportChangedEventArgs
public class FrameworkElement : UIElement {
event TypedEventHandler<FrameworkElement, EffectiveViewportChangedEventArgs> EffectiveViewportChanged;
void InvalidateViewport();
virtual bool IsViewport();
}
public class UIElement : DependencyObject {
public static RoutedEvent BringIntoViewRequestedEvent { get; }
KeyboardAcceleratorPlacementMode KeyboardAcceleratorPlacementMode { get; set; }
public static DependencyProperty KeyboardAcceleratorPlacementModeProperty { get; }
DependencyObject KeyboardAcceleratorToolTipTarget { get; set; }
public static DependencyProperty KeyboardAcceleratorToolTipTargetProperty { get; }
DependencyObject KeyTipTarget { get; set; }
public static DependencyProperty KeyTipTargetProperty { get; }
event TypedEventHandler<UIElement, BringIntoViewRequestedEventArgs> BringIntoViewRequested;
virtual void OnBringIntoViewRequested(BringIntoViewRequestedEventArgs e);
virtual void OnKeyboardAcceleratorInvoked(KeyboardAcceleratorInvokedEventArgs args);
}
}
namespace Windows.UI.Xaml.Automation.Peers {
public sealed class AutoSuggestBoxAutomationPeer : FrameworkElementAutomationPeer, IInvokeProvider {
void Invoke();
}
}
namespace Windows.UI.Xaml.Controls {
public class AppBarButton : Button, ICommandBarElement, ICommandBarElement2 {
string KeyboardAcceleratorText { get; set; }
public static DependencyProperty KeyboardAcceleratorTextProperty { get; }
AppBarButtonTemplateSettings TemplateSettings { get; }
}
public class AppBarToggleButton : ToggleButton, ICommandBarElement, ICommandBarElement2 {
string KeyboardAcceleratorText { get; set; }
public static DependencyProperty KeyboardAcceleratorTextProperty { get; }
AppBarToggleButtonTemplateSettings TemplateSettings { get; }
}
public class MenuFlyoutItem : MenuFlyoutItemBase {
string KeyboardAcceleratorText { get; set; }
public static DependencyProperty KeyboardAcceleratorTextProperty { get; }
MenuFlyoutItemTemplateSettings TemplateSettings { get; }
}
public class NavigationView : ContentControl {
string PaneTitle { get; set; }
public static DependencyProperty PaneTitleProperty { get; }
event TypedEventHandler<NavigationView, object> PaneClosed;
event TypedEventHandler<NavigationView, NavigationViewPaneClosingEventArgs> PaneClosing;
event TypedEventHandler<NavigationView, object> PaneOpened;
event TypedEventHandler<NavigationView, object> PaneOpening;
}
public sealed class NavigationViewPaneClosingEventArgs
public enum WebViewPermissionType {
Screen = 5,
}
}
namespace Windows.UI.Xaml.Controls.Primitives {
public sealed class AppBarButtonTemplateSettings : DependencyObject
public sealed class AppBarToggleButtonTemplateSettings : DependencyObject
public sealed class MenuFlyoutItemTemplateSettings : DependencyObject
}
namespace Windows.UI.Xaml.Input {
public sealed class KeyboardAcceleratorInvokedEventArgs {
KeyboardAccelerator KeyboardAccelerator { get; }
}
public enum KeyboardAcceleratorPlacementMode

}

Windows Developer Day in London – Windows 10 Fall Creators Update SDK Availability

Windows 10 Fall Creators Update provides a developer platform that is designed to inspire the creator in each of us – empowering developers to build applications that change the way people work, play and interact with devices. To truly fulfill this platform promise, I believe that our developer platform needs to be centered around people and their needs.  Technology should adapt and learn how to work with us.
As we showed at Microsoft Build in May, the Windows 10 Fall Creators Update SDK delivers thousands of new capabilities and improvements that support this promise. Today, at Windows Developer Day in London, we’re celebrating three areas that help you, our developer partners:
Create inspiring experiences using the next revolution in technology – Mixed Reality
Modernize applications for the modern workplace
Build and monetize your games and applications
I’m pleased to share with you that you can get started now by downloading the Windows 10 Fall Creators Update SDK. Windows 10 adoption has been incredible – with more than 500 million monthly active devices. We are also seeing devices staying current with the latest updates faster than ever, with the majority of devices running the latest updates in less than 6 months, and over eighty percent of devices running the latest update in less than a year. We can’t wait to see the next wave of innovation enabled by the Windows 10 Fall Creators Update SDK.
Create inspiring experiences using the next revolution in technology – Mixed Reality
The next revolution of computing is Mixed Reality. Microsoft is the only company embracing the entire continuum for mixed reality, from augmented reality to virtual reality and everything in between. Windows 10 was designed from ground up for spatial interactions and the next wave in this journey is Windows Mixed Reality, uniting the digital and real world to create a rich, immersive world. As humans, we interact with space constantly, and Windows Mixed Reality will feel the most natural for users. With HoloLens, we have already demonstrated unrivaled innovation that is transforming industries. Now, our immersive headsets offer unrivaled experiences.
For developers, Windows Mixed Reality offers unique opportunities.
Our unified platform maximizes reuse across platforms and device form factors
Windows Mixed Reality provides reach on the broadest range of devices
Our Microsoft Store provides an unrivaled discovery opportunity
Millions of people come to the Store every day to get an application from our broad catalog
Modernize applications for the modern workplace
With the Windows 10 Fall Creators Update SDK, developers can easily create a new or update an existing application to support modern experiences that employees need, or customers expect.
Modernizing your deployment
The deployment system in Windows 10 has been significantly enhanced to help your users start using your application quicker and easier. This starts with the ability to only download the delta between updates, the updated bits versus the entire package to your end user. In addition, you can break up your application into components to allow streaming install. This will allow your application to work before your user has the entire application installed.
To assist with this modernization, the Fall Creators Update introduces the Windows application packaging project with Visual Studio 2017 version 15.4. This new project allows developers to utilize the app packaging without having to convert your existing installer. Just add the project and you’re done. Once your application is using the modernized installer, you now have access to all the APIs that have been added to the Windows Platform. For example, integration with Windows Hello to assist with security, action center integration to assist with engagement, and cross-device capabilities provided with device relay and activity feed.
Another major investment has been the integration of .NET Standard 2.0 which enables developers to reuse their code across platforms and devices with Visual Studio and integrates the vast array of libraries available in the open source community built on .NET.
Fluent Design System
The Fluent Design System is the evolution of Microsoft’s approach to creating the very best user experiences. Experiences with Fluent Design feel natural on the device you’re using, whether it’s a large screen desktop with keyboard, a laptop or tablet with touch, a mixed reality headset, or one of many other computing form factors. Applications using Fluent Design are optimized for consuming content and are efficient and powerful to use for creating and collaborating, and they help you to achieve more… they are experiences you love to use!
For developers, the Windows 10 Fall Creators Update provides a comprehensive solution for creating applications with Fluent Design in a way that’s simple, powerful and flexible to your needs. It includes UX building blocks, guidelines, samples, tools, and a community to help you build the best experiences for your customers. Here are some highlights:
The Navigation View control provides an easy, consistent home for getting around your app.
Acrylic Material gives you a rich new visual building block that helps you create information hierarchy and greater immersion in your app.
The Reveal Highlight interaction visualization built into many controls helps your experience feel natural to use across as disparate inputs as mouse, pen, touch and gaze.
Connected Animations aid usability by preserving context and increasing engagement, and are so easy to adopt incrementally.
Gesture Actions like swipe build on familiar patterns to help users efficiently and naturally get stuff done.
Learn more about all the different building blocks and features you can take advantage of at: http://developer.microsoft.com/design.
Device Relay and Activity Feed
Microsoft Graph and Project Rome enable new and exciting ways to drive user engagement across apps, devices and platforms. Device relay allows your customers to continue what they’re doing right now, but on a different device and Activity Feed, allows them to pick up an activity they were doing in the past, and continuing it now or sometime in the future.
Helping your customers stay connected to what they need to do right now isn’t as easy as it used to be. People have multiple devices they switch between and they expect them to all work together. Using the Remote Systems and Remote Sessions APIs, you can do truly delightful device relay scenarios to help your customers use the right device for the task.  The Remote Systems APIs enable you to communicate with the user’s devices across Windows, Android and iOS.
With the Activity Feed, you can keep your customers engaged and help them resume what they need to do next. Your customers can’t always finish what they were doing in a task or session in your app, but you can still help them pick up where they left off between devices and experiences by simply adding an activity to the Activity Feed using the UserActivity API.
Build and monetize your games and applications
Lastly, with the Expanded Resources feature in the Fall Xbox One Update, we’ve made another investment in the promise to open Xbox One to UWP game developers who want to build more immersive experiences. Now, developers will automatically have access to 6 exclusive cores, 5 GB of ram and full access to the GPU with DX12! We designed Visual Studio 2017 with game developers in mind! We built a brand-new work-load based installer in Visual Studio 2017, which optimizes the install experience for game developers, so you get everything you need and nothing you don’t.
We recently launched the Xbox Live Creators Program, and this gives anyone the ability to build and publish games for the Xbox One family of devices and Windows 10 PCs. You don’t have to go through concept approval, and the certification is simplified. What’s more is that you are able to leverage select Xbox Live features like stats, leaderboards and cloud saves. We have added more monetization options and tools in Microsoft Store. Interactivity is the future of live streaming and Mixer is our fast and interactive live streaming platform. We have the Mixer SDKs for the major game engines and languages and you can make something cool in less than an hour. Our goal is to create a community of indie game developers. We want to foster open discussions between developers and Windows, and each other. With that in mind, we are bringing back Dream.Build.Play in 2017. The 2017 Challenge has a prize pool over $225,000 (USD), with several categories.
Community and thanks
We were pleased today to have been joined on stage in London by two creative partners building UWPs for unique and innovative experiences.  Black Marble, a UK based developer is building on its history of simplifying law enforcement experiences with a new Mixed Reality UWP to bring MR to courtrooms. Texthelp, another UK based company, showcased a UWP application and Edge extension that helps improve reading and writing comprehension for children with dyslexia and students learning in a second language. Texthelp has also announced a new app, EquatIO, which assists learning in mathematics.
Whether you’re building immersive experiences for Windows Mixed Reality, games, education or business applications, community is crucial to the Windows developer platform. I’d also like to take a moment to thank all developers who are participating Windows Insiders Program and have been using the Fall Creators Update Preview SDK. We value your insight and suggestions, as well as your feedback.
I look forward to seeing what you create with the Windows 10 Fall Creators Update SDK. The Windows Dev Center is open now for submissions to the Microsoft Store! For more details, go to dev.windows.com.

Windows 10 SDK Preview Build 16288 and Mobile Emulator Build 15240 Released

Today, we released a new Windows 10 Preview Build of the SDK and the Mobile Emulator to be used in conjunction with Windows 10 Insider Preview (Build 16288 or greater). The Preview SDK Build 16288 contains bug fixes and under development changes to the API surface area.
The Preview SDK and Mobile Emulator 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.  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.
Breaking Changes
ecmangen.exe removal from the SDK:  Ecmangen.exe will no longer ship with the Windows SDK. Developers who rely on ecmangen for event manifest creation are advised to install the Windows Creators Edition of the SDK to obtain the file. Developers may also use notepad or other XML editor of choice for manifest creation. A schema file is available on MSDN to aid in manifest creation, for tools that support it.
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. 
There have been no changes since build 16278 to the API surface.

Windows Community Standup on September 14th, 2017

Kevin Gallo will be hosting Windows Community Standup on Channel 9 with Seth Juarez again on September 14th, 2017 at 10:30am PST! We’ll be streaming live and answering questions afterwards.
A few of the topics Kevin and Seth will be discussing are the Windows 10 Fall Creators Update SDK, what we’ll have at the Microsoft Ignite conference, modernizing your application and some exciting programming demos.
We learned a lot from our first Windows community standup and will hold monthly Windows community standups to provide additional transparency on what we are building out, and clarity on why we are building them. These stand ups may be tied to an event like Microsoft Build or on Channel 9. We’ll be testing different streaming technologies and interaction models to see what works best. We would love feedback on this as well.
Once again, we can’t wait to see you at 10:30am PST on September 14th, 2017 over at https://channel9.msdn.com.