Category Archives: IoT

Auto Added by WPeMatico

Windows 10 SDK Preview Build 17666 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 17666 or greater). The Preview SDK Build 17666 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.
This build of the Windows SDK will install on Windows 10 Insider Preview and supported Windows operating systems.
Known Issues
Installation on an operating system that is not a Windows 10 Insider Preview build is not supported and may fail.
The contract Windows.System.SystemManagementContract is not included in this release. In order to access the following APIs, please use a previous Windows IoT extension SDK with your project.
This bug will be fixed in a future preview build of the SDK.
The following APIs are affected by this bug:

namespace Windows.Services.Cortana {
public sealed class CortanaSettings
}
namespace Windows.System {
public enum AutoUpdateTimeZoneStatus
public static class DateTimeSettings
public enum PowerState
public static class ProcessLauncher
public sealed class ProcessLauncherOptions
public sealed class ProcessLauncherResult
public enum ShutdownKind
public static class ShutdownManager
public struct SystemManagementContract
public static class TimeZoneSettings
}

API Spot Light:
Check out LauncherOptions.GroupingPreference.

namespace Windows.System {
public sealed class FolderLauncherOptions : ILauncherViewOptions {
ViewGrouping GroupingPreference { get; set; }
}
public sealed class LauncherOptions : ILauncherViewOptions {
ViewGrouping GroupingPreference { get; set; }
}

This release contains the new LauncherOptions.GroupingPreference property to assist your app in tailoring its behavior for Sets. Watch the presentation here.

What’s New:
MC.EXE
We’ve made some important changes to the C/C++ ETW code generation of mc.exe (Message Compiler):
The “-mof” parameter is deprecated. This parameter instructs MC.exe to generate ETW code that is compatible with Windows XP and earlier. Support for the “-mof” parameter will be removed in a future version of mc.exe.
As long as the “-mof” parameter is not used, the generated C/C++ header is now compatible with both kernel-mode and user-mode, regardless of whether “-km” or “-um” was specified on the command line. The header will use the _ETW_KM_ macro to automatically determine whether it is being compiled for kernel-mode or user-mode and will call the appropriate ETW APIs for each mode.
The only remaining difference between “-km” and “-um” is that the EventWrite[EventName] macros generated with “-km” have an Activity ID parameter while the EventWrite[EventName] macros generated with “-um” do not have an Activity ID parameter.
The EventWrite[EventName] macros now default to calling EventWriteTransfer (user mode) or EtwWriteTransfer (kernel mode). Previously, the EventWrite[EventName] macros defaulted to calling EventWrite (user mode) or EtwWrite (kernel mode).
The generated header now supports several customization macros. For example, you can set the MCGEN_EVENTWRITETRANSFER macro if you need the generated macros to call something other than EventWriteTransfer.
The manifest supports new attributes.
Event “name”: non-localized event name.
Event “attributes”: additional key-value metadata for an event such as filename, line number, component name, function name.
Event “tags”: 28-bit value with user-defined semantics (per-event).
Field “tags”: 28-bit value with user-defined semantics (per-field – can be applied to “data” or “struct” elements).

You can now define “provider traits” in the manifest (e.g. provider group). If provider traits are used in the manifest, the EventRegister[ProviderName] macro will automatically register them.
MC will now report an error if a localized message file is missing a string. (Previously MC would silently generate a corrupt message resource.)
MC can now generate Unicode (utf-8 or utf-16) output with the “-cp utf-8” or “-cp utf-16” parameters.
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 17134.

namespace Windows.ApplicationModel {
public sealed class AppInstallerFileInfo
public sealed class LimitedAccessFeatureRequestResult
public static class LimitedAccessFeatures
public enum LimitedAccessFeatureStatus
public sealed class Package {
IAsyncOperation<PackageUpdateAvailabilityResult> CheckUpdateAvailabilityAsync();
AppInstallerFileInfo GetAppInstallerFileInfo();
}
public enum PackageUpdateAvailability
public sealed class PackageUpdateAvailabilityResult
}
namespace Windows.ApplicationModel.Calls {
public sealed class VoipCallCoordinator {
IAsyncOperation<VoipPhoneCallResourceReservationStatus> ReserveCallResourcesAsync();
}
}
namespace Windows.ApplicationModel.Store.Preview.InstallControl {
public enum AppInstallationToastNotificationMode
public sealed class AppInstallItem {
AppInstallationToastNotificationMode CompletedInstallToastNotificationMode { get; set; }
AppInstallationToastNotificationMode InstallInProgressToastNotificationMode { get; set; }
bool PinToDesktopAfterInstall { get; set; }
bool PinToStartAfterInstall { get; set; }
bool PinToTaskbarAfterInstall { get; set; }
}
public sealed class AppInstallManager {
bool CanInstallForAllUsers { get; }
}
public sealed class AppInstallOptions {
AppInstallationToastNotificationMode CompletedInstallToastNotificationMode { get; set; }
bool InstallForAllUsers { get; set; }
AppInstallationToastNotificationMode InstallInProgressToastNotificationMode { get; set; }
bool PinToDesktopAfterInstall { get; set; }
bool PinToStartAfterInstall { get; set; }
bool PinToTaskbarAfterInstall { get; set; }
bool StageButDoNotInstall { get; set; }
}
public sealed class AppUpdateOptions {
bool AutomaticallyDownloadAndInstallUpdateIfFound { get; set; }
}
}
namespace Windows.Devices.Enumeration {
public sealed class DeviceInformationPairing {
public static bool TryRegisterForAllInboundPairingRequestsWithProtectionLevel(DevicePairingKinds pairingKindsSupported, DevicePairingProtectionLevel minProtectionLevel);
}
}
namespace Windows.Devices.Lights {
public sealed class LampArray
public enum LampArrayKind
public sealed class LampInfo
public enum LampPurpose : uint
}
namespace Windows.Devices.Sensors {
public sealed class SimpleOrientationSensor {
public static IAsyncOperation<SimpleOrientationSensor> FromIdAsync(string deviceId);
public static string GetDeviceSelector();
}
}
namespace Windows.Devices.SmartCards {
public static class KnownSmartCardAppletIds
public sealed class SmartCardAppletIdGroup {
string Description { get; set; }
IRandomAccessStreamReference Logo { get; set; }
ValueSet Properties { get; }
bool SecureUserAuthenticationRequired { get; set; }
}
public sealed class SmartCardAppletIdGroupRegistration {
string SmartCardReaderId { get; }
IAsyncAction SetPropertiesAsync(ValueSet props);
}
}
namespace Windows.Devices.WiFi {
public enum WiFiPhyKind {
He = 10,
}
}
namespace Windows.Media.Core {
public sealed class MediaStreamSample {
IDirect3DSurface Direct3D11Surface { get; }
public static MediaStreamSample CreateFromDirect3D11Surface(IDirect3DSurface surface, TimeSpan timestamp);
}
}
namespace Windows.Media.Devices.Core {
public sealed class CameraIntrinsics {
public CameraIntrinsics(Vector2 focalLength, Vector2 principalPoint, Vector3 radialDistortion, Vector2 tangentialDistortion, uint imageWidth, uint imageHeight);
}
}
namespace Windows.Media.Streaming.Adaptive {
public enum AdaptiveMediaSourceResourceType {
MediaSegmentIndex = 5,
}
}
namespace Windows.Security.Authentication.Web.Provider {
public sealed class WebAccountProviderInvalidateCacheOperation : IWebAccountProviderBaseReportOperation, IWebAccountProviderOperation
public enum WebAccountProviderOperationKind {
InvalidateCache = 7,
}
public sealed class WebProviderTokenRequest {
string Id { get; }
}
}
namespace Windows.Security.DataProtection {
public enum UserDataAvailability
public sealed class UserDataAvailabilityStateChangedEventArgs
public sealed class UserDataBufferUnprotectResult
public enum UserDataBufferUnprotectStatus
public sealed class UserDataProtectionManager
public sealed class UserDataStorageItemProtectionInfo
public enum UserDataStorageItemProtectionStatus
}
namespace Windows.Services.Cortana {
public sealed class CortanaActionableInsights
public sealed class CortanaActionableInsightsOptions
}
namespace Windows.Services.Store {
public sealed class StoreContext {
IAsyncOperation<StoreRateAndReviewResult> RequestRateAndReviewAppAsync();
}
public sealed class StoreRateAndReviewResult
public enum StoreRateAndReviewStatus
}
namespace Windows.Storage.Provider {
public enum StorageProviderHydrationPolicyModifier : uint {
AutoDehydrationAllowed = (uint)4,
}
}
namespace Windows.System {
public sealed class FolderLauncherOptions : ILauncherViewOptions {
ViewGrouping GroupingPreference { get; set; }
}
public sealed class LauncherOptions : ILauncherViewOptions {
ViewGrouping GroupingPreference { get; set; }
}
namespace Windows.UI.Composition {
public enum CompositionBatchTypes : uint {
AllAnimations = (uint)5,
InfiniteAnimation = (uint)4,
}
public sealed class CompositionGeometricClip : CompositionClip
public sealed class Compositor : IClosable {
CompositionGeometricClip CreateGeometricClip();
}
}
namespace Windows.UI.Notifications {
public sealed class ScheduledToastNotification {
public ScheduledToastNotification(DateTime deliveryTime);
IAdaptiveCard AdaptiveCard { get; set; }
}
public sealed class ToastNotification {
public ToastNotification();
IAdaptiveCard AdaptiveCard { get; set; }
}
}
namespace Windows.UI.Shell {
public sealed class TaskbarManager {
IAsyncOperation<bool> IsSecondaryTilePinnedAsync(string tileId);
IAsyncOperation<bool> RequestPinSecondaryTileAsync(SecondaryTile secondaryTile);
IAsyncOperation<bool> TryUnpinSecondaryTileAsync(string tileId);
}
}
namespace Windows.UI.StartScreen {
public sealed class StartScreenManager {
IAsyncOperation<bool> ContainsSecondaryTileAsync(string tileId);
IAsyncOperation<bool> TryRemoveSecondaryTileAsync(string tileId);
}
}
namespace Windows.UI.ViewManagement {
public sealed class ApplicationView {
bool IsTabGroupingSupported { get; }
}
public sealed class ApplicationViewTitleBar {
void SetActiveIconStreamAsync(RandomAccessStreamReference activeIcon);
}
public enum ViewGrouping
public sealed class ViewModePreferences {
ViewGrouping GroupingPreference { get; set; }
}
}
namespace Windows.UI.ViewManagement.Core {
public sealed class CoreInputView {
bool TryHide();
bool TryShow();
bool TryShow(CoreInputViewKind type);
}
public enum CoreInputViewKind
}
namespace Windows.UI.Xaml.Controls {
public class NavigationView : ContentControl {
bool IsTopNavigationForcedHidden { get; set; }
NavigationViewOrientation Orientation { get; set; }
UIElement TopNavigationContentOverlayArea { get; set; }
UIElement TopNavigationLeftHeader { get; set; }
UIElement TopNavigationMiddleHeader { get; set; }
UIElement TopNavigationRightHeader { get; set; }
}
public enum NavigationViewOrientation
public sealed class PasswordBox : Control {
bool CanPasteClipboardContent { get; }
public static DependencyProperty CanPasteClipboardContentProperty { get; }
void PasteFromClipboard();
}
public class RichEditBox : Control {
RichEditTextDocument RichEditDocument { get; }
}
public sealed class RichTextBlock : FrameworkElement {
void CopySelectionToClipboard();
}
public class SplitButton : ContentControl
public sealed class SplitButtonClickEventArgs
public enum SplitButtonOrientation
public sealed class TextBlock : FrameworkElement {
void CopySelectionToClipboard();
}
public class TextBox : Control {
bool CanPasteClipboardContent { get; }
public static DependencyProperty CanPasteClipboardContentProperty { get; }
bool CanRedo { get; }
public static DependencyProperty CanRedoProperty { get; }
bool CanUndo { get; }
public static DependencyProperty CanUndoProperty { get; }
void CopySelectionToClipboard();
void CutSelectionToClipboard();
void PasteFromClipboard();
void Redo();
void Undo();
}
public sealed class WebView : FrameworkElement {
event TypedEventHandler<WebView, WebViewWebResourceRequestedEventArgs> WebResourceRequested;
}
public sealed class WebViewWebResourceRequestedEventArgs
}
namespace Windows.UI.Xaml.Controls.Primitives {
public class FlyoutBase : DependencyObject {
FlyoutShowMode ShowMode { get; set; }
public static DependencyProperty ShowModeProperty { get; }
public static DependencyProperty TargetProperty { get; }
void Show(FlyoutShowOptions showOptions);
}
public enum FlyoutPlacementMode {
BottomLeftJustified = 7,
BottomRightJustified = 8,
LeftBottomJustified = 10,
LeftTopJustified = 9,
RightBottomJustified = 12,
RightTopJustified = 11,
TopLeftJustified = 5,
TopRightJustified = 6,
}
public enum FlyoutShowMode
public sealed class FlyoutShowOptions : DependencyObject
}
namespace Windows.UI.Xaml.Hosting {
public sealed class XamlBridge : IClosable
}
namespace Windows.UI.Xaml.Markup {
public sealed class FullXamlMetadataProviderAttribute : Attribute
}

Windows 10 SDK Preview Build 17661 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 17661 or greater). The Preview SDK Build 17661 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.
This build of the Windows SDK will install on Windows 10 Insider Preview and supported Windows operating systems.
Known Issues
The contract Windows.System.SystemManagementContract is not included in this release. In order to access the following APIs, please use a previous Windows IoT extension SDK with your project.
This bug will be fixed in a future preview build of the SDK.
The following APIs are affected by this bug:

namespace Windows.Services.Cortana {
public sealed class CortanaSettings
}
namespace Windows.System {
public enum AutoUpdateTimeZoneStatus
public static class DateTimeSettings
public enum PowerState
public static class ProcessLauncher
public sealed class ProcessLauncherOptions
public sealed class ProcessLauncherResult
public enum ShutdownKind
public static class ShutdownManager
public struct SystemManagementContract
public static class TimeZoneSettings
}

What’s New:
MC.EXE
We’ve made some important changes to the C/C++ ETW code generation of mc.exe (Message Compiler):
The “-mof” parameter is deprecated. This parameter instructs MC.exe to generate ETW code that is compatible with Windows XP and earlier. Support for the “-mof” parameter will be removed in a future version of mc.exe.
As long as the “-mof” parameter is not used, the generated C/C++ header is now compatible with both kernel-mode and user-mode, regardless of whether “-km” or “-um” was specified on the command line. The header will use the _ETW_KM_ macro to automatically determine whether it is being compiled for kernel-mode or user-mode and will call the appropriate ETW APIs for each mode.
The only remaining difference between “-km” and “-um” is that the EventWrite[EventName] macros generated with “-km” have an Activity ID parameter while the EventWrite[EventName] macros generated with “-um” do not have an Activity ID parameter.
The EventWrite[EventName] macros now default to calling EventWriteTransfer (user mode) or EtwWriteTransfer (kernel mode). Previously, the EventWrite[EventName] macros defaulted to calling EventWrite (user mode) or EtwWrite (kernel mode).
The generated header now supports several customization macros. For example, you can set the MCGEN_EVENTWRITETRANSFER macro if you need the generated macros to call something other than EventWriteTransfer.
The manifest supports new attributes.
Event “name”: non-localized event name.
Event “attributes”: additional key-value metadata for an event such as filename, line number, component name, function name.
Event “tags”: 28-bit value with user-defined semantics (per-event).
Field “tags”: 28-bit value with user-defined semantics (per-field – can be applied to “data” or “struct” elements).

You can now define “provider traits” in the manifest (e.g. provider group). If provider traits are used in the manifest, the EventRegister[ProviderName] macro will automatically register them.
MC will now report an error if a localized message file is missing a string. (Previously MC would silently generate a corrupt message resource.)
MC can now generate Unicode (utf-8 or utf-16) output with the “-cp utf-8” or “-cp utf-16” parameters.
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 17134.

namespace Windows.ApplicationModel {
public sealed class AppInstallerFileInfo
public sealed class LimitedAccessFeatureRequestResult
public static class LimitedAccessFeatures
public enum LimitedAccessFeatureStatus
public sealed class Package {
IAsyncOperation&lt;PackageUpdateAvailabilityResult&gt; CheckUpdateAvailabilityAsync();
AppInstallerFileInfo GetAppInstallerFileInfo();
}
public enum PackageUpdateAvailability
public sealed class PackageUpdateAvailabilityResult
}
namespace Windows.ApplicationModel.Calls {
public sealed class VoipCallCoordinator {
IAsyncOperation&lt;VoipPhoneCallResourceReservationStatus&gt; ReserveCallResourcesAsync();
}
}
namespace Windows.ApplicationModel.Store.Preview.InstallControl {
public enum AppInstallationToastNotificationMode
public sealed class AppInstallItem {
AppInstallationToastNotificationMode CompletedInstallToastNotificationMode { get; set; }
AppInstallationToastNotificationMode InstallInProgressToastNotificationMode { get; set; }
bool PinToDesktopAfterInstall { get; set; }
bool PinToStartAfterInstall { get; set; }
bool PinToTaskbarAfterInstall { get; set; }
}
public sealed class AppInstallManager {
bool CanInstallForAllUsers { get; }
}
public sealed class AppInstallOptions {
AppInstallationToastNotificationMode CompletedInstallToastNotificationMode { get; set; }
bool InstallForAllUsers { get; set; }
AppInstallationToastNotificationMode InstallInProgressToastNotificationMode { get; set; }
bool PinToDesktopAfterInstall { get; set; }
bool PinToStartAfterInstall { get; set; }
bool PinToTaskbarAfterInstall { get; set; }
bool StageButDoNotInstall { get; set; }
}
public sealed class AppUpdateOptions {
bool AutomaticallyDownloadAndInstallUpdateIfFound { get; set; }
}
}
namespace Windows.Devices.Enumeration {
public sealed class DeviceInformationPairing {
public static bool TryRegisterForAllInboundPairingRequestsWithProtectionLevel(DevicePairingKinds pairingKindsSupported, DevicePairingProtectionLevel minProtectionLevel);
}
}
namespace Windows.Devices.Lights {
public sealed class LampArray
public enum LampArrayKind
public sealed class LampInfo
public enum LampPurpose : uint
}
namespace Windows.Devices.Sensors {
public sealed class SimpleOrientationSensor {
public static IAsyncOperation&lt;SimpleOrientationSensor&gt; FromIdAsync(string deviceId);
public static string GetDeviceSelector();
}
}
namespace Windows.Devices.SmartCards {
public static class KnownSmartCardAppletIds
public sealed class SmartCardAppletIdGroup {
string Description { get; set; }
IRandomAccessStreamReference Logo { get; set; }
ValueSet Properties { get; }
bool SecureUserAuthenticationRequired { get; set; }
}
public sealed class SmartCardAppletIdGroupRegistration {
string SmartCardReaderId { get; }
IAsyncAction SetPropertiesAsync(ValueSet props);
}
}
namespace Windows.Devices.WiFi {
public enum WiFiPhyKind {
He = 10,
}
}
namespace Windows.Media.Core {
public sealed class MediaStreamSample {
public static MediaStreamSample CreateFromSurface(IDirect3DSurface surface, TimeSpan timestamp);
}
}
namespace Windows.Media.Devices.Core {
public sealed class CameraIntrinsics {
public CameraIntrinsics(Vector2 focalLength, Vector2 principalPoint, Vector3 radialDistortion, Vector2 tangentialDistortion, uint imageWidth, uint imageHeight);
}
}
namespace Windows.Media.Streaming.Adaptive {
public enum AdaptiveMediaSourceResourceType {
MediaSegmentIndex = 5,
}
}
namespace Windows.Security.Authentication.Web.Provider {
public sealed class WebAccountProviderInvalidateCacheOperation : IWebAccountProviderBaseReportOperation, IWebAccountProviderOperation
public enum WebAccountProviderOperationKind {
InvalidateCache = 7,
}
public sealed class WebProviderTokenRequest {
string Id { get; }
}
}
namespace Windows.Security.DataProtection {
public enum UserDataAvailability
public sealed class UserDataAvailabilityStateChangedEventArgs
public sealed class UserDataBufferUnprotectResult
public enum UserDataBufferUnprotectStatus
public sealed class UserDataProtectionManager
public sealed class UserDataStorageItemProtectionInfo
public enum UserDataStorageItemProtectionStatus
}
namespace Windows.Services.Store {
public sealed class StoreContext {
IAsyncOperation&lt;StoreRateAndReviewResult&gt; RequestRateAndReviewAppAsync();
}
public sealed class StoreRateAndReviewResult
public enum StoreRateAndReviewStatus
}
namespace Windows.Storage.Provider {
public enum StorageProviderHydrationPolicyModifier : uint {
AutoDehydrationAllowed = (uint)4,
}
}
namespace Windows.System {
public sealed class LauncherUIOptions {
ViewGrouping GroupingPreference { get; set; }
}
namespace Windows.UI.Composition {
public enum CompositionBatchTypes : uint {
AllAnimations = (uint)5,
InfiniteAnimation = (uint)4,
}
public sealed class CompositionGeometricClip : CompositionClip
public sealed class Compositor : IClosable {
CompositionGeometricClip CreateGeometricClip();
}
}
namespace Windows.UI.Core {
public sealed class SystemNavigationManager {
bool DoesBackButtonReduceViewBounds { get; }
}
}
namespace Windows.UI.Notifications {
public sealed class ScheduledToastNotification {
public ScheduledToastNotification(DateTime deliveryTime);
IAdaptiveCard AdaptiveCard { get; set; }
}
public sealed class ToastNotification {
public ToastNotification();
IAdaptiveCard AdaptiveCard { get; set; }
}
}
namespace Windows.UI.Shell {
public sealed class TaskbarManager {
IAsyncOperation&lt;bool&gt; IsSecondaryTilePinnedAsync(string tileId);
IAsyncOperation&lt;bool&gt; RequestPinSecondaryTileAsync(SecondaryTile secondaryTile);
IAsyncOperation&lt;bool&gt; TryUnpinSecondaryTileAsync(string tileId);
}
}
namespace Windows.UI.StartScreen {
public sealed class StartScreenManager {
IAsyncOperation&lt;bool&gt; ContainsSecondaryTileAsync(string tileId);
IAsyncOperation&lt;bool&gt; TryRemoveSecondaryTileAsync(string tileId);
}
}
namespace Windows.UI.ViewManagement {
public sealed class ApplicationView {
bool IsTabGroupingSupported { get; }
}
public enum ViewGrouping
public sealed class ViewModePreferences {
ViewGrouping GroupingPreference { get; set; }
}
}
namespace Windows.UI.ViewManagement.Core {
public sealed class CoreInputView {
bool TryHide();
bool TryShow();
bool TryShow(CoreInputViewKind type);
}
public enum CoreInputViewKind
}
namespace Windows.UI.Xaml.Controls {
public class NavigationView : ContentControl {
bool IsTopNavigationForcedHidden { get; set; }
NavigationViewOrientation Orientation { get; set; }
UIElement TopNavigationContentOverlayArea { get; set; }
UIElement TopNavigationLeftHeader { get; set; }
UIElement TopNavigationMiddleHeader { get; set; }
UIElement TopNavigationRightHeader { get; set; }
}
public enum NavigationViewOrientation
public sealed class PasswordBox : Control {
bool CanPasteClipboardContent { get; }
public static DependencyProperty CanPasteClipboardContentProperty { get; }
void PasteFromClipboard();
}
public class RichEditBox : Control {
RichEditTextDocument RichEditDocument { get; }
}
public sealed class RichTextBlock : FrameworkElement {
void CopySelectionToClipboard();
}
public class SplitButton : ContentControl
public sealed class SplitButtonClickEventArgs
public enum SplitButtonOrientation
public sealed class TextBlock : FrameworkElement {
void CopySelectionToClipboard();
}
public class TextBox : Control {
bool CanPasteClipboardContent { get; }
public static DependencyProperty CanPasteClipboardContentProperty { get; }
bool CanRedo { get; }
public static DependencyProperty CanRedoProperty { get; }
bool CanUndo { get; }
public static DependencyProperty CanUndoProperty { get; }
void CopySelectionToClipboard();
void CutSelectionToClipboard();
void PasteFromClipboard();
void Redo();
void Undo();
}
public sealed class WebView : FrameworkElement {
event TypedEventHandler&lt;WebView, WebViewWebResourceRequestedEventArgs&gt; WebResourceRequested;
}
public sealed class WebViewWebResourceRequestedEventArgs
}
namespace Windows.UI.Xaml.Controls.Primitives {
public class FlyoutBase : DependencyObject {
FlyoutShowMode ShowMode { get; set; }
public static DependencyProperty ShowModeProperty { get; }
public static DependencyProperty TargetProperty { get; }
void Show(FlyoutShowOptions showOptions);
}
public enum FlyoutPlacementMode {
BottomLeftJustified = 7,
BottomRightJustified = 8,
LeftBottomJustified = 10,
LeftTopJustified = 9,
RightBottomJustified = 12,
RightTopJustified = 11,
TopLeftJustified = 5,
TopRightJustified = 6,
}
public enum FlyoutShowMode
public sealed class FlyoutShowOptions : DependencyObject
}
namespace Windows.UI.Xaml.Hosting {
public sealed class XamlBridge : IClosable
}
namespace Windows.UI.Xaml.Markup {
public sealed class FullXamlMetadataProviderAttribute : Attribute
}

Modernizing applications for our multi-sense, multi device world

Tomorrow at Build 2018, Joe Belfiore and I will have the privilege of sharing with you some of the advancements in Microsoft 365 that are focused on multi-sense and multi-device experiences. Microsoft 365 allows developers to drive more productivity and engagement holistically – in one ecosystem.
We know that building for the future comes with many complex challenges, so we have taken a practical approach to helping you be more productive when updating your existing applications. We focused on four key areas:
Provide great user productivity in our multi-sense, multi-device world
Engage your employees where they work
Deliver pragmatic deployment solutions
Make Windows your primary dev box for all your workload needs across the Intelligent Cloud and Intelligent Edge
Great user productivity in our multi-sense, multi-device world
To support the multi-sense, multi-device world in which we live and work – the foundation of our user experiences needs to grow and adapt. With the Fluent Design System, you can use a cohesive system that spans across a variety of inputs and outputs, while embracing the uniqueness of both.

Figure 1: Fluent Design system is natural on each device
Just like Microsoft rolls out Windows 10 incrementally, most of you do the same inside of your company. If you are deploying to devices running Windows 10 Anniversary Update and later, your applications can start using modern controls right away. You’ll be able to do this through Windows UI Library and it’ll be available via NuGet. Controls in this library are the same as Windows uses in its apps and experiences, and the same that ship in the Windows 10 SDK.
Artificial intelligence is a key part of the modernization journey, and tomorrow I will show a proof of concept of how the Windows AI platform enables Microsoft Word to evaluate machine learning models using the hardware resources available on the Intelligent Edge. Developers can solve problems that are impractical to solve using traditional algorithms, as well as train models for line of business applications.
And, for those of you are updating your existing WPF, Windows Forms, or native Win32 applications incrementally, you can use UWP XAML Islands to incorporate the Fluent Design System in your application, regardless of the app model. Now, all Windows applications can adopt Fluent regardless of the UI stack. This includes popular controls like WebView (EdgeHTML), MediaPlayerElement, SwapChainPanel, modern InkCanvas, etc.
Additionally, you will be able to use a new project from Cognitive Service Labs called Project Ink Analysis. This Artificial Intelligence system is what we use to make sense of messy handwriting and shape recognition. It will allow you to build inking applications on both Windows as well as other platforms, leveraging the incredible AI ink services from the cloud.
Microsoft 365: Engage your employees where they work
With the power of the Microsoft Graph, you can extend your app’s reach beyond the “four corners” of a single device, enhancing users’ experiences across mobile and desktop. It connects app and cloud experiences and provides an opportunity to enrich every application with data, tools, and insights through a single consistent REST API, along with SDKs across several platforms.
This year new API sets, webhooks, and capabilities are expanding across Microsoft Graph. Applications can add Activities to the Windows Timeline (now generally available) and gain cross-device consistency and immediate user context.  Applications can also harness the Microsoft Graph in their own applications, including new open source Microsoft Graph UWP controls and SDKs for Java.  New Open API 3.0 endpoints for Microsoft Graph boost interoperability with different systems.
You can also deliver your app’s content in front of your customers who use Office daily and provide a way for them to interact directly with your solution, with new support for Adaptive Cards.

Figure 2: Adaptive Cards in Outlook let you address issues directly within your inbox.
Adaptive Cards, including new payment cards, support a rich and visual language for embeddable experiences. We’re bringing this format to Microsoft Teams and Outlook, letting you convert complex workflow updates into a two-click streamlined experience right within your inbox, and using the same consistent JSON markup across apps.
We’re also announcing that has new support and tools for developers, including new JavaScript APIs. You can extend Excel calculation with custom function support, as well as integrated support for calling Machine Learning models. New support for Power BI Custom Visuals in Excel lets you add engaging visualizations to your app.
Pragmatic deployment solutions
I am excited announce that .NET Core 3 will help you update your .NET version independently of the system – simplifying enterprise catalog management. You will be able to run multiple instances of .NET Core 3 side-by-side on the same computer, which means you can update Windows Forms, WPF, and UWP applications to a new version of .NET without updating the entire system. This will be released in 2019.
Also, our MSIX application container is a complete containerization solution that inherits all the great features from UWP. And, MSIX now supports Windows 7. Once you update from Windows 7 to Windows 10, your application gets all of the rich containerization features for free.
Make Windows your primary dev box for all your workload needs across the Intelligent Cloud and Intelligent Edge
We’re committed to making Windows the best dev box for projects spanning the Intelligent Cloud and Intelligent Edge. Your feedback has guided us in this mission and we’re excited to announce the following improvements:
The latest update to Notepad includes support for Linux line endings, so it now responds to Linux files and line breaks appropriately.
Hyper-V w/XRDP for Linux now has enhanced session support for Linux VMs through a collaboration with the XRDP open source project. It’s faster, no more mouse delays and tighter integration for easy sharing of drives and the clipboard.
To enable you to use the latest Android emulator side-by-side with Hyper-V VMs, Docker tooling, the HoloLens emulator and more, the Android emulator is now compatible with Hyper-V. A preview for you to explore will be available tomorrow.
Boxstarter and Chocolatey together provide an effective solution to dev machine setup that is repeatable, reliable, and fast. Microsoft will be contributing to the open source projects alongside the rest of the community, and we’ve started a sample script project on GitHub where we can all collaborate on setup scripts for various dev scenarios.

AI Platform for Windows Developers

At Microsoft, we’re making huge investments in AI and Machine Learning across the company. AI capabilities in Office 365 help subscribers with productivity at work, intelligent features in the Photos app for Windows 10 make it easier for people to create videos and search through massive photo collections, and Windows Hello uses AI to recognize your face and get you quickly logged in to your Windows devices. We also use AI to answer your questions when using Bing Search and Cortana, to enable advertisers build deeper connections with customers, and to help security professionals safeguard businesses against modern threats. Microsoft Research continues to drive the state of the art with speech recognition, machine reading and comprehension, computer vision. We’ve scaled AI to tiny devices, and even built AI that can draw!

“Intel’s Movidius VPU technology will deliver increasingly sophisticated AI experiences for the hundreds of millions of Microsoft users worldwide,” said Intel’s Remi El-Ouazzane, Vice President and General Manager of Movidius.
With the next major update to Windows 10, we begin to deliver the advances that have been built into our apps and services as part of the Windows 10 platform. Every developer that builds apps on Windows 10 will be able to use AI to deliver more powerful and engaging experiences.

“AI acceleration on Window 10 PCs is the latest evidence of how artificial intelligence is becoming ubiquitous in our everyday lives,” said Ian Buck, vice president and general manager, Accelerated Computing, at NVIDIA. “NVIDIA is delighted to be partnering with Microsoft to enhance the PC experience for users worldwide.”
The AI platform in Windows 10 enables developers to use pre-trained machine learning models in their Apps on Windows devices. This offers developers a number of benefits:
Low latency, real-time results. Windows can perform AI evaluation tasks using the local processing capabilities of the PC, enabling real-time analysis of large local data such as images and video. Results can be delivered quickly and efficiently for use in performance intensive workloads like game engines, or background tasks such as indexing for search.
Reduced operational costs. Together with Microsoft’s Cloud AI platform, developers can build affordable, end-to-end AI solutions that combine training models in Azure with deployment to Windows devices for evaluation. Significant savings can be realized by reducing or eliminating costs associated with bandwidth due to ingestion of large data sets, such as camera footage or sensor telemetry. Complex workloads can be processed in real-time on the edge, with minimal sample data sent to the cloud for improved training on observations.
Flexibility. Developers can choose to perform AI tasks on device or in the cloud based on what their customers & scenarios need. AI processing can happen on the device if it becomes disconnected, or in scenarios where data cannot be sent to the cloud due to cost, size, policy or customer preference. 

“We’re excited to be collaborating with Microsoft on the Windows ML platform, and helping developers accelerate on-device AI performance on Windows laptops with the Snapdragon 835 AI Engine.” Gary Brotman, Director of Product Management – AI and Machine Learning, Qualcomm Technologies, Inc.
Our ML model evaluation is tuned for efficiency across the diverse silicon that runs Windows. By using instruction set optimizations on modern CPUs, hardware acceleration on GPUs that support DirectX 12, and a driver model for purpose-built AI processors in the future, we deliver performance and efficiency on the broadest range of form factors. With the update, developers can use the AI platform across the Windows device family, including IoT edge devices, HoloLens, 2-in-1s and desktop PCs, workstations, servers and in data centers.

“We’re excited to work with Microsoft on Windows ML as a part of taking advantage of the high-performance capabilities of AMD CPUs and GPUs to bring AI acceleration to Windows 10 PCs.” – Andre Zdravkovic, CVP Software, AMD
Windows supports ONNX, an industry standard format for ML models that is driven by Microsoft, Facebook, and Amazon Web Services, and supported by Windows IHVs including NVIDIA, Intel, Qualcomm and AMD. Data scientists can train and deliver ONNX models for use by Windows developers using Azure Machine Learning Workbench, and coming soon, the Azure Custom Vision Service will also support creating ONNX models for Windows.
We’ve also invested in delivering a great development experience for AI developers on Windows. Starting with Visual Studio Preview 15.7, adding an ONNX file to a UWP project will automatically generate a model interfaces in your project. For prior versions of Visual Studio, developers can use the MLGen tool to generate the code interface and then manually add it to their projects. This capability will be coming soon to Visual Studio tools for AI as well.
For consumers, this is just the beginning! You’ll see more intelligence in every day experiences on Windows devices. Developers can build AI powered apps that help you inspire and communicate in 3d, keep track of tasks and commitments more easily, and listen to music from playlists made just right for you.
You can learn more about our AI journey at Windows Developer Day on March 7, and at //build 2018.

Cortana coming to more devices in 2018 through Devices SDK and new reference designs

2017 was an exciting and productive year for Cortana — from launching the Harman Kardon Invoke intelligent speaker, releasing our Skills Kit, and introducing many new features and capabilities — we continue to grow the Cortana ecosystem to help people get things done across work and life.
To kick-off 2018, we’re making it easier than ever for OEMs and developers to build for Cortana with the Cortana Devices SDK. Just last week, Johnson Controls announced the new Cortana-enabled JCI Glas thermostat, built using the Cortana Devices SDK. We’ve also partnered with industry leaders including Allwinner, Synaptics, TONLY and Qualcomm, to develop reference designs for new Cortana experiences. Sign up today to start building with the Devices SDK and bring Cortana to your very own designs or leverage one of the many reference designs from our Cortana Device Program partners. Additionally, skills created using the Cortana Skills Kit are available on devices built leveraging the SDK, allowing users to seamlessly access their favorite Cortana skills across all devices.
With the support of both existing and new partnerships, we’re continuing to bring Cortana to even more places in the office, at home and on the go. Regardless of the device or context, our goal is to put Cortana everywhere you need assistance, whether that is on your PC, phone, Xbox, mixed reality headsets, intelligent home speakers, thermostats and even more in the future. You’ll continue to see Cortana integrated on your favorite devices and services throughout the year to come.
More on the reference designs from our Device Program partners:
Allwinner
The Allwinner Tech R16 Quad Core IoT solution is now available with Cortana, enabling partners to build voice first IoT devices. The reference designs come with the software integration to equip device partners to deliver high quality Cortana devices reducing cycle time and overhead.
Synaptics
Synaptics is an industry leader in far-field voice processing for consumer IoT, smart speakers, PCs and beyond. Synaptics provides Cortana and Skype certified solutions that greatly reduce development time-to-market and provide a high-quality user experience. Learn more about Synaptics designs here.
TONLY
TONLY has collaborated closely with Microsoft to design, develop and manufacture Cortana devices that optimize Skype audio requirements.
Qualcomm
Qualcomm and Microsoft are excited to enable partners to build Mesh Networking and Smart Audio products that bring Cortana value to customers, through reference designs on the Qualcomm® Smart Audio Platform and Qualcomm® Mesh Networking Platform. Learn more about Qualcomm designs here.

Windows 10 IoT enables the complete IoT lifecycle

Microsoft recently announced the public preview of the Azure IoT Hub Device Provisioning Service. The Device Provisioning Service is a new service that works with Azure IoT Hub to enable “zero-touch” device provisioning to an IoT hub. Using this service, devices can be created with a common image, and when booted for the first time in the field, the Device Provisioning Service will automatically provide the device specific provisioning information, including the correct Azure IoT Hub location and identity where the device can be further provisioned and customized using Azure device management. The Device Provisioning Service is designed to support very high device volumes, enabling the provisioning of millions of devices in a secure and scalable manner, automating what historically has been a complex and time-consuming process for customers handling high volumes of connected IoT devices. You can read more about the Azure IoT Device Provisioning Service in this blog post and on the Device provisioning documentation center.
The Azure IoT Hub Device Provisioning Service aligns well with our Windows 10 IoT device scenarios and features. Along with the Device Provisioning Service public preview, we are also providing sources for a complete Windows 10 IoT client that implements a client service with the required functionality to quickly enable a device to use the Device Provisioning Service, requiring only minimal configuration information. When used in conjunction with the existing Windows 10 IoT Azure Device Management client, it forms a complete device provisioning and management solution, covering the complete lifecycle needs of an IoT device.
The Windows 10 IoT device provisioning client is provided as a source that can be used as is, to provide basic scenario functionality, or customized if desired. The implementation as provided requires a supported Windows 10 IoT TPM to be present, which is used to securely store device identification and authentication information. The same configuration information is used by both the device provisioning and the device management client samples, enabling both to work in concert with one another.
The Windows 10 IoT client for the Azure IoT Device Provisioning Service is located at https://github.com/ms-iot/iot-azure-dps-client, including a step by step process for building and using the client service with the Azure IoT Device Provisioning Service public preview.
Microsoft is committed to providing the most productive and secure IoT platforms and services enabling you to quickly and confidently bring your IoT solution to market. Visit the Microsoft IoT page for more information on Microsoft’s complete IoT solution offerings!