diff --git a/README.md b/README.md
index ca448d5ac4..d65ba29934 100644
--- a/README.md
+++ b/README.md
@@ -141,58 +141,61 @@ For additional Windows samples, see [Windows on GitHub](http://microsoft.github.
diff --git a/Samples/3DPrinting/README.md b/Samples/3DPrinting/README.md
new file mode 100644
index 0000000000..c77f7cc563
--- /dev/null
+++ b/Samples/3DPrinting/README.md
@@ -0,0 +1,36 @@
+
+
+# 3D Printing Sample
+
+This sample demonstrates a number of different tasks associated with 3D printing and editing the 3MF file type.
+
+- Create a 3MF printing package programmatically
+- Create a .3mf file from XML data
+- Load a 3MF printing package from a .3mf file
+- Repair a model to make it printable
+- Save a 3MF printing package to a .3mf file
+- Launch the 3D print dialog
+- Open a file in the 3D Builder app
+
+System requirements
+-------------------
+
+*Client*: Windows 10 Version 1511
+
+*Phone*: Windows 10 Version 1511
+
+Build the sample
+----------------
+
+1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
+2. Start Microsoft Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
+3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio 2015 Solution (.sln) file.
+4. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
+
+Run the sample
+--------------
+
+To debug the app and then run it, press F5 or use **Debug** \> **Start Debugging**. To run the app without debugging, press Ctrl+F5 or use **Debug** \> **Start Without Debugging**.
diff --git a/Samples/3DPrinting/cs/3DPrinting.csproj b/Samples/3DPrinting/cs/3DPrinting.csproj
new file mode 100644
index 0000000000..df1bba9fd5
--- /dev/null
+++ b/Samples/3DPrinting/cs/3DPrinting.csproj
@@ -0,0 +1,181 @@
+
+
+
+
+ Debug
+ x86
+ {027AB530-3B0B-4D5D-91C6-3DBEE2492E7B}
+ AppContainerExe
+ Properties
+ SDKTemplate
+ SDKTemplate
+ en-US
+ UAP
+ 10.0.10586.0
+ 10.0.10586.0
+ 14
+ 512
+ {A5A43C5B-DE2A-4C0C-9213-0A381AF9435A};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
+
+
+ true
+ bin\x86\Debug\
+ DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP
+ ;2008
+ full
+ x86
+ false
+ prompt
+ true
+
+
+ bin\x86\Release\
+ TRACE;NETFX_CORE;WINDOWS_UWP
+ true
+ ;2008
+ pdbonly
+ x86
+ false
+ prompt
+ true
+ true
+
+
+ true
+ bin\ARM\Debug\
+ DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP
+ ;2008
+ full
+ ARM
+ false
+ prompt
+ true
+
+
+ bin\ARM\Release\
+ TRACE;NETFX_CORE;WINDOWS_UWP
+ true
+ ;2008
+ pdbonly
+ ARM
+ false
+ prompt
+ true
+ true
+
+
+ true
+ bin\x64\Debug\
+ DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP
+ ;2008
+ full
+ x64
+ false
+ prompt
+ true
+
+
+ bin\x64\Release\
+ TRACE;NETFX_CORE;WINDOWS_UWP
+ true
+ ;2008
+ pdbonly
+ x64
+ false
+ prompt
+ true
+ true
+
+
+
+
+
+
+
+ App.xaml.cs
+ App.xaml
+
+
+ MainPage.xaml.cs
+ MainPage.xaml
+
+
+ Properties\AssemblyInfo.cs
+
+
+
+ Scenario1_Print.xaml
+
+
+ Scenario2_Launch.xaml
+
+
+
+
+ Designer
+
+
+
+
+ App.xaml
+ MSBuild:Compile
+ Designer
+
+
+ MainPage.xaml
+ MSBuild:Compile
+ Designer
+
+
+ MSBuild:Compile
+ Designer
+
+
+ MSBuild:Compile
+ Designer
+
+
+ Styles\Styles.xaml
+ MSBuild:Compile
+ Designer
+
+
+
+
+ Properties\Default.rd.xml
+
+
+ Assets\microsoft-sdk.png
+
+
+ Assets\smallTile-sdk.png
+
+
+ Assets\splash-sdk.png
+
+
+ Assets\squareTile-sdk.png
+
+
+ Assets\storeLogo-sdk.png
+
+
+ Assets\tile-sdk.png
+
+
+ Assets\windows-sdk.png
+
+
+
+
+ 14.0
+
+
+
+
\ No newline at end of file
diff --git a/Samples/3DPrinting/cs/3DPrinting.sln b/Samples/3DPrinting/cs/3DPrinting.sln
new file mode 100644
index 0000000000..cd32484126
--- /dev/null
+++ b/Samples/3DPrinting/cs/3DPrinting.sln
@@ -0,0 +1,40 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 14
+VisualStudioVersion = 14.0.24720.0
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "3DPrinting", "3DPrinting.csproj", "{027AB530-3B0B-4D5D-91C6-3DBEE2492E7B}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|ARM = Debug|ARM
+ Debug|x64 = Debug|x64
+ Debug|x86 = Debug|x86
+ Release|ARM = Release|ARM
+ Release|x64 = Release|x64
+ Release|x86 = Release|x86
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {027AB530-3B0B-4D5D-91C6-3DBEE2492E7B}.Debug|ARM.ActiveCfg = Debug|ARM
+ {027AB530-3B0B-4D5D-91C6-3DBEE2492E7B}.Debug|ARM.Build.0 = Debug|ARM
+ {027AB530-3B0B-4D5D-91C6-3DBEE2492E7B}.Debug|ARM.Deploy.0 = Debug|ARM
+ {027AB530-3B0B-4D5D-91C6-3DBEE2492E7B}.Debug|x64.ActiveCfg = Debug|x64
+ {027AB530-3B0B-4D5D-91C6-3DBEE2492E7B}.Debug|x64.Build.0 = Debug|x64
+ {027AB530-3B0B-4D5D-91C6-3DBEE2492E7B}.Debug|x64.Deploy.0 = Debug|x64
+ {027AB530-3B0B-4D5D-91C6-3DBEE2492E7B}.Debug|x86.ActiveCfg = Debug|x86
+ {027AB530-3B0B-4D5D-91C6-3DBEE2492E7B}.Debug|x86.Build.0 = Debug|x86
+ {027AB530-3B0B-4D5D-91C6-3DBEE2492E7B}.Debug|x86.Deploy.0 = Debug|x86
+ {027AB530-3B0B-4D5D-91C6-3DBEE2492E7B}.Release|ARM.ActiveCfg = Release|ARM
+ {027AB530-3B0B-4D5D-91C6-3DBEE2492E7B}.Release|ARM.Build.0 = Release|ARM
+ {027AB530-3B0B-4D5D-91C6-3DBEE2492E7B}.Release|ARM.Deploy.0 = Release|ARM
+ {027AB530-3B0B-4D5D-91C6-3DBEE2492E7B}.Release|x64.ActiveCfg = Release|x64
+ {027AB530-3B0B-4D5D-91C6-3DBEE2492E7B}.Release|x64.Build.0 = Release|x64
+ {027AB530-3B0B-4D5D-91C6-3DBEE2492E7B}.Release|x64.Deploy.0 = Release|x64
+ {027AB530-3B0B-4D5D-91C6-3DBEE2492E7B}.Release|x86.ActiveCfg = Release|x86
+ {027AB530-3B0B-4D5D-91C6-3DBEE2492E7B}.Release|x86.Build.0 = Release|x86
+ {027AB530-3B0B-4D5D-91C6-3DBEE2492E7B}.Release|x86.Deploy.0 = Release|x86
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/Samples/3DPrinting/cs/Assets/msLogo.png b/Samples/3DPrinting/cs/Assets/msLogo.png
new file mode 100644
index 0000000000..e10a05e16e
Binary files /dev/null and b/Samples/3DPrinting/cs/Assets/msLogo.png differ
diff --git a/Samples/3DPrinting/cs/Package.appxmanifest b/Samples/3DPrinting/cs/Package.appxmanifest
new file mode 100644
index 0000000000..c52f1eb1e7
--- /dev/null
+++ b/Samples/3DPrinting/cs/Package.appxmanifest
@@ -0,0 +1,39 @@
+
+
+
+
+
+ 3D Printing C# Sample
+ Microsoft Corporation
+ Assets\StoreLogo-sdk.png
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Samples/3DPrinting/cs/SampleConfiguration.cs b/Samples/3DPrinting/cs/SampleConfiguration.cs
new file mode 100644
index 0000000000..26ea4d7e21
--- /dev/null
+++ b/Samples/3DPrinting/cs/SampleConfiguration.cs
@@ -0,0 +1,34 @@
+//*********************************************************
+//
+// Copyright (c) Microsoft. All rights reserved.
+// This code is licensed under the MIT License (MIT).
+// THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF
+// ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY
+// IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR
+// PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.
+//
+//*********************************************************
+
+using System;
+using System.Collections.Generic;
+using Windows.UI.Xaml.Controls;
+
+namespace SDKTemplate
+{
+ public partial class MainPage : Page
+ {
+ public const string FEATURE_NAME = "3D Printing C# Sample";
+
+ List scenarios = new List
+ {
+ new Scenario() { Title="Print a model", ClassType=typeof(Scenario1_Print)},
+ new Scenario() { Title="Launch 3D Builder", ClassType=typeof(Scenario2_Launch)},
+ };
+ }
+
+ public class Scenario
+ {
+ public string Title { get; set; }
+ public Type ClassType { get; set; }
+ }
+}
diff --git a/Samples/3DPrinting/cs/Scenario1_Print.xaml b/Samples/3DPrinting/cs/Scenario1_Print.xaml
new file mode 100644
index 0000000000..9f17181ed2
--- /dev/null
+++ b/Samples/3DPrinting/cs/Scenario1_Print.xaml
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+
+
+ First, create or load a model.
+
+
+
+
+
+
+
+ Once you have a model, you can save it or print it.
+
+
+
+
+
+
+
+
+
diff --git a/Samples/3DPrinting/cs/Scenario1_Print.xaml.cs b/Samples/3DPrinting/cs/Scenario1_Print.xaml.cs
new file mode 100644
index 0000000000..8fa720bd71
--- /dev/null
+++ b/Samples/3DPrinting/cs/Scenario1_Print.xaml.cs
@@ -0,0 +1,488 @@
+//*********************************************************
+//
+// Copyright (c) Microsoft. All rights reserved.
+// This code is licensed under the MIT License (MIT).
+// THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF
+// ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY
+// IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR
+// PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.
+//
+//*********************************************************
+
+using System;
+using System.IO;
+using System.Linq;
+using System.Numerics;
+using System.Runtime.InteropServices.WindowsRuntime;
+using System.Threading.Tasks;
+using System.Xml.Linq;
+using Windows.Foundation;
+using Windows.Graphics.Printing3D;
+using Windows.Security.Cryptography;
+using Windows.Storage;
+using Windows.Storage.Pickers;
+using Windows.Storage.Streams;
+using Windows.UI;
+using Windows.UI.Xaml.Controls;
+
+namespace SDKTemplate
+{
+ public sealed partial class Scenario1_Print : Page
+ {
+ private MainPage rootPage = MainPage.Current;
+ private Printing3D3MFPackage currentPackage;
+
+ public Scenario1_Print()
+ {
+ this.InitializeComponent();
+ }
+
+ private void EnablePackageOperationButtons()
+ {
+ SaveButton.IsEnabled = true;
+ PrintButton.IsEnabled = true;
+ }
+
+ private async void CreateProgrammatically()
+ {
+ currentPackage = await CreatePackageAsync();
+ rootPage.NotifyUser("Package created programmatically.", NotifyType.StatusMessage);
+ EnablePackageOperationButtons();
+ }
+
+ #region Creating a package programmatically
+ private static async Task CreatePackageAsync()
+ {
+ var package = new Printing3D3MFPackage();
+
+ var model = new Printing3DModel();
+ model.Unit = Printing3DModelUnit.Millimeter;
+
+ // Material indices start at 1. (0 is reserved.)
+
+ #region Color materials
+ // Create color materials.
+ var colorMaterial1 = new Printing3DColorMaterial { Color = Color.FromArgb(255, 20, 20, 90) };
+ var colorMaterial2 = new Printing3DColorMaterial { Color = Color.FromArgb(255, 250, 120, 45) };
+
+ // Create a color group with id 1 and add the colors to it.
+ var colorGroup = new Printing3DColorMaterialGroup(1);
+ colorGroup.Colors.Add(colorMaterial1);
+ colorGroup.Colors.Add(colorMaterial2);
+
+ // add the color group to the model.
+ model.Material.ColorGroups.Add(colorGroup);
+ #endregion
+
+ #region Base materials
+ // Create base materials.
+ var material1 = new Printing3DBaseMaterial { Name = Printing3DBaseMaterial.Pla, Color = colorMaterial1 };
+ var material2 = new Printing3DBaseMaterial { Name = Printing3DBaseMaterial.Abs, Color = colorMaterial2 };
+
+ // Create a new base material group with id 2 and add the base materials to it.
+ var materialGroup = new Printing3DBaseMaterialGroup(2);
+ materialGroup.Bases.Add(material1);
+ materialGroup.Bases.Add(material2);
+
+ // Add the material group to the base groups on the model.
+ model.Material.BaseGroups.Add(materialGroup);
+
+ #endregion
+
+ #region Composite material groups
+ // Create a composite material group with id 3.
+ var compositeMaterialGroup = new Printing3DCompositeMaterialGroup(3);
+
+ // Add it to the metadata.
+ // The key is the string "composite" followed by the composite material group id.
+ // The value specifies that the default base material group to use is id 2.
+ model.Metadata.Add("composite3", "2");
+
+ // The indices are relative to the material indices that will be set by SetMaterialIndicesAsync.
+ compositeMaterialGroup.MaterialIndices.Add(0);
+ compositeMaterialGroup.MaterialIndices.Add(1);
+
+ // Create new composite materials.
+ // The Values correspond to the materials added in the compositeMaterialGroup,
+ // and they must sum to 1.0.
+
+ // Composite material 1 consists of 20% material1 and 80% material2.
+ var compositeMaterial1 = new Printing3DCompositeMaterial();
+ compositeMaterial1.Values.Add(0.2);
+ compositeMaterial1.Values.Add(0.8);
+
+ // Composite material 2 consists of 50% material1 and 50% material2.
+ var compositeMaterial2 = new Printing3DCompositeMaterial();
+ compositeMaterial2.Values.Add(0.5);
+ compositeMaterial2.Values.Add(0.5);
+
+ // Composite material 3 consists of 80% material1 and 20% material2.
+ var compositeMaterial3 = new Printing3DCompositeMaterial();
+ compositeMaterial3.Values.Add(0.8);
+ compositeMaterial3.Values.Add(0.2);
+
+ // Composite material 4 consists of 40% material1 and 60% material2.
+ var compositeMaterial4 = new Printing3DCompositeMaterial();
+ compositeMaterial4.Values.Add(0.4);
+ compositeMaterial4.Values.Add(0.6);
+
+ // Add the composite materials to the compositeMaterialGroup.
+ compositeMaterialGroup.Composites.Add(compositeMaterial1);
+ compositeMaterialGroup.Composites.Add(compositeMaterial2);
+ compositeMaterialGroup.Composites.Add(compositeMaterial3);
+ compositeMaterialGroup.Composites.Add(compositeMaterial4);
+
+ // Add the composite material group to the model.
+ model.Material.CompositeGroups.Add(compositeMaterialGroup);
+ #endregion
+
+ #region Texture resource
+ Printing3DTextureResource textureResource = new Printing3DTextureResource();
+
+ // Set the texture path in the 3MF file.
+ textureResource.Name = "/3D/Texture/msLogo.png";
+
+ // Load the texture from our package.
+ StorageFile file = await StorageFile.GetFileFromApplicationUriAsync(new Uri("ms-appx:///Assets/msLogo.png"));
+ textureResource.TextureData = await file.OpenReadAsync();
+
+ package.Textures.Add(textureResource);
+ #endregion
+
+ #region 2D texture materials
+ // Create a texture material group with id 4.
+ var texture2CoordGroup = new Printing3DTexture2CoordMaterialGroup(4);
+
+ // Add it to the metadata.
+ // The key is the string "tex" followed by the texture material group id.
+ // The value is the name of the texture resource (see textureResource.Name above).
+ model.Metadata.Add("tex4", "/3D/Texture/msLogo.png");
+
+ // Create texture materials and add them to the group.
+ texture2CoordGroup.Texture2Coords.Add(new Printing3DTexture2CoordMaterial() { U = 0.0, V = 1.0 });
+ texture2CoordGroup.Texture2Coords.Add(new Printing3DTexture2CoordMaterial() { U = 1.0, V = 1.0 });
+ texture2CoordGroup.Texture2Coords.Add(new Printing3DTexture2CoordMaterial() { U = 0.0, V = 0.0 });
+ texture2CoordGroup.Texture2Coords.Add(new Printing3DTexture2CoordMaterial() { U = 1.0, V = 0.0 });
+
+ // Add the texture material group to the model.
+ model.Material.Texture2CoordGroups.Add(texture2CoordGroup);
+ #endregion
+
+ #region Mesh
+ var mesh = new Printing3DMesh();
+
+ await SetVerticesAsync(mesh);
+ await SetTriangleIndicesAsync(mesh);
+ await SetMaterialIndicesAsync(mesh);
+
+ // add the mesh to the model
+ model.Meshes.Add(mesh);
+ #endregion
+
+ #region Adding a component to the build
+ // create a component.
+ Printing3DComponent component = new Printing3DComponent();
+
+ // assign the mesh to the component's mesh.
+ component.Mesh = mesh;
+
+ // Add the component to the model. A model can have multiple components.
+ model.Components.Add(component);
+
+ // The world matrix for the component is the identity matrix.
+ var componentWithMatrix = new Printing3DComponentWithMatrix() { Component = component, Matrix = Matrix4x4.Identity };
+
+ // add the componentWithMatrix to the build.
+ // The build defines what is to be printed from within a Printing3DModel.
+ // If you leave a mesh out of the build, it will not be printed.
+ model.Build.Components.Add(componentWithMatrix);
+ #endregion
+
+ // Save the completed model into a package.
+ await package.SaveModelToPackageAsync(model);
+
+ // fix any textures in the model file.
+ await FixTextureContentTypeAsync(package);
+
+ return package;
+ }
+
+ #region Mesh buffers
+
+ // Create the buffer for vertex positions.
+ private static async Task SetVerticesAsync(Printing3DMesh mesh)
+ {
+ Printing3DBufferDescription description;
+ description.Format = Printing3DBufferFormat.Printing3DDouble;
+ description.Stride = 3; // Three values per vertex (x, y, z).
+ mesh.VertexPositionsDescription = description;
+ mesh.VertexCount = 8; // 8 total vertices in the cube
+
+ // Create the buffer into which we will write the vertex positions.
+ mesh.CreateVertexPositions(sizeof(double) * description.Stride * mesh.VertexCount);
+
+ // Fill the buffer with vertex coordinates.
+ using (var stream = mesh.GetVertexPositions().AsStream())
+ {
+ double[] vertices =
+ {
+ 0, 0, 0,
+ 10, 0, 0,
+ 0, 10, 0,
+ 10, 10, 0,
+ 0, 0, 10,
+ 10, 0, 10,
+ 0, 10, 10,
+ 10, 10, 10,
+ };
+
+ byte[] vertexData = vertices.SelectMany(v => BitConverter.GetBytes(v)).ToArray();
+
+ await stream.WriteAsync(vertexData, 0, vertexData.Length);
+ }
+ }
+
+ // Create the buffer for triangle indices.
+ private static async Task SetTriangleIndicesAsync(Printing3DMesh mesh)
+ {
+ Printing3DBufferDescription description;
+ description.Format = Printing3DBufferFormat.Printing3DUInt;
+ description.Stride = 3; // 3 vertex position indices per triangle
+ mesh.IndexCount = 12; // 12 triangles in the cube
+ mesh.TriangleIndicesDescription = description;
+
+ // Create the buffer into which we will write the triangle vertex indices.
+ mesh.CreateTriangleIndices(sizeof(UInt32) * description.Stride * mesh.IndexCount);
+
+ // Fill the buffer with triangle vertex indices.
+ using (var stream = mesh.GetTriangleIndices().AsStream())
+ {
+ UInt32[] indices =
+ {
+ 1, 0, 2,
+ 1, 2, 3,
+ 0, 1, 5,
+ 0, 5, 4,
+ 1, 3, 7,
+ 1, 7, 5,
+ 2, 7, 3,
+ 2, 6, 7,
+ 0, 6, 2,
+ 0, 4, 6,
+ 6, 5, 7,
+ 4, 5, 6,
+ };
+
+ var vertexData = indices.SelectMany(v => BitConverter.GetBytes(v)).ToArray();
+ await stream.WriteAsync(vertexData, 0, vertexData.Length);
+ }
+ }
+
+ // Create the buffer for material indices.
+ private static async Task SetMaterialIndicesAsync(Printing3DMesh mesh)
+ {
+ Printing3DBufferDescription description;
+ description.Format = Printing3DBufferFormat.Printing3DUInt;
+ description.Stride = 4; // 4 indices per material
+ mesh.IndexCount = 12; // 12 triangles with material
+ mesh.TriangleMaterialIndicesDescription = description;
+
+ // Create the buffer into which we will write the material indices.
+ mesh.CreateTriangleMaterialIndices(sizeof(UInt32) * description.Stride * mesh.IndexCount);
+
+ // Fill the buffer with material indices.
+ using (var stream = mesh.GetTriangleMaterialIndices().AsStream())
+ {
+ UInt32[] indices =
+ {
+ // base materials:
+ // in the BaseMaterialGroup, the BaseMaterial with id=0 will be applied to these triangle vertices
+ 2, 0, 0, 0,
+ 2, 0, 0, 0,
+ // color materials:
+ // in the ColorMaterialGroup, the ColorMaterials with these ids will be applied to these triangle vertices
+ 1, 1, 1, 1,
+ 1, 1, 1, 1,
+ 1, 0, 0, 0,
+ 1, 0, 0, 0,
+ 1, 0, 1, 0,
+ 1, 0, 1, 1,
+ // composite materials:
+ // in the CompositeMaterialGroup, the CompositeMaterial with id=0 will be applied to these triangles
+ 3,0,0,0,
+ 3,0,0,0,
+ // texture materials:
+ // in the Texture2CoordMaterialGroup, each texture coordinate is mapped to the appropriate vertex on these
+ // two adjacent triangle faces, so that the square face they create displays the original rectangular image
+ 4, 0, 3, 1,
+ 4, 2, 3, 0,
+ };
+
+ var vertexData = indices.SelectMany(v => BitConverter.GetBytes(v)).ToArray();
+ await stream.WriteAsync(vertexData, 0, vertexData.Length);
+ }
+ }
+ #endregion
+ #endregion
+
+ private async void CreateFromXml()
+ {
+ var rawXml = "" +
+ "" +
+ "" +
+ "";
+ currentPackage = await CreatePackageFromXmlAsync(rawXml);
+ rootPage.NotifyUser("Package created from XML.", NotifyType.StatusMessage);
+ EnablePackageOperationButtons();
+ }
+
+ private async Task CreatePackageFromXmlAsync(string rawXml)
+ {
+ var package = new Printing3D3MFPackage();
+ package.ModelPart = await StringToStreamAsync(rawXml);
+ return package;
+ }
+
+ private async void LoadPackageFromFile()
+ {
+ rootPage.NotifyUser("", NotifyType.StatusMessage);
+
+ FileOpenPicker openPicker = new FileOpenPicker();
+ openPicker.ViewMode = PickerViewMode.Thumbnail;
+ openPicker.SuggestedStartLocation = PickerLocationId.DocumentsLibrary;
+ openPicker.FileTypeFilter.Add(".3mf");
+
+ StorageFile file = await openPicker.PickSingleFileAsync();
+ if (file == null)
+ {
+ return;
+ }
+
+ rootPage.NotifyUser("Loading...", NotifyType.StatusMessage);
+
+ var package = new Printing3D3MFPackage();
+ using (var fileStream = await file.OpenAsync(FileAccessMode.Read))
+ {
+ var model = await package.LoadModelFromPackageAsync(fileStream);
+ rootPage.NotifyUser("Repairing...", NotifyType.StatusMessage);
+ await model.RepairAsync();
+ rootPage.NotifyUser("Saving...", NotifyType.StatusMessage);
+ await package.SaveModelToPackageAsync(model);
+ await FixTextureContentTypeAsync(package);
+ }
+
+ currentPackage = package;
+ rootPage.NotifyUser("Package created from file.", NotifyType.StatusMessage);
+ EnablePackageOperationButtons();
+ }
+
+ private async void SavePackage()
+ {
+ rootPage.NotifyUser("", NotifyType.StatusMessage);
+
+ FileSavePicker savePicker = new FileSavePicker();
+ savePicker.DefaultFileExtension = ".3mf";
+ savePicker.SuggestedStartLocation = PickerLocationId.DocumentsLibrary;
+ savePicker.FileTypeChoices.Add("3MF File", new[] { ".3mf" });
+ var storageFile = await savePicker.PickSaveFileAsync();
+ if (storageFile == null)
+ {
+ return;
+ }
+
+ using (var stream = await currentPackage.SaveAsync())
+ {
+ stream.Seek(0);
+ using (var dataReader = new DataReader(stream))
+ {
+ await dataReader.LoadAsync((uint)stream.Size);
+ var buffer = dataReader.ReadBuffer((uint)stream.Size);
+ await FileIO.WriteBufferAsync(storageFile, buffer);
+ }
+ }
+
+ rootPage.NotifyUser("Saved", NotifyType.StatusMessage);
+ }
+
+ private async void PrintPackage()
+ {
+ // register the PrintTaskRequest callback to get the Printing3D3MFPackage.
+ var print3DManager = Print3DManager.GetForCurrentView();
+ print3DManager.TaskRequested += OnTaskRequested;
+
+ // show the PrintUI
+ var result = await Print3DManager.ShowPrintUIAsync();
+
+ // Remove the print task request after the dialog is complete.
+ print3DManager.TaskRequested -= OnTaskRequested;
+ }
+
+ private void OnTaskRequested(Print3DManager sender, Print3DTaskRequestedEventArgs args)
+ {
+ Print3DTask print3dTask = args.Request.CreateTask("Sample Model", "Default", (e) => e.SetSource(currentPackage));
+
+ // Optional notification handlers.
+ print3dTask.Completed += (s, e) => rootPage.NotifyUser("Printing completed.", NotifyType.StatusMessage);
+ print3dTask.Submitting += (s, e) => rootPage.NotifyUser("Submitting print job.", NotifyType.StatusMessage);
+ }
+
+ private static async Task StringToStreamAsync(string data)
+ {
+ var buffer = CryptographicBuffer.ConvertStringToBinary(data, BinaryStringEncoding.Utf8);
+ var outputStream = new InMemoryRandomAccessStream();
+ await outputStream.WriteAsync(buffer);
+ return outputStream;
+ }
+
+ // Works around an issue with Printing3DTextureResource: It does not respect
+ // the TextureData.ContentType property, and always encodes the content type as "".
+ // Repair the XML by assuming that a path that ends with ".png" is a PNG file,
+ // and everything else is a JPG file.
+ private static async Task FixTextureContentTypeAsync(Printing3D3MFPackage package)
+ {
+ XDocument xmldoc = XDocument.Load(package.ModelPart.AsStreamForRead());
+ XNamespace ns3d = "http://schemas.microsoft.com/3dmanufacturing/material/2015/02";
+
+ foreach (var node in xmldoc.Descendants(ns3d + "texture2d"))
+ {
+ var contentType = node.Attribute("contenttype");
+ if (contentType.Value == "")
+ {
+ if (node.Attribute("path").Value.EndsWith(".png"))
+ {
+ contentType.Value = "image/png";
+ }
+ else
+ {
+ contentType.Value = "image/jpg";
+ }
+ }
+ }
+
+ // Update the model with the repaired XML.
+ package.ModelPart = await StringToStreamAsync(xmldoc.ToString());
+ }
+ }
+}
\ No newline at end of file
diff --git a/Samples/3DPrinting/cs/Scenario2_Launch.xaml b/Samples/3DPrinting/cs/Scenario2_Launch.xaml
new file mode 100644
index 0000000000..222bbcb7b5
--- /dev/null
+++ b/Samples/3DPrinting/cs/Scenario2_Launch.xaml
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Samples/3DPrinting/cs/Scenario2_Launch.xaml.cs b/Samples/3DPrinting/cs/Scenario2_Launch.xaml.cs
new file mode 100644
index 0000000000..1263a96832
--- /dev/null
+++ b/Samples/3DPrinting/cs/Scenario2_Launch.xaml.cs
@@ -0,0 +1,73 @@
+//*********************************************************
+//
+// Copyright (c) Microsoft. All rights reserved.
+// This code is licensed under the MIT License (MIT).
+// THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF
+// ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY
+// IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR
+// PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.
+//
+//*********************************************************
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using Windows.ApplicationModel;
+using Windows.Foundation;
+using Windows.Storage;
+using Windows.Storage.Pickers;
+using Windows.System;
+using Windows.UI.Xaml.Controls;
+
+namespace SDKTemplate
+{
+ public sealed partial class Scenario2_Launch : Page
+ {
+ private static string PackageFamilyName3DBuilder = "Microsoft.3DBuilder_8wekyb3d8bbwe";
+
+ private MainPage rootPage = MainPage.Current;
+
+ public Scenario2_Launch()
+ {
+ this.InitializeComponent();
+ }
+
+ private async void CheckIf3DBuilderIsInstalled()
+ {
+ IReadOnlyList handlers = await Launcher.FindFileHandlersAsync(".3mf");
+ if (handlers.Any(info => info.PackageFamilyName == PackageFamilyName3DBuilder))
+ {
+ rootPage.NotifyUser("3D Builder is installed", NotifyType.StatusMessage);
+ }
+ else
+ {
+ rootPage.NotifyUser("3D Builder is not installed", NotifyType.ErrorMessage);
+ }
+ }
+
+ private async void LaunchFileIn3DBuilder()
+ {
+ FileOpenPicker openPicker = new FileOpenPicker();
+ openPicker.ViewMode = PickerViewMode.Thumbnail;
+ openPicker.SuggestedStartLocation = PickerLocationId.DocumentsLibrary;
+ openPicker.FileTypeFilter.Add(".3mf");
+ openPicker.FileTypeFilter.Add(".stl");
+
+ StorageFile file = await openPicker.PickSingleFileAsync();
+ if (file == null)
+ {
+ return;
+ }
+
+ var options = new LauncherOptions();
+
+ // The target application is 3D Builder.
+ options.TargetApplicationPackageFamilyName = PackageFamilyName3DBuilder;
+
+ // If 3D Builder is not installed, redirect the user to the Store to install it.
+ options.FallbackUri = new Uri("ms-windows-store:PDP?PFN=" + PackageFamilyName3DBuilder);
+
+ await Launcher.LaunchFileAsync(file, options);
+ }
+ }
+}
diff --git a/Samples/3DPrinting/cs/project.json b/Samples/3DPrinting/cs/project.json
new file mode 100644
index 0000000000..e3b2dba25f
--- /dev/null
+++ b/Samples/3DPrinting/cs/project.json
@@ -0,0 +1,19 @@
+{
+ "dependencies": {
+ "Microsoft.ApplicationInsights": "1.0.0",
+ "Microsoft.ApplicationInsights.PersistenceChannel": "1.0.0",
+ "Microsoft.ApplicationInsights.WindowsApps": "1.0.0",
+ "Microsoft.NETCore.UniversalWindowsPlatform": "5.0.0"
+ },
+ "frameworks": {
+ "uap10.0": {}
+ },
+ "runtimes": {
+ "win10-arm": {},
+ "win10-arm-aot": {},
+ "win10-x86": {},
+ "win10-x86-aot": {},
+ "win10-x64": {},
+ "win10-x64-aot": {}
+ }
+}
\ No newline at end of file
diff --git a/Samples/Accelerometer/cpp/Package.appxmanifest b/Samples/Accelerometer/cpp/Package.appxmanifest
index b337dcb817..4a9bcc69df 100644
--- a/Samples/Accelerometer/cpp/Package.appxmanifest
+++ b/Samples/Accelerometer/cpp/Package.appxmanifest
@@ -20,7 +20,7 @@
-
+
diff --git a/Samples/Accelerometer/cs/Package.appxmanifest b/Samples/Accelerometer/cs/Package.appxmanifest
index 87dad868ec..e3b0ab40b7 100644
--- a/Samples/Accelerometer/cs/Package.appxmanifest
+++ b/Samples/Accelerometer/cs/Package.appxmanifest
@@ -21,7 +21,7 @@
-
+
diff --git a/Samples/Accelerometer/js/Package.appxmanifest b/Samples/Accelerometer/js/Package.appxmanifest
index 71f2f2e7e2..a7867df8b2 100644
--- a/Samples/Accelerometer/js/Package.appxmanifest
+++ b/Samples/Accelerometer/js/Package.appxmanifest
@@ -19,7 +19,7 @@
-
+
diff --git a/Samples/Accelerometer/vb/Package.appxmanifest b/Samples/Accelerometer/vb/Package.appxmanifest
index 349522f9d7..70fdc0331d 100644
--- a/Samples/Accelerometer/vb/Package.appxmanifest
+++ b/Samples/Accelerometer/vb/Package.appxmanifest
@@ -21,7 +21,7 @@
-
+
diff --git a/Samples/ActivitySensor/cpp/Package.appxmanifest b/Samples/ActivitySensor/cpp/Package.appxmanifest
index 527320fa6a..c63ee8a649 100644
--- a/Samples/ActivitySensor/cpp/Package.appxmanifest
+++ b/Samples/ActivitySensor/cpp/Package.appxmanifest
@@ -20,7 +20,7 @@
-
+
diff --git a/Samples/ActivitySensor/cs/Package.appxmanifest b/Samples/ActivitySensor/cs/Package.appxmanifest
index 6ead913fac..3266296a66 100644
--- a/Samples/ActivitySensor/cs/Package.appxmanifest
+++ b/Samples/ActivitySensor/cs/Package.appxmanifest
@@ -20,7 +20,7 @@
-
+
diff --git a/Samples/ActivitySensor/vb/Package.appxmanifest b/Samples/ActivitySensor/vb/Package.appxmanifest
index 2fbc0bb2c8..992cdc9a01 100644
--- a/Samples/ActivitySensor/vb/Package.appxmanifest
+++ b/Samples/ActivitySensor/vb/Package.appxmanifest
@@ -20,7 +20,7 @@
-
+
diff --git a/Samples/AdaptiveStreaming/cs/Package.appxmanifest b/Samples/AdaptiveStreaming/cs/Package.appxmanifest
index 900aa6971f..c02551589f 100644
--- a/Samples/AdaptiveStreaming/cs/Package.appxmanifest
+++ b/Samples/AdaptiveStreaming/cs/Package.appxmanifest
@@ -8,7 +8,7 @@
Assets\StoreLogo-sdk.png
-
+
diff --git a/Samples/AdaptiveStreaming/js/package.appxmanifest b/Samples/AdaptiveStreaming/js/package.appxmanifest
index a8879bab16..5a5535ce19 100644
--- a/Samples/AdaptiveStreaming/js/package.appxmanifest
+++ b/Samples/AdaptiveStreaming/js/package.appxmanifest
@@ -19,7 +19,7 @@
-
+
diff --git a/Samples/AdaptiveStreaming/vb/Package.appxmanifest b/Samples/AdaptiveStreaming/vb/Package.appxmanifest
index b84f28c06a..51f63ee7b1 100644
--- a/Samples/AdaptiveStreaming/vb/Package.appxmanifest
+++ b/Samples/AdaptiveStreaming/vb/Package.appxmanifest
@@ -8,7 +8,7 @@
Assets\StoreLogo-sdk.png
-
+
diff --git a/Samples/AdvancedCasting/cs/Package.appxmanifest b/Samples/AdvancedCasting/cs/Package.appxmanifest
index 57f90fd121..be82231f18 100644
--- a/Samples/AdvancedCasting/cs/Package.appxmanifest
+++ b/Samples/AdvancedCasting/cs/Package.appxmanifest
@@ -8,7 +8,7 @@
Assets\StoreLogo-sdk.png
-
+
diff --git a/Samples/AdvancedCasting/vb/Package.appxmanifest b/Samples/AdvancedCasting/vb/Package.appxmanifest
index 6096d37a91..737597fec4 100644
--- a/Samples/AdvancedCasting/vb/Package.appxmanifest
+++ b/Samples/AdvancedCasting/vb/Package.appxmanifest
@@ -8,7 +8,7 @@
Assets\StoreLogo-sdk.png
-
+
diff --git a/Samples/Advertising/cpp/Package.appxmanifest b/Samples/Advertising/cpp/Package.appxmanifest
index 452cff1453..1844f4fcfe 100644
--- a/Samples/Advertising/cpp/Package.appxmanifest
+++ b/Samples/Advertising/cpp/Package.appxmanifest
@@ -13,7 +13,7 @@
Assets\StoreLogo-sdk.png
-
+
diff --git a/Samples/Advertising/cs/Package.appxmanifest b/Samples/Advertising/cs/Package.appxmanifest
index 87f0cebf5e..619d9078c8 100644
--- a/Samples/Advertising/cs/Package.appxmanifest
+++ b/Samples/Advertising/cs/Package.appxmanifest
@@ -13,7 +13,7 @@
Assets\StoreLogo-sdk.png
-
+
diff --git a/Samples/Advertising/js/package.appxmanifest b/Samples/Advertising/js/package.appxmanifest
index 1eedccf71c..38545e6bba 100644
--- a/Samples/Advertising/js/package.appxmanifest
+++ b/Samples/Advertising/js/package.appxmanifest
@@ -13,7 +13,7 @@
images\storelogo-sdk.png
-
+
diff --git a/Samples/AllJoyn/ConsumerExperiences/cs/Package.appxmanifest b/Samples/AllJoyn/ConsumerExperiences/cs/Package.appxmanifest
index aed24af52f..e3056c06a2 100644
--- a/Samples/AllJoyn/ConsumerExperiences/cs/Package.appxmanifest
+++ b/Samples/AllJoyn/ConsumerExperiences/cs/Package.appxmanifest
@@ -21,7 +21,7 @@
-
+
diff --git a/Samples/AllJoyn/ConsumerExperiences/js/package.appxmanifest b/Samples/AllJoyn/ConsumerExperiences/js/package.appxmanifest
index 13233aabef..db640b5f46 100644
--- a/Samples/AllJoyn/ConsumerExperiences/js/package.appxmanifest
+++ b/Samples/AllJoyn/ConsumerExperiences/js/package.appxmanifest
@@ -19,7 +19,7 @@
-
+
diff --git a/Samples/AllJoyn/ProducerExperiences/cs/Package.appxmanifest b/Samples/AllJoyn/ProducerExperiences/cs/Package.appxmanifest
index b05fc60b3a..1bb80be8be 100644
--- a/Samples/AllJoyn/ProducerExperiences/cs/Package.appxmanifest
+++ b/Samples/AllJoyn/ProducerExperiences/cs/Package.appxmanifest
@@ -21,7 +21,7 @@
-
+
diff --git a/Samples/AllJoyn/ProducerExperiences/js/package.appxmanifest b/Samples/AllJoyn/ProducerExperiences/js/package.appxmanifest
index 71c279d57b..490dea10c5 100644
--- a/Samples/AllJoyn/ProducerExperiences/js/package.appxmanifest
+++ b/Samples/AllJoyn/ProducerExperiences/js/package.appxmanifest
@@ -8,7 +8,7 @@
images\storelogo-sdk.png
-
+
diff --git a/Samples/Altimeter/cpp/Package.appxmanifest b/Samples/Altimeter/cpp/Package.appxmanifest
index 2ad8399612..aa76ca4d1c 100644
--- a/Samples/Altimeter/cpp/Package.appxmanifest
+++ b/Samples/Altimeter/cpp/Package.appxmanifest
@@ -20,7 +20,7 @@
-
+
diff --git a/Samples/Altimeter/cs/Package.appxmanifest b/Samples/Altimeter/cs/Package.appxmanifest
index 7470a24c4e..f422e90b45 100644
--- a/Samples/Altimeter/cs/Package.appxmanifest
+++ b/Samples/Altimeter/cs/Package.appxmanifest
@@ -21,7 +21,7 @@
-
+
diff --git a/Samples/Altimeter/js/Package.appxmanifest b/Samples/Altimeter/js/Package.appxmanifest
index 3c174ee34e..0c9da73cc2 100644
--- a/Samples/Altimeter/js/Package.appxmanifest
+++ b/Samples/Altimeter/js/Package.appxmanifest
@@ -19,7 +19,7 @@
-
+
diff --git a/Samples/Altimeter/vb/Package.appxmanifest b/Samples/Altimeter/vb/Package.appxmanifest
index 9da5e5d0be..467929f850 100644
--- a/Samples/Altimeter/vb/Package.appxmanifest
+++ b/Samples/Altimeter/vb/Package.appxmanifest
@@ -21,7 +21,7 @@
-
+
diff --git a/Samples/AnimationLibrary/js/Package.appxmanifest b/Samples/AnimationLibrary/js/Package.appxmanifest
index 355fa79c7e..8f044af438 100644
--- a/Samples/AnimationLibrary/js/Package.appxmanifest
+++ b/Samples/AnimationLibrary/js/Package.appxmanifest
@@ -19,7 +19,7 @@
-
+
diff --git a/Samples/AnimationMetrics/cpp/AnimationMetrics.vcxproj b/Samples/AnimationMetrics/cpp/AnimationMetrics.vcxproj
index 9c7e5e94e8..119f0c714c 100644
--- a/Samples/AnimationMetrics/cpp/AnimationMetrics.vcxproj
+++ b/Samples/AnimationMetrics/cpp/AnimationMetrics.vcxproj
@@ -80,27 +80,27 @@
-
+
-
+
-
+
-
+
-
+
-
+
@@ -216,7 +216,7 @@
-
+
diff --git a/Samples/AnimationMetrics/cpp/Package.appxmanifest b/Samples/AnimationMetrics/cpp/Package.appxmanifest
index 7d71a0b554..3caa373959 100644
--- a/Samples/AnimationMetrics/cpp/Package.appxmanifest
+++ b/Samples/AnimationMetrics/cpp/Package.appxmanifest
@@ -20,7 +20,7 @@
-
+
diff --git a/Samples/AnimationMetrics/cs/AnimationMetrics.csproj b/Samples/AnimationMetrics/cs/AnimationMetrics.csproj
index f2cc2103f9..b1050c4482 100644
--- a/Samples/AnimationMetrics/cs/AnimationMetrics.csproj
+++ b/Samples/AnimationMetrics/cs/AnimationMetrics.csproj
@@ -161,7 +161,7 @@
-
+ Microsoft Desktop Extension SDK for Universal App Platform
diff --git a/Samples/AnimationMetrics/cs/Package.appxmanifest b/Samples/AnimationMetrics/cs/Package.appxmanifest
index 8b62c5e6a2..7a7ab062b3 100644
--- a/Samples/AnimationMetrics/cs/Package.appxmanifest
+++ b/Samples/AnimationMetrics/cs/Package.appxmanifest
@@ -21,7 +21,7 @@
-
+
diff --git a/Samples/AnimationMetrics/js/Package.appxmanifest b/Samples/AnimationMetrics/js/Package.appxmanifest
index 03ecfad867..8c02ddc210 100644
--- a/Samples/AnimationMetrics/js/Package.appxmanifest
+++ b/Samples/AnimationMetrics/js/Package.appxmanifest
@@ -19,7 +19,7 @@
-
+
diff --git a/Samples/AnimationMetrics/vb/AnimationMetrics.vbproj b/Samples/AnimationMetrics/vb/AnimationMetrics.vbproj
index 93c5331a43..b712544025 100644
--- a/Samples/AnimationMetrics/vb/AnimationMetrics.vbproj
+++ b/Samples/AnimationMetrics/vb/AnimationMetrics.vbproj
@@ -165,7 +165,7 @@
-
+ Microsoft Desktop Extension SDK for Universal App Platform
diff --git a/Samples/AnimationMetrics/vb/Package.appxmanifest b/Samples/AnimationMetrics/vb/Package.appxmanifest
index 4f3b93b0ae..8f061bf6f3 100644
--- a/Samples/AnimationMetrics/vb/Package.appxmanifest
+++ b/Samples/AnimationMetrics/vb/Package.appxmanifest
@@ -21,7 +21,7 @@
-
+
diff --git a/Samples/AppServices/cs/AppServicesClient/Package.appxmanifest b/Samples/AppServices/cs/AppServicesClient/Package.appxmanifest
index cd0ae1504e..5228ff79d5 100644
--- a/Samples/AppServices/cs/AppServicesClient/Package.appxmanifest
+++ b/Samples/AppServices/cs/AppServicesClient/Package.appxmanifest
@@ -21,7 +21,7 @@
-
+
diff --git a/Samples/AppServices/cs/AppServicesProvider/Package.appxmanifest b/Samples/AppServices/cs/AppServicesProvider/Package.appxmanifest
index cd375ccc1b..e9809cba5e 100644
--- a/Samples/AppServices/cs/AppServicesProvider/Package.appxmanifest
+++ b/Samples/AppServices/cs/AppServicesProvider/Package.appxmanifest
@@ -21,7 +21,7 @@
-
+
diff --git a/Samples/AppServices/vb/AppServicesClient/Package.appxmanifest b/Samples/AppServices/vb/AppServicesClient/Package.appxmanifest
index 68ed868182..c9e4071e89 100644
--- a/Samples/AppServices/vb/AppServicesClient/Package.appxmanifest
+++ b/Samples/AppServices/vb/AppServicesClient/Package.appxmanifest
@@ -21,7 +21,7 @@
-
+
diff --git a/Samples/AppServices/vb/AppServicesProvider/Package.appxmanifest b/Samples/AppServices/vb/AppServicesProvider/Package.appxmanifest
index d42629c8df..0a42688abd 100644
--- a/Samples/AppServices/vb/AppServicesProvider/Package.appxmanifest
+++ b/Samples/AppServices/vb/AppServicesProvider/Package.appxmanifest
@@ -21,7 +21,7 @@
-
+
diff --git a/Samples/ApplicationData/cs/Package.appxmanifest b/Samples/ApplicationData/cs/Package.appxmanifest
index fe94d88283..a8e4ff9431 100644
--- a/Samples/ApplicationData/cs/Package.appxmanifest
+++ b/Samples/ApplicationData/cs/Package.appxmanifest
@@ -8,7 +8,7 @@
Assets\StoreLogo-sdk.png
-
+
diff --git a/Samples/ApplicationData/vb/Package.appxmanifest b/Samples/ApplicationData/vb/Package.appxmanifest
index 3331ce13aa..4e7cb9ef4e 100644
--- a/Samples/ApplicationData/vb/Package.appxmanifest
+++ b/Samples/ApplicationData/vb/Package.appxmanifest
@@ -8,7 +8,7 @@
Assets\StoreLogo-sdk.png
-
+
diff --git a/Samples/ApplicationResources/cpp/Package.appxmanifest b/Samples/ApplicationResources/cpp/Package.appxmanifest
index 8a644e7b1b..a287a95d83 100644
--- a/Samples/ApplicationResources/cpp/Package.appxmanifest
+++ b/Samples/ApplicationResources/cpp/Package.appxmanifest
@@ -8,7 +8,7 @@
Assets\StoreLogo-sdk.png
-
+
diff --git a/Samples/ApplicationResources/cs/Package.appxmanifest b/Samples/ApplicationResources/cs/Package.appxmanifest
index 022b590a7f..a430bf84b2 100644
--- a/Samples/ApplicationResources/cs/Package.appxmanifest
+++ b/Samples/ApplicationResources/cs/Package.appxmanifest
@@ -8,7 +8,7 @@
images\packagelogo.png
-
+
diff --git a/Samples/ApplicationResources/js/package.appxmanifest b/Samples/ApplicationResources/js/package.appxmanifest
index bb2fea3f10..ec51aac4de 100644
--- a/Samples/ApplicationResources/js/package.appxmanifest
+++ b/Samples/ApplicationResources/js/package.appxmanifest
@@ -8,7 +8,7 @@
images\storelogo-sdk.png
-
+
diff --git a/Samples/ApplicationResources/vb/Package.appxmanifest b/Samples/ApplicationResources/vb/Package.appxmanifest
index 52f2eb60b4..bee746d469 100644
--- a/Samples/ApplicationResources/vb/Package.appxmanifest
+++ b/Samples/ApplicationResources/vb/Package.appxmanifest
@@ -8,7 +8,7 @@
images\packagelogo.png
-
+
diff --git a/Samples/Appointments/cs/Package.appxmanifest b/Samples/Appointments/cs/Package.appxmanifest
index 69e389394a..f58d232a73 100644
--- a/Samples/Appointments/cs/Package.appxmanifest
+++ b/Samples/Appointments/cs/Package.appxmanifest
@@ -8,7 +8,7 @@
Assets\StoreLogo-sdk.png
-
+
diff --git a/Samples/Appointments/vb/Package.appxmanifest b/Samples/Appointments/vb/Package.appxmanifest
index faf3dc51e6..c27007addf 100644
--- a/Samples/Appointments/vb/Package.appxmanifest
+++ b/Samples/Appointments/vb/Package.appxmanifest
@@ -8,7 +8,7 @@
Assets\StoreLogo-sdk.png
-
+
diff --git a/Samples/AssociationLaunching/cs/Package.appxmanifest b/Samples/AssociationLaunching/cs/Package.appxmanifest
index b2f87958a4..594285714d 100644
--- a/Samples/AssociationLaunching/cs/Package.appxmanifest
+++ b/Samples/AssociationLaunching/cs/Package.appxmanifest
@@ -8,7 +8,7 @@
Assets\StoreLogo-sdk.png
-
+
diff --git a/Samples/AssociationLaunching/vb/Package.appxmanifest b/Samples/AssociationLaunching/vb/Package.appxmanifest
index d64dbe1209..30a5c793db 100644
--- a/Samples/AssociationLaunching/vb/Package.appxmanifest
+++ b/Samples/AssociationLaunching/vb/Package.appxmanifest
@@ -8,7 +8,7 @@
Assets\StoreLogo-sdk.png
-
+
diff --git a/Samples/AudioCategory/cs/AudioCategory/Package.appxmanifest b/Samples/AudioCategory/cs/AudioCategory/Package.appxmanifest
index b8a5473326..9eeaa09b14 100644
--- a/Samples/AudioCategory/cs/AudioCategory/Package.appxmanifest
+++ b/Samples/AudioCategory/cs/AudioCategory/Package.appxmanifest
@@ -21,7 +21,7 @@
-
+
diff --git a/Samples/AudioCategory/cs/AudioCategoryCompanion/Package.appxmanifest b/Samples/AudioCategory/cs/AudioCategoryCompanion/Package.appxmanifest
index 8c34470482..d07a18883c 100644
--- a/Samples/AudioCategory/cs/AudioCategoryCompanion/Package.appxmanifest
+++ b/Samples/AudioCategory/cs/AudioCategoryCompanion/Package.appxmanifest
@@ -21,7 +21,7 @@
-
+
diff --git a/Samples/AudioCategory/js/AudioCategory/package.appxmanifest b/Samples/AudioCategory/js/AudioCategory/package.appxmanifest
index 8a08f3b6d8..17d94d20c7 100644
--- a/Samples/AudioCategory/js/AudioCategory/package.appxmanifest
+++ b/Samples/AudioCategory/js/AudioCategory/package.appxmanifest
@@ -19,7 +19,7 @@
-
+
diff --git a/Samples/AudioCategory/js/AudioCategoryCompanion/package.appxmanifest b/Samples/AudioCategory/js/AudioCategoryCompanion/package.appxmanifest
index d63af12d90..ce30d9e53b 100644
--- a/Samples/AudioCategory/js/AudioCategoryCompanion/package.appxmanifest
+++ b/Samples/AudioCategory/js/AudioCategoryCompanion/package.appxmanifest
@@ -19,7 +19,7 @@
-
+
diff --git a/Samples/AudioCategory/vb/AudioCategory/Package.appxmanifest b/Samples/AudioCategory/vb/AudioCategory/Package.appxmanifest
index 873fbf9a14..9e58ae9531 100644
--- a/Samples/AudioCategory/vb/AudioCategory/Package.appxmanifest
+++ b/Samples/AudioCategory/vb/AudioCategory/Package.appxmanifest
@@ -21,7 +21,7 @@
-
+
diff --git a/Samples/AudioCategory/vb/AudioCategoryCompanion/Package.appxmanifest b/Samples/AudioCategory/vb/AudioCategoryCompanion/Package.appxmanifest
index a87ebfb0df..3e153d44d2 100644
--- a/Samples/AudioCategory/vb/AudioCategoryCompanion/Package.appxmanifest
+++ b/Samples/AudioCategory/vb/AudioCategoryCompanion/Package.appxmanifest
@@ -21,7 +21,7 @@
-
+
diff --git a/Samples/AudioCreation/cs/AudioCreation/Package.appxmanifest b/Samples/AudioCreation/cs/AudioCreation/Package.appxmanifest
index 4968d90272..7a482ce781 100644
--- a/Samples/AudioCreation/cs/AudioCreation/Package.appxmanifest
+++ b/Samples/AudioCreation/cs/AudioCreation/Package.appxmanifest
@@ -8,7 +8,7 @@
Assets\StoreLogo-sdk.png
-
+
diff --git a/Samples/BackButton/cs/Package.appxmanifest b/Samples/BackButton/cs/Package.appxmanifest
index 1154096eb1..2792282f32 100644
--- a/Samples/BackButton/cs/Package.appxmanifest
+++ b/Samples/BackButton/cs/Package.appxmanifest
@@ -21,7 +21,7 @@
-
+
diff --git a/Samples/BackButton/vb/Package.appxmanifest b/Samples/BackButton/vb/Package.appxmanifest
index 7155cfa5b3..1548d6b5a0 100644
--- a/Samples/BackButton/vb/Package.appxmanifest
+++ b/Samples/BackButton/vb/Package.appxmanifest
@@ -21,7 +21,7 @@
-
+
diff --git a/Samples/BackgroundAudio/cs/BackgroundAudio/Package.appxmanifest b/Samples/BackgroundAudio/cs/BackgroundAudio/Package.appxmanifest
index 02e7de4034..ca7b3b35ef 100644
--- a/Samples/BackgroundAudio/cs/BackgroundAudio/Package.appxmanifest
+++ b/Samples/BackgroundAudio/cs/BackgroundAudio/Package.appxmanifest
@@ -8,7 +8,7 @@
Assets\StoreLogo-sdk.png
-
+
diff --git a/Samples/BackgroundAudio/vb/BackgroundAudio/Package.appxmanifest b/Samples/BackgroundAudio/vb/BackgroundAudio/Package.appxmanifest
index 0bc76df62f..36413ef1d6 100644
--- a/Samples/BackgroundAudio/vb/BackgroundAudio/Package.appxmanifest
+++ b/Samples/BackgroundAudio/vb/BackgroundAudio/Package.appxmanifest
@@ -8,7 +8,7 @@
Assets\StoreLogo-sdk.png
-
+
diff --git a/Samples/BackgroundSensors/cpp/Package.appxmanifest b/Samples/BackgroundSensors/cpp/Package.appxmanifest
index 856b46f7bc..3f50fe2faf 100644
--- a/Samples/BackgroundSensors/cpp/Package.appxmanifest
+++ b/Samples/BackgroundSensors/cpp/Package.appxmanifest
@@ -8,7 +8,7 @@
Assets\StoreLogo-sdk.png
-
+
diff --git a/Samples/BackgroundSensors/cs/Package.appxmanifest b/Samples/BackgroundSensors/cs/Package.appxmanifest
index c195cfa49f..02fa6af9d8 100644
--- a/Samples/BackgroundSensors/cs/Package.appxmanifest
+++ b/Samples/BackgroundSensors/cs/Package.appxmanifest
@@ -21,7 +21,7 @@
-
+
diff --git a/Samples/BackgroundSensors/vb/Package.appxmanifest b/Samples/BackgroundSensors/vb/Package.appxmanifest
index b34448d324..cd4d7e2ad6 100644
--- a/Samples/BackgroundSensors/vb/Package.appxmanifest
+++ b/Samples/BackgroundSensors/vb/Package.appxmanifest
@@ -21,7 +21,7 @@
-
+
diff --git a/Samples/BackgroundTask/cs/BackgroundTask/Package.appxmanifest b/Samples/BackgroundTask/cs/BackgroundTask/Package.appxmanifest
index 06e9b2899e..9dede8512e 100644
--- a/Samples/BackgroundTask/cs/BackgroundTask/Package.appxmanifest
+++ b/Samples/BackgroundTask/cs/BackgroundTask/Package.appxmanifest
@@ -21,7 +21,7 @@
-
+
diff --git a/Samples/BackgroundTask/vb/BackgroundTask/Package.appxmanifest b/Samples/BackgroundTask/vb/BackgroundTask/Package.appxmanifest
index 8141eb2ae9..8c73f89eeb 100644
--- a/Samples/BackgroundTask/vb/BackgroundTask/Package.appxmanifest
+++ b/Samples/BackgroundTask/vb/BackgroundTask/Package.appxmanifest
@@ -21,7 +21,7 @@
-
+
diff --git a/Samples/BackgroundTransfer/cs/BackgroundTransfer/Package.appxmanifest b/Samples/BackgroundTransfer/cs/BackgroundTransfer/Package.appxmanifest
index a99404f86e..77183c959a 100644
--- a/Samples/BackgroundTransfer/cs/BackgroundTransfer/Package.appxmanifest
+++ b/Samples/BackgroundTransfer/cs/BackgroundTransfer/Package.appxmanifest
@@ -20,7 +20,7 @@
-
+
diff --git a/Samples/BackgroundTransfer/vb/BackgroundTransfer/Package.appxmanifest b/Samples/BackgroundTransfer/vb/BackgroundTransfer/Package.appxmanifest
index 456686637e..4d482186d7 100644
--- a/Samples/BackgroundTransfer/vb/BackgroundTransfer/Package.appxmanifest
+++ b/Samples/BackgroundTransfer/vb/BackgroundTransfer/Package.appxmanifest
@@ -20,7 +20,7 @@
-
+
diff --git a/Samples/BarcodeScanner/cpp/Package.appxmanifest b/Samples/BarcodeScanner/cpp/Package.appxmanifest
index 1da2a8af0a..1c2bf9670b 100644
--- a/Samples/BarcodeScanner/cpp/Package.appxmanifest
+++ b/Samples/BarcodeScanner/cpp/Package.appxmanifest
@@ -20,7 +20,7 @@
-
+
diff --git a/Samples/BarcodeScanner/cs/Package.appxmanifest b/Samples/BarcodeScanner/cs/Package.appxmanifest
index a64af8f14c..35f7a62b44 100644
--- a/Samples/BarcodeScanner/cs/Package.appxmanifest
+++ b/Samples/BarcodeScanner/cs/Package.appxmanifest
@@ -20,7 +20,7 @@
-
+
diff --git a/Samples/BarcodeScanner/js/Package.appxmanifest b/Samples/BarcodeScanner/js/Package.appxmanifest
index a2ef7e0c66..f75812c5ef 100644
--- a/Samples/BarcodeScanner/js/Package.appxmanifest
+++ b/Samples/BarcodeScanner/js/Package.appxmanifest
@@ -19,7 +19,7 @@
-
+
diff --git a/Samples/BarcodeScanner/vb/Package.appxmanifest b/Samples/BarcodeScanner/vb/Package.appxmanifest
index 3fc0b0a3ae..5ba3c45a2a 100644
--- a/Samples/BarcodeScanner/vb/Package.appxmanifest
+++ b/Samples/BarcodeScanner/vb/Package.appxmanifest
@@ -20,7 +20,7 @@
-
+
diff --git a/Samples/Barometer/cpp/Package.appxmanifest b/Samples/Barometer/cpp/Package.appxmanifest
index 55d74cb512..a50259b2e7 100644
--- a/Samples/Barometer/cpp/Package.appxmanifest
+++ b/Samples/Barometer/cpp/Package.appxmanifest
@@ -20,7 +20,7 @@
-
+
diff --git a/Samples/Barometer/cs/Package.appxmanifest b/Samples/Barometer/cs/Package.appxmanifest
index 0ed03b83d4..c893f7321e 100644
--- a/Samples/Barometer/cs/Package.appxmanifest
+++ b/Samples/Barometer/cs/Package.appxmanifest
@@ -21,7 +21,7 @@
-
+
diff --git a/Samples/Barometer/js/Package.appxmanifest b/Samples/Barometer/js/Package.appxmanifest
index ee7b941e64..acdc9c7a53 100644
--- a/Samples/Barometer/js/Package.appxmanifest
+++ b/Samples/Barometer/js/Package.appxmanifest
@@ -19,7 +19,7 @@
-
+
diff --git a/Samples/Barometer/vb/Package.appxmanifest b/Samples/Barometer/vb/Package.appxmanifest
index c4c5f32c57..1edab728df 100644
--- a/Samples/Barometer/vb/Package.appxmanifest
+++ b/Samples/Barometer/vb/Package.appxmanifest
@@ -8,7 +8,7 @@
Assets\StoreLogo-sdk.png
-
+
diff --git a/Samples/BasicFaceDetection/cpp/Package.appxmanifest b/Samples/BasicFaceDetection/cpp/Package.appxmanifest
index b7befaedff..d2dc18f94b 100644
--- a/Samples/BasicFaceDetection/cpp/Package.appxmanifest
+++ b/Samples/BasicFaceDetection/cpp/Package.appxmanifest
@@ -8,7 +8,7 @@
Assets\StoreLogo-sdk.png
-
+
diff --git a/Samples/BasicFaceDetection/cs/Package.appxmanifest b/Samples/BasicFaceDetection/cs/Package.appxmanifest
index 031a2b9def..08057434a3 100644
--- a/Samples/BasicFaceDetection/cs/Package.appxmanifest
+++ b/Samples/BasicFaceDetection/cs/Package.appxmanifest
@@ -20,7 +20,7 @@
-
+
diff --git a/Samples/BasicFaceDetection/vb/Package.appxmanifest b/Samples/BasicFaceDetection/vb/Package.appxmanifest
index 803356095e..6298dd302e 100644
--- a/Samples/BasicFaceDetection/vb/Package.appxmanifest
+++ b/Samples/BasicFaceDetection/vb/Package.appxmanifest
@@ -20,7 +20,7 @@
-
+
diff --git a/Samples/BasicFaceTracking/cpp/Package.appxmanifest b/Samples/BasicFaceTracking/cpp/Package.appxmanifest
index 7b56ef32f7..43d7cba298 100644
--- a/Samples/BasicFaceTracking/cpp/Package.appxmanifest
+++ b/Samples/BasicFaceTracking/cpp/Package.appxmanifest
@@ -20,7 +20,7 @@
-
+
diff --git a/Samples/BasicFaceTracking/cs/Package.appxmanifest b/Samples/BasicFaceTracking/cs/Package.appxmanifest
index 793f8ccc18..2081b844d8 100644
--- a/Samples/BasicFaceTracking/cs/Package.appxmanifest
+++ b/Samples/BasicFaceTracking/cs/Package.appxmanifest
@@ -20,7 +20,7 @@
-
+
diff --git a/Samples/BasicFaceTracking/vb/Package.appxmanifest b/Samples/BasicFaceTracking/vb/Package.appxmanifest
index 9a16735555..8d9d491453 100644
--- a/Samples/BasicFaceTracking/vb/Package.appxmanifest
+++ b/Samples/BasicFaceTracking/vb/Package.appxmanifest
@@ -20,7 +20,7 @@
-
+
diff --git a/Samples/BasicInput/cs/Package.appxmanifest b/Samples/BasicInput/cs/Package.appxmanifest
index da57302d55..1d87fce23d 100644
--- a/Samples/BasicInput/cs/Package.appxmanifest
+++ b/Samples/BasicInput/cs/Package.appxmanifest
@@ -21,7 +21,7 @@
-
+
diff --git a/Samples/BasicInput/vb/Package.appxmanifest b/Samples/BasicInput/vb/Package.appxmanifest
index 1ad1e93e20..0ab54a00e7 100644
--- a/Samples/BasicInput/vb/Package.appxmanifest
+++ b/Samples/BasicInput/vb/Package.appxmanifest
@@ -21,7 +21,7 @@
-
+
diff --git a/Samples/BasicMediaCasting/cs/Package.appxmanifest b/Samples/BasicMediaCasting/cs/Package.appxmanifest
index de8b4b590c..07a7a6dafc 100644
--- a/Samples/BasicMediaCasting/cs/Package.appxmanifest
+++ b/Samples/BasicMediaCasting/cs/Package.appxmanifest
@@ -8,7 +8,7 @@
Assets\StoreLogo-sdk.png
-
+
diff --git a/Samples/BasicMediaCasting/vb/Package.appxmanifest b/Samples/BasicMediaCasting/vb/Package.appxmanifest
index 31bec5ecff..3b2a532cba 100644
--- a/Samples/BasicMediaCasting/vb/Package.appxmanifest
+++ b/Samples/BasicMediaCasting/vb/Package.appxmanifest
@@ -8,7 +8,7 @@
Assets\StoreLogo-sdk.png
-
+
diff --git a/Samples/BluetoothAdvertisement/cs/Package.appxmanifest b/Samples/BluetoothAdvertisement/cs/Package.appxmanifest
index a24bf1e4be..6304ed37f3 100644
--- a/Samples/BluetoothAdvertisement/cs/Package.appxmanifest
+++ b/Samples/BluetoothAdvertisement/cs/Package.appxmanifest
@@ -21,7 +21,7 @@
-
+
diff --git a/Samples/BluetoothAdvertisement/js/Package.appxmanifest b/Samples/BluetoothAdvertisement/js/Package.appxmanifest
index 013f731407..4c6ee9e754 100644
--- a/Samples/BluetoothAdvertisement/js/Package.appxmanifest
+++ b/Samples/BluetoothAdvertisement/js/Package.appxmanifest
@@ -20,7 +20,7 @@
-
+
diff --git a/Samples/BluetoothAdvertisement/vb/Package.appxmanifest b/Samples/BluetoothAdvertisement/vb/Package.appxmanifest
index cfcceb6848..e332efc8d0 100644
--- a/Samples/BluetoothAdvertisement/vb/Package.appxmanifest
+++ b/Samples/BluetoothAdvertisement/vb/Package.appxmanifest
@@ -21,7 +21,7 @@
-
+
diff --git a/Samples/BluetoothRfcommChat/cs/Package.appxmanifest b/Samples/BluetoothRfcommChat/cs/Package.appxmanifest
index 92a0ff7977..a24c7470ac 100644
--- a/Samples/BluetoothRfcommChat/cs/Package.appxmanifest
+++ b/Samples/BluetoothRfcommChat/cs/Package.appxmanifest
@@ -20,7 +20,7 @@
Assets\StoreLogo-sdk.png
-
+
diff --git a/Samples/Calendar/cpp/Package.appxmanifest b/Samples/Calendar/cpp/Package.appxmanifest
index aa98f748da..7b16a3da29 100644
--- a/Samples/Calendar/cpp/Package.appxmanifest
+++ b/Samples/Calendar/cpp/Package.appxmanifest
@@ -20,7 +20,7 @@
-
+
diff --git a/Samples/Calendar/cs/Package.appxmanifest b/Samples/Calendar/cs/Package.appxmanifest
index e0e76bdcd7..d91b43f8c8 100644
--- a/Samples/Calendar/cs/Package.appxmanifest
+++ b/Samples/Calendar/cs/Package.appxmanifest
@@ -21,7 +21,7 @@
-
+
diff --git a/Samples/Calendar/js/Package.appxmanifest b/Samples/Calendar/js/Package.appxmanifest
index 2f9a425692..a15bd70076 100644
--- a/Samples/Calendar/js/Package.appxmanifest
+++ b/Samples/Calendar/js/Package.appxmanifest
@@ -19,7 +19,7 @@
-
+
diff --git a/Samples/Calendar/vb/Package.appxmanifest b/Samples/Calendar/vb/Package.appxmanifest
index ebcde6cd64..7d1879e4d3 100644
--- a/Samples/Calendar/vb/Package.appxmanifest
+++ b/Samples/Calendar/vb/Package.appxmanifest
@@ -21,7 +21,7 @@
-
+
diff --git a/Samples/CameraFaceDetection/cpp/CameraFaceDetection.vcxproj b/Samples/CameraFaceDetection/cpp/CameraFaceDetection.vcxproj
index de4b2abfdd..32fcf31a12 100644
--- a/Samples/CameraFaceDetection/cpp/CameraFaceDetection.vcxproj
+++ b/Samples/CameraFaceDetection/cpp/CameraFaceDetection.vcxproj
@@ -80,27 +80,27 @@
-
+
-
+
-
+
-
+
-
+
-
+
@@ -198,7 +198,7 @@
-
+
diff --git a/Samples/CameraFaceDetection/cpp/Package.appxmanifest b/Samples/CameraFaceDetection/cpp/Package.appxmanifest
index a48503291a..49bc44ff80 100644
--- a/Samples/CameraFaceDetection/cpp/Package.appxmanifest
+++ b/Samples/CameraFaceDetection/cpp/Package.appxmanifest
@@ -20,7 +20,7 @@
-
+
diff --git a/Samples/CameraFaceDetection/cs/CameraFaceDetection.csproj b/Samples/CameraFaceDetection/cs/CameraFaceDetection.csproj
index cbf3b785ff..3d32a1a8d5 100644
--- a/Samples/CameraFaceDetection/cs/CameraFaceDetection.csproj
+++ b/Samples/CameraFaceDetection/cs/CameraFaceDetection.csproj
@@ -91,7 +91,7 @@
-
+ Microsoft Mobile Extension SDK for Universal App Platform
diff --git a/Samples/CameraFaceDetection/cs/Package.appxmanifest b/Samples/CameraFaceDetection/cs/Package.appxmanifest
index 65c92921a4..5bd0e8a0de 100644
--- a/Samples/CameraFaceDetection/cs/Package.appxmanifest
+++ b/Samples/CameraFaceDetection/cs/Package.appxmanifest
@@ -20,7 +20,7 @@
-
+
diff --git a/Samples/CameraFaceDetection/js/CameraFaceDetection.jsproj b/Samples/CameraFaceDetection/js/CameraFaceDetection.jsproj
index 1f2c07af14..310760bafa 100644
--- a/Samples/CameraFaceDetection/js/CameraFaceDetection.jsproj
+++ b/Samples/CameraFaceDetection/js/CameraFaceDetection.jsproj
@@ -93,7 +93,7 @@
-
+
-# Exchange Active Sync (EAS) sample
+# Client Device Information sample
-This sample shows how mail clients can retrieve device information and work with supplied Exchange Active Sync (EAS) policies.
+This sample shows how apps can retrieve device information such as operating system and manufacturer.
-Windows Store apps can configure their mail clients to stay compliant with the given EAS policies. To bring the local computer compliant, you must request the user's consent before you proceed through the use of a consent UI. Then you can configure the exchange account.
-
-This sample requires some experience with WMI programming.
-
-**Note**  This sample was created using one of the universal app templates available in Visual Studio. It shows how its solution is structured so it can run on both Windows 10 and Windows Phone 10.
-
-You can choose one of three scenarios:
+This sample demonstrates the following:
- Retrieving device information
-- Checking if device policies are compliant with supplied EAS policies
-- Applying supplied EAS policies.
## Related Topics
-[Windows.Security.ExchangeActiveSyncProvisioning](http://msdn.microsoft.com/library/windows/apps/hh701506)
+[EasClientDeviceInformation class](https://msdn.microsoft.com/library/windows/apps/windows.security.exchangeactivesyncprovisioning.easclientdeviceinformation)
## Operating system requirements
-Windows 10
+*Client*: Windows 10
+
+**Server:** Windows Server 2016 Technical Preview
+
+**Phone:** Windows 10
## Build the sample
diff --git a/Samples/EasProtocol/cpp/EasProtocol.sln b/Samples/ClientDeviceInformation/cpp/ClientDeviceInformation.sln
similarity index 92%
rename from Samples/EasProtocol/cpp/EasProtocol.sln
rename to Samples/ClientDeviceInformation/cpp/ClientDeviceInformation.sln
index ba6b0c2531..c9c51887c5 100644
--- a/Samples/EasProtocol/cpp/EasProtocol.sln
+++ b/Samples/ClientDeviceInformation/cpp/ClientDeviceInformation.sln
@@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 14
VisualStudioVersion = 14.0.22609.0
MinimumVisualStudioVersion = 10.0.40219.1
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "EasProtocol", "EasProtocol.vcxproj", "{F710B9FD-4E6B-42D7-A99A-6D48888D48B0}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ClientDeviceInformation", "ClientDeviceInformation.vcxproj", "{F710B9FD-4E6B-42D7-A99A-6D48888D48B0}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
diff --git a/Samples/EasProtocol/cpp/EasProtocol.vcxproj b/Samples/ClientDeviceInformation/cpp/ClientDeviceInformation.vcxproj
similarity index 89%
rename from Samples/EasProtocol/cpp/EasProtocol.vcxproj
rename to Samples/ClientDeviceInformation/cpp/ClientDeviceInformation.vcxproj
index 1cf6ea832c..22a43bbb9f 100644
--- a/Samples/EasProtocol/cpp/EasProtocol.vcxproj
+++ b/Samples/ClientDeviceInformation/cpp/ClientDeviceInformation.vcxproj
@@ -81,27 +81,27 @@
-
+
-
+
-
+
-
+
-
+
-
+
@@ -157,12 +157,6 @@
Scenario1_GetDeviceInformation.xaml
-
- Scenario2_CheckCompliance.xaml
-
-
- Scenario3_ApplyEASPolicy.xaml
-
@@ -172,8 +166,6 @@
Designer
-
-
Styles\Styles.xaml
@@ -202,12 +194,6 @@
Scenario1_GetDeviceInformation.xaml
-
- Scenario2_CheckCompliance.xaml
-
-
- Scenario3_ApplyEASPolicy.xaml
-
@@ -232,9 +218,6 @@
Assets\windows-sdk.png
-
-
-
diff --git a/Samples/EasProtocol/cpp/EasProtocol.vcxproj.filters b/Samples/ClientDeviceInformation/cpp/ClientDeviceInformation.vcxproj.filters
similarity index 95%
rename from Samples/EasProtocol/cpp/EasProtocol.vcxproj.filters
rename to Samples/ClientDeviceInformation/cpp/ClientDeviceInformation.vcxproj.filters
index 5393dd33c5..62894a58e9 100644
--- a/Samples/EasProtocol/cpp/EasProtocol.vcxproj.filters
+++ b/Samples/ClientDeviceInformation/cpp/ClientDeviceInformation.vcxproj.filters
@@ -50,8 +50,6 @@
-
- Styles
diff --git a/Samples/EasProtocol/cpp/Package.appxmanifest b/Samples/ClientDeviceInformation/cpp/Package.appxmanifest
similarity index 81%
rename from Samples/EasProtocol/cpp/Package.appxmanifest
rename to Samples/ClientDeviceInformation/cpp/Package.appxmanifest
index 15a65e5371..b3f6e8076e 100644
--- a/Samples/EasProtocol/cpp/Package.appxmanifest
+++ b/Samples/ClientDeviceInformation/cpp/Package.appxmanifest
@@ -7,20 +7,20 @@
IgnorableNamespaces="uap mp">
- EAS Protocol C++ Sample
+ Client Device Information C++ SampleMicrosoft CorporationAssets\StoreLogo-sdk.png
-
+
@@ -30,12 +30,12 @@
+ EntryPoint="ClientDeviceInformation.App">
diff --git a/Samples/EasProtocol/cpp/SampleConfiguration.cpp b/Samples/ClientDeviceInformation/cpp/SampleConfiguration.cpp
similarity index 70%
rename from Samples/EasProtocol/cpp/SampleConfiguration.cpp
rename to Samples/ClientDeviceInformation/cpp/SampleConfiguration.cpp
index 766fd654bf..2167101e31 100644
--- a/Samples/EasProtocol/cpp/SampleConfiguration.cpp
+++ b/Samples/ClientDeviceInformation/cpp/SampleConfiguration.cpp
@@ -9,6 +9,4 @@ using namespace SDKTemplate;
Platform::Array^ MainPage::scenariosInner = ref new Platform::Array
{
{ "Get Device Information", "SDKTemplate.Scenario1_GetDeviceInformation" },
- { "Check Compliance", "SDKTemplate.Scenario2_CheckCompliance" },
- { "Apply EAS Policy", "SDKTemplate.Scenario3_ApplyEASPolicy" }
};
diff --git a/Samples/EasProtocol/cpp/SampleConfiguration.h b/Samples/ClientDeviceInformation/cpp/SampleConfiguration.h
similarity index 100%
rename from Samples/EasProtocol/cpp/SampleConfiguration.h
rename to Samples/ClientDeviceInformation/cpp/SampleConfiguration.h
diff --git a/Samples/EasProtocol/cpp/Scenario1_GetDeviceInformation.xaml b/Samples/ClientDeviceInformation/cpp/Scenario1_GetDeviceInformation.xaml
similarity index 100%
rename from Samples/EasProtocol/cpp/Scenario1_GetDeviceInformation.xaml
rename to Samples/ClientDeviceInformation/cpp/Scenario1_GetDeviceInformation.xaml
diff --git a/Samples/EasProtocol/cpp/Scenario1_GetDeviceInformation.xaml.cpp b/Samples/ClientDeviceInformation/cpp/Scenario1_GetDeviceInformation.xaml.cpp
similarity index 100%
rename from Samples/EasProtocol/cpp/Scenario1_GetDeviceInformation.xaml.cpp
rename to Samples/ClientDeviceInformation/cpp/Scenario1_GetDeviceInformation.xaml.cpp
diff --git a/Samples/EasProtocol/cpp/Scenario1_GetDeviceInformation.xaml.h b/Samples/ClientDeviceInformation/cpp/Scenario1_GetDeviceInformation.xaml.h
similarity index 100%
rename from Samples/EasProtocol/cpp/Scenario1_GetDeviceInformation.xaml.h
rename to Samples/ClientDeviceInformation/cpp/Scenario1_GetDeviceInformation.xaml.h
diff --git a/Samples/EasProtocol/cpp/pch.cpp b/Samples/ClientDeviceInformation/cpp/pch.cpp
similarity index 100%
rename from Samples/EasProtocol/cpp/pch.cpp
rename to Samples/ClientDeviceInformation/cpp/pch.cpp
diff --git a/Samples/EasProtocol/cpp/pch.h b/Samples/ClientDeviceInformation/cpp/pch.h
similarity index 100%
rename from Samples/EasProtocol/cpp/pch.h
rename to Samples/ClientDeviceInformation/cpp/pch.h
diff --git a/Samples/EasProtocol/cs/EasProtocol.csproj b/Samples/ClientDeviceInformation/cs/ClientDeviceInformation.csproj
similarity index 91%
rename from Samples/EasProtocol/cs/EasProtocol.csproj
rename to Samples/ClientDeviceInformation/cs/ClientDeviceInformation.csproj
index f21f501d79..bffba8a811 100644
--- a/Samples/EasProtocol/cs/EasProtocol.csproj
+++ b/Samples/ClientDeviceInformation/cs/ClientDeviceInformation.csproj
@@ -107,12 +107,6 @@
Scenario1_GetDeviceInformation.xaml
-
- Scenario2_CheckCompliance.xaml
-
-
- Scenario3_ApplyEASPolicy.xaml
-
@@ -134,14 +128,6 @@
MSBuild:CompileDesigner
-
- MSBuild:Compile
- Designer
-
-
- MSBuild:Compile
- Designer
-
Styles\Styles.xaml
MSBuild:Compile
@@ -174,11 +160,6 @@
Assets\windows-sdk.png
-
-
- Microsoft Desktop Extension SDK for Universal App Platform
-
- 14.0
diff --git a/Samples/EasProtocol/cs/EasProtocol.sln b/Samples/ClientDeviceInformation/cs/ClientDeviceInformation.sln
similarity index 92%
rename from Samples/EasProtocol/cs/EasProtocol.sln
rename to Samples/ClientDeviceInformation/cs/ClientDeviceInformation.sln
index e9cced0a00..700de3587e 100644
--- a/Samples/EasProtocol/cs/EasProtocol.sln
+++ b/Samples/ClientDeviceInformation/cs/ClientDeviceInformation.sln
@@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 14
VisualStudioVersion = 14.0.22609.0
MinimumVisualStudioVersion = 10.0.40219.1
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EasProtocol", "EasProtocol.csproj", "{DC30CE66-DAEE-4CCF-BD02-8837FE918B6F}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ClientDeviceInformation", "ClientDeviceInformation.csproj", "{DC30CE66-DAEE-4CCF-BD02-8837FE918B6F}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
diff --git a/Samples/EasProtocol/cs/Package.appxmanifest b/Samples/ClientDeviceInformation/cs/Package.appxmanifest
similarity index 82%
rename from Samples/EasProtocol/cs/Package.appxmanifest
rename to Samples/ClientDeviceInformation/cs/Package.appxmanifest
index 72e9900904..9fedc427cb 100644
--- a/Samples/EasProtocol/cs/Package.appxmanifest
+++ b/Samples/ClientDeviceInformation/cs/Package.appxmanifest
@@ -7,7 +7,7 @@
IgnorableNamespaces="uap mp">
@@ -15,13 +15,13 @@
- EAS Protocol C# Sample
+ Client Device Information C# SampleMicrosoft CorporationAssets\StoreLogo-sdk.png
-
+
@@ -31,12 +31,12 @@
+ EntryPoint="ClientDeviceInformation.App">
diff --git a/Samples/EasProtocol/cs/SampleConfiguration.cs b/Samples/ClientDeviceInformation/cs/SampleConfiguration.cs
similarity index 82%
rename from Samples/EasProtocol/cs/SampleConfiguration.cs
rename to Samples/ClientDeviceInformation/cs/SampleConfiguration.cs
index 3803e5d1d4..f46d0a3ba9 100644
--- a/Samples/EasProtocol/cs/SampleConfiguration.cs
+++ b/Samples/ClientDeviceInformation/cs/SampleConfiguration.cs
@@ -12,7 +12,6 @@
using System;
using System.Collections.Generic;
using Windows.UI.Xaml.Controls;
-using EAS;
namespace SDKTemplate
{
@@ -23,8 +22,6 @@ public partial class MainPage : Page
List scenarios = new List
{
new Scenario() { Title="Get Device Information", ClassType=typeof(Scenario1_GetDeviceInformation)},
- new Scenario() { Title="Check Compliance", ClassType=typeof(Scenario2_CheckCompliance)},
- new Scenario() { Title="Apply EAS Policy", ClassType=typeof(Scenario3_ApplyEASPolicy)}
};
}
diff --git a/Samples/EasProtocol/cs/Scenario1_GetDeviceInformation.xaml b/Samples/ClientDeviceInformation/cs/Scenario1_GetDeviceInformation.xaml
similarity index 97%
rename from Samples/EasProtocol/cs/Scenario1_GetDeviceInformation.xaml
rename to Samples/ClientDeviceInformation/cs/Scenario1_GetDeviceInformation.xaml
index cd03a183e0..2be3b360e3 100644
--- a/Samples/EasProtocol/cs/Scenario1_GetDeviceInformation.xaml
+++ b/Samples/ClientDeviceInformation/cs/Scenario1_GetDeviceInformation.xaml
@@ -11,10 +11,10 @@
//*********************************************************
-->
@@ -42,7 +42,7 @@
-
+
diff --git a/Samples/EasProtocol/cs/Scenario1_GetDeviceInformation.xaml.cs b/Samples/ClientDeviceInformation/cs/Scenario1_GetDeviceInformation.xaml.cs
similarity index 98%
rename from Samples/EasProtocol/cs/Scenario1_GetDeviceInformation.xaml.cs
rename to Samples/ClientDeviceInformation/cs/Scenario1_GetDeviceInformation.xaml.cs
index 9f02ab9177..4201e6f2b8 100644
--- a/Samples/EasProtocol/cs/Scenario1_GetDeviceInformation.xaml.cs
+++ b/Samples/ClientDeviceInformation/cs/Scenario1_GetDeviceInformation.xaml.cs
@@ -9,13 +9,12 @@
//
//*********************************************************
-using SDKTemplate;
using System;
using Windows.Security.ExchangeActiveSyncProvisioning;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
-namespace EAS
+namespace SDKTemplate
{
public sealed partial class Scenario1_GetDeviceInformation : Page
{
diff --git a/Samples/EasProtocol/cs/project.json b/Samples/ClientDeviceInformation/cs/project.json
similarity index 100%
rename from Samples/EasProtocol/cs/project.json
rename to Samples/ClientDeviceInformation/cs/project.json
diff --git a/Samples/EasProtocol/js/EasProtocol.jsproj b/Samples/ClientDeviceInformation/js/ClientDeviceInformation.jsproj
similarity index 97%
rename from Samples/EasProtocol/js/EasProtocol.jsproj
rename to Samples/ClientDeviceInformation/js/ClientDeviceInformation.jsproj
index 823c97ec9e..78cfb8d93b 100644
--- a/Samples/EasProtocol/js/EasProtocol.jsproj
+++ b/Samples/ClientDeviceInformation/js/ClientDeviceInformation.jsproj
@@ -58,8 +58,6 @@
default.html
-
-
images\microsoft-sdk.png
@@ -86,8 +84,6 @@
-
-
Microsoft.WinJS.4.0\css\ui-dark.css
diff --git a/Samples/EasProtocol/js/EasProtocol.sln b/Samples/ClientDeviceInformation/js/ClientDeviceInformation.sln
similarity index 94%
rename from Samples/EasProtocol/js/EasProtocol.sln
rename to Samples/ClientDeviceInformation/js/ClientDeviceInformation.sln
index bbd068f833..a492990dd8 100644
--- a/Samples/EasProtocol/js/EasProtocol.sln
+++ b/Samples/ClientDeviceInformation/js/ClientDeviceInformation.sln
@@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 14
VisualStudioVersion = 14.0.22609.0
MinimumVisualStudioVersion = 10.0.40219.1
-Project("{262852C6-CD72-467D-83FE-5EEB1973A190}") = "EasProtocol", "EasProtocol.jsproj", "{C2ADB9AF-EDB3-4E57-8056-9D0531D4A6B2}"
+Project("{262852C6-CD72-467D-83FE-5EEB1973A190}") = "ClientDeviceInformation", "ClientDeviceInformation.jsproj", "{C2ADB9AF-EDB3-4E57-8056-9D0531D4A6B2}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
diff --git a/Samples/EasProtocol/js/Microsoft.WinJS.4.0/css/placeholder.txt b/Samples/ClientDeviceInformation/js/Microsoft.WinJS.4.0/css/placeholder.txt
similarity index 100%
rename from Samples/EasProtocol/js/Microsoft.WinJS.4.0/css/placeholder.txt
rename to Samples/ClientDeviceInformation/js/Microsoft.WinJS.4.0/css/placeholder.txt
diff --git a/Samples/EasProtocol/js/Microsoft.WinJS.4.0/fonts/placeholder b/Samples/ClientDeviceInformation/js/Microsoft.WinJS.4.0/fonts/placeholder
similarity index 100%
rename from Samples/EasProtocol/js/Microsoft.WinJS.4.0/fonts/placeholder
rename to Samples/ClientDeviceInformation/js/Microsoft.WinJS.4.0/fonts/placeholder
diff --git a/Samples/EasProtocol/js/Microsoft.WinJS.4.0/js/en-us/placeholder.txt b/Samples/ClientDeviceInformation/js/Microsoft.WinJS.4.0/js/en-us/placeholder.txt
similarity index 100%
rename from Samples/EasProtocol/js/Microsoft.WinJS.4.0/js/en-us/placeholder.txt
rename to Samples/ClientDeviceInformation/js/Microsoft.WinJS.4.0/js/en-us/placeholder.txt
diff --git a/Samples/EasProtocol/js/Package.appxmanifest b/Samples/ClientDeviceInformation/js/Package.appxmanifest
similarity index 84%
rename from Samples/EasProtocol/js/Package.appxmanifest
rename to Samples/ClientDeviceInformation/js/Package.appxmanifest
index 56ad40e36b..5d901f4b73 100644
--- a/Samples/EasProtocol/js/Package.appxmanifest
+++ b/Samples/ClientDeviceInformation/js/Package.appxmanifest
@@ -6,20 +6,20 @@
IgnorableNamespaces="uap mp">
- EAS Protocol JS Sample
+ Client Device Information JS SampleMicrosoft Corporationimages\storelogo-sdk.png
-
+
@@ -33,8 +33,8 @@
StartPage="default.html">
-
+
diff --git a/Samples/Clipboard/cs/Package.appxmanifest b/Samples/Clipboard/cs/Package.appxmanifest
index 84aa3cdffb..5062a6ef1c 100644
--- a/Samples/Clipboard/cs/Package.appxmanifest
+++ b/Samples/Clipboard/cs/Package.appxmanifest
@@ -21,7 +21,7 @@
-
+
diff --git a/Samples/Clipboard/js/Package.appxmanifest b/Samples/Clipboard/js/Package.appxmanifest
index 5073fc72a8..9582f46578 100644
--- a/Samples/Clipboard/js/Package.appxmanifest
+++ b/Samples/Clipboard/js/Package.appxmanifest
@@ -19,7 +19,7 @@
-
+
diff --git a/Samples/Clipboard/vb/Package.appxmanifest b/Samples/Clipboard/vb/Package.appxmanifest
index 506ce326ab..6363d39890 100644
--- a/Samples/Clipboard/vb/Package.appxmanifest
+++ b/Samples/Clipboard/vb/Package.appxmanifest
@@ -21,7 +21,7 @@
-
+
diff --git a/Samples/CommunicationBlockAndFilter/cs/BlockAndFilter.csproj b/Samples/CommunicationBlockAndFilter/cs/BlockAndFilter.csproj
index ae133af8da..c7badcef54 100755
--- a/Samples/CommunicationBlockAndFilter/cs/BlockAndFilter.csproj
+++ b/Samples/CommunicationBlockAndFilter/cs/BlockAndFilter.csproj
@@ -167,7 +167,7 @@
-
+ Windows Mobile Extensions for the UWP
diff --git a/Samples/CommunicationBlockAndFilter/cs/Package.appxmanifest b/Samples/CommunicationBlockAndFilter/cs/Package.appxmanifest
index 637a1fa022..d69e0b6caf 100755
--- a/Samples/CommunicationBlockAndFilter/cs/Package.appxmanifest
+++ b/Samples/CommunicationBlockAndFilter/cs/Package.appxmanifest
@@ -8,7 +8,7 @@
Assets\StoreLogo-sdk.png
-
+
diff --git a/Samples/CommunicationBlockAndFilter/cs/Tasks/BlockAndFilterTasks.csproj b/Samples/CommunicationBlockAndFilter/cs/Tasks/BlockAndFilterTasks.csproj
index c2e40367b8..ba3f6dce31 100755
--- a/Samples/CommunicationBlockAndFilter/cs/Tasks/BlockAndFilterTasks.csproj
+++ b/Samples/CommunicationBlockAndFilter/cs/Tasks/BlockAndFilterTasks.csproj
@@ -125,7 +125,7 @@
-
+ Windows Mobile Extensions for the UWP
diff --git a/Samples/Compass/cpp/Package.appxmanifest b/Samples/Compass/cpp/Package.appxmanifest
index 9bc4656a23..bc2cc2793d 100644
--- a/Samples/Compass/cpp/Package.appxmanifest
+++ b/Samples/Compass/cpp/Package.appxmanifest
@@ -20,7 +20,7 @@
-
+
diff --git a/Samples/Compass/cs/Package.appxmanifest b/Samples/Compass/cs/Package.appxmanifest
index 9a2f07ed92..55993314c1 100644
--- a/Samples/Compass/cs/Package.appxmanifest
+++ b/Samples/Compass/cs/Package.appxmanifest
@@ -21,7 +21,7 @@
-
+
diff --git a/Samples/Compass/js/Package.appxmanifest b/Samples/Compass/js/Package.appxmanifest
index d5ee176d7a..805c698c65 100644
--- a/Samples/Compass/js/Package.appxmanifest
+++ b/Samples/Compass/js/Package.appxmanifest
@@ -19,7 +19,7 @@
-
+
diff --git a/Samples/Compass/vb/Package.appxmanifest b/Samples/Compass/vb/Package.appxmanifest
index c3b0d67bde..21502cdd87 100644
--- a/Samples/Compass/vb/Package.appxmanifest
+++ b/Samples/Compass/vb/Package.appxmanifest
@@ -20,7 +20,7 @@
-
+
diff --git a/Samples/ComplexInk/cpp/Package.appxmanifest b/Samples/ComplexInk/cpp/Package.appxmanifest
index 54c48c0711..bd47858583 100644
--- a/Samples/ComplexInk/cpp/Package.appxmanifest
+++ b/Samples/ComplexInk/cpp/Package.appxmanifest
@@ -20,7 +20,7 @@
-
+
diff --git a/Samples/Compression/cpp/Package.appxmanifest b/Samples/Compression/cpp/Package.appxmanifest
index f8d34ff9f0..cae67bf469 100644
--- a/Samples/Compression/cpp/Package.appxmanifest
+++ b/Samples/Compression/cpp/Package.appxmanifest
@@ -20,7 +20,7 @@
-
+
diff --git a/Samples/Compression/cs/Package.appxmanifest b/Samples/Compression/cs/Package.appxmanifest
index 0424e946a8..a3b199c501 100644
--- a/Samples/Compression/cs/Package.appxmanifest
+++ b/Samples/Compression/cs/Package.appxmanifest
@@ -20,7 +20,7 @@
-
+
diff --git a/Samples/Compression/js/Package.appxmanifest b/Samples/Compression/js/Package.appxmanifest
index a6cb4127bb..a0c237f37a 100644
--- a/Samples/Compression/js/Package.appxmanifest
+++ b/Samples/Compression/js/Package.appxmanifest
@@ -20,7 +20,7 @@
-
+
diff --git a/Samples/ContactCardIntegration/cs/Package.appxmanifest b/Samples/ContactCardIntegration/cs/Package.appxmanifest
index c7483738fb..ffeb2296e4 100644
--- a/Samples/ContactCardIntegration/cs/Package.appxmanifest
+++ b/Samples/ContactCardIntegration/cs/Package.appxmanifest
@@ -20,7 +20,7 @@
-
+
diff --git a/Samples/ContactCards/cpp/Package.appxmanifest b/Samples/ContactCards/cpp/Package.appxmanifest
index ebbea60da8..e984677303 100644
--- a/Samples/ContactCards/cpp/Package.appxmanifest
+++ b/Samples/ContactCards/cpp/Package.appxmanifest
@@ -20,7 +20,7 @@
-
+
diff --git a/Samples/ContactCards/cs/Package.appxmanifest b/Samples/ContactCards/cs/Package.appxmanifest
index 5147822a3e..7bf352e6b8 100644
--- a/Samples/ContactCards/cs/Package.appxmanifest
+++ b/Samples/ContactCards/cs/Package.appxmanifest
@@ -21,7 +21,7 @@
-
+
diff --git a/Samples/ContactCards/js/Package.appxmanifest b/Samples/ContactCards/js/Package.appxmanifest
index 8d609393cc..ff32a70391 100644
--- a/Samples/ContactCards/js/Package.appxmanifest
+++ b/Samples/ContactCards/js/Package.appxmanifest
@@ -19,7 +19,7 @@
-
+
diff --git a/Samples/ContactPicker/cpp/Package.appxmanifest b/Samples/ContactPicker/cpp/Package.appxmanifest
index aca43f98b0..0bd3e4d3b2 100644
--- a/Samples/ContactPicker/cpp/Package.appxmanifest
+++ b/Samples/ContactPicker/cpp/Package.appxmanifest
@@ -20,7 +20,7 @@
-
+
diff --git a/Samples/ContactPicker/cs/Package.appxmanifest b/Samples/ContactPicker/cs/Package.appxmanifest
index 7af497fa23..509d1ccebf 100644
--- a/Samples/ContactPicker/cs/Package.appxmanifest
+++ b/Samples/ContactPicker/cs/Package.appxmanifest
@@ -21,7 +21,7 @@
-
+
diff --git a/Samples/ContactPicker/js/Package.appxmanifest b/Samples/ContactPicker/js/Package.appxmanifest
index 2080950740..683f1fb593 100644
--- a/Samples/ContactPicker/js/Package.appxmanifest
+++ b/Samples/ContactPicker/js/Package.appxmanifest
@@ -19,7 +19,7 @@
-
+
diff --git a/Samples/ContentIndexer/cpp/Package.appxmanifest b/Samples/ContentIndexer/cpp/Package.appxmanifest
index 894e3115a0..15535b0963 100644
--- a/Samples/ContentIndexer/cpp/Package.appxmanifest
+++ b/Samples/ContentIndexer/cpp/Package.appxmanifest
@@ -20,7 +20,7 @@
-
+
diff --git a/Samples/ContentIndexer/cs/Package.appxmanifest b/Samples/ContentIndexer/cs/Package.appxmanifest
index 0e0afc4b94..d462583ee6 100644
--- a/Samples/ContentIndexer/cs/Package.appxmanifest
+++ b/Samples/ContentIndexer/cs/Package.appxmanifest
@@ -21,7 +21,7 @@
-
+
diff --git a/Samples/ContentIndexer/js/Package.appxmanifest b/Samples/ContentIndexer/js/Package.appxmanifest
index 557a07ddea..f4d80a75b0 100644
--- a/Samples/ContentIndexer/js/Package.appxmanifest
+++ b/Samples/ContentIndexer/js/Package.appxmanifest
@@ -19,7 +19,7 @@
-
+
diff --git a/Samples/ContextMenu/cpp/Package.appxmanifest b/Samples/ContextMenu/cpp/Package.appxmanifest
index a2140f20b4..9f5e356471 100644
--- a/Samples/ContextMenu/cpp/Package.appxmanifest
+++ b/Samples/ContextMenu/cpp/Package.appxmanifest
@@ -20,7 +20,7 @@
-
+
diff --git a/Samples/ContextMenu/cpp/Scenario2.xaml.cpp b/Samples/ContextMenu/cpp/Scenario2.xaml.cpp
index 97148f9913..a6abd7f097 100644
--- a/Samples/ContextMenu/cpp/Scenario2.xaml.cpp
+++ b/Samples/ContextMenu/cpp/Scenario2.xaml.cpp
@@ -59,27 +59,10 @@ Rect Scenario2::GetTextboxSelectionRect(TextBox^ textbox)
rectLast = textbox->GetRectFromCharacterIndex(lastIndex, false);
}
- GeneralTransform^ buttonTransform = textbox->TransformToVisual(nullptr);
- const Point pointOrig(0, 0);
- const Point pointTransformed = buttonTransform->TransformPoint(pointOrig);
+ Rect selectionRect = RectHelper::Union(rectFirst, rectLast);
- // Make sure that we return a valid rect if selection is on multiple lines
- // and end of the selection is to the left of the start of the selection.
- float x, y, dx, dy;
- y = pointTransformed.Y + rectFirst.Top;
- dy = rectLast.Bottom - rectFirst.Top;
- if (rectLast.Right > rectFirst.Left)
- {
- x = pointTransformed.X + rectFirst.Left;
- dx = rectLast.Right - rectFirst.Left;
- }
- else
- {
- x = pointTransformed.X + rectLast.Right;
- dx = rectFirst.Left - rectLast.Right;
- }
-
- return Rect(x, y, dx, dy);
+ GeneralTransform^ transform = textbox->TransformToVisual(nullptr);
+ return transform->TransformBounds(selectionRect);
}
void Scenario2::ReadOnlyTextBox_ContextMenuOpening(Object^ sender, ContextMenuEventArgs^ e)
diff --git a/Samples/ContextMenu/cs/Package.appxmanifest b/Samples/ContextMenu/cs/Package.appxmanifest
index 0b1b23b479..21106995ff 100644
--- a/Samples/ContextMenu/cs/Package.appxmanifest
+++ b/Samples/ContextMenu/cs/Package.appxmanifest
@@ -21,7 +21,7 @@
-
+
diff --git a/Samples/ContextMenu/cs/Scenario2.xaml.cs b/Samples/ContextMenu/cs/Scenario2.xaml.cs
index 5f7e637acb..7706326991 100644
--- a/Samples/ContextMenu/cs/Scenario2.xaml.cs
+++ b/Samples/ContextMenu/cs/Scenario2.xaml.cs
@@ -56,26 +56,10 @@ private Rect GetTextboxSelectionRect(TextBox textbox)
rectLast = textbox.GetRectFromCharacterIndex(lastIndex, false);
}
- GeneralTransform buttonTransform = textbox.TransformToVisual(null);
- Point point = buttonTransform.TransformPoint(new Point());
+ rectFirst.Union(rectLast);
- // Make sure that we return a valid rect if selection is on multiple lines
- // and end of the selection is to the left of the start of the selection.
- double x, y, dx, dy;
- y = point.Y + rectFirst.Top;
- dy = rectLast.Bottom - rectFirst.Top;
- if (rectLast.Right > rectFirst.Left)
- {
- x = point.X + rectFirst.Left;
- dx = rectLast.Right - rectFirst.Left;
- }
- else
- {
- x = point.X + rectLast.Right;
- dx = rectFirst.Left - rectLast.Right;
- }
-
- return new Rect(x, dx, y, dy);
+ GeneralTransform transform = textbox.TransformToVisual(null);
+ return transform.TransformBounds(rectFirst);
}
private async void ReadOnlyTextBox_ContextMenuOpening(object sender, ContextMenuEventArgs e)
diff --git a/Samples/ContextMenu/js/Package.appxmanifest b/Samples/ContextMenu/js/Package.appxmanifest
index f7c08fb562..be6a022445 100644
--- a/Samples/ContextMenu/js/Package.appxmanifest
+++ b/Samples/ContextMenu/js/Package.appxmanifest
@@ -19,7 +19,7 @@
-
+
diff --git a/Samples/CredentialPicker/cpp/Package.appxmanifest b/Samples/CredentialPicker/cpp/Package.appxmanifest
index 32fd90b5cf..7a444151d4 100644
--- a/Samples/CredentialPicker/cpp/Package.appxmanifest
+++ b/Samples/CredentialPicker/cpp/Package.appxmanifest
@@ -20,7 +20,7 @@
-
+
diff --git a/Samples/CredentialPicker/cs/Package.appxmanifest b/Samples/CredentialPicker/cs/Package.appxmanifest
index 9b01bcc0e1..0da5c8ea08 100644
--- a/Samples/CredentialPicker/cs/Package.appxmanifest
+++ b/Samples/CredentialPicker/cs/Package.appxmanifest
@@ -21,7 +21,7 @@
-
+
diff --git a/Samples/CredentialPicker/js/Package.appxmanifest b/Samples/CredentialPicker/js/Package.appxmanifest
index b099c28fc8..3e24d624fd 100644
--- a/Samples/CredentialPicker/js/Package.appxmanifest
+++ b/Samples/CredentialPicker/js/Package.appxmanifest
@@ -19,7 +19,7 @@
-
+
diff --git a/Samples/CustomHidDeviceAccess/cpp/Package.appxmanifest b/Samples/CustomHidDeviceAccess/cpp/Package.appxmanifest
index 3455639aa5..d13d8f314c 100644
--- a/Samples/CustomHidDeviceAccess/cpp/Package.appxmanifest
+++ b/Samples/CustomHidDeviceAccess/cpp/Package.appxmanifest
@@ -20,7 +20,7 @@
-
+
diff --git a/Samples/CustomHidDeviceAccess/cs/Package.appxmanifest b/Samples/CustomHidDeviceAccess/cs/Package.appxmanifest
index 148c34fa28..70a76dfb58 100644
--- a/Samples/CustomHidDeviceAccess/cs/Package.appxmanifest
+++ b/Samples/CustomHidDeviceAccess/cs/Package.appxmanifest
@@ -20,7 +20,7 @@
-
+
diff --git a/Samples/CustomSensors/cpp/Package.appxmanifest b/Samples/CustomSensors/cpp/Package.appxmanifest
index 35175a0a3a..3083504a12 100644
--- a/Samples/CustomSensors/cpp/Package.appxmanifest
+++ b/Samples/CustomSensors/cpp/Package.appxmanifest
@@ -20,7 +20,7 @@
-
+
diff --git a/Samples/CustomSensors/cs/Package.appxmanifest b/Samples/CustomSensors/cs/Package.appxmanifest
index 2a7f8e07fe..fa7946fad4 100644
--- a/Samples/CustomSensors/cs/Package.appxmanifest
+++ b/Samples/CustomSensors/cs/Package.appxmanifest
@@ -21,7 +21,7 @@
-
+
diff --git a/Samples/CustomSensors/js/Package.appxmanifest b/Samples/CustomSensors/js/Package.appxmanifest
index 21756ca2da..616d387816 100644
--- a/Samples/CustomSensors/js/Package.appxmanifest
+++ b/Samples/CustomSensors/js/Package.appxmanifest
@@ -19,7 +19,7 @@
-
+
diff --git a/Samples/CustomSerialDeviceAccess/cs/Package.appxmanifest b/Samples/CustomSerialDeviceAccess/cs/Package.appxmanifest
index c2c135c8d1..42120c2b9a 100644
--- a/Samples/CustomSerialDeviceAccess/cs/Package.appxmanifest
+++ b/Samples/CustomSerialDeviceAccess/cs/Package.appxmanifest
@@ -8,7 +8,7 @@
Assets\StoreLogo-sdk.png
-
+
diff --git a/Samples/CustomSerialDeviceAccess/js/Package.appxmanifest b/Samples/CustomSerialDeviceAccess/js/Package.appxmanifest
index 417463d118..c891d95582 100644
--- a/Samples/CustomSerialDeviceAccess/js/Package.appxmanifest
+++ b/Samples/CustomSerialDeviceAccess/js/Package.appxmanifest
@@ -19,7 +19,7 @@
-
+
diff --git a/Samples/CustomUsbDeviceAccess/cs/Package.appxmanifest b/Samples/CustomUsbDeviceAccess/cs/Package.appxmanifest
index 3675347963..a84f4bb7b8 100644
--- a/Samples/CustomUsbDeviceAccess/cs/Package.appxmanifest
+++ b/Samples/CustomUsbDeviceAccess/cs/Package.appxmanifest
@@ -21,7 +21,7 @@
-
+
diff --git a/Samples/CustomUsbDeviceAccess/js/Package.appxmanifest b/Samples/CustomUsbDeviceAccess/js/Package.appxmanifest
index e8022ff718..adda7ac5ad 100644
--- a/Samples/CustomUsbDeviceAccess/js/Package.appxmanifest
+++ b/Samples/CustomUsbDeviceAccess/js/Package.appxmanifest
@@ -19,7 +19,7 @@
-
+
diff --git a/Samples/D2DCustomEffects/cpp/ComputeShader/Package.appxmanifest b/Samples/D2DCustomEffects/cpp/ComputeShader/Package.appxmanifest
index efa50960c0..4295d7cb0f 100644
--- a/Samples/D2DCustomEffects/cpp/ComputeShader/Package.appxmanifest
+++ b/Samples/D2DCustomEffects/cpp/ComputeShader/Package.appxmanifest
@@ -20,7 +20,7 @@
-
+
diff --git a/Samples/D2DCustomEffects/cpp/PixelShader/Package.appxmanifest b/Samples/D2DCustomEffects/cpp/PixelShader/Package.appxmanifest
index a05cd0141d..cc82225161 100644
--- a/Samples/D2DCustomEffects/cpp/PixelShader/Package.appxmanifest
+++ b/Samples/D2DCustomEffects/cpp/PixelShader/Package.appxmanifest
@@ -20,7 +20,7 @@
-
+
diff --git a/Samples/D2DCustomEffects/cpp/VertexShader/Package.appxmanifest b/Samples/D2DCustomEffects/cpp/VertexShader/Package.appxmanifest
index 3d345a3a96..511b004788 100644
--- a/Samples/D2DCustomEffects/cpp/VertexShader/Package.appxmanifest
+++ b/Samples/D2DCustomEffects/cpp/VertexShader/Package.appxmanifest
@@ -20,7 +20,7 @@
-
+
diff --git a/Samples/D2DGradientMesh/cpp/Package.appxmanifest b/Samples/D2DGradientMesh/cpp/Package.appxmanifest
index 71f44879cb..91df8d072c 100644
--- a/Samples/D2DGradientMesh/cpp/Package.appxmanifest
+++ b/Samples/D2DGradientMesh/cpp/Package.appxmanifest
@@ -20,7 +20,7 @@
-
+
diff --git a/Samples/D2DPhotoAdjustment/cpp/Package.appxmanifest b/Samples/D2DPhotoAdjustment/cpp/Package.appxmanifest
index 22874438b2..27975d7db8 100644
--- a/Samples/D2DPhotoAdjustment/cpp/Package.appxmanifest
+++ b/Samples/D2DPhotoAdjustment/cpp/Package.appxmanifest
@@ -15,7 +15,7 @@
Assets\StoreLogo-sdk.png
-
+
diff --git a/Samples/DWriteLineSpacingModes/cpp/DWriteLineSpacingModes/Package.appxmanifest b/Samples/DWriteLineSpacingModes/cpp/DWriteLineSpacingModes/Package.appxmanifest
index 911e9d5219..5dded0af1e 100644
--- a/Samples/DWriteLineSpacingModes/cpp/DWriteLineSpacingModes/Package.appxmanifest
+++ b/Samples/DWriteLineSpacingModes/cpp/DWriteLineSpacingModes/Package.appxmanifest
@@ -20,7 +20,7 @@
-
+
diff --git a/Samples/DWriteTextLayoutCloudFont/cpp/DWriteTextLayoutCloudFont/Package.appxmanifest b/Samples/DWriteTextLayoutCloudFont/cpp/DWriteTextLayoutCloudFont/Package.appxmanifest
index 5a1e4e54b2..8ebde7c233 100644
--- a/Samples/DWriteTextLayoutCloudFont/cpp/DWriteTextLayoutCloudFont/Package.appxmanifest
+++ b/Samples/DWriteTextLayoutCloudFont/cpp/DWriteTextLayoutCloudFont/Package.appxmanifest
@@ -8,7 +8,7 @@
Assets\StoreLogo-sdk.png
-
+
diff --git a/Samples/DataReaderWriter/cpp/Package.appxmanifest b/Samples/DataReaderWriter/cpp/Package.appxmanifest
index ff03a59704..9d8cfb4fe7 100644
--- a/Samples/DataReaderWriter/cpp/Package.appxmanifest
+++ b/Samples/DataReaderWriter/cpp/Package.appxmanifest
@@ -20,7 +20,7 @@
-
+
diff --git a/Samples/DataReaderWriter/cs/Package.appxmanifest b/Samples/DataReaderWriter/cs/Package.appxmanifest
index b778932f1f..dc19ad64d9 100644
--- a/Samples/DataReaderWriter/cs/Package.appxmanifest
+++ b/Samples/DataReaderWriter/cs/Package.appxmanifest
@@ -20,7 +20,7 @@
-
+
diff --git a/Samples/DataReaderWriter/js/Package.appxmanifest b/Samples/DataReaderWriter/js/Package.appxmanifest
index 56dc8bdca2..b7450f601d 100644
--- a/Samples/DataReaderWriter/js/Package.appxmanifest
+++ b/Samples/DataReaderWriter/js/Package.appxmanifest
@@ -19,7 +19,7 @@
-
+
diff --git a/Samples/DatagramSocket/js/Package.appxmanifest b/Samples/DatagramSocket/js/Package.appxmanifest
index ef04388d4b..62dd978586 100644
--- a/Samples/DatagramSocket/js/Package.appxmanifest
+++ b/Samples/DatagramSocket/js/Package.appxmanifest
@@ -19,7 +19,7 @@
-
+
diff --git a/Samples/DateTimeFormatting/cpp/Package.appxmanifest b/Samples/DateTimeFormatting/cpp/Package.appxmanifest
index d03f70b263..bf6edf0026 100644
--- a/Samples/DateTimeFormatting/cpp/Package.appxmanifest
+++ b/Samples/DateTimeFormatting/cpp/Package.appxmanifest
@@ -20,7 +20,7 @@
-
+
diff --git a/Samples/DateTimeFormatting/cs/Package.appxmanifest b/Samples/DateTimeFormatting/cs/Package.appxmanifest
index 0828a2ac24..1f5be7d7ea 100644
--- a/Samples/DateTimeFormatting/cs/Package.appxmanifest
+++ b/Samples/DateTimeFormatting/cs/Package.appxmanifest
@@ -21,7 +21,7 @@
-
+
diff --git a/Samples/DateTimeFormatting/js/Package.appxmanifest b/Samples/DateTimeFormatting/js/Package.appxmanifest
index cb322ef343..eeb4c61ce0 100644
--- a/Samples/DateTimeFormatting/js/Package.appxmanifest
+++ b/Samples/DateTimeFormatting/js/Package.appxmanifest
@@ -19,7 +19,7 @@
-
+
diff --git a/Samples/DeviceLockdownAzureLogin/cs/DeviceLockdownAzureLogin.csproj b/Samples/DeviceLockdownAzureLogin/cs/DeviceLockdownAzureLogin.csproj
index a9effd26ba..ccac42d364 100644
--- a/Samples/DeviceLockdownAzureLogin/cs/DeviceLockdownAzureLogin.csproj
+++ b/Samples/DeviceLockdownAzureLogin/cs/DeviceLockdownAzureLogin.csproj
@@ -159,7 +159,7 @@
-
+ Windows Mobile Extensions for the UWP
diff --git a/Samples/DeviceLockdownAzureLogin/cs/Package.appxmanifest b/Samples/DeviceLockdownAzureLogin/cs/Package.appxmanifest
index b66b53aa6f..c722b5fd52 100644
--- a/Samples/DeviceLockdownAzureLogin/cs/Package.appxmanifest
+++ b/Samples/DeviceLockdownAzureLogin/cs/Package.appxmanifest
@@ -17,7 +17,7 @@
-
+
diff --git a/Samples/DisablingScreenCapture/cpp/Package.appxmanifest b/Samples/DisablingScreenCapture/cpp/Package.appxmanifest
index 2d76b5d88b..dd6aa9e8e4 100644
--- a/Samples/DisablingScreenCapture/cpp/Package.appxmanifest
+++ b/Samples/DisablingScreenCapture/cpp/Package.appxmanifest
@@ -20,7 +20,7 @@
-
+
diff --git a/Samples/DisablingScreenCapture/cs/Package.appxmanifest b/Samples/DisablingScreenCapture/cs/Package.appxmanifest
index 7fd6e34025..e781d92e9b 100644
--- a/Samples/DisablingScreenCapture/cs/Package.appxmanifest
+++ b/Samples/DisablingScreenCapture/cs/Package.appxmanifest
@@ -21,7 +21,7 @@
-
+
diff --git a/Samples/DisablingScreenCapture/js/Package.appxmanifest b/Samples/DisablingScreenCapture/js/Package.appxmanifest
index e024a26d0d..10b4da7394 100644
--- a/Samples/DisablingScreenCapture/js/Package.appxmanifest
+++ b/Samples/DisablingScreenCapture/js/Package.appxmanifest
@@ -19,7 +19,7 @@
-
+
diff --git a/Samples/DisplayOrientation/cpp/Package.appxmanifest b/Samples/DisplayOrientation/cpp/Package.appxmanifest
index 1b7ad78d12..eb511cd921 100644
--- a/Samples/DisplayOrientation/cpp/Package.appxmanifest
+++ b/Samples/DisplayOrientation/cpp/Package.appxmanifest
@@ -20,7 +20,7 @@
-
+
diff --git a/Samples/DisplayOrientation/cs/Package.appxmanifest b/Samples/DisplayOrientation/cs/Package.appxmanifest
index 4bf5b4fbba..db0d70596c 100644
--- a/Samples/DisplayOrientation/cs/Package.appxmanifest
+++ b/Samples/DisplayOrientation/cs/Package.appxmanifest
@@ -21,7 +21,7 @@
-
+
diff --git a/Samples/DisplayOrientation/js/Package.appxmanifest b/Samples/DisplayOrientation/js/Package.appxmanifest
index c7371ac5bb..575c71cbcd 100644
--- a/Samples/DisplayOrientation/js/Package.appxmanifest
+++ b/Samples/DisplayOrientation/js/Package.appxmanifest
@@ -19,7 +19,7 @@
-
+
diff --git a/Samples/DpiScaling/cpp/Package.appxmanifest b/Samples/DpiScaling/cpp/Package.appxmanifest
index 2347402721..f1e4521ba7 100644
--- a/Samples/DpiScaling/cpp/Package.appxmanifest
+++ b/Samples/DpiScaling/cpp/Package.appxmanifest
@@ -20,7 +20,7 @@
-
+
diff --git a/Samples/DpiScaling/cs/Package.appxmanifest b/Samples/DpiScaling/cs/Package.appxmanifest
index 7868f56886..45c937ab26 100644
--- a/Samples/DpiScaling/cs/Package.appxmanifest
+++ b/Samples/DpiScaling/cs/Package.appxmanifest
@@ -21,7 +21,7 @@
-
+
diff --git a/Samples/DpiScaling/js/Package.appxmanifest b/Samples/DpiScaling/js/Package.appxmanifest
index 27f8f50111..d1b811c2e5 100644
--- a/Samples/DpiScaling/js/Package.appxmanifest
+++ b/Samples/DpiScaling/js/Package.appxmanifest
@@ -19,7 +19,7 @@
-
+
diff --git a/Samples/EasProtocol/cpp/Scenario2_CheckCompliance.xaml b/Samples/EasProtocol/cpp/Scenario2_CheckCompliance.xaml
deleted file mode 100644
index 8d115f03ba..0000000000
--- a/Samples/EasProtocol/cpp/Scenario2_CheckCompliance.xaml
+++ /dev/null
@@ -1,119 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
- This scenario provides an example how mail client provision a device with supplied EAS policies. Mail client can check if current device settings are compliant with EAS policies required by EAS server.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/Samples/EasProtocol/cpp/Scenario2_CheckCompliance.xaml.cpp b/Samples/EasProtocol/cpp/Scenario2_CheckCompliance.xaml.cpp
deleted file mode 100644
index 68e5ac23c4..0000000000
--- a/Samples/EasProtocol/cpp/Scenario2_CheckCompliance.xaml.cpp
+++ /dev/null
@@ -1,172 +0,0 @@
-// Copyright (c) Microsoft. All rights reserved.
-
-#include "pch.h"
-#include "Scenario2_CheckCompliance.xaml.h"
-
-using namespace SDKTemplate;
-
-using namespace Platform;
-using namespace Windows::Foundation;
-using namespace Windows::Foundation::Collections;
-using namespace Windows::Security::ExchangeActiveSyncProvisioning;
-using namespace Windows::UI::Xaml;
-using namespace Windows::UI::Xaml::Controls;
-using namespace Windows::UI::Xaml::Controls::Primitives;
-using namespace Windows::UI::Xaml::Data;
-using namespace Windows::UI::Xaml::Input;
-using namespace Windows::UI::Xaml::Media;
-using namespace Windows::UI::Xaml::Navigation;
-
-Scenario2_CheckCompliance::Scenario2_CheckCompliance() : rootPage(MainPage::Current)
-{
- InitializeComponent();
-}
-
-void Scenario2_CheckCompliance::Launch_Click(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e)
-{
- try
- {
- EasClientSecurityPolicy^ RequestedPolicy = ref new EasClientSecurityPolicy;
-
- if (RequireEncryptionValue == nullptr)
- {
- RequestedPolicy->RequireEncryption = false;
- }
- else
- {
- if (RequireEncryptionValue->SelectedIndex == 1)
- {
- RequestedPolicy->RequireEncryption = true;
- }
- else
- {
- RequestedPolicy->RequireEncryption = false;
- }
-
- }
-
- if (RequireEncryptionValue == nullptr || MinPasswordLengthValue->Text == "")
- {
- RequestedPolicy->MinPasswordLength = 0;
- }
- else
- {
- RequestedPolicy->MinPasswordLength = _wtoi(MinPasswordLengthValue->Text->Data());
- }
-
- if (DisallowConvenienceLogonValue == nullptr)
- {
- RequestedPolicy->DisallowConvenienceLogon = false;
- }
- else
- {
- if (DisallowConvenienceLogonValue->SelectedIndex == 1)
- {
- RequestedPolicy->DisallowConvenienceLogon = true;
- }
- else
- {
- RequestedPolicy->DisallowConvenienceLogon = false;
- }
-
- }
-
- if (MinPasswordComplexCharactersValue == nullptr || MinPasswordComplexCharactersValue->Text == "")
- {
- RequestedPolicy->MinPasswordComplexCharacters = 0;
- }
- else
- {
- RequestedPolicy->MinPasswordComplexCharacters = _wtoi(MinPasswordComplexCharactersValue->Text->Data());
- }
-
- TimeSpan ExpirationDays;
- if (PasswordExpirationValue == nullptr || PasswordExpirationValue->Text == "")
- {
- ExpirationDays.Duration = 0;
- RequestedPolicy->PasswordExpiration = ExpirationDays;
- }
- else
- {
- ExpirationDays.Duration = _wtoi(PasswordExpirationValue->Text->Data()) * 86400000;
- RequestedPolicy->PasswordExpiration = ExpirationDays;
- }
-
- if (PasswordHistoryValue == nullptr || PasswordHistoryValue->Text == "")
- {
- RequestedPolicy->PasswordHistory = 0;
- }
- else
- {
- RequestedPolicy->PasswordHistory = _wtoi(PasswordHistoryValue->Text->Data());
- }
-
- if (MaxPasswordFailedAttemptsValue == nullptr || MaxPasswordFailedAttemptsValue->Text == "")
- {
- RequestedPolicy->MaxPasswordFailedAttempts = 0;
- }
- else
- {
- RequestedPolicy->MaxPasswordFailedAttempts = _wtoi(MaxPasswordFailedAttemptsValue->Text->Data());
- }
-
- TimeSpan Inactiveseconds;
- if (MaxInactivityTimeLockValue == nullptr || MaxInactivityTimeLockValue->Text == "")
- {
- Inactiveseconds.Duration = 0;
- RequestedPolicy->MaxInactivityTimeLock = Inactiveseconds;
- }
- else
- {
- Inactiveseconds.Duration = _wtoi(MaxInactivityTimeLockValue->Text->Data()) * 1000;
- RequestedPolicy->MaxInactivityTimeLock = Inactiveseconds;
- }
-
- EasComplianceResults^ CheckResult = RequestedPolicy->CheckCompliance();
-
- RequireEncryptionResult->Text = CheckResult->RequireEncryptionResult.ToString();
- EncryptionProviderTypeResult->Text = CheckResult->EncryptionProviderType.ToString();
- MinPasswordLengthResult->Text = CheckResult->MinPasswordLengthResult.ToString();
- DisallowConvenienceLogonResult->Text = CheckResult->DisallowConvenienceLogonResult.ToString();
- MinPasswordComplexCharactersResult->Text = CheckResult->MinPasswordComplexCharactersResult.ToString();
- PasswordExpirationResult->Text = CheckResult->PasswordExpirationResult.ToString();
- PasswordHistoryResult->Text = CheckResult->PasswordHistoryResult.ToString();
- MaxPasswordFailedAttemptsResult->Text = CheckResult->MaxPasswordFailedAttemptsResult.ToString();
- MaxInactivityTimeLockResult->Text = CheckResult->MaxInactivityTimeLockResult.ToString();
- }
-
- catch (Platform::Exception^ ex)
- {
- MainPage::Current->NotifyUser(ex->Message, NotifyType::ErrorMessage);
- }
-}
-
-void Scenario2_CheckCompliance::Reset_Click(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e)
-{
- try
- {
- RequireEncryptionValue->SelectedIndex = 0;
- MinPasswordLengthValue->Text = "";
- DisallowConvenienceLogonValue->SelectedIndex = 0;
- MinPasswordComplexCharactersValue->Text = "";
- PasswordExpirationValue->Text = "";
- PasswordHistoryValue->Text = "";
- MaxPasswordFailedAttemptsValue->Text = "";
- MaxInactivityTimeLockValue->Text = "";
-
- RequireEncryptionResult->Text = "";
- EncryptionProviderTypeResult->Text = "";
- MinPasswordLengthResult->Text = "";
- DisallowConvenienceLogonResult->Text = "";
- MinPasswordComplexCharactersResult->Text = "";
- PasswordExpirationResult->Text = "";
- PasswordHistoryResult->Text = "";
- MaxPasswordFailedAttemptsResult->Text = "";
- MaxInactivityTimeLockResult->Text = "";
- }
- catch (Platform::Exception^ ex)
- {
- MainPage::Current->NotifyUser(ex->Message, NotifyType::ErrorMessage);
- }
-}
-
diff --git a/Samples/EasProtocol/cpp/Scenario2_CheckCompliance.xaml.h b/Samples/EasProtocol/cpp/Scenario2_CheckCompliance.xaml.h
deleted file mode 100644
index 3b2947be0f..0000000000
--- a/Samples/EasProtocol/cpp/Scenario2_CheckCompliance.xaml.h
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (c) Microsoft. All rights reserved.
-
-#pragma once
-
-#include "Scenario2_CheckCompliance.g.h"
-#include "MainPage.xaml.h"
-
-namespace SDKTemplate
-{
- [Windows::Foundation::Metadata::WebHostHidden]
- public ref class Scenario2_CheckCompliance sealed
- {
- public:
- Scenario2_CheckCompliance();
- private:
- void Launch_Click(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e);
- void Reset_Click(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e);
-
- SDKTemplate::MainPage^ rootPage;
- };
-}
diff --git a/Samples/EasProtocol/cpp/Scenario3_ApplyEASPolicy.xaml b/Samples/EasProtocol/cpp/Scenario3_ApplyEASPolicy.xaml
deleted file mode 100644
index 1becef5eac..0000000000
--- a/Samples/EasProtocol/cpp/Scenario3_ApplyEASPolicy.xaml
+++ /dev/null
@@ -1,113 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
- This scenario provides an example how mail client setup a device with supplied EAS policies. Mail client can check if current device settings are compliant with EAS policies required by EAS server. If some non-compliance settings can be changed to be compliant, mail client can apply the policy settings to the device.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/Samples/EasProtocol/cpp/Scenario3_ApplyEASPolicy.xaml.cpp b/Samples/EasProtocol/cpp/Scenario3_ApplyEASPolicy.xaml.cpp
deleted file mode 100644
index 7a0e80fd82..0000000000
--- a/Samples/EasProtocol/cpp/Scenario3_ApplyEASPolicy.xaml.cpp
+++ /dev/null
@@ -1,186 +0,0 @@
-// Copyright (c) Microsoft. All rights reserved.
-
-#include "pch.h"
-#include "Scenario3_ApplyEASPolicy.xaml.h"
-
-using namespace SDKTemplate;
-
-using namespace Platform;
-using namespace concurrency;
-using namespace Windows::Foundation;
-using namespace Windows::Foundation::Collections;
-using namespace Windows::Security::ExchangeActiveSyncProvisioning;
-using namespace Windows::UI::Xaml;
-using namespace Windows::UI::Xaml::Controls;
-using namespace Windows::UI::Xaml::Controls::Primitives;
-using namespace Windows::UI::Xaml::Data;
-using namespace Windows::UI::Xaml::Input;
-using namespace Windows::UI::Xaml::Media;
-using namespace Windows::UI::Xaml::Navigation;
-
-Scenario3_ApplyEASPolicy::Scenario3_ApplyEASPolicy() : rootPage(MainPage::Current)
-{
- InitializeComponent();
-}
-
-void Scenario3_ApplyEASPolicy::Launch_Click(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e)
-{
- try
- {
- EasClientSecurityPolicy^ RequestedPolicy = ref new EasClientSecurityPolicy;
-
- if (RequireEncryptionValue == nullptr)
- {
- RequestedPolicy->RequireEncryption = false;
- }
- else
- {
- if (RequireEncryptionValue->SelectedIndex == 1)
- {
- RequestedPolicy->RequireEncryption = true;
- }
- else
- {
- RequestedPolicy->RequireEncryption = false;
- }
-
- }
-
- if (MinPasswordLengthValue == nullptr || MinPasswordLengthValue->Text == "")
- {
- RequestedPolicy->MinPasswordLength = 0;
- }
- else
- {
- RequestedPolicy->MinPasswordLength = _wtoi(MinPasswordLengthValue->Text->Data());
- }
-
- if (DisallowConvenienceLogonValue == nullptr)
- {
- RequestedPolicy->DisallowConvenienceLogon = false;
- }
- else
- {
- if (DisallowConvenienceLogonValue->SelectedIndex == 1)
- {
- RequestedPolicy->DisallowConvenienceLogon = true;
- }
- else
- {
- RequestedPolicy->DisallowConvenienceLogon = false;
- }
-
- }
-
- if (MinPasswordComplexCharactersValue == nullptr || MinPasswordComplexCharactersValue->Text == "")
- {
- RequestedPolicy->MinPasswordComplexCharacters = 0;
- }
- else
- {
- RequestedPolicy->MinPasswordComplexCharacters = _wtoi(MinPasswordComplexCharactersValue->Text->Data());
- }
-
- TimeSpan ExpirationDays;
- if (PasswordExpirationValue == nullptr || PasswordExpirationValue->Text == "")
- {
- ExpirationDays.Duration = 0;
- RequestedPolicy->PasswordExpiration = ExpirationDays;
- }
- else
- {
- ExpirationDays.Duration = _wtoi(PasswordExpirationValue->Text->Data()) * 86400000;
- RequestedPolicy->PasswordExpiration = ExpirationDays;
- }
-
- if (PasswordHistoryValue == nullptr || PasswordHistoryValue->Text == "")
- {
- RequestedPolicy->PasswordHistory = 0;
- }
- else
- {
- RequestedPolicy->PasswordHistory = _wtoi(PasswordHistoryValue->Text->Data());
- }
-
- if (MaxPasswordFailedAttemptsValue == nullptr || MaxPasswordFailedAttemptsValue->Text == "")
- {
- RequestedPolicy->MaxPasswordFailedAttempts = 0;
- }
- else
- {
- RequestedPolicy->MaxPasswordFailedAttempts = _wtoi(MaxPasswordFailedAttemptsValue->Text->Data());
- }
-
- TimeSpan Inactiveseconds;
- if (MaxInactivityTimeLockValue == nullptr || MaxInactivityTimeLockValue->Text == "")
- {
- Inactiveseconds.Duration = 0;
- RequestedPolicy->MaxInactivityTimeLock = Inactiveseconds;
- }
- else
- {
- Inactiveseconds.Duration = _wtoi(MaxInactivityTimeLockValue->Text->Data()) * 1000;
- RequestedPolicy->MaxInactivityTimeLock = Inactiveseconds;
- }
-
- task ApplyOp(RequestedPolicy->ApplyAsync());
- ApplyOp.then([=](task resultTask)
- {
- try
- {
- auto results = resultTask.get();
-
- RequireEncryptionResult->Text = results->RequireEncryptionResult.ToString();
- MinPasswordLengthResult->Text = results->MinPasswordLengthResult.ToString();
- DisallowConvenienceLogonResult->Text = results->DisallowConvenienceLogonResult.ToString();
- MinPasswordComplexCharactersResult->Text = results->MinPasswordComplexCharactersResult.ToString();
- PasswordExpirationResult->Text = results->PasswordExpirationResult.ToString();
- PasswordHistoryResult->Text = results->PasswordHistoryResult.ToString();
- MaxPasswordFailedAttemptsResult->Text = results->MaxPasswordFailedAttemptsResult.ToString();
- MaxInactivityTimeLockResult->Text = results->MaxInactivityTimeLockResult.ToString();
- }
- catch (Platform::Exception^ ex)
- {
- // ignore that 0x800704C7 exception
- if (ex->HResult != 0x800704C7)
- {
- MainPage::Current->NotifyUser(ex->Message, NotifyType::ErrorMessage);
- }
- }
- });
- }
-
- catch (Platform::Exception^ ex)
- {
- MainPage::Current->NotifyUser(ex->Message, NotifyType::ErrorMessage);
- }
-}
-
-void Scenario3_ApplyEASPolicy::Reset_Click(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e)
-{
- try
- {
- RequireEncryptionValue->SelectedIndex = 0;
- MinPasswordLengthValue->Text = "";
- DisallowConvenienceLogonValue->SelectedIndex = 0;
- MinPasswordComplexCharactersValue->Text = "";
- PasswordExpirationValue->Text = "";
- PasswordHistoryValue->Text = "";
- MaxPasswordFailedAttemptsValue->Text = "";
- MaxInactivityTimeLockValue->Text = "";
-
- RequireEncryptionResult->Text = "";
- MinPasswordLengthResult->Text = "";
- DisallowConvenienceLogonResult->Text = "";
- MinPasswordComplexCharactersResult->Text = "";
- PasswordExpirationResult->Text = "";
- PasswordHistoryResult->Text = "";
- MaxPasswordFailedAttemptsResult->Text = "";
- MaxInactivityTimeLockResult->Text = "";
- }
- catch (Platform::Exception^ ex)
- {
- MainPage::Current->NotifyUser(ex->Message, NotifyType::ErrorMessage);
- }
-}
-
diff --git a/Samples/EasProtocol/cpp/Scenario3_ApplyEASPolicy.xaml.h b/Samples/EasProtocol/cpp/Scenario3_ApplyEASPolicy.xaml.h
deleted file mode 100644
index 27c2d8fe45..0000000000
--- a/Samples/EasProtocol/cpp/Scenario3_ApplyEASPolicy.xaml.h
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (c) Microsoft. All rights reserved.
-
-#pragma once
-
-#include "Scenario3_ApplyEASPolicy.g.h"
-#include "MainPage.xaml.h"
-
-namespace SDKTemplate
-{
- [Windows::Foundation::Metadata::WebHostHidden]
- public ref class Scenario3_ApplyEASPolicy sealed
- {
- public:
- Scenario3_ApplyEASPolicy();
- private:
- void Launch_Click(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e);
- void Reset_Click(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e);
-
- SDKTemplate::MainPage^ rootPage;
- };
-}
diff --git a/Samples/EasProtocol/cs/Scenario2_CheckCompliance.xaml b/Samples/EasProtocol/cs/Scenario2_CheckCompliance.xaml
deleted file mode 100644
index c7f7b145b6..0000000000
--- a/Samples/EasProtocol/cs/Scenario2_CheckCompliance.xaml
+++ /dev/null
@@ -1,119 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
- This scenario provides an example how mail client provision a device with supplied EAS policies. Mail client can check if current device settings are compliant with EAS policies required by EAS server.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/Samples/EasProtocol/cs/Scenario2_CheckCompliance.xaml.cs b/Samples/EasProtocol/cs/Scenario2_CheckCompliance.xaml.cs
deleted file mode 100644
index f8282808b7..0000000000
--- a/Samples/EasProtocol/cs/Scenario2_CheckCompliance.xaml.cs
+++ /dev/null
@@ -1,161 +0,0 @@
-//*********************************************************
-//
-// Copyright (c) Microsoft. All rights reserved.
-// This code is licensed under the MIT License (MIT).
-// THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF
-// ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY
-// IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR
-// PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.
-//
-//*********************************************************
-
-using SDKTemplate;
-using System;
-using Windows.Security.ExchangeActiveSyncProvisioning;
-using Windows.UI.Xaml;
-using Windows.UI.Xaml.Controls;
-
-namespace EAS
-{
- public sealed partial class Scenario2_CheckCompliance : Page
- {
- MainPage rootPage = MainPage.Current;
-
- public Scenario2_CheckCompliance()
- {
- this.InitializeComponent();
- }
-
- private void Launch_Click(object sender, RoutedEventArgs e)
- {
- try
- {
- EasClientSecurityPolicy RequestedPolicy = new EasClientSecurityPolicy();
- EasComplianceResults ComplianceResult = null;
-
- if (RequireEncryptionValue == null)
- {
- RequestedPolicy.RequireEncryption = false;
- }
- else
- {
- if (RequireEncryptionValue.SelectedIndex == 1)
- {
- RequestedPolicy.RequireEncryption = true;
- }
- else
- {
- RequestedPolicy.RequireEncryption = false;
- }
- }
-
- if (MinPasswordLengthValue == null || MinPasswordLengthValue.Text.Length == 0)
- {
- RequestedPolicy.MinPasswordLength = 0;
- }
- else
- {
- RequestedPolicy.MinPasswordLength = Convert.ToByte(MinPasswordLengthValue.Text);
- }
-
- if (DisallowConvenienceLogonValue == null)
- {
- RequestedPolicy.DisallowConvenienceLogon = false;
- }
- else
- {
- if (DisallowConvenienceLogonValue.SelectedIndex == 1)
- {
- RequestedPolicy.DisallowConvenienceLogon = true;
- }
- else
- {
- RequestedPolicy.DisallowConvenienceLogon = false;
- }
- }
-
- if (MinPasswordComplexCharactersValue == null || MinPasswordComplexCharactersValue.Text.Length == 0)
- {
- RequestedPolicy.MinPasswordComplexCharacters = 0;
- }
- else
- {
- RequestedPolicy.MinPasswordComplexCharacters = Convert.ToByte(MinPasswordComplexCharactersValue.Text);
- }
-
- if (PasswordExpirationValue == null || PasswordExpirationValue.Text.Length == 0)
- {
- RequestedPolicy.PasswordExpiration = TimeSpan.Parse("0");
- }
- else
- {
- RequestedPolicy.PasswordExpiration = TimeSpan.FromDays(Convert.ToDouble(PasswordExpirationValue.Text));
- }
-
- if (PasswordHistoryValue == null || PasswordHistoryValue.Text.Length == 0)
- {
- RequestedPolicy.PasswordHistory = 0;
- }
- else
- {
- RequestedPolicy.PasswordHistory = Convert.ToByte(PasswordHistoryValue.Text);
- }
-
- if (MaxPasswordFailedAttemptsValue == null || MaxPasswordFailedAttemptsValue.Text.Length == 0)
- {
- RequestedPolicy.MaxPasswordFailedAttempts = 0;
- }
- else
- {
- RequestedPolicy.MaxPasswordFailedAttempts = Convert.ToByte(MaxPasswordFailedAttemptsValue.Text);
- }
-
- if (MaxInactivityTimeLockValue == null || MaxInactivityTimeLockValue.Text.Length == 0)
- {
- RequestedPolicy.MaxInactivityTimeLock = TimeSpan.Parse("0");
- }
- else
- {
- RequestedPolicy.MaxInactivityTimeLock = TimeSpan.FromSeconds(Convert.ToDouble(MaxInactivityTimeLockValue.Text));
- }
-
- ComplianceResult = RequestedPolicy.CheckCompliance();
-
- RequireEncryptionResult.Text = ComplianceResult.RequireEncryptionResult.ToString();
- EncryptionProviderTypeResult.Text = ComplianceResult.EncryptionProviderType.ToString();
- MinPasswordLengthResult.Text = ComplianceResult.MinPasswordLengthResult.ToString();
- DisallowConvenienceLogonResult.Text = ComplianceResult.DisallowConvenienceLogonResult.ToString();
- MinPasswordComplexCharactersResult.Text = ComplianceResult.MinPasswordComplexCharactersResult.ToString();
- PasswordExpirationResult.Text = ComplianceResult.PasswordExpirationResult.ToString();
- PasswordHistoryResult.Text = ComplianceResult.PasswordHistoryResult.ToString();
- MaxPasswordFailedAttemptsResult.Text = ComplianceResult.MaxPasswordFailedAttemptsResult.ToString();
- MaxInactivityTimeLockResult.Text = ComplianceResult.MaxInactivityTimeLockResult.ToString();
- }
- catch (Exception Error)
- {
- rootPage.NotifyUser(Error.Message, NotifyType.ErrorMessage);
- }
- }
-
- private void Reset_Click(object sender, RoutedEventArgs e)
- {
- RequireEncryptionValue.SelectedIndex = 0;
- MinPasswordLengthValue.Text = "";
- DisallowConvenienceLogonValue.SelectedIndex = 0;
- MinPasswordComplexCharactersValue.Text = "";
- PasswordExpirationValue.Text = "";
- PasswordHistoryValue.Text = "";
- MaxPasswordFailedAttemptsValue.Text = "";
- MaxInactivityTimeLockValue.Text = "";
- RequireEncryptionResult.Text = "";
- EncryptionProviderTypeResult.Text = "";
- MinPasswordLengthResult.Text = "";
- DisallowConvenienceLogonResult.Text = "";
- MinPasswordComplexCharactersResult.Text = "";
- PasswordExpirationResult.Text = "";
- PasswordHistoryResult.Text = "";
- MaxPasswordFailedAttemptsResult.Text = "";
- MaxInactivityTimeLockResult.Text = "";
- }
- }
-}
diff --git a/Samples/EasProtocol/cs/Scenario3_ApplyEASPolicy.xaml b/Samples/EasProtocol/cs/Scenario3_ApplyEASPolicy.xaml
deleted file mode 100644
index 6539630aa9..0000000000
--- a/Samples/EasProtocol/cs/Scenario3_ApplyEASPolicy.xaml
+++ /dev/null
@@ -1,113 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
- This scenario provides an example how mail client setup a device with supplied EAS policies. Mail client can check if current device settings are compliant with EAS policies required by EAS server. If some non-compliance settings can be changed to be compliant, mail client can apply the policy settings to the device.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/Samples/EasProtocol/cs/Scenario3_ApplyEASPolicy.xaml.cs b/Samples/EasProtocol/cs/Scenario3_ApplyEASPolicy.xaml.cs
deleted file mode 100644
index a4bc327880..0000000000
--- a/Samples/EasProtocol/cs/Scenario3_ApplyEASPolicy.xaml.cs
+++ /dev/null
@@ -1,154 +0,0 @@
-//*********************************************************
-//
-// Copyright (c) Microsoft. All rights reserved.
-// This code is licensed under the MIT License (MIT).
-// THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF
-// ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY
-// IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR
-// PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.
-//
-//*********************************************************
-
-using Windows.UI.Xaml;
-using Windows.UI.Xaml.Controls;
-using SDKTemplate;
-using System;
-using Windows.Security.ExchangeActiveSyncProvisioning;
-
-namespace EAS
-{
- public sealed partial class Scenario3_ApplyEASPolicy : Page
- {
- MainPage rootPage = MainPage.Current;
-
- public Scenario3_ApplyEASPolicy()
- {
- this.InitializeComponent();
- }
- private async void Launch_Click(object sender, RoutedEventArgs e)
- {
- try
- {
-
- EasClientSecurityPolicy RequestedPolicy = new EasClientSecurityPolicy();
-
- if (RequireEncryptionValue == null)
- {
- RequestedPolicy.RequireEncryption = false;
- }
- else
- {
- if (RequireEncryptionValue.SelectedIndex == 1)
- {
- RequestedPolicy.RequireEncryption = true;
- }
- else
- {
- RequestedPolicy.RequireEncryption = false;
- }
- }
-
- if (MinPasswordLengthValue == null || MinPasswordLengthValue.Text.Length == 0)
- {
- RequestedPolicy.MinPasswordLength = 0;
- }
- else
- {
- RequestedPolicy.MinPasswordLength = Convert.ToByte(MinPasswordLengthValue.Text);
- }
-
- if (DisallowConvenienceLogonValue == null)
- {
- RequestedPolicy.DisallowConvenienceLogon = false;
- }
- else
- {
- if (DisallowConvenienceLogonValue.SelectedIndex == 1)
- RequestedPolicy.DisallowConvenienceLogon = true;
- else
- RequestedPolicy.DisallowConvenienceLogon = false;
- }
-
- if (MinPasswordComplexCharactersValue == null || MinPasswordComplexCharactersValue.Text.Length == 0)
- {
- RequestedPolicy.MinPasswordComplexCharacters = 0;
- }
- else
- {
- RequestedPolicy.MinPasswordComplexCharacters = Convert.ToByte(MinPasswordComplexCharactersValue.Text);
- }
-
- if (PasswordExpirationValue == null || PasswordExpirationValue.Text.Length == 0)
- {
- RequestedPolicy.PasswordExpiration = TimeSpan.Parse("0");
- }
- else
- {
- RequestedPolicy.PasswordExpiration = TimeSpan.FromDays(Convert.ToDouble(PasswordExpirationValue.Text));
- }
-
- if (PasswordHistoryValue == null || PasswordHistoryValue.Text.Length == 0)
- {
- RequestedPolicy.PasswordHistory = 0;
- }
- else
- {
- RequestedPolicy.PasswordHistory = Convert.ToByte(PasswordHistoryValue.Text);
- }
-
- if (MaxPasswordFailedAttemptsValue == null || MaxPasswordFailedAttemptsValue.Text.Length == 0)
- {
- RequestedPolicy.MaxPasswordFailedAttempts = 0;
- }
- else
- {
- RequestedPolicy.MaxPasswordFailedAttempts = Convert.ToByte(MaxPasswordFailedAttemptsValue.Text);
- }
-
- if (MaxInactivityTimeLockValue == null || MaxInactivityTimeLockValue.Text.Length == 0)
- {
- RequestedPolicy.MaxInactivityTimeLock = TimeSpan.Parse("0");
- }
- else
- {
- RequestedPolicy.MaxInactivityTimeLock = TimeSpan.FromSeconds(Convert.ToDouble(MaxInactivityTimeLockValue.Text));
- }
-
- EasComplianceResults ApplyResult = await RequestedPolicy.ApplyAsync();
-
- RequireEncryptionResult.Text = ApplyResult.RequireEncryptionResult.ToString();
- MinPasswordLengthResult.Text = ApplyResult.MinPasswordLengthResult.ToString();
- DisallowConvenienceLogonResult.Text = ApplyResult.DisallowConvenienceLogonResult.ToString();
- MinPasswordComplexCharactersResult.Text = ApplyResult.MinPasswordComplexCharactersResult.ToString();
- PasswordExpirationResult.Text = ApplyResult.PasswordExpirationResult.ToString();
- PasswordHistoryResult.Text = ApplyResult.PasswordHistoryResult.ToString();
- MaxPasswordFailedAttemptsResult.Text = ApplyResult.MaxPasswordFailedAttemptsResult.ToString();
- MaxInactivityTimeLockResult.Text = ApplyResult.MaxInactivityTimeLockResult.ToString();
- }
- catch (Exception Error)
- {
- rootPage.NotifyUser(Error.Message, NotifyType.ErrorMessage);
- }
- }
-
- private void Reset_Click(object sender, RoutedEventArgs e)
- {
- RequireEncryptionValue.SelectedIndex = 0;
- MinPasswordLengthValue.Text = "";
- DisallowConvenienceLogonValue.SelectedIndex = 0;
- MinPasswordComplexCharactersValue.Text = "";
- PasswordExpirationValue.Text = "";
- PasswordHistoryValue.Text = "";
- MaxPasswordFailedAttemptsValue.Text = "";
- MaxInactivityTimeLockValue.Text = "";
- RequireEncryptionResult.Text = "";
- MinPasswordLengthResult.Text = "";
- DisallowConvenienceLogonResult.Text = "";
- MinPasswordComplexCharactersResult.Text = "";
- PasswordExpirationResult.Text = "";
- PasswordHistoryResult.Text = "";
- MaxPasswordFailedAttemptsResult.Text = "";
- MaxInactivityTimeLockResult.Text = "";
- }
- }
-}
diff --git a/Samples/EasProtocol/js/html/scenario2.html b/Samples/EasProtocol/js/html/scenario2.html
deleted file mode 100644
index ff578f2445..0000000000
--- a/Samples/EasProtocol/js/html/scenario2.html
+++ /dev/null
@@ -1,150 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Description:
-
-
This scenario provides an example of how a mail client provisions a device with supplied EAS policies. The client can check if the current device settings are compliant with EAS policies required by the EAS server.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/Samples/EasProtocol/js/html/scenario3.html b/Samples/EasProtocol/js/html/scenario3.html
deleted file mode 100644
index 3649856064..0000000000
--- a/Samples/EasProtocol/js/html/scenario3.html
+++ /dev/null
@@ -1,140 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Description:
-
-
This scenario provides an example of how a mail client sets up a device with supplied EAS policies. The client can check if the current device settings are compliant with EAS policies required by the EAS server.