<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.microsoft.co.il/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Shai Raiten&amp;#39;s Blog : Windows 8</title><link>http://blogs.microsoft.co.il/blogs/shair/archive/tags/Windows+8/default.aspx</link><description>Tags: Windows 8</description><dc:language>en</dc:language><generator>CommunityServer 2007.1 (Build: 20917.1142)</generator><item><title>Run Windows Store Apps From Desktop</title><link>http://blogs.microsoft.co.il/blogs/shair/archive/2013/02/07/run-windows-store-apps-from-desktop.aspx</link><pubDate>Thu, 07 Feb 2013 14:09:49 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:1736848</guid><dc:creator>shair</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/shair/rsscomments.aspx?PostID=1736848</wfw:commentRss><comments>http://blogs.microsoft.co.il/blogs/shair/archive/2013/02/07/run-windows-store-apps-from-desktop.aspx#comments</comments><description>&lt;div class="wlWriterHeaderFooter" style="float:none;margin:0px;padding:4px 0px 4px 0px;"&gt;&lt;iframe src="http://www.facebook.com/widgets/like.php?href=http://blogs.microsoft.co.il/blogs/shair/archive/2013/02/07/run-windows-store-apps-from-desktop.aspx" scrolling="no" frameborder="0" style="border:none;width:450px;height:80px;"&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;p&gt;When customers ask me how they can run Windows Store app from Desktop usually the answer is – &lt;strong&gt;You Can’t, &lt;/strong&gt;but if you really want there is a way to do that.&lt;/p&gt;  &lt;p&gt;The reason I usually answer is You Can’t is because – In order to run Windows Store app from Desktop you need to install &lt;a href="http://msdn.microsoft.com/en-US/windows/apps/jj572486" target="_blank"&gt;Windows App Certification Kit&lt;/a&gt;, this pack contains “&lt;strong&gt;microsoft.windows.softwarelogo.appxlauncher.exe&lt;/strong&gt;” file that can run a Windows Store app by his application model id.&lt;/p&gt;  &lt;p&gt;So if you plan on publishing your app you can’t assume the ACK is installed on the client machine.&lt;/p&gt;  &lt;p&gt;Again, if you really want… Let me show you.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/shair/image_11119BD1.png"&gt;&lt;img title="image" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/shair/image_thumb_75C91D02.png" width="907" height="538" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/files/folders/1736841/download.aspx" target="_blank"&gt;Download Demo Project&lt;/a&gt;&lt;/p&gt;  &lt;h2&gt;Step 1: Getting Started&lt;/h2&gt;  &lt;p&gt;First create a WPF project and add the following reference:&lt;/p&gt;  &lt;p&gt;“C:\Program Files (x86)\Windows Kits\8.0\App Certification Kit\microsoft.windows.softwarelogo.shared.dll”&lt;/p&gt;  &lt;h2&gt;Step 2: Getting Windows App List&lt;/h2&gt;  &lt;p&gt;The reason you need to add reference to “Microsoft.Windows.Softwarelogo.Shared.dll” so we can receive the program inventory xml file, this file contains the complete list of all installed Windows Store apps.&lt;/p&gt;  &lt;p&gt;Under my PC here is the file location - &lt;u&gt;&amp;quot;C:\\Users\\Shai\\AppData\\Local\\Microsoft\\AppCertKit\\programinventory_e25bb752-e7cf-4fb2-8194-874ba9b91c7b.xml&amp;quot;&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;As I said this file contains all Windows Store app installed on you machine, each Program element under that file will show all the information regarding that specific app.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/shair/image_70B6B986.png"&gt;&lt;img title="image" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/shair/image_thumb_268B88D4.png" width="924" height="357" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;So, how do you get the file location?&lt;/p&gt;  &lt;p&gt;It’s very simple, using &lt;strong&gt;GlobaldataAccessor&lt;/strong&gt; method from &lt;strong&gt;softwarelogo.shared.dll&lt;/strong&gt; you can get the Program Inventory Location string.&lt;/p&gt;  &lt;blockquote&gt;   &lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;string&lt;/span&gt; itemValue = GlobalDataAccessor.GetItemValue(&lt;span class="str"&gt;&amp;quot;ProgramInventoryLocation&amp;quot;&lt;/span&gt;, &lt;span class="str"&gt;&amp;quot;PRE_PROCESS&amp;quot;&lt;/span&gt;);&lt;/pre&gt;
&lt;/blockquote&gt;

&lt;p&gt;Once you got this file all you need is parsing the XML and create a collection on Apps.&lt;/p&gt;

&lt;p&gt;I’ve create a &lt;strong&gt;ProductInfo&lt;/strong&gt; class that will represent each Program in the file, as you can see from the code below I simply taking the attributes and elements from the Program element.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; ProductInfo : INotifyPropertyChanged
    {
        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;event&lt;/span&gt; PropertyChangedEventHandler PropertyChanged;

        &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; NotifyPropertyChanged(String propertyName = &lt;span class="str"&gt;&amp;quot;&amp;quot;&lt;/span&gt;)
        {
            &lt;span class="kwrd"&gt;if&lt;/span&gt; (PropertyChanged != &lt;span class="kwrd"&gt;null&lt;/span&gt;)
            {
                PropertyChanged(&lt;span class="kwrd"&gt;this&lt;/span&gt;, &lt;span class="kwrd"&gt;new&lt;/span&gt; PropertyChangedEventArgs(propertyName));
            }
        }

        &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; _Status;
        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; Status
        {
            get { &lt;span class="kwrd"&gt;return&lt;/span&gt; _Status; }
            set
            {
                &lt;span class="kwrd"&gt;if&lt;/span&gt; (&lt;span class="kwrd"&gt;value&lt;/span&gt; != &lt;span class="kwrd"&gt;this&lt;/span&gt;._Status)
                {
                    &lt;span class="kwrd"&gt;this&lt;/span&gt;._Status = &lt;span class="kwrd"&gt;value&lt;/span&gt;;
                    NotifyPropertyChanged(&lt;span class="str"&gt;&amp;quot;Status&amp;quot;&lt;/span&gt;);
                }
            }
        }

        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; LogoUrl { get; set; }
        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; ProductName { get; set; }
        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; ProductVendor { get; set; }
        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; ProductLanguage { get; set; }
        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; ProductVersion { get; set; }
        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; RootDirPath { get; set; }
        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; Id { get; set; }
        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; PackageFullName { get; set; }

        &lt;span class="kwrd"&gt;public&lt;/span&gt; ProductInfo(XmlNode xNode)
        {
            var attrib = xNode.Attributes[&lt;span class="str"&gt;&amp;quot;Name&amp;quot;&lt;/span&gt;];
            &lt;span class="kwrd"&gt;if&lt;/span&gt; (attrib != &lt;span class="kwrd"&gt;null&lt;/span&gt; &amp;amp;&amp;amp; !&lt;span class="kwrd"&gt;string&lt;/span&gt;.IsNullOrEmpty(attrib.Value)) ProductName = attrib.Value;

            attrib = xNode.Attributes[&lt;span class="str"&gt;&amp;quot;Version&amp;quot;&lt;/span&gt;];
            &lt;span class="kwrd"&gt;if&lt;/span&gt; (attrib != &lt;span class="kwrd"&gt;null&lt;/span&gt; &amp;amp;&amp;amp; !&lt;span class="kwrd"&gt;string&lt;/span&gt;.IsNullOrEmpty(attrib.Value)) ProductVersion = attrib.Value;

            attrib = xNode.Attributes[&lt;span class="str"&gt;&amp;quot;Language&amp;quot;&lt;/span&gt;];
            &lt;span class="kwrd"&gt;if&lt;/span&gt; (attrib != &lt;span class="kwrd"&gt;null&lt;/span&gt; &amp;amp;&amp;amp; !&lt;span class="kwrd"&gt;string&lt;/span&gt;.IsNullOrEmpty(attrib.Value)) ProductLanguage = attrib.Value;

            attrib = xNode.Attributes[&lt;span class="str"&gt;&amp;quot;Publisher&amp;quot;&lt;/span&gt;];
            &lt;span class="kwrd"&gt;if&lt;/span&gt; (attrib != &lt;span class="kwrd"&gt;null&lt;/span&gt; &amp;amp;&amp;amp; !&lt;span class="kwrd"&gt;string&lt;/span&gt;.IsNullOrEmpty(attrib.Value)) ProductVendor = attrib.Value;

            attrib = xNode.Attributes[&lt;span class="str"&gt;&amp;quot;RootDirPath&amp;quot;&lt;/span&gt;];
            &lt;span class="kwrd"&gt;if&lt;/span&gt; (attrib != &lt;span class="kwrd"&gt;null&lt;/span&gt; &amp;amp;&amp;amp; !&lt;span class="kwrd"&gt;string&lt;/span&gt;.IsNullOrEmpty(attrib.Value)) RootDirPath = attrib.Value;

            attrib = xNode.Attributes[&lt;span class="str"&gt;&amp;quot;Id&amp;quot;&lt;/span&gt;];
            &lt;span class="kwrd"&gt;if&lt;/span&gt; (attrib != &lt;span class="kwrd"&gt;null&lt;/span&gt; &amp;amp;&amp;amp; !&lt;span class="kwrd"&gt;string&lt;/span&gt;.IsNullOrEmpty(attrib.Value)) Id = attrib.Value;

            var node = xNode.SelectSingleNode(&lt;span class="str"&gt;&amp;quot;/Log/ProgramList/Program[@Id=&amp;#39;&amp;quot;&lt;/span&gt; + &lt;span class="kwrd"&gt;this&lt;/span&gt;.Id + &lt;span class="str"&gt;&amp;quot;&amp;#39;]/Indicators/PackageManifestIndicator/Properties/Logo&amp;quot;&lt;/span&gt;);
            &lt;span class="kwrd"&gt;if&lt;/span&gt; (node != &lt;span class="kwrd"&gt;null&lt;/span&gt; &amp;amp;&amp;amp; !&lt;span class="kwrd"&gt;string&lt;/span&gt;.IsNullOrEmpty(node.InnerText))
            {
                var imgUrl = System.IO.Path.Combine(RootDirPath, node.InnerText);
                &lt;span class="kwrd"&gt;if&lt;/span&gt; (File.Exists(imgUrl))
                    LogoUrl = imgUrl;
            }

            node = xNode.SelectSingleNode(&lt;span class="str"&gt;&amp;quot;/Log/ProgramList/Program[@Id=&amp;#39;&amp;quot;&lt;/span&gt; + &lt;span class="kwrd"&gt;this&lt;/span&gt;.Id + &lt;span class="str"&gt;&amp;quot;&amp;#39;]/Indicators/PackageManifestIndicator/PackageManifest&amp;quot;&lt;/span&gt;);
            &lt;span class="kwrd"&gt;if&lt;/span&gt; (node != &lt;span class="kwrd"&gt;null&lt;/span&gt; &amp;amp;&amp;amp; !&lt;span class="kwrd"&gt;string&lt;/span&gt;.IsNullOrEmpty(node.Attributes[&lt;span class="str"&gt;&amp;quot;PackageFullName&amp;quot;&lt;/span&gt;].InnerText))
            {
                PackageFullName = node.Attributes[&lt;span class="str"&gt;&amp;quot;PackageFullName&amp;quot;&lt;/span&gt;].InnerText;
            }
        }
    }&lt;/pre&gt;
&lt;/blockquote&gt;

&lt;p&gt;And now, let’s connect the two part together, the first thing is getting the &lt;strong&gt;ProgramInventorylocation&lt;/strong&gt; and after that just load that Xml file and parse it to objects with the information you want.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; BuildAppsList()
{
    &lt;span class="kwrd"&gt;string&lt;/span&gt; itemValue = GlobalDataAccessor.GetItemValue(&lt;span class="str"&gt;&amp;quot;ProgramInventoryLocation&amp;quot;&lt;/span&gt;, &lt;span class="str"&gt;&amp;quot;PRE_PROCESS&amp;quot;&lt;/span&gt;);

    XmlNodeList list = &lt;span class="kwrd"&gt;null&lt;/span&gt;;
    var reportDoc = &lt;span class="kwrd"&gt;new&lt;/span&gt; XmlDocument();
    reportDoc.Load(itemValue);
    ProductList = &lt;span class="kwrd"&gt;new&lt;/span&gt; ObservableCollection&amp;lt;ProductInfo&amp;gt;();

    list = reportDoc.GetElementsByTagName(&lt;span class="str"&gt;&amp;quot;Program&amp;quot;&lt;/span&gt;);
    &lt;span class="kwrd"&gt;if&lt;/span&gt; (list.Count &amp;lt; 1)
    {
        &lt;span class="kwrd"&gt;throw&lt;/span&gt; &lt;span class="kwrd"&gt;new&lt;/span&gt; XmlException();
    }
    &lt;span class="kwrd"&gt;foreach&lt;/span&gt; (XmlNode node &lt;span class="kwrd"&gt;in&lt;/span&gt; list)
    {
        ProductInfo item = &lt;span class="kwrd"&gt;new&lt;/span&gt; ProductInfo(node);
        ProductList.Add(item);
    }

    dbTable.ItemsSource = ProductList;
}&lt;/pre&gt;
&lt;/blockquote&gt;

&lt;h2&gt;Step 3: Get App User Model Id&lt;/h2&gt;

&lt;p&gt;Now after you got all Windows Store app installed on your machine it’s time to run them. In order to run a Windows Store app you’ll need to obtain the &lt;strong&gt;AppUserModelId,&lt;/strong&gt; the reason you need to &lt;strong&gt;AppUserModelId &lt;/strong&gt;is because the &lt;u&gt;appxlauncher.exe&lt;/u&gt; needs this value in order to launch the application. (Package Name is not enough).&lt;/p&gt;

&lt;p&gt;After completing Step 2 we got the App Package Full Name, we need to use this value to find the &lt;strong&gt;AppUserModelId&lt;/strong&gt; from registry.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;HKEY_CURRENT_USER\Software\Classes\ActivatableClasses\Package\**PackageFullName**\Server&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/shair/image_0811221E.png"&gt;&lt;img title="image" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/shair/image_thumb_2F1BBB93.png" width="911" height="230" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So let’s add the following method, this method receive a &lt;strong&gt;packageFullName&lt;/strong&gt; string and perform a search in the registry for the &lt;strong&gt;AppUserModelId&lt;/strong&gt;.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; GetAppUserModelId(&lt;span class="kwrd"&gt;string&lt;/span&gt; packageFullName)
{
    &lt;span class="kwrd"&gt;string&lt;/span&gt; str = &lt;span class="kwrd"&gt;string&lt;/span&gt;.Empty;
    &lt;span class="kwrd"&gt;using&lt;/span&gt; (RegistryKey key = Registry.CurrentUser.CreateSubKey(&lt;span class="kwrd"&gt;string&lt;/span&gt;.Format(&lt;span class="str"&gt;@&amp;quot;SOFTWARE\Classes\ActivatableClasses\Package\{0}\Server\&amp;quot;,&lt;br /&gt;                                                                               packageFullName)))
    {
        if (key == null) return str;

        var appKeys = from k in key.GetSubKeyNames()
                        where !k.StartsWith(&amp;quot;&lt;/span&gt;BackgroundTransferHost&lt;span class="str"&gt;&amp;quot;)
                        select k;

        foreach (var appKey in appKeys)
        {
            using (RegistryKey serverKey = key.OpenSubKey(appKey))
            {
                if (serverKey.GetValue(&amp;quot;&lt;/span&gt;AppUserModelId&lt;span class="str"&gt;&amp;quot;) != null)
                {
                    str = serverKey.GetValue(&amp;quot;&lt;/span&gt;AppUserModelId&amp;quot;).ToString();
                    serverKey.Close();
                    &lt;span class="kwrd"&gt;break&lt;/span&gt;;
                }
            }
        }
    }

    &lt;span class="kwrd"&gt;return&lt;/span&gt; str;
}&lt;/pre&gt;
&lt;/blockquote&gt;

&lt;h2&gt;Step 4: Running Windows Store App&lt;/h2&gt;

&lt;p&gt;After we have the &lt;strong&gt;AppUserModelId &lt;/strong&gt;string for a specific Windows Store app we can run it.&lt;/p&gt;

&lt;p&gt;You can test it by opening command line and write the following:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;C:\Program Files (x86)\Windows Kits\8.0\App Certification Kit\Microsoft.Windows.SoftwareLogo.AppxLauncher.exe &lt;strong&gt;&lt;u&gt;“AppUserModelId”&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;u&gt;&lt;strong&gt;Start App Button&lt;/strong&gt;&lt;/u&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; StartApp_Click(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, RoutedEventArgs e)
{
    var product = ((System.Windows.Controls.Button)sender).Tag &lt;span class="kwrd"&gt;as&lt;/span&gt; ProductInfo;
    var appUserModelId = Helpers.GetAppUserModelId(product.PackageFullName);

    var exec = &lt;span class="str"&gt;@&amp;quot;C:\Program Files (x86)\Windows Kits\8.0\App Certification Kit\Microsoft.Windows.SoftwareLogo.AppxLauncher.exe&amp;quot;&lt;/span&gt;;

    &lt;span class="kwrd"&gt;if&lt;/span&gt; (!File.Exists(exec))
    {
        System.Windows.MessageBox.Show(&lt;span class="str"&gt;&amp;quot;Please install Windows App Certification Kit for Windows RT&amp;quot;&lt;/span&gt;);
    }

    var processInfo = &lt;span class="kwrd"&gt;new&lt;/span&gt; ProcessStartInfo()
    {
        Arguments = appUserModelId,
        UseShellExecute = &lt;span class="kwrd"&gt;false&lt;/span&gt;,
        CreateNoWindow = &lt;span class="kwrd"&gt;true&lt;/span&gt;,
        FileName = exec
    };

    Process.Start(processInfo);
}&lt;/pre&gt;
&lt;/blockquote&gt;

&lt;h2&gt;Step 5: Get Application Status&lt;/h2&gt;

&lt;p&gt;The last thing you might want is to know the App execution state, in order to do that you need to use &lt;strong&gt;IPackageDebugSettings - &lt;/strong&gt;Enables debugger developers control over the lifecycle of a Windows Store app, such as when it is suspended or resumed. (&lt;a title="http://msdn.microsoft.com/en-us/library/hh438393(v=vs.85).aspx" href="http://msdn.microsoft.com/en-us/library/hh438393(v=vs.85).aspx"&gt;http://msdn.microsoft.com/en-us/library/hh438393(v=vs.85).aspx&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt; for that create a &lt;strong&gt;PackageStatushelper&lt;/strong&gt; class with the following code:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; PackageStatusHelper
{
    [ComImport, Guid(&lt;span class="str"&gt;&amp;quot;B1AEC16F-2383-4852-B0E9-8F0B1DC66B4D&amp;quot;&lt;/span&gt;)]
    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; PackageDebugSettings
    {
    }

    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;enum&lt;/span&gt; PACKAGE_EXECUTION_STATE
    {
        PES_UNKNOWN,
        PES_RUNNING,
        PES_SUSPENDING,
        PES_SUSPENDED,
        PES_TERMINATED
    }

    [ComImport, Guid(&lt;span class="str"&gt;&amp;quot;F27C3930-8029-4AD1-94E3-3DBA417810C1&amp;quot;&lt;/span&gt;), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;interface&lt;/span&gt; IPackageDebugSettings
    {
        &lt;span class="kwrd"&gt;int&lt;/span&gt; EnableDebugging([MarshalAs(UnmanagedType.LPWStr)] &lt;span class="kwrd"&gt;string&lt;/span&gt; packageFullName, [MarshalAs(UnmanagedType.LPWStr)]&lt;br /&gt;                                                              &lt;span class="kwrd"&gt;string&lt;/span&gt; debuggerCommandLine, IntPtr environment);
        &lt;span class="kwrd"&gt;int&lt;/span&gt; DisableDebugging([MarshalAs(UnmanagedType.LPWStr)] &lt;span class="kwrd"&gt;string&lt;/span&gt; packageFullName);
        &lt;span class="kwrd"&gt;int&lt;/span&gt; Suspend([MarshalAs(UnmanagedType.LPWStr)] &lt;span class="kwrd"&gt;string&lt;/span&gt; packageFullName);
        &lt;span class="kwrd"&gt;int&lt;/span&gt; Resume([MarshalAs(UnmanagedType.LPWStr)] &lt;span class="kwrd"&gt;string&lt;/span&gt; packageFullName);
        &lt;span class="kwrd"&gt;int&lt;/span&gt; TerminateAllProcesses([MarshalAs(UnmanagedType.LPWStr)] &lt;span class="kwrd"&gt;string&lt;/span&gt; packageFullName);
        &lt;span class="kwrd"&gt;int&lt;/span&gt; SetTargetSessionId(&lt;span class="kwrd"&gt;int&lt;/span&gt; sessionId);
        &lt;span class="kwrd"&gt;int&lt;/span&gt; EnumerageBackgroundTasks([MarshalAs(UnmanagedType.LPWStr)] &lt;span class="kwrd"&gt;string&lt;/span&gt; packageFullName, &lt;br /&gt;                                                      &lt;span class="kwrd"&gt;out&lt;/span&gt; &lt;span class="kwrd"&gt;uint&lt;/span&gt; taskCount, &lt;span class="kwrd"&gt;out&lt;/span&gt; &lt;span class="kwrd"&gt;int&lt;/span&gt; intPtr, [Out] &lt;span class="kwrd"&gt;string&lt;/span&gt;[] array);
        &lt;span class="kwrd"&gt;int&lt;/span&gt; ActivateBackgroundTask(IntPtr something);
        &lt;span class="kwrd"&gt;int&lt;/span&gt; StartServicing([MarshalAs(UnmanagedType.LPWStr)] &lt;span class="kwrd"&gt;string&lt;/span&gt; packageFullName);
        &lt;span class="kwrd"&gt;int&lt;/span&gt; StopServicing([MarshalAs(UnmanagedType.LPWStr)] &lt;span class="kwrd"&gt;string&lt;/span&gt; packageFullName);
        &lt;span class="kwrd"&gt;int&lt;/span&gt; StartSessionRedirection([MarshalAs(UnmanagedType.LPWStr)] &lt;span class="kwrd"&gt;string&lt;/span&gt; packageFullName, &lt;span class="kwrd"&gt;uint&lt;/span&gt; sessionId);
        &lt;span class="kwrd"&gt;int&lt;/span&gt; StopSessionRedirection([MarshalAs(UnmanagedType.LPWStr)] &lt;span class="kwrd"&gt;string&lt;/span&gt; packageFullName);
        &lt;span class="kwrd"&gt;int&lt;/span&gt; GetPackageExecutionState([MarshalAs(UnmanagedType.LPWStr)] &lt;span class="kwrd"&gt;string&lt;/span&gt; packageFullName,&lt;br /&gt;                                            &lt;span class="kwrd"&gt;out&lt;/span&gt; PACKAGE_EXECUTION_STATE packageExecutionState);
        &lt;span class="kwrd"&gt;int&lt;/span&gt; RegisterForPackageStateChanges([MarshalAs(UnmanagedType.LPWStr)] &lt;span class="kwrd"&gt;string&lt;/span&gt; packageFullName, &lt;br /&gt;                               IntPtr pPackageExecutionStateChangeNotification, &lt;span class="kwrd"&gt;out&lt;/span&gt; &lt;span class="kwrd"&gt;uint&lt;/span&gt; pdwCookie);
        &lt;span class="kwrd"&gt;int&lt;/span&gt; UnregisterForPackageStateChanges(&lt;span class="kwrd"&gt;uint&lt;/span&gt; dwCookie);
    }

    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; PACKAGE_EXECUTION_STATE GetPackageExecutionState(&lt;span class="kwrd"&gt;string&lt;/span&gt; packageFullName)
    {
        PACKAGE_EXECUTION_STATE packageExecutionState = PACKAGE_EXECUTION_STATE.PES_UNKNOWN;
        PackageDebugSettings settings = &lt;span class="kwrd"&gt;new&lt;/span&gt; PackageDebugSettings();
        IPackageDebugSettings settings2 = (IPackageDebugSettings)settings;
        &lt;span class="kwrd"&gt;try&lt;/span&gt;
        {
            &lt;span class="kwrd"&gt;if&lt;/span&gt; (settings2.GetPackageExecutionState(packageFullName, &lt;span class="kwrd"&gt;out&lt;/span&gt; packageExecutionState) != 0)
            {
                System.Windows.MessageBox.Show(&lt;span class="str"&gt;&amp;quot;Failed to get package execution state.&amp;quot;&lt;/span&gt;, &lt;span class="str"&gt;&amp;quot;GetPackageExecutionState&amp;quot;&lt;/span&gt;);
            }
        }
        &lt;span class="kwrd"&gt;catch&lt;/span&gt; (Exception ex)
        {
            System.Windows.MessageBox.Show(ex.Message, &lt;span class="str"&gt;&amp;quot;GetPackageExecutionState&amp;quot;&lt;/span&gt;);
        }
        &lt;span class="kwrd"&gt;return&lt;/span&gt; packageExecutionState;
    }
}&lt;/pre&gt;
&lt;/blockquote&gt;

&lt;p&gt;And from the application you can just call the GetPackageExecutionState passing the Package Full Name&lt;/p&gt;

&lt;blockquote&gt;
  &lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; GetAppStatus_Click(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, RoutedEventArgs e)
{
    var btn = (System.Windows.Controls.Button)sender;
    var product = btn.Tag &lt;span class="kwrd"&gt;as&lt;/span&gt; ProductInfo;
    var status = PackageStatusHelper.GetPackageExecutionState(product.PackageFullName);

    &lt;span class="kwrd"&gt;switch&lt;/span&gt; (status)
    {
        &lt;span class="kwrd"&gt;case&lt;/span&gt; PackageStatusHelper.PACKAGE_EXECUTION_STATE.PES_RUNNING:
            btn.Foreground = &lt;span class="kwrd"&gt;new&lt;/span&gt; SolidColorBrush(Colors.Green);
            btn.Content = &lt;span class="str"&gt;&amp;quot;Running&amp;quot;&lt;/span&gt;;
            &lt;span class="kwrd"&gt;break&lt;/span&gt;;
        &lt;span class="kwrd"&gt;case&lt;/span&gt; PackageStatusHelper.PACKAGE_EXECUTION_STATE.PES_SUSPENDED:
            btn.Foreground = &lt;span class="kwrd"&gt;new&lt;/span&gt; SolidColorBrush(Colors.Orange);
            btn.Content = &lt;span class="str"&gt;&amp;quot;Suspended&amp;quot;&lt;/span&gt;;
            &lt;span class="kwrd"&gt;break&lt;/span&gt;;
        &lt;span class="kwrd"&gt;case&lt;/span&gt; PackageStatusHelper.PACKAGE_EXECUTION_STATE.PES_TERMINATED:
            btn.Foreground = &lt;span class="kwrd"&gt;new&lt;/span&gt; SolidColorBrush(Colors.Red);
            btn.Content = &lt;span class="str"&gt;&amp;quot;Terminated&amp;quot;&lt;/span&gt;;
            &lt;span class="kwrd"&gt;break&lt;/span&gt;;
        &lt;span class="kwrd"&gt;default&lt;/span&gt;:
            btn.Foreground = &lt;span class="kwrd"&gt;new&lt;/span&gt; SolidColorBrush(Colors.Gray);
            btn.Content = &lt;span class="str"&gt;&amp;quot;Unkown&amp;quot;&lt;/span&gt;;
            &lt;span class="kwrd"&gt;break&lt;/span&gt;;
    }
}&lt;/pre&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/files/folders/1736841/download.aspx" target="_blank"&gt;Download Demo Project&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Enjoy&lt;/p&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=1736848" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/.NET/default.aspx">.NET</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/Development/default.aspx">Development</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/TECH/default.aspx">TECH</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/ITPRO/default.aspx">ITPRO</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/How+To/default.aspx">How To</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/.NET+4/default.aspx">.NET 4</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/Metro+Style/default.aspx">Metro Style</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/Windows+8/default.aspx">Windows 8</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/Metro/default.aspx">Metro</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/Visual+Studio+2012/default.aspx">Visual Studio 2012</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/Windows+Store/default.aspx">Windows Store</category></item><item><title>Windows App Cert Kit Failed - The bytecode generation test detected the following errors</title><link>http://blogs.microsoft.co.il/blogs/shair/archive/2013/02/07/windows-app-cert-kit-failed-the-bytecode-generation-test-detected-the-following-errors.aspx</link><pubDate>Thu, 07 Feb 2013 06:48:39 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:1736181</guid><dc:creator>shair</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/shair/rsscomments.aspx?PostID=1736181</wfw:commentRss><comments>http://blogs.microsoft.co.il/blogs/shair/archive/2013/02/07/windows-app-cert-kit-failed-the-bytecode-generation-test-detected-the-following-errors.aspx#comments</comments><description>&lt;div class="wlWriterHeaderFooter" style="float:none;margin:0px;padding:4px 0px 4px 0px;"&gt;&lt;iframe src="http://www.facebook.com/widgets/like.php?href=http://blogs.microsoft.co.il/blogs/shair/archive/2013/02/07/windows-app-cert-kit-failed-the-bytecode-generation-test-detected-the-following-errors.aspx" scrolling="no" frameborder="0" style="border:none;width:450px;height:80px;"&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;p&gt;In the past couple of weeks I’ve worked on Cordova (PhoneGap) application for Windows 8, just before we intent to publish it to the store I’ve encountered a problem – &lt;strong&gt;“bytecode generation test detected“.&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/shair/image_66EC39E1.png"&gt;&lt;img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/shair/image_thumb_2856C66E.png" width="869" height="318" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;To give your app the best chance of getting certified you should run the some tests, beside checking for bugs and making sure your application works as expected you should use the &lt;a href="http://go.microsoft.com/fwlink/?LinkID=263703" target="_blank"&gt;App Cert Kit&lt;/a&gt; - Windows 8 apps must use the new Windows App Certification Kit to become certified and eligible for sale in the Windows Store&lt;/p&gt;  &lt;p&gt;“&lt;a href="http://go.microsoft.com/fwlink/?LinkID=263703" target="_blank"&gt;Windows 8 App Cert Kit&lt;/a&gt;” &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;The Windows App Certification Kit (ACK) is used to validate compliance with certification requirements, and replaces the Windows Software Logo Kit (WSLK) used for validation in the Windows 7 Software Logo program. Desktop, desktop device, and Windows Store apps can be certified; however, plug-in, ActiveX, and other web apps cannot be certified. The Windows ACK is included in the Windows Software Development Kit (SDK) and the Windows SDK for Windows Store apps.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Looking at the &lt;strong&gt;How to fix &lt;/strong&gt;section didn’t help me to understand the problem, but after couple of minutes exploring this I found out that the main reason for those errors is not &lt;strong&gt;JavaScript Syntax Errors&lt;/strong&gt; but &lt;strong&gt;Encoding&lt;/strong&gt;. The reason I know this is not a &lt;strong&gt;JavaScript Syntax &lt;/strong&gt;problem is because some CSS files was also in that list and of course Visual Studio didn’t said anything about Syntax Errors.&lt;/p&gt;  &lt;p&gt;So just open the files maintained in the error report using notepad (or other editor support Save + Encoding)&lt;/p&gt;  &lt;p&gt;Click on &lt;strong&gt;Save As &lt;/strong&gt;and make sure to select &lt;strong&gt;“UTF-8”&lt;/strong&gt; in the encoding box.&lt;/p&gt;  &lt;p&gt;Once you finished going over all the problematic files rerun the App Cert Kit and those errors should disappear.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/shair/image_6CB6B7AD.png"&gt;&lt;img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/shair/image_thumb_6DEB2ABF.png" width="955" height="496" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Enjoy&lt;/p&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=1736181" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/Development/default.aspx">Development</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/How+To/default.aspx">How To</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/Windows+8/default.aspx">Windows 8</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/JavaScript/default.aspx">JavaScript</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/Metro/default.aspx">Metro</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/Visual+Studio+2012/default.aspx">Visual Studio 2012</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/Windows+Store/default.aspx">Windows Store</category></item><item><title>WinRT Toast Notification From Desktop Application</title><link>http://blogs.microsoft.co.il/blogs/shair/archive/2013/01/30/winrt-toast-notification-from-desktop-application.aspx</link><pubDate>Wed, 30 Jan 2013 18:33:04 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:1715385</guid><dc:creator>shair</dc:creator><slash:comments>4</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/shair/rsscomments.aspx?PostID=1715385</wfw:commentRss><comments>http://blogs.microsoft.co.il/blogs/shair/archive/2013/01/30/winrt-toast-notification-from-desktop-application.aspx#comments</comments><description>&lt;div class="wlWriterHeaderFooter" style="float:none;margin:0px;padding:4px 0px 4px 0px;"&gt;&lt;iframe src="http://www.facebook.com/widgets/like.php?href=http://blogs.microsoft.co.il/blogs/shair/archive/2013/01/30/winrt-toast-notification-from-desktop-application.aspx" scrolling="no" frameborder="0" style="border:none;width:450px;height:80px;"&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;p&gt;The post title maintained &lt;strong&gt;Toast Notification&lt;/strong&gt; but after reading this post we&amp;#39;ll be able to perform API calls to &lt;strong&gt;WinRT&lt;/strong&gt; from your Desktop application.&lt;/p&gt;  &lt;p&gt;As you know WinRT exposing API’s for three developer languages: C#, C++ and JavaScript, this means that from each language you’ll be able to perform WinRT calls. The idea is based on &lt;u&gt;Windows Metadata File&lt;/u&gt; (winmd) that expose those APIs that can be consumed across a variety of technologies and languages.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/shair/image_35625913.png"&gt;&lt;img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/shair/image_thumb_659907FC.png" width="640" height="322" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/files/folders/1715377/download.aspx" target="_blank"&gt;Download Demo Project&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;So why not using those calls from a desktop application? for example one of the great features of Windows 8 is &lt;strong&gt;Toast Notifications&lt;/strong&gt;, Toast is a super cool replacement for Message box dialog that block your screen and can be very enjoying…&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;A toast notification is a transient message to the user that contains relevant, time-sensitive information and provides quick access to related content in an app. It can appear whether you are in another app, the Start screen, the lock screen, or on the desktop. Toasts should be viewed as an invitation to return to your app to follow up on something of interest. Toast notifications are an optional part of the app experience and are intended to be raised only when your app is not the active foreground app.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;let’s say that we want to send Toast from your Desktop application instead of displaying annoying message boxes, let’s see how you can do it.&lt;/p&gt;  &lt;h3&gt;Step 1: Getting Started With Windows.winmd&lt;/h3&gt;  &lt;p&gt;Let’s start with empty WPF application, let’s try to load &lt;strong&gt;Windows.winmd&lt;/strong&gt; file located here:&lt;/p&gt;  &lt;p&gt;&lt;em&gt;C:\Program Files (x86)\Windows Kits\8.0\References\CommonConfiguration\Neutral\Windows.winmd&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;You’ll receive below error message saying this file isn&amp;#39;t compatible with your current project.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/shair/image_798274C5.png"&gt;&lt;img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/shair/image_thumb_651CAF3A.png" width="638" height="337" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;You need to edit your &lt;strong&gt;csproj &lt;/strong&gt;file and add &lt;span class="html"&gt;&lt;strong&gt;TargetPlatformVersion&lt;/strong&gt; element.&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/shair/image_4BF12F35.png"&gt;&lt;img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/shair/image_thumb_5812A95C.png" width="674" height="652" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Locate the &lt;strong&gt;PropertyGroup&lt;/strong&gt; and add additional element : &lt;font style="background-color:#ffff00;"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;TargetPlatformVersion&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;8.0&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;TargetPlatformVersion&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/font&gt; &lt;/p&gt;  &lt;blockquote&gt;   &lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;?&lt;/span&gt;&lt;span class="html"&gt;xml&lt;/span&gt; &lt;span class="attr"&gt;version&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;1.0&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;encoding&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;utf-8&amp;quot;&lt;/span&gt;?&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Project&lt;/span&gt; &lt;span class="attr"&gt;ToolsVersion&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;4.0&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;DefaultTargets&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Build&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;xmlns&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;http://schemas.microsoft.com/developer/msbuild/2003&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Import&lt;/span&gt; &lt;span class="attr"&gt;Project&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;Condition&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Exists(&amp;#39;$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props&amp;#39;)&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;PropertyGroup&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Configuration&lt;/span&gt; &lt;span class="attr"&gt;Condition&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot; &amp;#39;$(Configuration)&amp;#39; == &amp;#39;&amp;#39; &amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;Debug&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;Configuration&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Platform&lt;/span&gt; &lt;span class="attr"&gt;Condition&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot; &amp;#39;$(Platform)&amp;#39; == &amp;#39;&amp;#39; &amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;AnyCPU&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;Platform&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;ProjectGuid&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;{20DAA4E0-DE45-4FB6-8650-44FFDBA78F25}&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;ProjectGuid&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;OutputType&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;WinExe&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;OutputType&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;AppDesignerFolder&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;Properties&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;AppDesignerFolder&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;RootNamespace&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;DesktopAppNotificationDemo&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;RootNamespace&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;AssemblyName&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;DesktopAppNotificationDemo&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;AssemblyName&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;TargetFrameworkVersion&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;v4.5&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;TargetFrameworkVersion&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
&lt;font style="background-color:#ffff00;"&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;TargetPlatformVersion&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;8.0&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;TargetPlatformVersion&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/font&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;FileAlignment&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;512&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;FileAlignment&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;ProjectTypeGuids&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;ProjectTypeGuids&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;WarningLevel&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;4&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;WarningLevel&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;PublishUrl&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;publish\&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;PublishUrl&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/blockquote&gt;

&lt;p&gt;Now if you try to load &lt;strong&gt;Windows.winmd&lt;/strong&gt; you’ll success, using the Object Browser you can explore the different API’s available in WinRT.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/shair/image_0C8355D8.png"&gt;&lt;img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/shair/image_thumb_161B9E41.png" width="959" height="510" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;Step 2: API Code Pack&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;In order to display toasts, a desktop application must have a shortcut on the Start menu. Also, an AppUserModelID must be set on that shortcut. 
    &lt;br /&gt;The shortcut should be created as part of the installer. The following code shows how to create a shortcut and assign an &lt;strong&gt;AppUserModelID&lt;/strong&gt; using Windows APIs.

    &lt;br /&gt; You must download and include the &lt;/em&gt;&lt;a href="http://archive.msdn.microsoft.com/WindowsAPICodePack"&gt;&lt;em&gt;Windows® API Code Pack for Microsoft® .NET Framework&lt;/em&gt;&lt;/a&gt;&lt;em&gt; to allow Toast Notification from desktop application.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Windows® API Code Pack for Microsoft® .NET Framework&lt;/b&gt; provides a source code library that can be used to access some features of Windows 7 and Windows Vista from managed code. These Windows features are not available to developers today in the .NET Framework.&lt;/p&gt;

&lt;p&gt;First thing after the application is loaded you need to make sure the application has a shortcut under Start menu referring to your desktop AppUserModelID.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;const&lt;/span&gt; String APP_ID = &lt;span class="str"&gt;&amp;quot;Shai Raiten - DesktopAppNotificationDemo&amp;quot;&lt;/span&gt;;
&lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;bool&lt;/span&gt; IsAppLinkExists()
{
    &lt;span class="kwrd"&gt;string&lt;/span&gt; defaultPath = &lt;span class="kwrd"&gt;string&lt;/span&gt;.Format(&lt;span class="str"&gt;@&amp;quot;{0}\Microsoft\Windows\Start Menu\Programs\{1}.lnk&amp;quot;&lt;/span&gt;,
        Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData),
        APP_ID);

    &lt;span class="kwrd"&gt;return&lt;/span&gt; File.Exists(defaultPath) == &lt;span class="kwrd"&gt;false&lt;/span&gt; ? CreateApplicationShortcut(defaultPath) : &lt;span class="kwrd"&gt;true&lt;/span&gt;;
}&lt;/pre&gt;
&lt;/blockquote&gt;

&lt;p&gt;In case there is no shortcut you’ll need to create one:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;bool&lt;/span&gt; CreateApplicationShortcut(&lt;span class="kwrd"&gt;string&lt;/span&gt; defaultPath)
{
    &lt;span class="kwrd"&gt;string&lt;/span&gt; exePath = Process.GetCurrentProcess().MainModule.FileName;
    var newShortcut = (IShellLinkW)&lt;span class="kwrd"&gt;new&lt;/span&gt; CShellLink();

    &lt;span class="rem"&gt;// Create a shortcut to the exe&lt;/span&gt;
    ShellHelpers.ErrorHelper.VerifySucceeded(newShortcut.SetPath(exePath));
    ShellHelpers.ErrorHelper.VerifySucceeded(newShortcut.SetArguments(&lt;span class="str"&gt;&amp;quot;&amp;quot;&lt;/span&gt;));

    &lt;span class="rem"&gt;// Open the shortcut property store, set the AppUserModelId property&lt;/span&gt;
    var newShortcutProperties = (IPropertyStore)newShortcut;

    &lt;span class="kwrd"&gt;using&lt;/span&gt; (PropVariant appId = &lt;span class="kwrd"&gt;new&lt;/span&gt; PropVariant(APP_ID))
    {
        ShellHelpers.ErrorHelper.VerifySucceeded(newShortcutProperties.SetValue(SystemProperties.System.AppUserModel.ID, appId));
        ShellHelpers.ErrorHelper.VerifySucceeded(newShortcutProperties.Commit());
    }

    &lt;span class="rem"&gt;// Commit the shortcut to disk&lt;/span&gt;
    var newShortcutSave = (IPersistFile)newShortcut;

    ShellHelpers.ErrorHelper.VerifySucceeded(newShortcutSave.Save(defaultPath, &lt;span class="kwrd"&gt;true&lt;/span&gt;));
    &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;true&lt;/span&gt;;
}&lt;/pre&gt;
&lt;/blockquote&gt;

&lt;h3&gt;Step 3: Toast&lt;/h3&gt;

&lt;p&gt;If you not familiar with Toast under Windows 8 I’ll recommend you to read about the methods and events of &lt;a href="http://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.notifications.toastnotification.aspx" target="_blank"&gt;ToastNotification class (Windows)&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;font style="font-weight:normal;"&gt;After completing all previous steps creating Toast is a simple task, all you need to do is create new Toast template using ToastNotificationManager and modify the Toast template xml with your data.&lt;/font&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; btnSend_Click(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, RoutedEventArgs e)
{
    var toastXml = ToastNotificationManager.GetTemplateContent(ToastTemplateType.ToastImageAndText02);

    var textFields = toastXml.GetElementsByTagName(&lt;span class="str"&gt;&amp;quot;text&amp;quot;&lt;/span&gt;);
    textFields[0].AppendChild(toastXml.CreateTextNode(txtTitle.Text));
    textFields[1].AppendChild(toastXml.CreateTextNode(txtDescription.Text));

    String imagePath = &lt;span class="str"&gt;&amp;quot;file:///&amp;quot;&lt;/span&gt; + System.IO.Path.GetFullPath(&lt;span class="str"&gt;&amp;quot;me.png&amp;quot;&lt;/span&gt;);
    XmlNodeList imageElements = toastXml.GetElementsByTagName(&lt;span class="str"&gt;&amp;quot;image&amp;quot;&lt;/span&gt;);
    imageElements[0].Attributes.GetNamedItem(&lt;span class="str"&gt;&amp;quot;src&amp;quot;&lt;/span&gt;).NodeValue = imagePath;

    ToastNotification toast = &lt;span class="kwrd"&gt;new&lt;/span&gt; ToastNotification(toastXml);

    &lt;span class="kwrd"&gt;if&lt;/span&gt; (cal.SelectedDate != &lt;span class="kwrd"&gt;null&lt;/span&gt;)
        toast.ExpirationTime = cal.SelectedDate;

    &lt;span class="rem"&gt;// You must specifiy AppUserModelId == APP_ID to send toast notification.&lt;/span&gt;
    ToastNotificationManager.CreateToastNotifier(APP_ID).Show(toast);

    lblStatus.Text = &lt;span class="str"&gt;&amp;quot;Toast Sent!&amp;quot;&lt;/span&gt;;
}&lt;/pre&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/shair/image_2020199F.png"&gt;&lt;img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/shair/image_thumb_62438222.png" width="506" height="142" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;Step 4: Toast Events&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Toast&lt;/strong&gt; as we already understand is more than just a MessageBox, you’ll be able to send information to your users and get their response, for example in this demo if the user click on the Toast I’ll like to open the browser to that specific Uri.&lt;/p&gt;

&lt;p&gt;All you need to do is register to the Toast events before sending the toast.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;pre class="csharpcode"&gt;toast.Activated += toast_Activated;
toast.Dismissed += toast_Dismissed;
toast.Failed += toast_Failed;&lt;/pre&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
  &lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;void&lt;/span&gt; toast_Failed(ToastNotification sender, ToastFailedEventArgs args)
{
    Dispatcher.Invoke(() =&amp;gt;
    {
        lblStatus.Text = &lt;span class="kwrd"&gt;string&lt;/span&gt;.Format(&lt;span class="str"&gt;&amp;quot;Toast Failed - Error Code: {0}&amp;quot;&lt;/span&gt;, args.ErrorCode.Message);
    });
}

&lt;span class="kwrd"&gt;void&lt;/span&gt; toast_Dismissed(ToastNotification sender, ToastDismissedEventArgs args)
{
    Dispatcher.Invoke(() =&amp;gt;
    {
        lblStatus.Text = args.Reason.ToString();
    });
}

&lt;span class="kwrd"&gt;void&lt;/span&gt; toast_Activated(ToastNotification sender, &lt;span class="kwrd"&gt;object&lt;/span&gt; args)
{
    Dispatcher.Invoke(() =&amp;gt;
    {
        Activate();
        lblStatus.Text = &lt;span class="str"&gt;&amp;quot;Toast Activated&amp;quot;&lt;/span&gt;;
        Process.Start(&lt;span class="str"&gt;&amp;quot;http://tinyurl.com/shai-rai&amp;quot;&lt;/span&gt;);
    });
}&lt;/pre&gt;
&lt;/blockquote&gt;









&lt;h3&gt;&lt;strong&gt;&lt;font color="#ff0000"&gt;Take Notice&lt;/font&gt; – You can use more WinRT API’s by adding Windows.winmd to your desktop application.&lt;/strong&gt;&lt;/h3&gt;

&lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/files/folders/1715377/download.aspx" target="_blank"&gt;Download Demo Project&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Enjoy&lt;/p&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=1715385" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/.NET/default.aspx">.NET</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/Development/default.aspx">Development</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/WPF/default.aspx">WPF</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/TECH/default.aspx">TECH</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/Questions/default.aspx">Questions</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/How+To/default.aspx">How To</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/Native/default.aspx">Native</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/Metro+Style/default.aspx">Metro Style</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/Windows+8/default.aspx">Windows 8</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/.NET+4.5/default.aspx">.NET 4.5</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/Accelerometer/default.aspx">Accelerometer</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/Metro/default.aspx">Metro</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/Visual+Studio+2012/default.aspx">Visual Studio 2012</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/Windows+Store/default.aspx">Windows Store</category></item><item><title>How To: Compress Files In WinRT</title><link>http://blogs.microsoft.co.il/blogs/shair/archive/2012/12/31/how-to-compress-files-in-winrt.aspx</link><pubDate>Mon, 31 Dec 2012 07:17:43 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:1612449</guid><dc:creator>shair</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/shair/rsscomments.aspx?PostID=1612449</wfw:commentRss><comments>http://blogs.microsoft.co.il/blogs/shair/archive/2012/12/31/how-to-compress-files-in-winrt.aspx#comments</comments><description>&lt;div class="wlWriterHeaderFooter" style="float:none;margin:0px;padding:4px 0px 4px 0px;"&gt;&lt;iframe src="http://www.facebook.com/widgets/like.php?href=http://blogs.microsoft.co.il/blogs/shair/archive/2012/12/31/how-to-compress-files-in-winrt.aspx" scrolling="no" frameborder="0" style="border:none;width:450px;height:80px;"&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;p&gt;Windows Store apps are aligned with PLM philosophy (Only active application will use device resources), and because of this most Windows Store apps needs to save their data locally until the next application execution.&lt;/p&gt;  &lt;p&gt;Windows Store apps can also use the Roaming folder to save files and settings that will be sync with the user Windows Live account, when saving settings or files to Roaming folder you need to make sure those files are not too big so Windows 8 will be able to sync the Roaming folder quickly.&lt;/p&gt;  &lt;p&gt;One option is to use Compression using:&lt;/p&gt;  &lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.IO.Compression;&lt;/pre&gt;
The IO.Compression namespace brings us &lt;strong&gt;ZipArchive&lt;/strong&gt; object for create compressed files, the following example demonstrate how to compress a &lt;strong&gt;StorageFile&lt;/strong&gt;.&amp;#160; &lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; (MemoryStream zipMemoryStream = &lt;span class="kwrd"&gt;new&lt;/span&gt; MemoryStream())
{
    &lt;span class="kwrd"&gt;using&lt;/span&gt; (ZipArchive zipArchive = &lt;span class="kwrd"&gt;new&lt;/span&gt; ZipArchive(zipMemoryStream, ZipArchiveMode.Create))
    {
        &lt;span class="kwrd"&gt;try&lt;/span&gt;
        {
            &lt;span class="kwrd"&gt;byte&lt;/span&gt;[] buffer = WindowsRuntimeBufferExtensions.ToArray(await FileIO.ReadBufferAsync(file));
            ZipArchiveEntry entry = zipArchive.CreateEntry(file.Name);
            &lt;span class="kwrd"&gt;using&lt;/span&gt; (Stream entryStream = entry.Open())
            {
                await entryStream.WriteAsync(buffer, 0, buffer.Length);
            }
        }
        &lt;span class="kwrd"&gt;catch&lt;/span&gt; (Exception)
        {
            &lt;span class="rem"&gt;//Handle exception....&lt;/span&gt;
        }
    }
}&lt;/pre&gt;

&lt;p&gt;In the above example uses &lt;strong&gt;WindowsRuntimeBufferExtensions - &lt;/strong&gt;Provides extension methods for operating on Windows Runtime buffers (Windows.Storage.Streams.IBuffer interface).&lt;/p&gt;

&lt;p&gt;After we created the compression stream we need to save it to a new Compressed StorageFile:&lt;/p&gt;

&lt;pre class="csharpcode"&gt;&lt;span class="rem"&gt;// Created new file to store compressed files&lt;/span&gt;
var compressedFileName = file.Name + &lt;span class="str"&gt;&amp;quot;.zip&amp;quot;&lt;/span&gt;;
StorageFile zipFile = await ApplicationData.Current.RoamingFolder.CreateFileAsync(compressedFileName, CreationCollisionOption.GenerateUniqueName);
&lt;span class="kwrd"&gt;using&lt;/span&gt; (IRandomAccessStream zipStream = await zipFile.OpenAsync(FileAccessMode.ReadWrite))
{
    &lt;span class="rem"&gt;// Write compressed data from memory to file&lt;/span&gt;
    &lt;span class="kwrd"&gt;using&lt;/span&gt; (Stream outstream = zipStream.AsStreamForWrite())
    {
        &lt;span class="kwrd"&gt;byte&lt;/span&gt;[] buffer = zipMemoryStream.ToArray();
        outstream.Write(buffer, 0, buffer.Length);
        outstream.Flush();
        &lt;span class="kwrd"&gt;return&lt;/span&gt; zipFile;
    }
}&lt;/pre&gt;

&lt;pre class="csharpcode"&gt;&lt;font size="3" face="Segoe Light"&gt;&lt;strong&gt;Full Code:&lt;/strong&gt;&lt;/font&gt;&lt;br /&gt;&lt;/pre&gt;

&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; async Task&amp;lt;StorageFile&amp;gt; CreateZip(StorageFile file)
{
    &lt;span class="kwrd"&gt;using&lt;/span&gt; (MemoryStream zipMemoryStream = &lt;span class="kwrd"&gt;new&lt;/span&gt; MemoryStream())
    {
        &lt;span class="kwrd"&gt;using&lt;/span&gt; (ZipArchive zipArchive = &lt;span class="kwrd"&gt;new&lt;/span&gt; ZipArchive(zipMemoryStream, ZipArchiveMode.Create))
        {
            &lt;span class="kwrd"&gt;try&lt;/span&gt;
            {
                &lt;span class="kwrd"&gt;byte&lt;/span&gt;[] buffer = WindowsRuntimeBufferExtensions.ToArray(await FileIO.ReadBufferAsync(file));
                ZipArchiveEntry entry = zipArchive.CreateEntry(file.Name);
                &lt;span class="kwrd"&gt;using&lt;/span&gt; (Stream entryStream = entry.Open())
                {
                    await entryStream.WriteAsync(buffer, 0, buffer.Length);
                }
            }
            &lt;span class="kwrd"&gt;catch&lt;/span&gt; (Exception)
            {
                &lt;span class="rem"&gt;//Handle exception....&lt;/span&gt;
            }
        }

        &lt;span class="rem"&gt;// Created new file to store compressed files&lt;/span&gt;
        var compressedFileName = file.Name + &lt;span class="str"&gt;&amp;quot;.zip&amp;quot;&lt;/span&gt;;
        StorageFile zipFile = await ApplicationData.Current.TemporaryFolder.CreateFileAsync(compressedFileName, CreationCollisionOption.GenerateUniqueName);
        &lt;span class="kwrd"&gt;using&lt;/span&gt; (IRandomAccessStream zipStream = await zipFile.OpenAsync(FileAccessMode.ReadWrite))
        {
            &lt;span class="rem"&gt;// Write compressed data from memory to file&lt;/span&gt;
            &lt;span class="kwrd"&gt;using&lt;/span&gt; (Stream outstream = zipStream.AsStreamForWrite())
            {
                &lt;span class="kwrd"&gt;byte&lt;/span&gt;[] buffer = zipMemoryStream.ToArray();
                outstream.Write(buffer, 0, buffer.Length);
                outstream.Flush();
                &lt;span class="kwrd"&gt;return&lt;/span&gt; zipFile;
            }
        }
    }
}&lt;/pre&gt;

&lt;pre class="csharpcode"&gt;&lt;font size="3" face="Segoe UI"&gt;Finally we need to write the &lt;strong&gt;OpenZip&lt;/strong&gt; method to Uncompressed the file&lt;/font&gt;&lt;/pre&gt;

&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; async Task&amp;lt;StorageFile&amp;gt; OpenZip(StorageFile compressedFile)
{
    &lt;span class="kwrd"&gt;using&lt;/span&gt; (MemoryStream zipMemoryStream = &lt;span class="kwrd"&gt;new&lt;/span&gt; MemoryStream(WindowsRuntimeBufferExtensions.ToArray(await FileIO.ReadBufferAsync(compressedFile))))
    {
        &lt;span class="kwrd"&gt;using&lt;/span&gt; (ZipArchive zipArchive = &lt;span class="kwrd"&gt;new&lt;/span&gt; ZipArchive(zipMemoryStream, ZipArchiveMode.Read))
        {
            var file = zipArchive.Entries[0];
            var uncompressedFile = await ApplicationData.Current.TemporaryFolder.CreateFileAsync(file.Name, CreationCollisionOption.ReplaceExisting);
            &lt;span class="kwrd"&gt;using&lt;/span&gt; (var uncompressedFileStream = await uncompressedFile.OpenStreamForWriteAsync())
            {
                await RandomAccessStream.CopyAsync(file.Open().AsInputStream(), uncompressedFileStream.AsOutputStream());
                await uncompressedFileStream.FlushAsync();
            }
            &lt;span class="kwrd"&gt;return&lt;/span&gt; uncompressedFile;
        }
    }
}&lt;/pre&gt;

&lt;pre class="csharpcode"&gt;&lt;font size="3" face="Segoe UI"&gt;&lt;strong&gt;Task Notice:&lt;/strong&gt; Doing that for JavaScript Windows Store apps will not be so easy, what you need to do is creating&lt;strong&gt; WindowsRuntimeComponent &lt;/strong&gt;project &lt;br /&gt;implement the zip functionality there and add a reference to  your JavaScript project.&lt;/font&gt;&lt;/pre&gt;

&lt;pre class="csharpcode"&gt;&lt;font size="3" face="Segoe UI"&gt;Enjoy.&lt;/font&gt;&lt;/pre&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=1612449" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/.NET/default.aspx">.NET</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/Development/default.aspx">Development</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/TECH/default.aspx">TECH</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/Windows+8/default.aspx">Windows 8</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/.NET+4.5/default.aspx">.NET 4.5</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/JavaScript/default.aspx">JavaScript</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/Visual+Studio+2012/default.aspx">Visual Studio 2012</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/Windows+Store/default.aspx">Windows Store</category></item><item><title>How To: Keep Windows 8 Device Screen On While User Away</title><link>http://blogs.microsoft.co.il/blogs/shair/archive/2012/12/27/how-to-keep-windows-8-device-screen-on-while-user-away.aspx</link><pubDate>Thu, 27 Dec 2012 15:43:37 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:1599932</guid><dc:creator>shair</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/shair/rsscomments.aspx?PostID=1599932</wfw:commentRss><comments>http://blogs.microsoft.co.il/blogs/shair/archive/2012/12/27/how-to-keep-windows-8-device-screen-on-while-user-away.aspx#comments</comments><description>&lt;div class="wlWriterHeaderFooter" style="float:none;margin:0px;padding:4px 0px 4px 0px;"&gt;&lt;iframe src="http://www.facebook.com/widgets/like.php?href=http://blogs.microsoft.co.il/blogs/shair/archive/2012/12/27/how-to-keep-windows-8-device-screen-on-while-user-away.aspx" scrolling="no" frameborder="0" style="border:none;width:450px;height:80px;"&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;p&gt;While working with a customer on GPS system for Windows Store app, an important question raised: &lt;/p&gt;  &lt;h4&gt;How we can prevent from Windows to turn off the screen due to user inactivity?&lt;/h4&gt;  &lt;p&gt;Normally, a Windows 8 device will dim the display (and eventually turn it off) to save battery life when the user is away.&lt;/p&gt;  &lt;p&gt;Now for our system we need to keep the display on at all times, to do that call &lt;strong&gt;requestActive &lt;/strong&gt;function&lt;strong&gt; &lt;/strong&gt;to notify Windows that the app requires the display to remain on. Windows automatically deactivates your app&amp;#39;s active display requests when it is moved off screen, and re-activates them when your app comes back to the foreground. But you can also use API to release the request display by calling the &lt;strong&gt;requestRelease &lt;/strong&gt;function.&lt;/p&gt;  &lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;var&lt;/span&gt; displayRequest = &lt;span class="kwrd"&gt;null&lt;/span&gt;;

&lt;span class="kwrd"&gt;function&lt;/span&gt; keepDisplayOn() {
   &lt;span class="kwrd"&gt;if&lt;/span&gt; displayRequest === &lt;span class="kwrd"&gt;null&lt;/span&gt;) {  
      displayRequest = &lt;span class="kwrd"&gt;new&lt;/span&gt; Windows.System.Display.DisplayRequest;
      displayRequest.requestActive();&lt;br /&gt;&lt;br /&gt; &lt;font color="#008040"&gt;     //C# – displayRequest = new DisplayRequest();&lt;br /&gt;&lt;br /&gt;      //C# – displayRequest.RequestActive();&lt;/font&gt;
   }
}


&lt;span class="kwrd"&gt;function&lt;/span&gt; releaseDisplayOn() {
    &lt;span class="kwrd"&gt;if&lt;/span&gt; displayRequest != &lt;span class="kwrd"&gt;null&lt;/span&gt;) {              
        displayRequest.requestRelease();
        displayRequest = &lt;span class="kwrd"&gt;null&lt;/span&gt;;&lt;br /&gt;&lt;font color="#008040"&gt;&lt;br /&gt;&lt;/font&gt;&lt;font color="#008040"&gt;        //C# – displayRequest.RequestRelease(); &lt;/font&gt;
     }
}&lt;/pre&gt;

.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, &amp;quot;Courier New&amp;quot;, courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=1599932" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/Development/default.aspx">Development</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/Windows+8/default.aspx">Windows 8</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/JavaScript/default.aspx">JavaScript</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/Metro/default.aspx">Metro</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/Visual+Studio+2012/default.aspx">Visual Studio 2012</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/Windows+Store/default.aspx">Windows Store</category></item><item><title>Why Background Audio Isn’t Working?</title><link>http://blogs.microsoft.co.il/blogs/shair/archive/2012/12/27/why-background-audio-isn-t-working.aspx</link><pubDate>Thu, 27 Dec 2012 11:59:14 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:1599354</guid><dc:creator>shair</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/shair/rsscomments.aspx?PostID=1599354</wfw:commentRss><comments>http://blogs.microsoft.co.il/blogs/shair/archive/2012/12/27/why-background-audio-isn-t-working.aspx#comments</comments><description>&lt;div class="wlWriterHeaderFooter" style="float:none;margin:0px;padding:4px 0px 4px 0px;"&gt;&lt;iframe src="http://www.facebook.com/widgets/like.php?href=http://blogs.microsoft.co.il/blogs/shair/archive/2012/12/27/why-background-audio-isn-t-working.aspx" scrolling="no" frameborder="0" style="border:none;width:450px;height:80px;"&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;p&gt;Using HTML 5 we can play audio very easily in your Windows Store app, all you need to do is setting an &lt;strong&gt;audio &lt;/strong&gt;element specify the object properties and that’s it.&lt;/p&gt;  &lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;var&lt;/span&gt; audioElement= document.createElement(&lt;span class="str"&gt;&amp;#39;audio&amp;#39;&lt;/span&gt;); 
audioElement.setAttribute(&lt;span class="str"&gt;&amp;quot;id&amp;quot;&lt;/span&gt;, &lt;span class="str"&gt;&amp;quot;audtag&amp;quot;&lt;/span&gt;); 
audioElement.setAttribute(&lt;span class="str"&gt;&amp;quot;controls&amp;quot;&lt;/span&gt;, &lt;span class="str"&gt;&amp;quot;true&amp;quot;&lt;/span&gt;); 
audioElement.setAttribute(&lt;span class="str"&gt;&amp;quot;src&amp;quot;&lt;/span&gt;, fileToPlay); 
audioElement.setAttribute(&lt;span class="str"&gt;&amp;quot;autoplay&amp;quot;&lt;/span&gt;, &lt;span class="str"&gt;&amp;quot;true&amp;quot;&lt;/span&gt;); 
audioElement.load();&lt;/pre&gt;

&lt;h4&gt;What if you want to keep playing this audio even if the user has switch to another application?&lt;/h4&gt;

&lt;p&gt;In order to to that you’ll need to use “Background Audio” ability.&lt;/p&gt;

&lt;p&gt;First you need to declare the “Background Tasks” in your app package manifest file.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/shair/image_1F47400A.png"&gt;&lt;img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/shair/image_thumb_633AFE54.png" width="885" height="503" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Then you need to add the “&lt;strong&gt;msAudioCategory&lt;/strong&gt;” attribute to the audio element:&lt;/p&gt;

&lt;pre class="csharpcode"&gt;audtag.setAttribute(&lt;span class="str"&gt;&amp;quot;msAudioCategory&amp;quot;&lt;/span&gt;, &lt;span class="str"&gt;&amp;quot;BackgroundCapableMedia&amp;quot;&lt;/span&gt;);&lt;/pre&gt;

&lt;p&gt;Now if you run the application you’ll hear the audio playing but once you navigate to another app the audio will stop.&lt;/p&gt;

&lt;p&gt;The reason is, you must specify &lt;strong&gt;MediaControl&lt;/strong&gt; event in order to allow Background Audio. &lt;/p&gt;

&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;var&lt;/span&gt; mediaControl = Windows.Media.MediaControl; &lt;span class="rem"&gt; &lt;/span&gt;
mediaControl.addEventListener(&lt;span class="str"&gt;&amp;quot;playpausetogglepressed&amp;quot;&lt;/span&gt;, &lt;span class="kwrd"&gt;function&lt;/span&gt; () { }, &lt;span class="kwrd"&gt;false&lt;/span&gt;); 
mediaControl.addEventListener(&lt;span class="str"&gt;&amp;quot;playpressed&amp;quot;&lt;/span&gt;, &lt;span class="kwrd"&gt;function&lt;/span&gt; () { }, &lt;span class="kwrd"&gt;false&lt;/span&gt;); 
mediaControl.addEventListener(&lt;span class="str"&gt;&amp;quot;stoppressed&amp;quot;&lt;/span&gt;, &lt;span class="kwrd"&gt;function&lt;/span&gt; () { }, &lt;span class="kwrd"&gt;false&lt;/span&gt;); 
mediaControl.addEventListener(&lt;span class="str"&gt;&amp;quot;pausepressed&amp;quot;&lt;/span&gt;, &lt;span class="kwrd"&gt;function&lt;/span&gt; () { }, &lt;span class="kwrd"&gt;false&lt;/span&gt;);&lt;/pre&gt;



&lt;p&gt;Now if you run your app that audio will keep on playing even if you switch to another application.&lt;/p&gt;

&lt;p&gt;Full Code:&lt;/p&gt;

&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;var&lt;/span&gt; mediaControl = Windows.Media.MediaControl;
&lt;span class="rem"&gt;// These are necessary to play streams of type &amp;#39;backgroundCapableMedia&amp;#39;&lt;/span&gt;
mediaControl.addEventListener(&lt;span class="str"&gt;&amp;quot;playpausetogglepressed&amp;quot;&lt;/span&gt;, &lt;span class="kwrd"&gt;function&lt;/span&gt; () { }, &lt;span class="kwrd"&gt;false&lt;/span&gt;);
mediaControl.addEventListener(&lt;span class="str"&gt;&amp;quot;playpressed&amp;quot;&lt;/span&gt;, &lt;span class="kwrd"&gt;function&lt;/span&gt; () { }, &lt;span class="kwrd"&gt;false&lt;/span&gt;);
mediaControl.addEventListener(&lt;span class="str"&gt;&amp;quot;stoppressed&amp;quot;&lt;/span&gt;, &lt;span class="kwrd"&gt;function&lt;/span&gt; () { }, &lt;span class="kwrd"&gt;false&lt;/span&gt;);
mediaControl.addEventListener(&lt;span class="str"&gt;&amp;quot;pausepressed&amp;quot;&lt;/span&gt;, &lt;span class="kwrd"&gt;function&lt;/span&gt; () { }, &lt;span class="kwrd"&gt;false&lt;/span&gt;);

&lt;span class="kwrd"&gt;var&lt;/span&gt; audtag = document.createElement(&lt;span class="str"&gt;&amp;#39;audio&amp;#39;&lt;/span&gt;);
audtag.setAttribute(&lt;span class="str"&gt;&amp;quot;id&amp;quot;&lt;/span&gt;, &lt;span class="str"&gt;&amp;quot;audtag&amp;quot;&lt;/span&gt;);
audtag.setAttribute(&lt;span class="str"&gt;&amp;quot;controls&amp;quot;&lt;/span&gt;, &lt;span class="str"&gt;&amp;quot;false&amp;quot;&lt;/span&gt;);
audtag.setAttribute(&lt;span class="str"&gt;&amp;quot;msAudioCategory&amp;quot;&lt;/span&gt;, &lt;span class="str"&gt;&amp;quot;BackgroundCapableMedia&amp;quot;&lt;/span&gt;);
audtag.setAttribute(&lt;span class="str"&gt;&amp;quot;src&amp;quot;&lt;/span&gt;, source);
audtag.setAttribute(&lt;span class="str"&gt;&amp;quot;autoplay&amp;quot;&lt;/span&gt;, &lt;span class="str"&gt;&amp;quot;true&amp;quot;&lt;/span&gt;);
audtag.load();&lt;/pre&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=1599354" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/Development/default.aspx">Development</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/Windows+8/default.aspx">Windows 8</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/JavaScript/default.aspx">JavaScript</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/Metro/default.aspx">Metro</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/Background+Task/default.aspx">Background Task</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/Windows+Store/default.aspx">Windows Store</category></item><item><title>Link To Windows Store App From Web Sites</title><link>http://blogs.microsoft.co.il/blogs/shair/archive/2012/12/25/link-to-windows-store-app-from-web-sites.aspx</link><pubDate>Tue, 25 Dec 2012 10:29:35 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:1591538</guid><dc:creator>shair</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/shair/rsscomments.aspx?PostID=1591538</wfw:commentRss><comments>http://blogs.microsoft.co.il/blogs/shair/archive/2012/12/25/link-to-windows-store-app-from-web-sites.aspx#comments</comments><description>&lt;div class="wlWriterHeaderFooter" style="float:none;margin:0px;padding:4px 0px 4px 0px;"&gt;&lt;iframe src="http://www.facebook.com/widgets/like.php?href=http://blogs.microsoft.co.il/blogs/shair/archive/2012/12/25/link-to-windows-store-app-from-web-sites.aspx" scrolling="no" frameborder="0" style="border:none;width:450px;height:80px;"&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;p&gt;While working on Windows Store app for a customer he asked me – how I can promote my app on that company web site, I said this is very simple all you need to do is adding a Windows Store protocol link and once the user will click on that link (Only if his using Windows 8), the app page will appear in Windows Store app.&lt;/p&gt;  &lt;h3&gt;Windows Store protocol link&lt;/h3&gt;  &lt;p&gt;So, how do I add a link to my Windows Store app?&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;src&lt;/strong&gt; or &lt;strong&gt;href&lt;/strong&gt; =&amp;gt; &lt;strong&gt;ms-windows-store &lt;/strong&gt;following by the &lt;strong&gt;Package Family Name&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;PDP - Open an app listing page. &lt;/li&gt;    &lt;li&gt;Search - Open the Store&amp;#39;s updates page. &lt;/li&gt;    &lt;li&gt;Updates - Execute a search query and display the results. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;Examples&lt;/strong&gt;&lt;/p&gt;  &lt;table cellspacing="0" cellpadding="2"&gt;     &lt;tr&gt;       &lt;td valign="top"&gt;&lt;a&gt;Open Angry Birds&lt;/a&gt;&lt;/td&gt;        &lt;td valign="top"&gt;ms-windows-store:PDP?PFN=1ED5AEA5.AngryBirdsSpace_p2gbknwb5d8r2&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;&lt;a&gt;Search &amp;quot;Action&amp;quot; query&lt;/a&gt;&lt;/td&gt;        &lt;td valign="top"&gt;ms-windows-store:Search?Query=Action&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;&lt;a&gt;Updates&lt;/a&gt;&lt;/td&gt;        &lt;td valign="top"&gt;ms-windows-store:Updates&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;&amp;nbsp;&lt;/td&gt;        &lt;td valign="top"&gt;&amp;nbsp;&lt;/td&gt;     &lt;/tr&gt;   &lt;/table&gt;  &lt;h3&gt;Connect your website to your Windows Store app (Windows)&lt;/h3&gt;  &lt;p&gt;Another option to promote your Windows Store app from Web Sites is adding specific meta data elements under the head section. – this option will only work on IE 10 Metro app, and not desktop.&lt;/p&gt;  &lt;p&gt;Add these two lines of metadata inside the &amp;lt;head&amp;gt; of your html page to make Internet Explorer 10 aware of your app.&lt;/p&gt;  &lt;h4&gt;Angry Birds Space&lt;/h4&gt;  &lt;p&gt;&lt;img style="float:right;display:inline;" alt="Screen shot 1" align="right" src="http://wscont2.apps.microsoft.com/winstore/1x/c2bbd355-f2ce-4590-a493-f34568a588db/Screenshot.25956.1000000.jpg" width="277" height="156" /&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&amp;lt;meta name=&amp;quot;msApplication-ID&amp;quot; content=&amp;quot;8ece2571-91e0-4f2f-b7e5-b0b7944ced2d&amp;quot; /&amp;gt;&lt;/p&gt;    &lt;p&gt;&amp;lt;meta name=&amp;quot;msApplication-PackageFamilyName&amp;quot; content=&amp;quot;1ED5AEA5.AngryBirdsSpace_p2gbknwb5d8r2&amp;quot; /&amp;gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;img alt="An example of the appearance of a site icon when the site has an associated app" src="http://i.msdn.microsoft.com/dynimg/IC591657.png" /&gt;&lt;/p&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=1591538" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/Development/default.aspx">Development</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/TECH/default.aspx">TECH</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/Windows+8/default.aspx">Windows 8</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/JavaScript/default.aspx">JavaScript</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/Metro/default.aspx">Metro</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/Windows+Store/default.aspx">Windows Store</category></item><item><title>Creating Windows Store App Using PhoneGap (Cordova)</title><link>http://blogs.microsoft.co.il/blogs/shair/archive/2012/12/02/creating-windows-store-app-using-phonegap-cordova.aspx</link><pubDate>Sun, 02 Dec 2012 10:14:00 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:1505810</guid><dc:creator>shair</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/shair/rsscomments.aspx?PostID=1505810</wfw:commentRss><comments>http://blogs.microsoft.co.il/blogs/shair/archive/2012/12/02/creating-windows-store-app-using-phonegap-cordova.aspx#comments</comments><description>&lt;div class="wlWriterHeaderFooter" style="float:none;margin:0px;padding:4px 0px 4px 0px;"&gt;&lt;iframe src="http://www.facebook.com/widgets/like.php?href=http://blogs.microsoft.co.il/blogs/shair/archive/2012/12/02/creating-windows-store-app-using-phonegap-cordova.aspx" scrolling="no" frameborder="0" style="border:none;width:130px;height:80px;"&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;p&gt;There is new PhoneGap release called – &lt;u&gt;Cordova&lt;/u&gt; or &lt;u&gt;PhoneGap 2.2.0&lt;/u&gt; that supports WinRT features, in this post I’ll demonstrate some of the basics of PhoneGap for Windows Store apps.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/shair/image_2353405E.png"&gt;&lt;img title="image" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/shair/image_thumb_12A7CD4B.png" width="633" height="387" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/files/folders/1505794/download.aspx" target="_blank"&gt;Download Demo Project&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;What is PhoneGap?&lt;/strong&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;PhoneGap is a free and open source framework that allows you to create mobile apps using standardized web APIs for the platforms you care about.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;This means that using PhoneGap in your Windows Store app can also be used by other Mobile OS such as iOS, Android, Windows Phone 7, Blackberry and more.&lt;/p&gt;  &lt;p&gt;Enabling PhoneGap for Windows Store app is very easy, all you need is PhoneGap 2.2.0 library (&lt;a href="http://phonegap.com/download" target="_blank"&gt;Download&lt;/a&gt;), Visual Studio 2012 and Windows 8 OS.&lt;/p&gt;  &lt;h2&gt;Getting Started with PhoneGap for WinRT&lt;/h2&gt;  &lt;ol&gt;   &lt;li&gt;Download PhoneGap 2.2.0 - &lt;a title="http://phonegap.com/download" href="http://phonegap.com/download"&gt;http://phonegap.com/download&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Create Blank JavaScript project. &lt;/li&gt;    &lt;li&gt;Add “cordova-2.2.0.js” JavaScript file to your js folder. (Located in \lib\windows8) &lt;/li&gt;    &lt;li&gt;Add reference to cordova js file from default.html page&lt;/li&gt; &lt;/ol&gt;  &lt;div class="csharpcode"&gt;   &lt;pre class="alt"&gt;&amp;lt;script src=&lt;span class="str"&gt;&amp;quot;/js/cordova-2.2.0.js&amp;quot;&lt;/span&gt;&amp;gt;&amp;lt;/script&amp;gt;&lt;/pre&gt;
&lt;/div&gt;


&lt;h2&gt;Show MessageDialog&lt;/h2&gt;

&lt;p&gt;Modify app.onactivated event under default.js file with the following code:&lt;/p&gt;

&lt;div class="csharpcode"&gt;
  &lt;pre class="alt"&gt; app.onactivated = function (args) {&lt;/pre&gt;

  &lt;pre&gt;        &lt;span class="kwrd"&gt;if&lt;/span&gt; (args.detail.kind === activation.ActivationKind.launch) {&lt;/pre&gt;

  &lt;pre class="alt"&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt; (args.detail.previousExecutionState !== activation.ApplicationExecutionState.terminated) {&lt;/pre&gt;

  &lt;pre&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre class="alt"&gt;                document.addEventListener(&lt;span class="str"&gt;&amp;quot;deviceready&amp;quot;&lt;/span&gt;, function () {&lt;/pre&gt;

  &lt;pre&gt;                    navigator.notification.alert(&lt;span class="str"&gt;&amp;quot;Raise &amp;#39;Windows.UI.Popups.MessageDialog&amp;#39; Using PhoneGap!&amp;quot;&lt;/span&gt;, &lt;span class="kwrd"&gt;null&lt;/span&gt;, &lt;br /&gt;                                                  &lt;span class="str"&gt;&amp;quot;Getting Started with PhoneGap for Windows Store App&amp;quot;&lt;/span&gt;, &lt;span class="str"&gt;&amp;quot;It&amp;#39;s Working!&amp;quot;&lt;/span&gt;);&lt;/pre&gt;

  &lt;pre class="alt"&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre&gt;                    var appVer = $(&lt;span class="str"&gt;&amp;quot;#appVersion&amp;quot;&lt;/span&gt;).textContent = &lt;span class="str"&gt;&amp;quot;Version: &amp;quot;&lt;/span&gt; + navigator.appVersion;&lt;/pre&gt;

  &lt;pre class="alt"&gt;                    var appVer = $(&lt;span class="str"&gt;&amp;quot;#appName&amp;quot;&lt;/span&gt;).textContent = &lt;span class="str"&gt;&amp;quot;Name: &amp;quot;&lt;/span&gt; + navigator.appName;&lt;/pre&gt;

  &lt;pre&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre class="alt"&gt;                });&lt;/pre&gt;

  &lt;pre&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre class="alt"&gt;            } &lt;span class="kwrd"&gt;else&lt;/span&gt; {&lt;/pre&gt;

  &lt;pre&gt;                &lt;span class="rem"&gt;// TODO: This application has been reactivated from suspension.&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;                &lt;span class="rem"&gt;// Restore application state here.&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;            }&lt;/pre&gt;

  &lt;pre class="alt"&gt;            args.setPromise(WinJS.UI.processAll());&lt;/pre&gt;

  &lt;pre&gt;        }&lt;/pre&gt;

  &lt;pre class="alt"&gt;    };&lt;/pre&gt;
&lt;/div&gt;


&lt;p&gt;Notice that we are using “&lt;strong&gt;navigator&lt;/strong&gt;” object to call the &lt;strong&gt;alert&lt;/strong&gt; function under notification namespace.&lt;/p&gt;

&lt;p&gt;Same for displaying confirmation dialog:&lt;/p&gt;

&lt;div class="csharpcode"&gt;
  &lt;pre class="alt"&gt;function showConfirm() {&lt;/pre&gt;

  &lt;pre&gt;    &lt;span class="rem"&gt;//Message Content&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;    navigator.notification.confirm(&lt;span class="str"&gt;&amp;quot;Do you like PhoneGap for Windows 8?&amp;quot;&lt;/span&gt;, function (i) {&lt;/pre&gt;

  &lt;pre&gt;        var val = &lt;span class="str"&gt;&amp;quot;&amp;quot;&lt;/span&gt;;&lt;/pre&gt;

  &lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;switch&lt;/span&gt; (i) {&lt;/pre&gt;

  &lt;pre&gt;            &lt;span class="kwrd"&gt;case&lt;/span&gt; 2:&lt;/pre&gt;

  &lt;pre class="alt"&gt;                val = &lt;span class="str"&gt;&amp;quot;No&amp;quot;&lt;/span&gt;;&lt;/pre&gt;

  &lt;pre&gt;                &lt;span class="kwrd"&gt;break&lt;/span&gt;;&lt;/pre&gt;

  &lt;pre class="alt"&gt;            &lt;span class="kwrd"&gt;case&lt;/span&gt; 3:&lt;/pre&gt;

  &lt;pre&gt;                val = &lt;span class="str"&gt;&amp;quot;Maybe&amp;quot;&lt;/span&gt;;&lt;/pre&gt;

  &lt;pre class="alt"&gt;                &lt;span class="kwrd"&gt;break&lt;/span&gt;;&lt;/pre&gt;

  &lt;pre&gt;            &lt;span class="kwrd"&gt;default&lt;/span&gt;:&lt;/pre&gt;

  &lt;pre class="alt"&gt;                val = &lt;span class="str"&gt;&amp;quot;Yes&amp;quot;&lt;/span&gt;;&lt;/pre&gt;

  &lt;pre&gt;                &lt;span class="kwrd"&gt;break&lt;/span&gt;;&lt;/pre&gt;

  &lt;pre class="alt"&gt;        }&lt;/pre&gt;

  &lt;pre&gt;        $(&lt;span class="str"&gt;&amp;quot;#confirmResult&amp;quot;&lt;/span&gt;).textContent = &lt;span class="str"&gt;&amp;quot;You clicked &amp;#39;&amp;quot;&lt;/span&gt; + val + &lt;span class="str"&gt;&amp;quot;&amp;#39;&amp;quot;&lt;/span&gt;;&lt;/pre&gt;

  &lt;pre class="alt"&gt;        &lt;span class="rem"&gt;//Title                  //Command Buttons&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;    }, &lt;span class="str"&gt;&amp;quot;PhoneGap for Windows 8&amp;quot;&lt;/span&gt;, &lt;span class="str"&gt;&amp;quot;Yes, No, Maybe&amp;quot;&lt;/span&gt;);&lt;/pre&gt;

  &lt;pre class="alt"&gt;}&lt;/pre&gt;
&lt;/div&gt;



&lt;a href="http://blogs.microsoft.co.il/blogs/shair/SNAGHTMLdf29fd0_484CECD8.png"&gt;&lt;img title="SNAGHTMLdf29fd0" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="SNAGHTMLdf29fd0" src="http://blogs.microsoft.co.il/blogs/shair/SNAGHTMLdf29fd0_thumb_3D7F6FB6.png" width="794" height="304" /&gt;&lt;/a&gt;

&lt;h2&gt;Camera Capture&lt;/h2&gt;

&lt;p&gt;Again instead of using CameraCaptureUI you can use &lt;strong&gt;getPicture &lt;/strong&gt;function under navigator.camera namespace.&lt;/p&gt;

&lt;div class="csharpcode"&gt;
  &lt;pre class="alt"&gt;function showCamera() {&lt;/pre&gt;

  &lt;pre&gt;    navigator.camera.getPicture(&lt;/pre&gt;

  &lt;pre class="alt"&gt;        function (data) {&lt;/pre&gt;

  &lt;pre&gt;            var img = $(&lt;span class="str"&gt;&amp;#39;#cameraImg&amp;#39;&lt;/span&gt;);&lt;/pre&gt;

  &lt;pre class="alt"&gt;            &lt;span class="rem"&gt;//img.src = &amp;quot;data:image/jpeg;base64,&amp;quot; + data;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;            img.src = data;&lt;/pre&gt;

  &lt;pre class="alt"&gt;        },&lt;/pre&gt;

  &lt;pre&gt;        function (e) {&lt;/pre&gt;

  &lt;pre class="alt"&gt;            navigator.notification.alert(&lt;span class="str"&gt;&amp;quot;Error getting picture&amp;quot;&lt;/span&gt;);&lt;/pre&gt;

  &lt;pre&gt;        },&lt;/pre&gt;

  &lt;pre class="alt"&gt;        {&lt;/pre&gt;

  &lt;pre&gt;            quality: 50, destinationType:&lt;/pre&gt;

  &lt;pre class="alt"&gt;            Camera.DestinationType.FILE_URI, sourceType: Camera.PictureSourceType.CAMERA&lt;/pre&gt;

  &lt;pre&gt;        });&lt;/pre&gt;

  &lt;pre class="alt"&gt;}&lt;/pre&gt;
&lt;/div&gt;


&lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/shair/image_26CCFBA2.png"&gt;&lt;img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/shair/image_thumb_213E3F64.png" width="444" height="274" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Don’t forget to apply “Microphone” &amp;amp; “Webcam” capabilities under &lt;strong&gt;package.appmanifest &lt;/strong&gt;file.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/shair/image_20B1C0D5.png"&gt;&lt;img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/shair/image_thumb_5F931BA3.png" width="429" height="532" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;Pick Image From Image Folder&lt;/h2&gt;

&lt;p&gt;Start Camera is similar to FilePicker except you need to define “&lt;strong&gt;PHOTOLIBRARY&lt;/strong&gt;” as the source instead of “&lt;strong&gt;CAMERA&lt;/strong&gt;”.&lt;/p&gt;

&lt;div class="csharpcode"&gt;
  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;function&lt;/span&gt; showBrowseImage() {&lt;/pre&gt;

  &lt;pre&gt;    navigator.camera.getPicture(&lt;/pre&gt;

  &lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;function&lt;/span&gt; (data) {&lt;/pre&gt;

  &lt;pre&gt;            &lt;span class="kwrd"&gt;var&lt;/span&gt; img = $(&lt;span class="str"&gt;&amp;#39;#cameraImg&amp;#39;&lt;/span&gt;);&lt;/pre&gt;

  &lt;pre class="alt"&gt;            &lt;span class="rem"&gt;//img.src = &amp;quot;data:image/jpeg;base64,&amp;quot; + data;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;            img.src = data;&lt;/pre&gt;

  &lt;pre class="alt"&gt;        },&lt;/pre&gt;

  &lt;pre&gt;        &lt;span class="kwrd"&gt;function&lt;/span&gt; (e) {&lt;/pre&gt;

  &lt;pre class="alt"&gt;            navigator.notification.alert(&lt;span class="str"&gt;&amp;quot;Error getting picture&amp;quot;&lt;/span&gt;);&lt;/pre&gt;

  &lt;pre&gt;        },&lt;/pre&gt;

  &lt;pre class="alt"&gt;        {&lt;/pre&gt;

  &lt;pre&gt;            quality: 50, destinationType:&lt;/pre&gt;

  &lt;pre class="alt"&gt;            Camera.DestinationType.FILE_URI, sourceType: Camera.PictureSourceType.PHOTOLIBRARY&lt;/pre&gt;

  &lt;pre&gt;        });&lt;/pre&gt;

  &lt;pre class="alt"&gt;}&lt;/pre&gt;
&lt;/div&gt;


&lt;p&gt;Don’t forget to allow &lt;a href="http://blogs.microsoft.co.il/blogs/shair/image_017B2BD0.png"&gt;&lt;img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;margin:0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/shair/image_thumb_1F0D06CF.png" width="122" height="21" /&gt;&lt;/a&gt; in your &lt;strong&gt;package.appmanifest &lt;/strong&gt;file.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/shair/image_2CAF9D0A.png"&gt;&lt;img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/shair/image_thumb_2DC3C482.png" width="1111" height="627" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/shair/image_0B6B6D62.png"&gt;&lt;img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/shair/image_thumb_3C0E4F40.png" width="244" height="153" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;Geo Location&lt;/h2&gt;

&lt;p&gt;You can also use PhoneGap for accessing device sensors such as Accelerometer, GeoLocation and more.&lt;/p&gt;

&lt;div class="csharpcode"&gt;
  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;function&lt;/span&gt; showLocation() {&lt;/pre&gt;

  &lt;pre&gt;    navigator.geolocation.getCurrentPosition(&lt;span class="kwrd"&gt;function&lt;/span&gt; (location) {&lt;/pre&gt;

  &lt;pre class="alt"&gt;        $(&lt;span class="str"&gt;&amp;quot;#locationResult&amp;quot;&lt;/span&gt;).innerHTML = &lt;span class="str"&gt;&amp;quot;Latitude: &amp;lt;strong&amp;gt;&amp;quot;&lt;/span&gt; + location.coords.latitude + &lt;span class="str"&gt;&amp;quot;&amp;lt;/strong&amp;gt;&amp;lt;br/&amp;gt;Longitude: &amp;lt;strong&amp;gt;&amp;quot;&lt;/span&gt; + location.coords.longitude + &lt;span class="str"&gt;&amp;quot;&amp;lt;/strong&amp;gt;&amp;quot;&lt;/span&gt;;&lt;/pre&gt;

  &lt;pre&gt;    }, &lt;span class="kwrd"&gt;function&lt;/span&gt; (err) {&lt;/pre&gt;

  &lt;pre class="alt"&gt;        $(&lt;span class="str"&gt;&amp;quot;#locationResult&amp;quot;&lt;/span&gt;).textContent = &lt;span class="str"&gt;&amp;quot;Error getting location&amp;quot;&lt;/span&gt;;&lt;/pre&gt;

  &lt;pre&gt;    }, { timeout: 30000, enableHighAccuracy: &lt;span class="kwrd"&gt;true&lt;/span&gt; });&lt;/pre&gt;

  &lt;pre class="alt"&gt;}&lt;/pre&gt;
&lt;/div&gt;


&lt;p&gt;Don’t forget to allow &lt;a href="http://blogs.microsoft.co.il/blogs/shair/image_2E98166D.png"&gt;&lt;img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;margin:0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/shair/image_thumb_2BA2B1BA.png" width="124" height="25" /&gt;&lt;/a&gt; in your &lt;strong&gt;package.appmanifest &lt;/strong&gt;file.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/shair/image_28AD4D07.png"&gt;&lt;img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/shair/image_thumb_3D02ECC5.png" width="244" height="105" /&gt;&lt;/a&gt;&lt;/p&gt;







&lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/files/folders/1505794/download.aspx" target="_blank"&gt;Download Demo Project&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=1505810" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/Development/default.aspx">Development</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/TECH/default.aspx">TECH</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/Windows+8/default.aspx">Windows 8</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/JavaScript/default.aspx">JavaScript</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/Metro/default.aspx">Metro</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/Visual+Studio+2012/default.aspx">Visual Studio 2012</category></item><item><title>Windows.BackgroundTasks contract or is not installed</title><link>http://blogs.microsoft.co.il/blogs/shair/archive/2012/11/30/windows-backgroundtasks-contract-or-is-not-installed.aspx</link><pubDate>Fri, 30 Nov 2012 07:57:48 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:1497752</guid><dc:creator>shair</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/shair/rsscomments.aspx?PostID=1497752</wfw:commentRss><comments>http://blogs.microsoft.co.il/blogs/shair/archive/2012/11/30/windows-backgroundtasks-contract-or-is-not-installed.aspx#comments</comments><description>&lt;div class="wlWriterHeaderFooter" style="float:none;margin:0px;padding:4px 0px 4px 0px;"&gt;&lt;iframe src="http://www.facebook.com/widgets/like.php?href=http://blogs.microsoft.co.il/blogs/shair/archive/2012/11/30/windows-backgroundtasks-contract-or-is-not-installed.aspx" scrolling="no" frameborder="0" style="border:none;width:130px;height:80px;"&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;p&gt;Yesterday I did some work on BackgroundTasks (CS) for customer application, while building the structure I faced an unfamiliar error and application crash when the Task was triggered.&lt;/p&gt;  &lt;p&gt;I’ve look into Windows Event Log and fond a error related to my application:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/shair/image_456B0A00.png"&gt;&lt;img title="image" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/shair/image_thumb_6D4E095F.png" width="524" height="24" /&gt;&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;Activation of app fcf446e9-4a89-4d56-b3ae-def1bab41ac2_d824bndbbbqn4!App failed with error: This app does not support the contract specified or is not installed. See the Microsoft-Windows-TWinUI/Operational log for additional information.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;So where can you find the “&lt;strong&gt;Microsoft-Windows-TWinUI/Operational&lt;/strong&gt;“ log?&lt;/p&gt;  &lt;p&gt;Expend “Application and Services Logs” folder, &lt;strong&gt;Microsoft &lt;/strong&gt;–&amp;gt; &lt;strong&gt;Windows –&amp;gt; Apps&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/shair/image_15BCC5A7.png"&gt;&lt;img title="image" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/shair/image_thumb_2D63D740.png" width="378" height="477" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Now I can see more details message of error:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;The app fcf446e9-4a89-4d56-b3ae-def1bab41ac2_d824bndbbbqn4!App is not registered for the &lt;strong&gt;Windows.BackgroundTasks contract or is not installed&lt;/strong&gt;.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;First I’ve verified that &amp;quot;ALL APPLICATION PACKAGES&amp;quot; role is present for &amp;quot;&lt;strong&gt;Packages&lt;/strong&gt;&amp;quot; directory in the Local\AppData directory of the current user.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/shair/image_40C0C57A.png"&gt;&lt;img title="image" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/shair/image_thumb_20D21625.png" width="370" height="479" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Second I make sure application package manifest declared Background Tasks and set the Task entry point.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/shair/image_0D50C852.png"&gt;&lt;img title="image" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/shair/image_thumb_0AB770C7.png" width="477" height="491" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Last I check if there is project reference between the Tasks project and my application project.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;And I forgot to add reference…&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Tasks as isolated from you application but when those Tasks invoked they need reference to the registered application.&lt;/p&gt;  &lt;p&gt;Hope this helps.&lt;/p&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=1497752" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/.NET/default.aspx">.NET</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/Development/default.aspx">Development</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/TECH/default.aspx">TECH</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/Windows+8/default.aspx">Windows 8</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/.NET+4.5/default.aspx">.NET 4.5</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/Metro/default.aspx">Metro</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/Visual+Studio+2012/default.aspx">Visual Studio 2012</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/Background+Task/default.aspx">Background Task</category></item><item><title>BackgroundExecutionManager.RequestAccessAsync() Element not found.</title><link>http://blogs.microsoft.co.il/blogs/shair/archive/2012/11/30/backgroundexecutionmanager-requestaccessasync-element-not-found.aspx</link><pubDate>Fri, 30 Nov 2012 06:50:00 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:1495322</guid><dc:creator>shair</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/shair/rsscomments.aspx?PostID=1495322</wfw:commentRss><comments>http://blogs.microsoft.co.il/blogs/shair/archive/2012/11/30/backgroundexecutionmanager-requestaccessasync-element-not-found.aspx#comments</comments><description>&lt;p&gt;Working on Background Task for Windows Store app I faced a annoying issue, while calling:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;await BackgroundExecutionManager.RequestAccessAsync();&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;I’ve received the following error:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/shair/image_21838094.png"&gt;&lt;img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/shair/image_thumb_79CCDE9C.png" width="892" height="378" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The problem was I put &lt;strong&gt;BreakPoint &lt;/strong&gt;before the line, once I’ve removed the breakpoint below that line everything works just fine. &lt;/p&gt;  &lt;p&gt;I don’t know why this is happening but this is how I “Solved” the problem.&lt;/p&gt;  &lt;p&gt;Enjoy&lt;/p&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=1495322" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/.NET/default.aspx">.NET</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/Development/default.aspx">Development</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/Windows+8/default.aspx">Windows 8</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/.NET+4.5/default.aspx">.NET 4.5</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/Metro/default.aspx">Metro</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/Background+Task/default.aspx">Background Task</category></item><item><title>Visual Studio\TFS 2012 Update 1 is available</title><link>http://blogs.microsoft.co.il/blogs/shair/archive/2012/11/28/visual-studio-2012-update-1-is-available.aspx</link><pubDate>Wed, 28 Nov 2012 13:37:00 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:1490970</guid><dc:creator>shair</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/shair/rsscomments.aspx?PostID=1490970</wfw:commentRss><comments>http://blogs.microsoft.co.il/blogs/shair/archive/2012/11/28/visual-studio-2012-update-1-is-available.aspx#comments</comments><description>&lt;p&gt;In previous post “&lt;a href="http://blogs.microsoft.co.il/blogs/shair/archive/2012/09/25/visual-studio-2012-news-iphone-web-test-management-260-limit-and-more.aspx" target="_blank"&gt;Visual Studio 2012–News (iPhone, Web Test Management, 260 Limit and more)&lt;/a&gt;” I talked about the new Visual Studio 2012 Update 1 and what’s new for Visual Studio and TFS 2012.&lt;/p&gt;

&lt;p&gt;So today Microsoft release :&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Visual Studio 2012 Update 1 – &lt;a href="http://www.microsoft.com/visualstudio/eng/downloads#d-visual-studio-2012-update" target="_blank"&gt;Download&lt;/a&gt;&lt;/li&gt;

  &lt;li&gt;TFS 2012 Update 1 – &lt;a href="http://www.microsoft.com/visualstudio/eng/downloads" target="_blank"&gt;Download&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;u&gt;&lt;strong&gt;Update:&lt;/strong&gt;&lt;/u&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href="http://stackoverflow.com/questions/13615812/error-when-installing-tfs-2012-update-1-dbo-typ-buildcontrollertablev2-is-inco"&gt;Error when installing TFS 2012 Update 1 - dbo.typ_BuildControllerTableV2 is incompatible with dbo.typ_BuildControllerTable&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h5&gt;&lt;strong&gt;260 Character Path Limit&lt;/strong&gt;&lt;/h5&gt;

&lt;blockquote&gt;
  &lt;p&gt;Some call this Microsoft “Achilles’ heel” but I’ll not do so far, this is with no doubt a very annoying bug that not once cause me to change and modify entire environments.&lt;/p&gt;

  &lt;p&gt;This will allow us more flexibility in Source Control usage.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;&lt;font size="2"&gt;Windows Development&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Somasegar’s blog - A big focus area for us when designing Visual Studio 2012 was in enabling developers to build stellar apps for Windows, and that trend continues with Update 1, with which we’ve improved Windows development in a variety of areas.&amp;#160; Back in June, we &lt;a href="http://blogs.msdn.com/b/vcblog/archive/2012/06/15/10320645.aspx"&gt;announced&lt;/a&gt; we would enable C++ applications to target Windows XP from Visual Studio 2012, and that support is now available as part of Update 1. For Windows Store applications for Windows 8, Visual Studio 2012 Update 1 includes support for both mixed-mode managed/native debugging and for native ARM dump debugging.&amp;#160; Update 1 also includes improved diagnostics and testing support for Windows Store apps, such as with a JavaScript memory analysis tool, support for data-driven unit tests, and C++ unit testing enhancements. Additionally, for developers &lt;a href="http://blogs.msdn.com/b/somasegar/archive/2012/10/30/building-apps-for-windows-phone-8.aspx"&gt;building apps for Windows Phone 8&lt;/a&gt;, we’ve enabled code analysis to help improve the quality of their phone apps.&lt;a href="https://sdq96a.bay.livefilestore.com/y1pviek7HgeeKEm7Ov3CgdbTL_wYjT2zCVNKVz-dqIt9FGOCU2LyyYXl-sSyr4Ycj4VOZTuNejuT6gYBv0zlAJ8WUVgIzcsMQAd/image3.png?psid=1"&gt;&lt;img border="0" alt="" src="https://sdq96a.bay.livefilestore.com/y1pviek7HgeeKEm7Ov3CgdbTL_wYjT2zCVNKVz-dqIt9FGOCU2LyyYXl-sSyr4Ycj4VOZTuNejuT6gYBv0zlAJ8WUVgIzcsMQAd/image3.png?psid=1" width="657" height="376" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h5&gt;Developer Productivity&lt;/h5&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;strong&gt;Brian Harry - Code Map&lt;/strong&gt; – Code Map is a super cool new feature in the architecture tools that allows me to incrementally build up an architecture/dependency diagram as I explore code.&amp;#160; It makes walking into an existing code base and exploring it WAY easier than it ever has been before.&amp;#160; You can incrementally lay out a diagram one element at a time (class, method, etc) as you explore the code.&amp;#160; You can “query” to expand the diagram – like adding all derived classes or all referencing methods, etc to incrementally understand the code dependencies.&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-36-52-metablogapi/8802.codemap_5F00_screenshot_5F00_67951FC7.png"&gt;&lt;img title="codemap_screenshot" border="0" alt="codemap_screenshot" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-36-52-metablogapi/2438.codemap_5F00_screenshot_5F00_thumb_5F00_7FB88A22.png" width="804" height="459" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Additional Reading:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href="http://blogs.msdn.com/b/bharry/archive/2012/11/26/visual-studio-2012-update-1-is-available.aspx" target="_blank"&gt;Brian Harry’s blog&lt;/a&gt; &lt;/li&gt;

  &lt;li&gt;&lt;a href="http://blogs.msdn.com/b/somasegar/archive/2012/11/26/visual-studio-2012-update-1-now-available.aspx"&gt;Soma’s blog&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=1490970" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/TFS/default.aspx">TFS</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/Development/default.aspx">Development</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/Windows+8/default.aspx">Windows 8</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/TFS+2012/default.aspx">TFS 2012</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/Visual+Studio+2012/default.aspx">Visual Studio 2012</category></item><item><title>Windows Store App - Resize Image (JavaScript)</title><link>http://blogs.microsoft.co.il/blogs/shair/archive/2012/10/31/windows-store-app-resize-image-javascript.aspx</link><pubDate>Wed, 31 Oct 2012 19:05:21 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:1397058</guid><dc:creator>shair</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/shair/rsscomments.aspx?PostID=1397058</wfw:commentRss><comments>http://blogs.microsoft.co.il/blogs/shair/archive/2012/10/31/windows-store-app-resize-image-javascript.aspx#comments</comments><description>&lt;div class="wlWriterHeaderFooter" style="float:none;margin:0px;padding:4px 0px 4px 0px;"&gt;&lt;iframe src="http://www.facebook.com/widgets/like.php?href=http://blogs.microsoft.co.il/blogs/shair/archive/2012/10/31/windows-store-app-resize-image-javascript.aspx" scrolling="no" frameborder="0" style="border:none;width:350px;height:80px;"&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;p&gt;In this post I’ll demonstrate how to change picture size using JavaScript while constraining the image proportions.&lt;/p&gt;  &lt;p&gt;Resize image functionality can be used in several scenarios in Windows Store app, for example: if your app allow the user to download images from the web you might want to resize the image to reduce space usage. Also if you whish to share this image using Roaming Storage you need to make sure the image size is small enough so the Roaming sync will not failed.&lt;/p&gt;  &lt;p&gt;The first steps for this demo is using FileOpenPicker to allow the user to choose what picture he want to resize.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/files/folders/shair/entry1397052.aspx" target="_blank"&gt;Download Demo Project&lt;/a&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Create new JavaScript Navigation app. &lt;/li&gt;    &lt;li&gt;Open &lt;strong&gt;package.appxmanifest&lt;/strong&gt; and add “&lt;u&gt;Pictures Library&lt;/u&gt;” capability. (We’ll use this later) &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/shair/image_4F09438E.png"&gt;&lt;img title="image" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/shair/image_thumb_026506EB.png" width="386" height="364" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Open home.html file located under pages-&amp;gt;home and add the following code: &lt;/li&gt; &lt;/ul&gt;  &lt;div id="codeSnippetWrapper" style="overflow:auto;cursor:text;font-size:8pt;border-top:silver 1px solid;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-right:silver 1px solid;border-bottom:silver 1px solid;padding-bottom:4px;direction:ltr;text-align:left;padding-top:4px;padding-left:4px;margin:20px 0px 10px;border-left:silver 1px solid;line-height:12pt;padding-right:4px;max-height:200px;width:97.5%;background-color:#f4f4f4;"&gt;   &lt;div id="codeSnippet" style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;     &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;div&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;class&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;preview&amp;quot;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;    &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;div&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;class&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;btnBrowse&amp;quot;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;        &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;button&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;id&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;btnBrowse&amp;quot;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;Pick a Image&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;button&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;    &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;div&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;    &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;div&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;class&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;previewImage&amp;quot;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;        &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;img&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;id&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;previewImage&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;style&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;max-height: 400px&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;src&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;#&amp;quot;&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;    &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;div&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;    &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;div&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;id&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;imageDetails&amp;quot;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;div&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;div&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;blockquote&gt;
  &lt;p&gt;The above code added a button, img and div elements to home.html page, the button will invoke the FileOpenPicker, img element will display the selected image and the imageDetails div will display the image properties.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
  &lt;li&gt;Open home.js and add the following code jus under the “&lt;strong&gt;use strict&lt;/strong&gt;” statement:&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
  &lt;div id="codeSnippetWrapper" style="overflow:auto;cursor:text;font-size:8pt;border-top:silver 1px solid;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-right:silver 1px solid;border-bottom:silver 1px solid;padding-bottom:4px;direction:ltr;text-align:left;padding-top:4px;padding-left:4px;margin:20px 0px 10px;border-left:silver 1px solid;line-height:12pt;padding-right:4px;max-height:200px;width:97.5%;background-color:#f4f4f4;"&gt;
    &lt;div id="codeSnippet" style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;
      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&lt;span style="color:#0000ff;"&gt;function&lt;/span&gt; $(query) {&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;    &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; document.querySelector(query);&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;}&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&amp;#160;&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&lt;span style="color:#0000ff;"&gt;function&lt;/span&gt; toDateTime(date) {&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;    &lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; dateTime = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; Date(Date.parse(date));&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;    &lt;span style="color:#0000ff;"&gt;if&lt;/span&gt; (dateTime.getDate()) {&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;        &lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; month = dateTime.getMonth() + 1;&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;        &lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; day = dateTime.getDate();&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;        &lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; year = dateTime.getFullYear();&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;        &lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; hours = dateTime.getHours();&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;        &lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; minutes = dateTime.getMinutes();&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;        &lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; ampm = hours &amp;lt; 12 ? &lt;span style="color:#006080;"&gt;&amp;quot;am&amp;quot;&lt;/span&gt; : &lt;span style="color:#006080;"&gt;&amp;quot;pm&amp;quot;&lt;/span&gt;;&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;        &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; &lt;span style="color:#006080;"&gt;&amp;quot;{0}/{1}/{2} {3}:{4} {5}&amp;quot;&lt;/span&gt;.format(month, day, year, hours &amp;lt; 10 ? &lt;span style="color:#006080;"&gt;&amp;quot;0&amp;quot;&lt;/span&gt; + hours : hours, minutes &amp;lt; 10 ? &lt;span style="color:#006080;"&gt;&amp;quot;0&amp;quot;&lt;/span&gt; + minutes : minutes, ampm);&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;    }&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;    &lt;span style="color:#0000ff;"&gt;else&lt;/span&gt;&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;        &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; date;&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;}&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&amp;#160;&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;String.prototype.format = &lt;span style="color:#0000ff;"&gt;function&lt;/span&gt; () {&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;    &lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; str = &lt;span style="color:#0000ff;"&gt;this&lt;/span&gt;;&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;    &lt;span style="color:#0000ff;"&gt;for&lt;/span&gt; (&lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; i = 0; i &amp;lt; arguments.length; i++) {&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;        &lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; reg = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; RegExp(&lt;span style="color:#006080;"&gt;&amp;quot;\\{&amp;quot;&lt;/span&gt; + i + &lt;span style="color:#006080;"&gt;&amp;quot;\\}&amp;quot;&lt;/span&gt;, &lt;span style="color:#006080;"&gt;&amp;quot;gm&amp;quot;&lt;/span&gt;);&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;        str = str.replace(reg, arguments[i]);&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;    }&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&amp;#160;&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;    &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; str;&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;};&lt;/pre&gt;
&lt;/div&gt;
  &lt;/div&gt;

  &lt;p&gt;Those functions are helpers for our project.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
  &lt;li&gt;Under ready function add the following code:&lt;/li&gt;
&lt;/ul&gt;

&lt;div id="codeSnippetWrapper" style="overflow:auto;cursor:text;font-size:8pt;border-top:silver 1px solid;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-right:silver 1px solid;border-bottom:silver 1px solid;padding-bottom:4px;direction:ltr;text-align:left;padding-top:4px;padding-left:4px;margin:20px 0px 10px;border-left:silver 1px solid;line-height:12pt;padding-right:4px;max-height:200px;width:97.5%;background-color:#f4f4f4;"&gt;
  &lt;div id="codeSnippet" style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;
    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;$(&lt;span style="color:#006080;"&gt;&amp;quot;#btnBrowse&amp;quot;&lt;/span&gt;).addEventListener(&lt;span style="color:#006080;"&gt;&amp;quot;click&amp;quot;&lt;/span&gt;, &lt;span style="color:#0000ff;"&gt;this&lt;/span&gt;.openFilePicker.bind(&lt;span style="color:#0000ff;"&gt;this&lt;/span&gt;), &lt;span style="color:#0000ff;"&gt;false&lt;/span&gt;);&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;blockquote&gt;
  &lt;p&gt;We’re adding event listener for click event on “btnBrowse” button, now let implement the FileOpenPicker.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
  &lt;li&gt;Add the following code under the close statement of ready function:&lt;/li&gt;
&lt;/ul&gt;

&lt;div id="codeSnippetWrapper" style="overflow:auto;cursor:text;font-size:8pt;border-top:silver 1px solid;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-right:silver 1px solid;border-bottom:silver 1px solid;padding-bottom:4px;direction:ltr;text-align:left;padding-top:4px;padding-left:4px;margin:20px 0px 10px;border-left:silver 1px solid;line-height:12pt;padding-right:4px;max-height:200px;width:97.5%;background-color:#f4f4f4;"&gt;
  &lt;div id="codeSnippet" style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;
    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;selectedImage:&lt;span style="color:#0000ff;"&gt;null&lt;/span&gt;,&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;openFilePicker: &lt;span style="color:#0000ff;"&gt;function&lt;/span&gt; () {&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;    &lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; that = &lt;span style="color:#0000ff;"&gt;this&lt;/span&gt;;&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&amp;#160;&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;    &lt;span style="color:#008000;"&gt;// Create the picker object and set options&lt;/span&gt;&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;    &lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; fp = Windows.Storage.Pickers.FileOpenPicker();&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;    &lt;span style="color:#008000;"&gt;// Users expect to have a filtered view of their folders depending on the scenario.&lt;/span&gt;&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;    &lt;span style="color:#008000;"&gt;// For example, when choosing a documents folder, restrict the filetypes to documents for your application.&lt;/span&gt;&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;    fp.fileTypeFilter.replaceAll([&lt;span style="color:#006080;"&gt;&amp;quot;.png&amp;quot;&lt;/span&gt;, &lt;span style="color:#006080;"&gt;&amp;quot;.bmp&amp;quot;&lt;/span&gt;, &lt;span style="color:#006080;"&gt;&amp;quot;.jpg&amp;quot;&lt;/span&gt;, &lt;span style="color:#006080;"&gt;&amp;quot;.jpeg&amp;quot;&lt;/span&gt;]);&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;    fp.suggestedStartLocation = Windows.Storage.KnownFolders.picturesLibrary;&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;    fp.commitButtonText = &lt;span style="color:#006080;"&gt;&amp;quot;Select&amp;quot;&lt;/span&gt;;&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;    fp.viewMode = Windows.Storage.Pickers.PickerViewMode.thumbnail;&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;    &lt;span style="color:#008000;"&gt;// Open the picker for the user to pick a file&lt;/span&gt;&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;    fp.pickSingleFileAsync().done(&lt;span style="color:#0000ff;"&gt;function&lt;/span&gt; (file) {&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;        &lt;span style="color:#0000ff;"&gt;if&lt;/span&gt; (file != &lt;span style="color:#0000ff;"&gt;null&lt;/span&gt;) {&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;            that.selectedImage = file;&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;            $(&lt;span style="color:#006080;"&gt;&amp;quot;#previewImage&amp;quot;&lt;/span&gt;).src = URL.createObjectURL(file, { oneTimeOnly: &lt;span style="color:#0000ff;"&gt;true&lt;/span&gt; });&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;            file.properties.getImagePropertiesAsync().then(&lt;span style="color:#0000ff;"&gt;function&lt;/span&gt; (imgProp) {&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;                $(&lt;span style="color:#006080;"&gt;&amp;quot;#imageDetails&amp;quot;&lt;/span&gt;).innerHTML = &lt;span style="color:#006080;"&gt;&amp;quot;Width: {0}&amp;lt;br/&amp;gt;Height: {1}&amp;lt;br/&amp;gt;Date Taken: &amp;quot;&lt;/span&gt; +&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;                    &lt;span style="color:#006080;"&gt;&amp;quot;{2}&amp;lt;br/&amp;gt;Camera Model: {3}&amp;quot;&lt;/span&gt;.format(&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;                    imgProp.width, imgProp.height, toDateTime(imgProp.dateTaken), imgProp.cameraModel);&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&amp;#160;&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;                        &lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;                $(&lt;span style="color:#006080;"&gt;&amp;quot;#width&amp;quot;&lt;/span&gt;).value = imgProp.width;&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;                $(&lt;span style="color:#006080;"&gt;&amp;quot;#height&amp;quot;&lt;/span&gt;).value = imgProp.height;&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;                $(&lt;span style="color:#006080;"&gt;&amp;quot;#btnResize&amp;quot;&lt;/span&gt;).disabled = &lt;span style="color:#0000ff;"&gt;false&lt;/span&gt;;&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;            });&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;        }&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;        &lt;span style="color:#0000ff;"&gt;else&lt;/span&gt; {&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;            $(&lt;span style="color:#006080;"&gt;&amp;quot;#width&amp;quot;&lt;/span&gt;).textContent = 0;&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;            $(&lt;span style="color:#006080;"&gt;&amp;quot;#height&amp;quot;&lt;/span&gt;).textContent = 0;&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;            $(&lt;span style="color:#006080;"&gt;&amp;quot;#btnResize&amp;quot;&lt;/span&gt;).disabled = &lt;span style="color:#0000ff;"&gt;true&lt;/span&gt;;&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;        }&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;    });&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;},&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;blockquote&gt;
  &lt;p&gt;Once you click on the “Pick a Image” button the file picker dialog will appear allowing you to select a single image. As pickSingleFileAsync return a promise, after the FileOpenPicker dialog is closed we received the file you pick. 
    &lt;br /&gt;First we assign the file to selectedImage object, using URL.createObjectURL we transform the file into blob and assign to the image.src property and finally we call – &lt;strong&gt;getImagePropertiesAsync&lt;/strong&gt; function to retrieve image properties so we can display them on the html page. &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;When if you run the application you can pick and image using the “Pick a Image” button and the result should be like that:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/shair/image_1FF6E1EA.png"&gt;&lt;img title="image" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/shair/image_thumb_36698071.png" width="750" height="595" /&gt;&lt;/a&gt;&lt;/p&gt;





&lt;ul&gt;
  &lt;li&gt;Open home.html page and add the following code under the preview div element:&lt;/li&gt;
&lt;/ul&gt;

&lt;div id="codeSnippetWrapper" style="overflow:auto;cursor:text;font-size:8pt;border-top:silver 1px solid;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-right:silver 1px solid;border-bottom:silver 1px solid;padding-bottom:4px;direction:ltr;text-align:left;padding-top:4px;padding-left:4px;margin:20px 0px 10px;border-left:silver 1px solid;line-height:12pt;padding-right:4px;max-height:200px;width:97.5%;background-color:#f4f4f4;"&gt;
  &lt;div id="codeSnippet" style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;
    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;div&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;class&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;resizeOptions&amp;quot;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;    &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;div&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;Max Width:&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;        &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;input&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;type&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;number&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;id&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;width&amp;quot;&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;    &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;div&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;    &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;div&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;Max Height:&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;        &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;input&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;type&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;number&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;id&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;height&amp;quot;&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;    &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;div&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;    &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;div&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;        &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;button&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;id&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;btnResize&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;disabled&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;disabled&amp;quot;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;Resize Image&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;button&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;    &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;div&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;div&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;blockquote&gt;
  &lt;p&gt;We add two input elements allowing you to define the desire size of the image and a button element to invoke the resize function.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
  &lt;li&gt;Open home.js and add the following code under the $(&amp;quot;#btnBrowse&amp;quot;).addEventListener statement.&lt;/li&gt;
&lt;/ul&gt;

&lt;div id="codeSnippetWrapper" style="overflow:auto;cursor:text;font-size:8pt;border-top:silver 1px solid;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-right:silver 1px solid;border-bottom:silver 1px solid;padding-bottom:4px;direction:ltr;text-align:left;padding-top:4px;padding-left:4px;margin:20px 0px 10px;border-left:silver 1px solid;line-height:12pt;padding-right:4px;max-height:200px;width:97.5%;background-color:#f4f4f4;"&gt;
  &lt;div id="codeSnippet" style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;
    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;$(&lt;span style="color:#006080;"&gt;&amp;quot;#btnResize&amp;quot;&lt;/span&gt;).addEventListener(&lt;span style="color:#006080;"&gt;&amp;quot;click&amp;quot;&lt;/span&gt;, &lt;span style="color:#0000ff;"&gt;this&lt;/span&gt;.resizeImage.bind(&lt;span style="color:#0000ff;"&gt;this&lt;/span&gt;), &lt;span style="color:#0000ff;"&gt;false&lt;/span&gt;);&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;blockquote&gt;
  &lt;p&gt;We’re adding event listener for click event on “btnResize” button, now let implement the resizeImage function.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
  &lt;li&gt;We don’t want to change the original image in our case so the resizeImage will open the FileSavePicker allowing the user to choose where he want to save the resized image.&lt;/li&gt;
&lt;/ul&gt;

&lt;div id="codeSnippetWrapper" style="overflow:auto;cursor:text;font-size:8pt;border-top:silver 1px solid;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-right:silver 1px solid;border-bottom:silver 1px solid;padding-bottom:4px;direction:ltr;text-align:left;padding-top:4px;padding-left:4px;margin:20px 0px 10px;border-left:silver 1px solid;line-height:12pt;padding-right:4px;max-height:200px;width:97.5%;background-color:#f4f4f4;"&gt;
  &lt;div id="codeSnippet" style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;
    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;resizeImage: &lt;span style="color:#0000ff;"&gt;function&lt;/span&gt; () {&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;    &lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; that = &lt;span style="color:#0000ff;"&gt;this&lt;/span&gt;;&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;    &lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; width = $(&lt;span style="color:#006080;"&gt;&amp;quot;#width&amp;quot;&lt;/span&gt;).value != &lt;span style="color:#006080;"&gt;&amp;quot;&amp;quot;&lt;/span&gt; ? parseInt($(&lt;span style="color:#006080;"&gt;&amp;quot;#width&amp;quot;&lt;/span&gt;).value) : 0;&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;    &lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; height = $(&lt;span style="color:#006080;"&gt;&amp;quot;#height&amp;quot;&lt;/span&gt;).value != &lt;span style="color:#006080;"&gt;&amp;quot;&amp;quot;&lt;/span&gt; ? parseInt($(&lt;span style="color:#006080;"&gt;&amp;quot;#height&amp;quot;&lt;/span&gt;).value) : 0;&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&amp;#160;&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;    &lt;span style="color:#0000ff;"&gt;if&lt;/span&gt; (width === 0 || height === 0) {&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;        &lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; msg = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; Windows.UI.Popups.MessageDialog(&lt;span style="color:#006080;"&gt;&amp;quot;Please enter width and height values&amp;quot;&lt;/span&gt;);&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;        msg.showAsync().done(&lt;span style="color:#006080;"&gt;&amp;quot;&amp;quot;&lt;/span&gt;);&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;        &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt;;&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;    }&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&amp;#160;&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;    &lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; fs = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; Windows.Storage.Pickers.FileSavePicker();&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;    fs.suggestedStartLocation = Windows.Storage.KnownFolders.picturesLibrary;&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;    fs.defaultFileExtension = &lt;span style="color:#0000ff;"&gt;this&lt;/span&gt;.selectedImage.fileType;&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;    fs.fileTypeChoices.insert(&lt;span style="color:#0000ff;"&gt;this&lt;/span&gt;.selectedImage.fileType, [&lt;span style="color:#0000ff;"&gt;this&lt;/span&gt;.selectedImage.fileType]);&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;    fs.suggestedFileName = &lt;span style="color:#006080;"&gt;&amp;quot;Resize Demo-&amp;quot;&lt;/span&gt; + &lt;span style="color:#0000ff;"&gt;this&lt;/span&gt;.selectedImage.name;&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;    fs.pickSaveFileAsync().done(&lt;span style="color:#0000ff;"&gt;function&lt;/span&gt; (targetFile) {&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;        &lt;span style="color:#008000;"&gt;//copy selected image to new file&lt;/span&gt;&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;        that.selectedImage.copyAndReplaceAsync(targetFile).then(&lt;span style="color:#0000ff;"&gt;function&lt;/span&gt; () {&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;            &lt;span style="color:#008000;"&gt;//call resize function on the new file.&lt;/span&gt;&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;            that._resize(width, height, targetFile).done(&lt;span style="color:#0000ff;"&gt;function&lt;/span&gt; () {&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;                &lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; msg = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; Windows.UI.Popups.MessageDialog(&lt;span style="color:#006080;"&gt;&amp;quot;File Resize Completed!&amp;quot;&lt;/span&gt;);&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;                msg.showAsync().done(&lt;span style="color:#006080;"&gt;&amp;quot;&amp;quot;&lt;/span&gt;);&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;            });&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&amp;#160;&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;        });&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;    });&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;},&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;blockquote&gt;
  &lt;p&gt;The above code check is the input elements for width and height are not empty and then open the FileSavePicker, once the user choose a target file we’ll use the copyAndReplaceAsync function to copy the selected image to the target file the user has selected, finally we call the _resize function passing the width, height and the copied image object.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
  &lt;li&gt;Now to the final part, let’s implement the resize function, add the following code after resizeImage close statement:&lt;/li&gt;
&lt;/ul&gt;

&lt;div id="codeSnippetWrapper" style="overflow:auto;cursor:text;font-size:8pt;border-top:silver 1px solid;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-right:silver 1px solid;border-bottom:silver 1px solid;padding-bottom:4px;direction:ltr;text-align:left;padding-top:4px;padding-left:4px;margin:20px 0px 10px;border-left:silver 1px solid;line-height:12pt;padding-right:4px;max-height:200px;width:97.5%;background-color:#f4f4f4;"&gt;
  &lt;div id="codeSnippet" style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;
    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;_resize: &lt;span style="color:#0000ff;"&gt;function&lt;/span&gt; (maxWidth, maxHeight, imgFile) {&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;    &lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; originalWidth;&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;    &lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; originalHeight;&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;    &lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; encoder;&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;    &lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; fileStream;&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;    &lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; count = 0;&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;    &lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; that = &lt;span style="color:#0000ff;"&gt;this&lt;/span&gt;;&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;    &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; WinJS.Promise(&lt;span style="color:#0000ff;"&gt;function&lt;/span&gt; (complete) {&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;        &lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; memStream = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; Windows.Storage.Streams.InMemoryRandomAccessStream();&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;        imgFile.openAsync(Windows.Storage.FileAccessMode.readWrite).then(&lt;span style="color:#0000ff;"&gt;function&lt;/span&gt; (stream) {&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;            fileStream = stream;&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;            &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; Windows.Graphics.Imaging.BitmapDecoder.createAsync(fileStream);&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;        }).then(&lt;span style="color:#0000ff;"&gt;function&lt;/span&gt; (decoder) {&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;            that._scale(decoder, memStream, maxWidth, maxHeight).then(&lt;span style="color:#0000ff;"&gt;function&lt;/span&gt; () {&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;                &lt;span style="color:#008000;"&gt;// Overwrite the contents of the file with the updated image stream.&lt;/span&gt;&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;                memStream.seek(0);&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;                fileStream.seek(0);&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;                fileStream.size = 0;&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;                &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; Windows.Storage.Streams.RandomAccessStream.copyAsync(memStream, fileStream);&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;            })&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;            .done(&lt;span style="color:#0000ff;"&gt;function&lt;/span&gt; () {&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;                &lt;span style="color:#008000;"&gt;// Finally, close each stream to release any locks.&lt;/span&gt;&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;                memStream &amp;amp;&amp;amp; memStream.close();&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;                fileStream &amp;amp;&amp;amp; fileStream.close();&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;            });&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;        }&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;        );&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;    });&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;}&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;blockquote&gt;
  &lt;p&gt;the _resize function calling the openAsync function on the target file to obtaint he file stream then creating stream decoder using Windows.Graphics.Imaging.BitmapDecoder. Once we have the image decoder we can scale the image (I’ll talk about that in the next code example), after the scale function has completed we copy the memoryStream (where we did the scale changes) into the fileStream (target file) after the copy is complete we close both streams. it’s important to close the streams otherwise those streams are locked for other processes. (unless you open the stream only for read).&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
  &lt;li&gt;The last part and the most important one is _scale function, this function will change the image size based on use max-height and max-width while keeping the image proportion. &lt;/li&gt;
&lt;/ul&gt;

&lt;div id="codeSnippetWrapper" style="overflow:auto;cursor:text;font-size:8pt;border-top:silver 1px solid;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-right:silver 1px solid;border-bottom:silver 1px solid;padding-bottom:4px;direction:ltr;text-align:left;padding-top:4px;padding-left:4px;margin:20px 0px 10px;border-left:silver 1px solid;line-height:12pt;padding-right:4px;max-height:200px;width:97.5%;background-color:#f4f4f4;"&gt;
  &lt;div id="codeSnippet" style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;
    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;_scale: &lt;span style="color:#0000ff;"&gt;function&lt;/span&gt; (decoder, memStream, maxWidth, maxHeight) {&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;    &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; WinJS.Promise(&lt;span style="color:#0000ff;"&gt;function&lt;/span&gt; (complete, error) {&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;        &lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; originalHeight = decoder.pixelHeight;&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;        &lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; originalWidth = decoder.pixelWidth;&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;        &lt;span style="color:#0000ff;"&gt;if&lt;/span&gt; (originalHeight &amp;lt;= maxHeight || originalWidth &amp;lt;= maxWidth)&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;            complete();&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;        &lt;span style="color:#0000ff;"&gt;else&lt;/span&gt; {&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;            Windows.Graphics.Imaging.BitmapEncoder.createForTranscodingAsync(memStream, decoder).then(&lt;span style="color:#0000ff;"&gt;function&lt;/span&gt; (_encoder) {&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;                &lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; encoder = _encoder;&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&amp;#160;&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;                &lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; nPercent = 0;&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;                &lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; nPercentW = 0;&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;                &lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; nPercentH = 0;&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&amp;#160;&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;                nPercentW = (maxWidth / originalWidth);&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;                nPercentH = (maxHeight / originalHeight);&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&amp;#160;&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;                &lt;span style="color:#0000ff;"&gt;if&lt;/span&gt; (nPercentH &amp;lt; nPercentW)&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;                    nPercent = nPercentH;&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;                &lt;span style="color:#0000ff;"&gt;else&lt;/span&gt;&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;                    nPercent = nPercentW;&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&amp;#160;&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;                &lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; destWidth = (originalWidth * nPercent);&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;                &lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; destHeight = (originalHeight * nPercent);&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&amp;#160;&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;                encoder.bitmapTransform.scaledWidth = destWidth;&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;                encoder.bitmapTransform.scaledHeight = destHeight;&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&amp;#160;&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;                &lt;span style="color:#008000;"&gt;// Attempt to generate a new thumbnail to reflect any rotation operation.&lt;/span&gt;&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;                encoder.isThumbnailGenerated = &lt;span style="color:#0000ff;"&gt;true&lt;/span&gt;;&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&amp;#160;&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;                encoder.flushAsync().done(&lt;span style="color:#0000ff;"&gt;function&lt;/span&gt; () {&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;                    complete();&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;                });&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;            })&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;        }&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;    })&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;},&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;blockquote&gt;
  &lt;p&gt;First we need to check the max-height or max-width are not smaller or equal to the original size.Before changing the image size we’ll use “&lt;strong&gt;createForTranscodingAsync&lt;/strong&gt;” function - creates a new BitmapEncoder and initializes it using data from an existing BitmapDecoder. We do some math to calculate the new image size and to set the new size we need to call the encoder and change the scaleWidth and scaleHeight properties located under bitmapTransform object.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/shair/image_5969CC14.png"&gt;&lt;img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/shair/image_thumb_41EF17E3.png" width="732" height="450" /&gt;&lt;/a&gt;&lt;/p&gt;







&lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/shair/image_2D1D1F63.png"&gt;&lt;img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/shair/image_thumb_5959A647.png" width="315" height="428" /&gt;&lt;/a&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/shair/image_7B62020D.png"&gt;&lt;img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/shair/image_thumb_07837C35.png" width="315" height="431" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Full Code:&lt;/strong&gt;

  &lt;br /&gt;

  &lt;div id="codeSnippetWrapper" style="overflow:auto;cursor:text;font-size:8pt;border-top:silver 1px solid;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-right:silver 1px solid;border-bottom:silver 1px solid;padding-bottom:4px;direction:ltr;text-align:left;padding-top:4px;padding-left:4px;margin:20px 0px 10px;border-left:silver 1px solid;line-height:12pt;padding-right:4px;max-height:200px;width:97.5%;background-color:#f4f4f4;"&gt;
    &lt;div id="codeSnippet" style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;
      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;(&lt;span style="color:#0000ff;"&gt;function&lt;/span&gt; () {&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;    &lt;span style="color:#006080;"&gt;&amp;quot;use strict&amp;quot;&lt;/span&gt;;&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&amp;#160;&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;    &lt;span style="color:#0000ff;"&gt;function&lt;/span&gt; $(query) {&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;        &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; document.querySelector(query);&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;    }&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&amp;#160;&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;    &lt;span style="color:#0000ff;"&gt;function&lt;/span&gt; toDateTime(date) {&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;        &lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; dateTime = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; Date(Date.parse(date));&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;        &lt;span style="color:#0000ff;"&gt;if&lt;/span&gt; (dateTime.getDate()) {&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;            &lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; month = dateTime.getMonth() + 1;&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;            &lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; day = dateTime.getDate();&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;            &lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; year = dateTime.getFullYear();&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;            &lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; hours = dateTime.getHours();&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;            &lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; minutes = dateTime.getMinutes();&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;            &lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; ampm = hours &amp;lt; 12 ? &lt;span style="color:#006080;"&gt;&amp;quot;am&amp;quot;&lt;/span&gt; : &lt;span style="color:#006080;"&gt;&amp;quot;pm&amp;quot;&lt;/span&gt;;&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;            &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; &lt;span style="color:#006080;"&gt;&amp;quot;{0}/{1}/{2} {3}:{4} {5}&amp;quot;&lt;/span&gt;.format(month, day, year, hours &amp;lt; 10 ? &lt;span style="color:#006080;"&gt;&amp;quot;0&amp;quot;&lt;/span&gt; + hours :&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;                hours, minutes &amp;lt; 10 ? &lt;span style="color:#006080;"&gt;&amp;quot;0&amp;quot;&lt;/span&gt; + minutes : minutes, ampm);&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;        }&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;        &lt;span style="color:#0000ff;"&gt;else&lt;/span&gt;&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;            &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; date;&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;    }&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&amp;#160;&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;    String.prototype.format = &lt;span style="color:#0000ff;"&gt;function&lt;/span&gt; () {&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;        &lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; str = &lt;span style="color:#0000ff;"&gt;this&lt;/span&gt;;&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;        &lt;span style="color:#0000ff;"&gt;for&lt;/span&gt; (&lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; i = 0; i &amp;lt; arguments.length; i++) {&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;            &lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; reg = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; RegExp(&lt;span style="color:#006080;"&gt;&amp;quot;\\{&amp;quot;&lt;/span&gt; + i + &lt;span style="color:#006080;"&gt;&amp;quot;\\}&amp;quot;&lt;/span&gt;, &lt;span style="color:#006080;"&gt;&amp;quot;gm&amp;quot;&lt;/span&gt;);&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;            str = str.replace(reg, arguments[i]);&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;        }&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&amp;#160;&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;        &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; str;&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;    };&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&amp;#160;&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;    &lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; ERR_OPERATION_UNSUPPORTED = -2003292287;  &lt;span style="color:#008000;"&gt;// The operation is unsupported&lt;/span&gt;&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&amp;#160;&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;    WinJS.UI.Pages.define(&lt;span style="color:#006080;"&gt;&amp;quot;/pages/home/home.html&amp;quot;&lt;/span&gt;, {&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;        &lt;span style="color:#008000;"&gt;// This function is called whenever a user navigates to this page. It&lt;/span&gt;&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;        &lt;span style="color:#008000;"&gt;// populates the page elements with the app&amp;#39;s data.&lt;/span&gt;&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;        ready: &lt;span style="color:#0000ff;"&gt;function&lt;/span&gt; (element, options) {&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;            $(&lt;span style="color:#006080;"&gt;&amp;quot;#btnBrowse&amp;quot;&lt;/span&gt;).addEventListener(&lt;span style="color:#006080;"&gt;&amp;quot;click&amp;quot;&lt;/span&gt;, &lt;span style="color:#0000ff;"&gt;this&lt;/span&gt;.openFilePicker.bind(&lt;span style="color:#0000ff;"&gt;this&lt;/span&gt;), &lt;span style="color:#0000ff;"&gt;false&lt;/span&gt;);&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;            $(&lt;span style="color:#006080;"&gt;&amp;quot;#btnResize&amp;quot;&lt;/span&gt;).addEventListener(&lt;span style="color:#006080;"&gt;&amp;quot;click&amp;quot;&lt;/span&gt;, &lt;span style="color:#0000ff;"&gt;this&lt;/span&gt;.resizeImage.bind(&lt;span style="color:#0000ff;"&gt;this&lt;/span&gt;), &lt;span style="color:#0000ff;"&gt;false&lt;/span&gt;);&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;        },&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;        selectedImage: &lt;span style="color:#0000ff;"&gt;null&lt;/span&gt;,&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;        openFilePicker: &lt;span style="color:#0000ff;"&gt;function&lt;/span&gt; () {&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;            &lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; that = &lt;span style="color:#0000ff;"&gt;this&lt;/span&gt;;&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&amp;#160;&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;            &lt;span style="color:#008000;"&gt;// Create the picker object and set options&lt;/span&gt;&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;            &lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; fp = Windows.Storage.Pickers.FileOpenPicker();&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;            &lt;span style="color:#008000;"&gt;// Users expect to have a filtered view of their folders depending on the scenario.&lt;/span&gt;&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;            &lt;span style="color:#008000;"&gt;// For example, when choosing a documents folder, restrict the filetypes to documents for your application.&lt;/span&gt;&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;            fp.fileTypeFilter.replaceAll([&lt;span style="color:#006080;"&gt;&amp;quot;.png&amp;quot;&lt;/span&gt;, &lt;span style="color:#006080;"&gt;&amp;quot;.bmp&amp;quot;&lt;/span&gt;, &lt;span style="color:#006080;"&gt;&amp;quot;.jpg&amp;quot;&lt;/span&gt;, &lt;span style="color:#006080;"&gt;&amp;quot;.jpeg&amp;quot;&lt;/span&gt;]);&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;            fp.suggestedStartLocation = Windows.Storage.KnownFolders.picturesLibrary;&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;            fp.commitButtonText = &lt;span style="color:#006080;"&gt;&amp;quot;Select&amp;quot;&lt;/span&gt;;&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;            fp.viewMode = Windows.Storage.Pickers.PickerViewMode.thumbnail;&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;            &lt;span style="color:#008000;"&gt;// Open the picker for the user to pick a file&lt;/span&gt;&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;            fp.pickSingleFileAsync().done(&lt;span style="color:#0000ff;"&gt;function&lt;/span&gt; (file) {&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;                &lt;span style="color:#0000ff;"&gt;if&lt;/span&gt; (file != &lt;span style="color:#0000ff;"&gt;null&lt;/span&gt;) {&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;                    that.selectedImage = file;&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;                    $(&lt;span style="color:#006080;"&gt;&amp;quot;#previewImage&amp;quot;&lt;/span&gt;).src = URL.createObjectURL(file, { oneTimeOnly: &lt;span style="color:#0000ff;"&gt;true&lt;/span&gt; });&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;                    file.properties.getImagePropertiesAsync().then(&lt;span style="color:#0000ff;"&gt;function&lt;/span&gt; (imgProp) {&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;                        $(&lt;span style="color:#006080;"&gt;&amp;quot;#imageDetails&amp;quot;&lt;/span&gt;).innerHTML = &lt;span style="color:#006080;"&gt;&amp;quot;Width: {0}&amp;lt;br/&amp;gt;Height: {1}&amp;lt;br/&amp;gt;Date Taken: {2}&amp;lt;br/&amp;gt;Camera Model: {3}&amp;quot;&lt;/span&gt;.format(&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;                            imgProp.width, imgProp.height, toDateTime(imgProp.dateTaken), imgProp.cameraModel);&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&amp;#160;&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&amp;#160;&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;                        $(&lt;span style="color:#006080;"&gt;&amp;quot;#width&amp;quot;&lt;/span&gt;).value = imgProp.width;&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;                        $(&lt;span style="color:#006080;"&gt;&amp;quot;#height&amp;quot;&lt;/span&gt;).value = imgProp.height;&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;                        $(&lt;span style="color:#006080;"&gt;&amp;quot;#btnResize&amp;quot;&lt;/span&gt;).disabled = &lt;span style="color:#0000ff;"&gt;false&lt;/span&gt;;&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;                    });&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;                }&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;                &lt;span style="color:#0000ff;"&gt;else&lt;/span&gt; {&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;                    $(&lt;span style="color:#006080;"&gt;&amp;quot;#width&amp;quot;&lt;/span&gt;).value = 0;&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;                    $(&lt;span style="color:#006080;"&gt;&amp;quot;#height&amp;quot;&lt;/span&gt;).value = 0;&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;                    $(&lt;span style="color:#006080;"&gt;&amp;quot;#btnResize&amp;quot;&lt;/span&gt;).disabled = &lt;span style="color:#0000ff;"&gt;true&lt;/span&gt;;&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;                }&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;            });&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;        },&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;        resizeImage: &lt;span style="color:#0000ff;"&gt;function&lt;/span&gt; () {&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;            &lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; that = &lt;span style="color:#0000ff;"&gt;this&lt;/span&gt;;&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;            &lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; width = $(&lt;span style="color:#006080;"&gt;&amp;quot;#width&amp;quot;&lt;/span&gt;).value != &lt;span style="color:#006080;"&gt;&amp;quot;&amp;quot;&lt;/span&gt; ? parseInt($(&lt;span style="color:#006080;"&gt;&amp;quot;#width&amp;quot;&lt;/span&gt;).value) : 0;&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;            &lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; height = $(&lt;span style="color:#006080;"&gt;&amp;quot;#height&amp;quot;&lt;/span&gt;).value != &lt;span style="color:#006080;"&gt;&amp;quot;&amp;quot;&lt;/span&gt; ? parseInt($(&lt;span style="color:#006080;"&gt;&amp;quot;#height&amp;quot;&lt;/span&gt;).value) : 0;&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&amp;#160;&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;            &lt;span style="color:#0000ff;"&gt;if&lt;/span&gt; (width === 0 || height === 0) {&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;                &lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; msg = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; Windows.UI.Popups.MessageDialog(&lt;span style="color:#006080;"&gt;&amp;quot;Please enter width and height values&amp;quot;&lt;/span&gt;);&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;                msg.showAsync().done(&lt;span style="color:#006080;"&gt;&amp;quot;&amp;quot;&lt;/span&gt;);&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;                &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt;;&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;            }&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&amp;#160;&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;            &lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; fs = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; Windows.Storage.Pickers.FileSavePicker();&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;            fs.suggestedStartLocation = Windows.Storage.KnownFolders.picturesLibrary;&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;            fs.defaultFileExtension = &lt;span style="color:#0000ff;"&gt;this&lt;/span&gt;.selectedImage.fileType;&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;            fs.fileTypeChoices.insert(&lt;span style="color:#0000ff;"&gt;this&lt;/span&gt;.selectedImage.fileType, [&lt;span style="color:#0000ff;"&gt;this&lt;/span&gt;.selectedImage.fileType]);&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;            fs.suggestedFileName = &lt;span style="color:#006080;"&gt;&amp;quot;Resize Demo-&amp;quot;&lt;/span&gt; + &lt;span style="color:#0000ff;"&gt;this&lt;/span&gt;.selectedImage.name;&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;            fs.pickSaveFileAsync().done(&lt;span style="color:#0000ff;"&gt;function&lt;/span&gt; (targetFile) {&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;                &lt;span style="color:#008000;"&gt;//copy selected image to new file&lt;/span&gt;&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;                that.selectedImage.copyAndReplaceAsync(targetFile).then(&lt;span style="color:#0000ff;"&gt;function&lt;/span&gt; () {&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;                    &lt;span style="color:#008000;"&gt;//call resize function on the new file.&lt;/span&gt;&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;                    that._resize(width, height, targetFile).done(&lt;span style="color:#0000ff;"&gt;function&lt;/span&gt; () {&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;                        &lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; msg = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; Windows.UI.Popups.MessageDialog(&lt;span style="color:#006080;"&gt;&amp;quot;File Resize Completed!&amp;quot;&lt;/span&gt;);&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;                        msg.showAsync().done(&lt;span style="color:#006080;"&gt;&amp;quot;&amp;quot;&lt;/span&gt;);&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;                    });&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&amp;#160;&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;                });&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;            });&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;        },&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&amp;#160;&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;        _scale: &lt;span style="color:#0000ff;"&gt;function&lt;/span&gt; (decoder, memStream, maxWidth, maxHeight) {&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;            &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; WinJS.Promise(&lt;span style="color:#0000ff;"&gt;function&lt;/span&gt; (complete, error) {&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;                &lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; originalHeight = decoder.pixelHeight;&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;                &lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; originalWidth = decoder.pixelWidth;&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;                &lt;span style="color:#0000ff;"&gt;if&lt;/span&gt; (originalHeight &amp;lt;= maxHeight || originalWidth &amp;lt;= maxWidth)&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;                    complete();&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;                &lt;span style="color:#0000ff;"&gt;else&lt;/span&gt; {&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;                    Windows.Graphics.Imaging.BitmapEncoder.createForTranscodingAsync(memStream, decoder).then(&lt;span style="color:#0000ff;"&gt;function&lt;/span&gt; (_encoder) {&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;                        &lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; encoder = _encoder;&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&amp;#160;&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;                        &lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; nPercent = 0;&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;                        &lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; nPercentW = 0;&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;                        &lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; nPercentH = 0;&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&amp;#160;&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;                        nPercentW = (maxWidth / originalWidth);&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;                        nPercentH = (maxHeight / originalHeight);&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&amp;#160;&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;                        &lt;span style="color:#0000ff;"&gt;if&lt;/span&gt; (nPercentH &amp;lt; nPercentW)&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;                            nPercent = nPercentH;&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;                        &lt;span style="color:#0000ff;"&gt;else&lt;/span&gt;&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;                            nPercent = nPercentW;&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&amp;#160;&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;                        &lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; destWidth = (originalWidth * nPercent);&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;                        &lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; destHeight = (originalHeight * nPercent);&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&amp;#160;&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;                        encoder.bitmapTransform.scaledWidth = destWidth;&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;                        encoder.bitmapTransform.scaledHeight = destHeight;&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&amp;#160;&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;                        &lt;span style="color:#008000;"&gt;// Attempt to generate a new thumbnail to reflect any rotation operation.&lt;/span&gt;&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;                        encoder.isThumbnailGenerated = &lt;span style="color:#0000ff;"&gt;true&lt;/span&gt;;&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&amp;#160;&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;                        encoder.flushAsync().done(&lt;span style="color:#0000ff;"&gt;function&lt;/span&gt; () {&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;                            complete();&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;                        });&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;                    })&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;                }&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;            })&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;        },&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;        _resize: &lt;span style="color:#0000ff;"&gt;function&lt;/span&gt; (maxWidth, maxHeight, imgFile) {&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;            &lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; originalWidth;&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;            &lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; originalHeight;&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;            &lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; encoder;&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;            &lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; fileStream;&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;            &lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; count = 0;&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;            &lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; that = &lt;span style="color:#0000ff;"&gt;this&lt;/span&gt;;&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;            &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; WinJS.Promise(&lt;span style="color:#0000ff;"&gt;function&lt;/span&gt; (complete) {&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;                &lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; memStream = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; Windows.Storage.Streams.InMemoryRandomAccessStream();&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;                imgFile.openAsync(Windows.Storage.FileAccessMode.readWrite).then(&lt;span style="color:#0000ff;"&gt;function&lt;/span&gt; (stream) {&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;                    fileStream = stream;&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;                    &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; Windows.Graphics.Imaging.BitmapDecoder.createAsync(fileStream);&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;                }).then(&lt;span style="color:#0000ff;"&gt;function&lt;/span&gt; (decoder) {&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;                    that._scale(decoder, memStream, maxWidth, maxHeight).then(&lt;span style="color:#0000ff;"&gt;function&lt;/span&gt; () {&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;                        &lt;span style="color:#008000;"&gt;// Overwrite the contents of the file with the updated image stream.&lt;/span&gt;&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;                        memStream.seek(0);&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;                        fileStream.seek(0);&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;                        fileStream.size = 0;&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;                        &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; Windows.Storage.Streams.RandomAccessStream.copyAsync(memStream, fileStream);&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;                    })&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;                    .done(&lt;span style="color:#0000ff;"&gt;function&lt;/span&gt; () {&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;                        &lt;span style="color:#008000;"&gt;// Finally, close each stream to release any locks.&lt;/span&gt;&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;                        memStream &amp;amp;&amp;amp; memStream.close();&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;                        fileStream &amp;amp;&amp;amp; fileStream.close();&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;                    });&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;                }&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;                );&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;            });&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;        }&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;    });&lt;/pre&gt;


      &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;})();&lt;/pre&gt;
&lt;/div&gt;
  &lt;/div&gt;
&lt;/p&gt;





&lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/files/folders/shair/entry1397052.aspx" target="_blank"&gt;Download Demo Project&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=1397058" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/Development/default.aspx">Development</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/TECH/default.aspx">TECH</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/How+To/default.aspx">How To</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/HTML+5/default.aspx">HTML 5</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/Metro+Style/default.aspx">Metro Style</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/Windows+8/default.aspx">Windows 8</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/JavaScript/default.aspx">JavaScript</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/Metro/default.aspx">Metro</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/Visual+Studio+2012/default.aspx">Visual Studio 2012</category></item><item><title>Windows 8 Metro – Code Behind</title><link>http://blogs.microsoft.co.il/blogs/shair/archive/2012/10/09/windows-8-metro-code-behind.aspx</link><pubDate>Tue, 09 Oct 2012 23:28:16 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:1341712</guid><dc:creator>shair</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/shair/rsscomments.aspx?PostID=1341712</wfw:commentRss><comments>http://blogs.microsoft.co.il/blogs/shair/archive/2012/10/09/windows-8-metro-code-behind.aspx#comments</comments><description>&lt;p&gt;When I develop Windows 8 Metro App I usually use &lt;a href="http://code.msdn.microsoft.com/windowsapps/Windows-8-Modern-Style-App-Samples" target="_blank"&gt;Windows Store app samples&lt;/a&gt; to see code examples features but sometimes you want more…&lt;/p&gt;  &lt;p&gt;For example I really want to know how “Mail” metro app works: How getting access to other email account, sending email and more.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/shair/image_2083C3F4.png"&gt;&lt;img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;margin:0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/shair/image_thumb_4FF232C0.png" width="244" height="121" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;So in order to to that I had to gain access to “Mail” metro app…&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Let’s start the Hack:&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Problem: &lt;/strong&gt;WindowsApps folder is blocked and by default you can’t open this folder.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Solution&lt;/strong&gt;: First open Windows Explorer and navigate into “C:\Program Files\”, locate “WindowsApps” folder. (If you can’t see this folder make sure your you can see Hidden Files and Folders - &lt;a href="http://www.wikihow.com/Find-Hidden-Files-and-Folders-in-Windows"&gt;How to Find Hidden Files and Folders in Windows&lt;/a&gt;).&lt;/p&gt;  &lt;p&gt;Right click on “WindowsApps” and select “Properties”&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/shair/image_1CB5F957.png"&gt;&lt;img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/shair/image_thumb_5A62E113.png" width="529" height="527" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Move to “&lt;strong&gt;Security&lt;/strong&gt;” tab and click on the “&lt;strong&gt;Advanced&lt;/strong&gt;” button.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/shair/image_28A7C3BE.png"&gt;&lt;img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/shair/image_thumb_2E163462.png" width="393" height="509" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Click on the “&lt;strong&gt;Change&lt;/strong&gt;” button.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/shair/image_246DC62C.png"&gt;&lt;img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/shair/image_thumb_498B1098.png" width="639" height="430" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Add your user and click “OK”.&lt;/p&gt;    &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/shair/image_0D7ECEE3.png"&gt;&lt;img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/shair/image_thumb_7E67F008.png" width="504" height="279" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Now when we try to open “&lt;strong&gt;WindowsApps&lt;/strong&gt;” folder we can get inside and browse the folder inside it.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/shair/image_1C65FDFD.png"&gt;&lt;img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/shair/image_thumb_3AD03EE6.png" width="510" height="759" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;To get “Mail” metro app code let’s get inside “microsoft.windowscommunicationsapps” folder and open “ModernMail” folder, there you can find the entire Code.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/shair/image_3AC01919.png"&gt;&lt;img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/shair/image_thumb_2E51F5F0.png" width="775" height="296" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Enjoy&lt;/p&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=1341712" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/.NET/default.aspx">.NET</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/Development/default.aspx">Development</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/TECH/default.aspx">TECH</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/Metro+Style/default.aspx">Metro Style</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/Windows+8/default.aspx">Windows 8</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/.NET+4.5/default.aspx">.NET 4.5</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/JavaScript/default.aspx">JavaScript</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/Metro/default.aspx">Metro</category></item><item><title>Using Live SDK in Windows 8 – JavaScript</title><link>http://blogs.microsoft.co.il/blogs/shair/archive/2012/09/30/using-live-sdk-in-windows-8-javascript.aspx</link><pubDate>Sun, 30 Sep 2012 12:34:07 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:1319507</guid><dc:creator>shair</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/shair/rsscomments.aspx?PostID=1319507</wfw:commentRss><comments>http://blogs.microsoft.co.il/blogs/shair/archive/2012/09/30/using-live-sdk-in-windows-8-javascript.aspx#comments</comments><description>&lt;p&gt;In my previous post I talked about &lt;a href="http://blogs.microsoft.co.il/blogs/shair/archive/2012/09/27/using-live-sdk-in-windows-8-c.aspx" target="_blank"&gt;Using Live SDK in Windows 8 – C#&lt;/a&gt;, now it’s time to see how you can do the same things using JS.&lt;/p&gt;  &lt;p&gt;Live SDK provides a set of controls and APIs that enable applications to integrate single sign-on (SSO) with Microsoft accounts and access information from SkyDrive, Hotmail, and Windows Live Messenger on Windows Phone and Windows 8.&lt;/p&gt;  &lt;p&gt;Live SDK support several platforms such as: iOS, Android and of course Windows Phone and Windows 8 applications using C# and JS.&lt;/p&gt;  &lt;p&gt;In this demo I’ll show how to use Live SDK with Windows 8, so in order to follow this article you need to have the following installed:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Windows 8 – &lt;a href="http://msdn.microsoft.com/en-us/windows/apps/br229516.aspx"&gt;Download&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;Live SDK -&lt;a href="http://msdn.microsoft.com/en-US/live/ff621310"&gt;Live SDK downloads&lt;/a&gt;&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Also you can assist &lt;a href="http://isdk.dev.live.com/"&gt;Interactive Live SDK&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/files/folders/shair/entry1319503.aspx"&gt;Download Demo Project&lt;/a&gt;&lt;/p&gt;  &lt;h3&gt;Step 1: Building Our App&lt;/h3&gt;  &lt;p&gt;I’ve create a JS Blank App called – “LiveSdkDemo_JS”, and add a reference to “Live SDK” we just installed.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/shair/image_0B7208D7.png"&gt;&lt;img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/shair/image_thumb_0A2D6FF8.png" width="725" height="319" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;h3&gt;Step 2: Adding a “Sign In” Button&lt;/h3&gt;  &lt;p&gt;Before we can do anything with Live SDK we first need to “Sign In” using our Window Live ID. To do that we need to add the “SignInButton”.&lt;/p&gt;  &lt;p&gt;I’ve created a html element called – “signin”, in JS we need to populate the element from code.&lt;/p&gt;  &lt;div id="codeSnippetWrapper" style="overflow:auto;cursor:text;font-size:8pt;border-top:silver 1px solid;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-right:silver 1px solid;border-bottom:silver 1px solid;padding-bottom:4px;direction:ltr;text-align:left;padding-top:4px;padding-left:4px;margin:20px 0px 10px;border-left:silver 1px solid;line-height:12pt;padding-right:4px;max-height:200px;width:97.5%;background-color:#f4f4f4;"&gt;   &lt;pre id="codeSnippet" style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&amp;lt;p id=&lt;span style="color:#006080;"&gt;&amp;quot;signin&amp;quot;&lt;/span&gt;&amp;gt;&amp;lt;/p&amp;gt;&lt;/pre&gt;

  &lt;br /&gt;&lt;/div&gt;

&lt;p&gt;Now just before we can populate the “signin” element with Live SDK button we need to call WL.init with the Scopes for this session, this function initializes the JavaScript library. An application must call this function before making other function calls to the library except for subscribing/unsubscribing to events.&lt;/p&gt;

&lt;div id="codeSnippetWrapper" style="overflow:auto;cursor:text;font-size:8pt;border-top:silver 1px solid;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-right:silver 1px solid;border-bottom:silver 1px solid;padding-bottom:4px;direction:ltr;text-align:left;padding-top:4px;padding-left:4px;margin:20px 0px 10px;border-left:silver 1px solid;line-height:12pt;padding-right:4px;max-height:200px;width:97.5%;background-color:#f4f4f4;"&gt;
  &lt;pre id="codeSnippet" style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;WL.Event.subscribe(&lt;span style="color:#006080;"&gt;&amp;quot;auth.login&amp;quot;&lt;/span&gt;, onLoginComplete);&lt;br /&gt;WL.Event.subscribe(&lt;span style="color:#006080;"&gt;&amp;quot;auth.sessionChange&amp;quot;&lt;/span&gt;, onSessionChange);&lt;br /&gt;WL.init({ scope: [&lt;span style="color:#006080;"&gt;&amp;quot;wl.signin&amp;quot;&lt;/span&gt;, &lt;span style="color:#006080;"&gt;&amp;quot;wl.basic&amp;quot;&lt;/span&gt;, &lt;span style="color:#006080;"&gt;&amp;quot;wl.skydrive_update&amp;quot;&lt;/span&gt;] });&lt;br /&gt;WL.ui({&lt;br /&gt;    name: &lt;span style="color:#006080;"&gt;&amp;quot;signin&amp;quot;&lt;/span&gt;,&lt;br /&gt;    element: &lt;span style="color:#006080;"&gt;&amp;quot;signin&amp;quot;&lt;/span&gt;&lt;br /&gt;});&lt;/pre&gt;

  &lt;br /&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Scopes:&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Before your app makes requests of the Live Connect APIs to work with Live Connect info, in most cases you must get permission from the user to access that info or to create new objects on behalf of the user. In the Live Connect APIs, this permission is called a &lt;em&gt;&lt;strong&gt;scope&lt;/strong&gt;&lt;/em&gt;. Each scope grants a different permission level.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/live/hh243646.aspx#types"&gt;Live SDK Scope Types&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In this demo I’m using three Scopes:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;&lt;strong&gt;wl.signin&lt;/strong&gt; -&amp;#160; Single sign-in behavior. With &lt;em&gt;single sign-in&lt;/em&gt;, users who are already signed in to Live Connect are also signed in to your website. &lt;/li&gt;

  &lt;li&gt;&lt;strong&gt;wl.basic&lt;/strong&gt; - Read access to a user&amp;#39;s basic profile info. Also enables read access to a user&amp;#39;s list of contacts. &lt;/li&gt;

  &lt;li&gt;&lt;strong&gt;wl.skydrive_update&lt;/strong&gt; - Read and write access to a user&amp;#39;s files stored in SkyDrive.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;“&lt;strong&gt;onSessionChanged&lt;/strong&gt;” event this will let us know when we made a successful connection and when we received an Sign In error.&lt;/p&gt;

&lt;p&gt;Now let’s run our application and see what’s happens.&lt;/p&gt;

&lt;p&gt;You’ll notice that you receive the following error:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;font color="#ff0000"&gt;&amp;quot;The app is not configured correctly to use Live Connect services. To configure your app, please follow the instructions on http://go.microsoft.com/fwlink/?LinkId=220871.&amp;quot;&lt;/font&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The reason is before we begin building this app, you need to register it with Windows Live.&amp;#160; You can register your app by going to the &lt;a href="https://manage.dev.live.com/build?wa=wsignin1.0"&gt;application management site&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Then you have two steps in order to register your application:&lt;/p&gt;

&lt;p&gt;1. You need to enter the application name and publisher (you can find it in “Package.appxmanifest” located under project solution).&lt;/p&gt;





&lt;p&gt;&lt;img alt="image" src="http://blogs.microsoft.co.il/blogs/shair/image_thumb_1981DD12.png" /&gt;&lt;/p&gt;

&lt;p&gt;After you click “I accept”, we’ll receive a new “Package name” and Client secret (I’ll talk about this in later posts).&lt;/p&gt;

&lt;p&gt;&lt;img alt="image" src="http://blogs.microsoft.co.il/blogs/shair/image_thumb_7EA59138.png" /&gt;&lt;/p&gt;

&lt;p&gt;For now all you need to do is copying the “Package name” from the site and adding it instead the current in Package.appxmanifest.&lt;/p&gt;

&lt;p&gt;&lt;img alt="image" src="http://blogs.microsoft.co.il/blogs/shair/image_thumb_018AD01F.png" /&gt;&lt;/p&gt;

&lt;p&gt;Now let’s run the application again, and after you click the “Sign In” button you’ll see this message: (this will only appear one time)&lt;/p&gt;

&lt;p&gt;&lt;img alt="image" src="http://blogs.microsoft.co.il/blogs/shair/image_thumb_5CC992DA.png" /&gt;&lt;/p&gt;

&lt;p&gt;After clicking “Yes” you should see that “Sign In” changed to:&lt;/p&gt;

&lt;p&gt;&lt;img alt="image" src="http://blogs.microsoft.co.il/blogs/shair/image_thumb_322DB1FD.png" /&gt;&lt;/p&gt;

&lt;h3&gt;Step 3: Getting User Data&lt;/h3&gt;

&lt;p&gt;After we made a successful Sign In we can start using Live SDK, the first thing I’ll show is how to get user data from his Live Account.&lt;/p&gt;

&lt;p&gt;Using global WL (Windows Live) object we’ll can call “api” function to perform Ajax Requests to LiveSDK REST services. You can always use other Ajax libraries to use LiveSDK REST just call this url passing the access token:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;pre&gt;&lt;a href="https://apis.live.net/v5.0/me/albums?access_token=ACCESS_TOKEN"&gt;https://apis.live.net/v5.0/me/albums?access_token=ACCESS_TOKEN&lt;/a&gt;&lt;/pre&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;path -&lt;/strong&gt; Required. Contains the path to the REST API object. For information on specifying paths for REST objects, see &lt;a href="http://msdn.microsoft.com/en-us/library/live/hh243648.aspx"&gt;REST reference&lt;/a&gt;.&lt;/li&gt;

  &lt;li&gt;&lt;strong&gt;method - &lt;/strong&gt;Optional. An HTTP method that specifies the action required for the API call. These actions are standard REST API actions: &amp;quot;COPY&amp;quot;, &amp;quot;GET&amp;quot;, &amp;quot;MOVE&amp;quot;, &amp;quot;PUT&amp;quot;, &amp;quot;POST&amp;quot;, and &amp;quot;DELETE&amp;quot;.&lt;/li&gt;

  &lt;li&gt;&lt;strong&gt;body -&lt;/strong&gt; Optional. A JSON object that specifies the REST API request body. The body property is used only for &amp;quot;POST&amp;quot; and &amp;quot;PUT&amp;quot; requests.&lt;/li&gt;
&lt;/ul&gt;

&lt;div id="codeSnippetWrapper" style="overflow:auto;cursor:text;font-size:8pt;border-top:silver 1px solid;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-right:silver 1px solid;border-bottom:silver 1px solid;padding-bottom:4px;direction:ltr;text-align:left;padding-top:4px;padding-left:4px;margin:20px 0px 10px;border-left:silver 1px solid;line-height:12pt;padding-right:4px;max-height:200px;width:97.5%;background-color:#f4f4f4;"&gt;
  &lt;pre id="codeSnippet" style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;WL.api(&lt;span style="color:#006080;"&gt;&amp;quot;me&amp;quot;&lt;/span&gt;, &lt;span style="color:#0000ff;"&gt;function&lt;/span&gt; (data) {&lt;br /&gt;    $(&lt;span style="color:#006080;"&gt;&amp;quot;#txtStatus&amp;quot;&lt;/span&gt;).innerHTML = &lt;span style="color:#006080;"&gt;&amp;quot;Full Name:&amp;quot;&lt;/span&gt; + data.name +&lt;br /&gt;        &lt;span style="color:#006080;"&gt;&amp;quot;&amp;lt;br/&amp;gt;First Name:&amp;quot;&lt;/span&gt; + data.first_name +&lt;br /&gt;        &lt;span style="color:#006080;"&gt;&amp;quot;&amp;lt;br/&amp;gt;Last Name:&amp;quot;&lt;/span&gt; + data.last_name +&lt;br /&gt;        &lt;span style="color:#006080;"&gt;&amp;quot;&amp;lt;br/&amp;gt;Profile Link:&amp;quot;&lt;/span&gt; + data.link +&lt;br /&gt;        &lt;span style="color:#006080;"&gt;&amp;quot;&amp;lt;br/&amp;gt;Gender:&amp;quot;&lt;/span&gt; + data.gender +&lt;br /&gt;        &lt;span style="color:#006080;"&gt;&amp;quot;&amp;lt;br/&amp;gt;Locale:&amp;quot;&lt;/span&gt; + data.locale;&lt;br /&gt;&lt;br /&gt;    $(&lt;span style="color:#006080;"&gt;&amp;quot;#btnBrowse&amp;quot;&lt;/span&gt;).disabled = &lt;span style="color:#0000ff;"&gt;false&lt;/span&gt;;&lt;br /&gt;});&lt;/pre&gt;

  &lt;br /&gt;&lt;/div&gt;





&lt;p&gt;Add getting my profile picture, same goes here first define the user I want to get his picture and then the string “picture”&lt;/p&gt;

&lt;div id="codeSnippetWrapper" style="overflow:auto;cursor:text;font-size:8pt;border-top:silver 1px solid;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-right:silver 1px solid;border-bottom:silver 1px solid;padding-bottom:4px;direction:ltr;text-align:left;padding-top:4px;padding-left:4px;margin:20px 0px 10px;border-left:silver 1px solid;line-height:12pt;padding-right:4px;max-height:200px;width:97.5%;background-color:#f4f4f4;"&gt;
  &lt;pre id="codeSnippet" style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;WL.api(&lt;span style="color:#006080;"&gt;&amp;quot;me/picture&amp;quot;&lt;/span&gt;, &lt;span style="color:#0000ff;"&gt;function&lt;/span&gt; (data) {&lt;br /&gt;    $(&lt;span style="color:#006080;"&gt;&amp;quot;#userImg&amp;quot;&lt;/span&gt;).src = data.location;&lt;br /&gt;});&lt;/pre&gt;

  &lt;br /&gt;&lt;/div&gt;

&lt;p&gt;Full Code:&lt;/p&gt;

&lt;div id="codeSnippetWrapper" style="overflow:auto;cursor:text;font-size:8pt;border-top:silver 1px solid;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-right:silver 1px solid;border-bottom:silver 1px solid;padding-bottom:4px;direction:ltr;text-align:left;padding-top:4px;padding-left:4px;margin:20px 0px 10px;border-left:silver 1px solid;line-height:12pt;padding-right:4px;max-height:200px;width:97.5%;background-color:#f4f4f4;"&gt;
  &lt;pre id="codeSnippet" style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&lt;span style="color:#0000ff;"&gt;function&lt;/span&gt; onSessionChange(response) {&lt;br /&gt;    &lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; session = WL.getSession();&lt;br /&gt;&lt;br /&gt;    &lt;span style="color:#0000ff;"&gt;if&lt;/span&gt; (!session.error) {&lt;br /&gt;        WL.api(&lt;span style="color:#006080;"&gt;&amp;quot;me&amp;quot;&lt;/span&gt;, &lt;span style="color:#0000ff;"&gt;function&lt;/span&gt; (data) {&lt;br /&gt;            $(&lt;span style="color:#006080;"&gt;&amp;quot;#txtStatus&amp;quot;&lt;/span&gt;).innerHTML = &lt;span style="color:#006080;"&gt;&amp;quot;Full Name:&amp;quot;&lt;/span&gt; + data.name +&lt;br /&gt;                &lt;span style="color:#006080;"&gt;&amp;quot;&amp;lt;br/&amp;gt;First Name:&amp;quot;&lt;/span&gt; + data.first_name +&lt;br /&gt;                &lt;span style="color:#006080;"&gt;&amp;quot;&amp;lt;br/&amp;gt;Last Name:&amp;quot;&lt;/span&gt; + data.last_name +&lt;br /&gt;                &lt;span style="color:#006080;"&gt;&amp;quot;&amp;lt;br/&amp;gt;Profile Link:&amp;quot;&lt;/span&gt; + data.link +&lt;br /&gt;                &lt;span style="color:#006080;"&gt;&amp;quot;&amp;lt;br/&amp;gt;Gender:&amp;quot;&lt;/span&gt; + data.gender +&lt;br /&gt;                &lt;span style="color:#006080;"&gt;&amp;quot;&amp;lt;br/&amp;gt;Locale:&amp;quot;&lt;/span&gt; + data.locale;&lt;br /&gt;&lt;br /&gt;            $(&lt;span style="color:#006080;"&gt;&amp;quot;#btnBrowse&amp;quot;&lt;/span&gt;).disabled = &lt;span style="color:#0000ff;"&gt;false&lt;/span&gt;;&lt;br /&gt;        });&lt;br /&gt;&lt;br /&gt;        WL.api(&lt;span style="color:#006080;"&gt;&amp;quot;me/picture&amp;quot;&lt;/span&gt;, &lt;span style="color:#0000ff;"&gt;function&lt;/span&gt; (data) {&lt;br /&gt;            $(&lt;span style="color:#006080;"&gt;&amp;quot;#userImg&amp;quot;&lt;/span&gt;).src = data.location;&lt;br /&gt;        });&lt;br /&gt;    }&lt;br /&gt;    &lt;span style="color:#0000ff;"&gt;else&lt;/span&gt; {&lt;br /&gt;        $(&lt;span style="color:#006080;"&gt;&amp;quot;#txtStatus&amp;quot;&lt;/span&gt;).textContent = session.error.message;&lt;br /&gt;    }&lt;br /&gt;}&lt;/pre&gt;

  &lt;br /&gt;&lt;/div&gt;

&lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/shair/image_0810712F.png"&gt;&lt;img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/shair/image_thumb_7416DE98.png" width="422" height="318" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h6&gt;Accessing a user&amp;#39;s public info&lt;/h6&gt;

&lt;blockquote&gt;
  &lt;p&gt;There is an exception to the rule that you must get the permission from the user before you can access his or her info: your app can access a user&amp;#39;s publicly available info without requesting any scope. Public info includes the user&amp;#39;s ID, first and last names, display name, gender, locale, and picture. The user&amp;#39;s Messenger friends list is also available if the user has elected to make it public.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;For example: I’ve changed “me” to my friend &lt;a href="http://blogs.microsoft.co.il/blogs/gilf/"&gt;Gil Fink&lt;/a&gt; Live Id and here is the result:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/shair/image_565553D9.png"&gt;&lt;img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/shair/image_thumb_0291DABE.png" width="423" height="327" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;Step 4: Uploading File To User Folder&lt;/h3&gt;

&lt;p&gt;In this part we’ll see how to upload a file to SkyDrive using Live SDK, first I’ve added to more buttons and a progress bar so we can see the upload progress.&lt;/p&gt;

&lt;p&gt;The first button for picking a file and the second one for starting the upload process.&lt;/p&gt;

&lt;h4&gt;Pick a File&lt;/h4&gt;

&lt;p&gt;Because of SkyDrive file restrictions you can upload any file you want (you basically can but you need to change file extension to txt, doc or any kind of picture extension), so right now I’ve create a File Picker just for text files and word.&lt;/p&gt;

&lt;div id="codeSnippetWrapper" style="overflow:auto;cursor:text;font-size:8pt;border-top:silver 1px solid;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-right:silver 1px solid;border-bottom:silver 1px solid;padding-bottom:4px;direction:ltr;text-align:left;padding-top:4px;padding-left:4px;margin:20px 0px 10px;border-left:silver 1px solid;line-height:12pt;padding-right:4px;max-height:200px;width:97.5%;background-color:#f4f4f4;"&gt;
  &lt;pre id="codeSnippet" style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&lt;span style="color:#0000ff;"&gt;function&lt;/span&gt; openFile() {&lt;br /&gt;    &lt;span style="color:#008000;"&gt;// Create the picker object and set options&lt;/span&gt;&lt;br /&gt;    &lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; openPicker = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; Windows.Storage.Pickers.FileOpenPicker();&lt;br /&gt;    openPicker.viewMode = Windows.Storage.Pickers.PickerViewMode.list;&lt;br /&gt;    openPicker.suggestedStartLocation = Windows.Storage.Pickers.PickerLocationId.documentsLibrary;&lt;br /&gt;    &lt;span style="color:#008000;"&gt;// Users expect to have a filtered view of their folders depending on the scenario.&lt;/span&gt;&lt;br /&gt;    &lt;span style="color:#008000;"&gt;// For example, when choosing a documents folder, restrict the filetypes to documents for your application.&lt;/span&gt;&lt;br /&gt;    openPicker.fileTypeFilter.replaceAll([&lt;span style="color:#006080;"&gt;&amp;quot;.txt&amp;quot;&lt;/span&gt;, &lt;span style="color:#006080;"&gt;&amp;quot;.docs&amp;quot;&lt;/span&gt;, &lt;span style="color:#006080;"&gt;&amp;quot;.doc&amp;quot;&lt;/span&gt;]);&lt;br /&gt;&lt;br /&gt;    &lt;span style="color:#008000;"&gt;// Open the picker for the user to pick a file&lt;/span&gt;&lt;br /&gt;    openPicker.pickSingleFileAsync().then(&lt;span style="color:#0000ff;"&gt;function&lt;/span&gt; (file) {&lt;br /&gt;        &lt;span style="color:#0000ff;"&gt;if&lt;/span&gt; (file) {&lt;br /&gt;            &lt;span style="color:#008000;"&gt;// Application now has read/write access to the picked file&lt;/span&gt;&lt;br /&gt;            _file = file;&lt;br /&gt;            $(&lt;span style="color:#006080;"&gt;&amp;quot;#btnStart&amp;quot;&lt;/span&gt;).disabled = &lt;span style="color:#0000ff;"&gt;false&lt;/span&gt;;&lt;br /&gt;            WinJS.log &amp;amp;&amp;amp; WinJS.log(&lt;span style="color:#006080;"&gt;&amp;quot;Picked photo: &amp;quot;&lt;/span&gt; + file.name, &lt;span style="color:#006080;"&gt;&amp;quot;sample&amp;quot;&lt;/span&gt;, &lt;span style="color:#006080;"&gt;&amp;quot;status&amp;quot;&lt;/span&gt;);&lt;br /&gt;        } &lt;span style="color:#0000ff;"&gt;else&lt;/span&gt; {&lt;br /&gt;            _file = undefined;&lt;br /&gt;            $(&lt;span style="color:#006080;"&gt;&amp;quot;#btnStart&amp;quot;&lt;/span&gt;).disabled = &lt;span style="color:#0000ff;"&gt;true&lt;/span&gt;;&lt;br /&gt;            WinJS.log &amp;amp;&amp;amp; WinJS.log(&lt;span style="color:#006080;"&gt;&amp;quot;Operation cancelled.&amp;quot;&lt;/span&gt;, &lt;span style="color:#006080;"&gt;&amp;quot;sample&amp;quot;&lt;/span&gt;, &lt;span style="color:#006080;"&gt;&amp;quot;status&amp;quot;&lt;/span&gt;);&lt;br /&gt;        }&lt;br /&gt;    });&lt;br /&gt;}&lt;/pre&gt;

  &lt;br /&gt;&lt;/div&gt;

&lt;h4&gt;Start Upload&lt;/h4&gt;

&lt;p&gt;To Upload file using Live SDK we’ll use - &lt;strong&gt;WL.backgroundUpload &lt;/strong&gt;method.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;path -&lt;/strong&gt; Required. The path to the file to upload. &lt;/li&gt;

  &lt;li&gt;&lt;strong&gt;file_name -&lt;/strong&gt; Optional. The name of the file to upload.&lt;/li&gt;

  &lt;li&gt;&lt;strong&gt;file_input (StorageFile) -&lt;/strong&gt; Optional. The file input object to read the file from.&lt;/li&gt;

  &lt;li&gt;&lt;strong&gt;stream_input - &lt;/strong&gt;Optional. The file input stream to read the file from.&lt;/li&gt;

  &lt;li&gt;&lt;strong&gt;overwrite -&lt;/strong&gt; Optional. Indicates whether the uploaded file should overwrite an existing copy. Specify true or &amp;quot;true&amp;quot; to overwrite, false or &amp;quot;false&amp;quot; to not overwrite and for theWL.backgroundUpload method call to fail, or &amp;quot;rename&amp;quot; to not overwrite and enable SkyDrive to assign a new name to the uploaded file.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;backgroundUpload returns a &lt;strong&gt;Promise&lt;/strong&gt; so we can implement code for onError and onProgress (to update the progress bar)&lt;/p&gt;

&lt;div id="codeSnippetWrapper" style="overflow:auto;cursor:text;font-size:8pt;border-top:silver 1px solid;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-right:silver 1px solid;border-bottom:silver 1px solid;padding-bottom:4px;direction:ltr;text-align:left;padding-top:4px;padding-left:4px;margin:20px 0px 10px;border-left:silver 1px solid;line-height:12pt;padding-right:4px;max-height:200px;width:97.5%;background-color:#f4f4f4;"&gt;
  &lt;pre id="codeSnippet" style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;WL.backgroundUpload({&lt;br /&gt;    path: &lt;span style="color:#006080;"&gt;&amp;quot;me/skydrive&amp;quot;&lt;/span&gt;,&lt;br /&gt;    file_name: _file.fileName,&lt;br /&gt;    file_input: _file,&lt;br /&gt;    overwrite: &lt;span style="color:#006080;"&gt;&amp;quot;true&amp;quot;&lt;/span&gt; &lt;span style="color:#008000;"&gt;//rename etc...&lt;/span&gt;&lt;br /&gt;}).then(&lt;span style="color:#0000ff;"&gt;function&lt;/span&gt; (args) {&lt;br /&gt;    $(&lt;span style="color:#006080;"&gt;&amp;quot;#txtStatus&amp;quot;&lt;/span&gt;).textContent = &lt;span style="color:#006080;"&gt;&amp;quot;Upload Completed!&amp;quot;&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;    toggle(&lt;span style="color:#0000ff;"&gt;true&lt;/span&gt;);&lt;br /&gt;},&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;function&lt;/span&gt; (err) {&lt;br /&gt;    $(&lt;span style="color:#006080;"&gt;&amp;quot;#txtStatus&amp;quot;&lt;/span&gt;).textContent = e.response;&lt;br /&gt;    $(&lt;span style="color:#006080;"&gt;&amp;quot;#pb&amp;quot;&lt;/span&gt;).className = &lt;span style="color:#006080;"&gt;&amp;quot;hidden&amp;quot;&lt;/span&gt;;&lt;br /&gt;},&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;function&lt;/span&gt; (e) {&lt;br /&gt;    $(&lt;span style="color:#006080;"&gt;&amp;quot;#pb&amp;quot;&lt;/span&gt;).value = Math.round(e.progressPercentage);&lt;br /&gt;});&lt;/pre&gt;

  &lt;br /&gt;&lt;/div&gt;

&lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/shair/image_27AF252A.png"&gt;&lt;img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/shair/image_thumb_57F5F9E0.png" width="336" height="383" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;Step 5: Get SkyDrive Files&lt;/h3&gt;

&lt;p&gt;Now before downloading files from SkyDrive you need to know their ID, name is not enough for download using Live SDK, so to makes things simpler let’s first get all files from our SkyDrive. Getting all files using Live SDK will also bring the file ID so we’ll be able to save those files locally.&lt;/p&gt;

&lt;p&gt;I’ve added a ListView to our body to present the files&lt;/p&gt;

&lt;div id="codeSnippetWrapper" style="overflow:auto;cursor:text;font-size:8pt;border-top:silver 1px solid;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-right:silver 1px solid;border-bottom:silver 1px solid;padding-bottom:4px;direction:ltr;text-align:left;padding-top:4px;padding-left:4px;margin:20px 0px 10px;border-left:silver 1px solid;line-height:12pt;padding-right:4px;max-height:200px;width:97.5%;background-color:#f4f4f4;"&gt;
  &lt;pre id="codeSnippet" style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;div&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;id&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;fileTemplate&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;data-win-control&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;WinJS.Binding.Template&amp;quot;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;div&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;class&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;file&amp;quot;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;span&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;data-win-bind&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;textContent: id&amp;quot;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;span&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;    -&lt;br /&gt;    &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;span&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;data-win-bind&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;textContent: type&amp;quot;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;span&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;    -&lt;br /&gt;    &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;span&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;data-win-bind&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;textContent: name&amp;quot;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;span&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;    -&lt;br /&gt;    &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;span&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;data-win-bind&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;textContent: created_time&amp;quot;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;span&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;div&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;div&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;id&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;fileList&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;data-win-control&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;WinJS.UI.ListView&amp;quot;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color:#ff0000;"&gt;data-win-options&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;{ selectionMode: &amp;#39;single&amp;#39;,layout: { type: WinJS.UI.ListLayout}, itemTemplate:select(&amp;#39;#fileTemplate&amp;#39;)}&amp;quot;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;div&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  
&lt;/div&gt;

&lt;p&gt;now all we need to do is using the “api” method passing “me/skydrive/files”, this will return all folder and files under my main folder. Once we recived the files list from the server I’ve converted the response into List and assigned its dataSource to out ListView itemDataSource property.&lt;/p&gt;

&lt;div id="codeSnippetWrapper" style="overflow:auto;cursor:text;font-size:8pt;border-top:silver 1px solid;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-right:silver 1px solid;border-bottom:silver 1px solid;padding-bottom:4px;direction:ltr;text-align:left;padding-top:4px;padding-left:4px;margin:20px 0px 10px;border-left:silver 1px solid;line-height:12pt;padding-right:4px;max-height:200px;width:97.5%;background-color:#f4f4f4;"&gt;
  &lt;pre id="codeSnippet" style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&lt;span style="color:#0000ff;"&gt;function&lt;/span&gt; getFiles() {&lt;br /&gt;    toggle(&lt;span style="color:#0000ff;"&gt;false&lt;/span&gt;);&lt;br /&gt;    WL.api(&lt;span style="color:#006080;"&gt;&amp;quot;me/skydrive/files&amp;quot;&lt;/span&gt;, &lt;span style="color:#0000ff;"&gt;function&lt;/span&gt; (response) {&lt;br /&gt;        &lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; skyDriveFiles = response.data;&lt;br /&gt;        &lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; dataList = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; WinJS.Binding.List(skyDriveFiles);&lt;br /&gt;&lt;br /&gt;        &lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; files = $(&lt;span style="color:#006080;"&gt;&amp;#39;#fileList&amp;#39;&lt;/span&gt;).winControl;&lt;br /&gt;        files.itemDataSource = dataList.dataSource;&lt;br /&gt;&lt;br /&gt;        toggle(&lt;span style="color:#0000ff;"&gt;true&lt;/span&gt;);&lt;br /&gt;    });&lt;br /&gt;}&lt;/pre&gt;

  &lt;br /&gt;&lt;/div&gt;

&lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/shair/image_1D2E510A.png"&gt;&lt;img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/shair/image_thumb_2E5208E0.png" width="560" height="642" /&gt;&lt;/a&gt;&lt;/p&gt;



&lt;h3&gt;Step 6: Download File&lt;/h3&gt;

&lt;p&gt;Now that we got all file ids we can proceed to downloading them into our machine.&lt;/p&gt;

&lt;p&gt;To download a file using Live SDK we’ll use the “&lt;strong&gt;backgroundDownload&lt;/strong&gt;” method almost in the same way we use the “&lt;strong&gt;backgroundUpload&lt;/strong&gt;” method, but is time we need to pass the file id that we want to download and adding “/content” after it.&lt;/p&gt;

&lt;p&gt;First let’s get the selected file from the fileList and create new file under Temp folder with the same name.&lt;/p&gt;

&lt;div id="codeSnippetWrapper" style="overflow:auto;cursor:text;font-size:8pt;border-top:silver 1px solid;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-right:silver 1px solid;border-bottom:silver 1px solid;padding-bottom:4px;direction:ltr;text-align:left;padding-top:4px;padding-left:4px;margin:20px 0px 10px;border-left:silver 1px solid;line-height:12pt;padding-right:4px;max-height:200px;width:97.5%;background-color:#f4f4f4;"&gt;
  &lt;pre id="codeSnippet" style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;list.selection.getItems().then(&lt;span style="color:#0000ff;"&gt;function&lt;/span&gt; (selectedFiles) {&lt;br /&gt;    &lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; fileToDownload = selectedFiles[0].data;&lt;br /&gt;    list.selection.clear();&lt;br /&gt;    &lt;span style="color:#008000;"&gt;//Creating new file&lt;/span&gt;&lt;br /&gt;    Windows.Storage.ApplicationData.current.temporaryFolder.createFileAsync(fileToDownload.name,&lt;br /&gt;        Windows.Storage.CreationCollisionOption.replaceExisting).then(&lt;span style="color:#0000ff;"&gt;function&lt;/span&gt; (localFile) {&lt;/pre&gt;

  &lt;br /&gt;&lt;/div&gt;

&lt;p&gt;Now that we have new file under temp folder we can start the donwload&lt;/p&gt;

&lt;div id="codeSnippetWrapper" style="overflow:auto;cursor:text;font-size:8pt;border-top:silver 1px solid;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-right:silver 1px solid;border-bottom:silver 1px solid;padding-bottom:4px;direction:ltr;text-align:left;padding-top:4px;padding-left:4px;margin:20px 0px 10px;border-left:silver 1px solid;line-height:12pt;padding-right:4px;max-height:200px;width:97.5%;background-color:#f4f4f4;"&gt;
  &lt;pre id="codeSnippet" style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&lt;span style="color:#008000;"&gt;//Starting download&lt;/span&gt;&lt;br /&gt;                   &lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; properties = { path: fileToDownload.source, file_output: localFile, overwrite: &lt;span style="color:#006080;"&gt;&amp;quot;true&amp;quot;&lt;/span&gt; };&lt;br /&gt;                   WL.backgroundDownload(properties).then(&lt;span style="color:#0000ff;"&gt;function&lt;/span&gt; (args) {&lt;br /&gt;                       $(&lt;span style="color:#006080;"&gt;&amp;quot;#txtStatus&amp;quot;&lt;/span&gt;).textContent = &lt;span style="color:#006080;"&gt;&amp;quot;Download Completed! - &amp;quot;&lt;/span&gt; + localFile.path;&lt;br /&gt;                       toggle(&lt;span style="color:#0000ff;"&gt;true&lt;/span&gt;);&lt;br /&gt;                   }, &lt;span style="color:#0000ff;"&gt;function&lt;/span&gt; (err) {&lt;br /&gt;                       $(&lt;span style="color:#006080;"&gt;&amp;quot;#txtStatus&amp;quot;&lt;/span&gt;).textContent = e.response;&lt;br /&gt;                       $(&lt;span style="color:#006080;"&gt;&amp;quot;#pb&amp;quot;&lt;/span&gt;).className = &lt;span style="color:#006080;"&gt;&amp;quot;hidden&amp;quot;&lt;/span&gt;;&lt;br /&gt;                   }, &lt;span style="color:#0000ff;"&gt;function&lt;/span&gt; (progress) {&lt;br /&gt;                       $(&lt;span style="color:#006080;"&gt;&amp;quot;#pb&amp;quot;&lt;/span&gt;).value = Math.round(progress.progressPercentage);&lt;br /&gt;                   });&lt;br /&gt;               });&lt;/pre&gt;

  &lt;br /&gt;&lt;/div&gt;

&lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/shair/image_6B268AB2.png"&gt;&lt;img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/shair/image_thumb_6BCF40DC.png" width="747" height="403" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/files/folders/shair/entry1319503.aspx"&gt;Download Demo Project&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=1319507" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/Development/default.aspx">Development</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/TECH/default.aspx">TECH</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/Windows+8/default.aspx">Windows 8</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/JavaScript/default.aspx">JavaScript</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/Metro/default.aspx">Metro</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/Visual+Studio+2012/default.aspx">Visual Studio 2012</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/Live+SDK/default.aspx">Live SDK</category></item><item><title>Using Live SDK in Windows 8 – C#</title><link>http://blogs.microsoft.co.il/blogs/shair/archive/2012/09/27/using-live-sdk-in-windows-8-c.aspx</link><pubDate>Thu, 27 Sep 2012 15:58:00 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:1313495</guid><dc:creator>shair</dc:creator><slash:comments>6</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/shair/rsscomments.aspx?PostID=1313495</wfw:commentRss><comments>http://blogs.microsoft.co.il/blogs/shair/archive/2012/09/27/using-live-sdk-in-windows-8-c.aspx#comments</comments><description>&lt;div class="share-buttons"&gt;
&lt;div style="TEXT-ALIGN:left;LINE-HEIGHT:1em;PADDING-RIGHT:15px;FONT-FAMILY:Arial, Helvetica, sans-serif;FLOAT:left;FONT-SIZE:14px;"&gt;&lt;a class="twitter-share-button" href="http://blogs.microsoft.co.il/blogs/shair/archive/2012/09/27/using-live-sdk-in-windows-8-c.aspx"&gt;Tweet&lt;/a&gt;&lt;/div&gt;
&lt;div style="TEXT-ALIGN:left;LINE-HEIGHT:1em;PADDING-RIGHT:25px;FONT-FAMILY:Arial, Helvetica, sans-serif;FLOAT:left;FONT-SIZE:14px;"&gt;
&lt;script type="IN/Share"&gt;&lt;/script&gt;
&lt;/div&gt;
&lt;div style="TEXT-ALIGN:left;LINE-HEIGHT:1em;FONT-FAMILY:Arial, Helvetica, sans-serif;FLOAT:left;FONT-SIZE:14px;"&gt;&lt;iframe style="BORDER-BOTTOM:medium none;BORDER-LEFT:medium none;WIDTH:100px;HEIGHT:21px;OVERFLOW:hidden;BORDER-TOP:medium none;BORDER-RIGHT:medium none;" src="http://www.facebook.com/plugins/like.php?href=http://blogs.microsoft.co.il/blogs/shair/archive/2012/09/27/using-live-sdk-in-windows-8-c.aspx&amp;amp;send=false&amp;amp;layout=button_count&amp;amp;width=450&amp;amp;show_faces=false&amp;amp;action=like&amp;amp;colorscheme=light&amp;amp;font=segoe+ui&amp;amp;height=21&amp;amp;appId=184186808308137" frameborder="0"&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;div style="TEXT-ALIGN:left;LINE-HEIGHT:1em;FONT-FAMILY:Arial, Helvetica, sans-serif;FLOAT:left;FONT-SIZE:14px;"&gt;
&lt;div class="g-plusone"&gt;&lt;/div&gt;&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;
&lt;p&gt;Live SDK provides a set of controls and APIs that enable applications to integrate single sign-on (SSO) with Microsoft accounts and access information from SkyDrive, Hotmail, and Windows Live Messenger on Windows Phone and Windows 8.&lt;/p&gt;  &lt;p&gt;Live SDK support several platforms such as: iOS, Android and of course Windows Phone and Windows 8 applications using C# and JS.&lt;/p&gt;  &lt;p&gt;In this demo I’ll show how to use Live SDK with Windows 8, so in order to follow this article you need to have the following installed:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Windows 8 – &lt;a href="http://msdn.microsoft.com/en-us/windows/apps/br229516.aspx" target="_blank"&gt;Download&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;Live SDK -&lt;a href="http://msdn.microsoft.com/en-US/live/ff621310" target="_blank"&gt;Live SDK downloads&lt;/a&gt;&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Also you can assist &lt;a href="http://isdk.dev.live.com/" target="_blank"&gt;Interactive Live SDK&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/files/folders/shair/entry1313491.aspx" target="_blank"&gt;Download Demo Project&lt;/a&gt;&lt;/p&gt;  &lt;h3&gt;&lt;/h3&gt;  &lt;h3&gt;Step 1: Building Our App&lt;/h3&gt;  &lt;p&gt;I’ve create a C# Blank App called – “LiveSdkDemo”, and add a reference to “Live SDK” we just installed.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/shair/image_08CA5831.png"&gt;&lt;img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/shair/image_thumb_3506DF15.png" width="742" height="511" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;h3&gt;Step 2: Adding a “Sign In” Button&lt;/h3&gt;  &lt;p&gt;Before we can do anything with Live SDK we first need to “Sign In” using our Window Live ID. To do that we need to add the “SignInButton” control coming with Live SDK.&lt;/p&gt;  &lt;p&gt;So I’ve added a using to Microsoft.Live.Controls and add “SignInButton” control, as you can see I’ve added couple more things, the first one is: &lt;strong&gt;Scopes:&lt;/strong&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Before your app makes requests of the Live Connect APIs to work with Live Connect info, in most cases you must get permission from the user to access that info or to create new objects on behalf of the user. In the Live Connect APIs, this permission is called a &lt;em&gt;&lt;strong&gt;scope&lt;/strong&gt;&lt;/em&gt;. Each scope grants a different permission level.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/live/hh243646.aspx#types" target="_blank"&gt;Live SDK Scope Types&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;In this demo I’m using three Scopes:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;&lt;strong&gt;wl.signin&lt;/strong&gt; -&amp;#160; Single sign-in behavior. With &lt;em&gt;single sign-in&lt;/em&gt;, users who are already signed in to Live Connect are also signed in to your website.&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;wl.basic&lt;/strong&gt; - Read access to a user&amp;#39;s basic profile info. Also enables read access to a user&amp;#39;s list of contacts.&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;wl.skydrive_update&lt;/strong&gt; - Read and write access to a user&amp;#39;s files stored in SkyDrive.&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;The second one is “&lt;strong&gt;SessionChanged&lt;/strong&gt;” event this will let us know when we made a successful connection and when we received an Sign In error.&lt;/p&gt;  &lt;p&gt;I’ve also add a TextBlock to display any errors coming from the SignIn operations.&lt;/p&gt;  &lt;div id="codeSnippetWrapper" style="overflow:auto;cursor:text;font-size:8pt;border-top:silver 1px solid;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-right:silver 1px solid;border-bottom:silver 1px solid;padding-bottom:4px;direction:ltr;text-align:left;padding-top:4px;padding-left:4px;margin:20px 0px 10px;border-left:silver 1px solid;line-height:12pt;padding-right:4px;max-height:200px;width:97.5%;background-color:#f4f4f4;"&gt;   &lt;pre id="codeSnippet" style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;Page&lt;/span&gt;&lt;br /&gt;    &lt;span style="color:#ff0000;"&gt;x:Class&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;LiveSdkDemo.MainPage&amp;quot;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color:#ff0000;"&gt;xmlns&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;http://schemas.microsoft.com/winfx/2006/xaml/presentation&amp;quot;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color:#ff0000;"&gt;xmlns:x&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;http://schemas.microsoft.com/winfx/2006/xaml&amp;quot;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color:#ff0000;"&gt;xmlns:local&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;using:LiveSdkDemo&amp;quot;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color:#ff0000;"&gt;xmlns:d&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;http://schemas.microsoft.com/expression/blend/2008&amp;quot;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color:#ff0000;"&gt;xmlns:mc&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;http://schemas.openxmlformats.org/markup-compatibility/2006&amp;quot;&lt;/span&gt;&lt;br /&gt;    &lt;font style="background-color:#ffff00;"&gt;&lt;span style="color:#ff0000;"&gt;xmlns:live&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;using:Microsoft.Live.Controls&amp;quot;&lt;/span&gt;&lt;br /&gt;&lt;/font&gt;    &lt;span style="color:#ff0000;"&gt;mc:Ignorable&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;d&amp;quot;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;    &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;Grid&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Background&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;{StaticResource ApplicationPageBackgroundThemeBrush}&amp;quot;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;font style="background-color:#ffff00;"&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;live:SignInButton&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;x:Name&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;btnSignin&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Scopes&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;wl.signin wl.basic wl.skydrive_update&amp;quot;&lt;/span&gt; &lt;br /&gt;                           &lt;span style="color:#ff0000;"&gt;Branding&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;Skydrive&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;SessionChanged&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;OnSessionChanged&amp;quot;&lt;/span&gt; &lt;br /&gt;                           &lt;span style="color:#ff0000;"&gt;VerticalAlignment&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;Top&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Width&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;141&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;HorizontalAlignment&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;Left&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Margin&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;100,100,0,0&amp;quot;&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;br /&gt;        &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;TextBlock&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;x:Name&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;txtStatus&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;HorizontalAlignment&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;Center&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Margin&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;0&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;TextWrapping&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;Wrap&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;VerticalAlignment&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;Center&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Foreground&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;Red&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;FontSize&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;24&amp;quot;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/font&gt;    &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;Grid&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;Page&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;br /&gt;&lt;/div&gt;

&lt;p&gt;Now to the code behind, we are checking if the connection status is “Connected” then doing nothing (for now) else we’ll display the error message on the screen.&lt;/p&gt;

&lt;div id="codeSnippetWrapper" style="overflow:auto;cursor:text;font-size:8pt;border-top:silver 1px solid;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-right:silver 1px solid;border-bottom:silver 1px solid;padding-bottom:4px;direction:ltr;text-align:left;padding-top:4px;padding-left:4px;margin:20px 0px 10px;border-left:silver 1px solid;line-height:12pt;padding-right:4px;max-height:200px;width:97.5%;background-color:#f4f4f4;"&gt;
  &lt;pre id="codeSnippet" style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&lt;span style="color:#0000ff;"&gt;private&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;void&lt;/span&gt; OnSessionChanged(&lt;span style="color:#0000ff;"&gt;object&lt;/span&gt; sender, LiveConnectSessionChangedEventArgs e)&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color:#0000ff;"&gt;if&lt;/span&gt; (e.Status == LiveConnectSessionStatus.Connected)&lt;br /&gt;    {&lt;br /&gt;    }&lt;br /&gt;    &lt;span style="color:#0000ff;"&gt;else&lt;/span&gt;&lt;br /&gt;    {&lt;br /&gt;        &lt;span style="color:#0000ff;"&gt;if&lt;/span&gt; (e.Error != &lt;span style="color:#0000ff;"&gt;null&lt;/span&gt;)&lt;br /&gt;        {&lt;br /&gt;            txtStatus.Text = e.Error.Message;&lt;br /&gt;&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;/pre&gt;

  &lt;br /&gt;&lt;/div&gt;

&lt;p&gt;Now let’s run our application and see what’s happens.&lt;/p&gt;

&lt;p&gt;You’ll notice that you receive the following error:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;font color="#ff0000"&gt;&amp;quot;The app is not configured correctly to use Live Connect services. To configure your app, please follow the instructions on http://go.microsoft.com/fwlink/?LinkId=220871.&amp;quot;&lt;/font&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The reason is before we begin building this app, you need to register it with Windows Live.&amp;#160; You can register your app by going to the &lt;a href="https://manage.dev.live.com/build?wa=wsignin1.0" target="_blank"&gt;application management site&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Then you have two steps in order to register your application:&lt;/p&gt;

&lt;p&gt;1. You need to enter the application name and publisher (you can find it in “Package.appxmanifest” located under project solution).&lt;img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/shair/image_thumb_1981DD12.png" width="740" height="639" /&gt;&lt;/p&gt;

&lt;p&gt;After you click “I accept”, we’ll receive a new “Package name” and Client secret (I’ll talk about this in later posts). &lt;/p&gt;

&lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/shair/image_40204392.png"&gt;&lt;img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/shair/image_thumb_7EA59138.png" width="737" height="380" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For now all you need to do is copying the “Package name” from the site and adding it instead the current in Package.appxmanifest.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/shair/image_50D7C873.png"&gt;&lt;img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/shair/image_thumb_018AD01F.png" width="741" height="320" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now let’s run the application again, and after you click the “Sign In” button you’ll see this message: (this will only appear one time)&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/shair/image_17FD6EA6.png"&gt;&lt;img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/shair/image_thumb_5CC992DA.png" width="538" height="362" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After clicking “Yes” you should see that “Sign In” changed to:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/shair/image_2C530E64.png"&gt;&lt;img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;margin:0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/shair/image_thumb_322DB1FD.png" width="148" height="47" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;Step 3: Getting User Data&lt;/h3&gt;

&lt;p&gt;After we made a successful Sign In we can start using Live SDK, the first thing I’ll show is how to get user data from his Live Account.&lt;/p&gt;

&lt;p&gt;When we create LiveConnectClient object (using our Access Token) we get the following abilities:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;GET&lt;/strong&gt;—Returns a representation of a resource. &lt;/li&gt;

  &lt;li&gt;&lt;strong&gt;POST&lt;/strong&gt;—Adds a new resource to a collection. &lt;/li&gt;

  &lt;li&gt;&lt;strong&gt;PUT&lt;/strong&gt;—Updates a resource at the location pointed by the URL or creates a new resource, if it doesn&amp;#39;t exist. &lt;/li&gt;

  &lt;li&gt;&lt;strong&gt;DELETE&lt;/strong&gt;—Deletes a resource. &lt;/li&gt;

  &lt;li&gt;&lt;strong&gt;MOVE&lt;/strong&gt;—Moves the location of a resource. &lt;/li&gt;

  &lt;li&gt;&lt;strong&gt;COPY&lt;/strong&gt;—Duplicates a resource.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For now I’ll use GetAsync method passing the string “me” telling Live SDK I want to receive my information.&lt;/p&gt;

&lt;div id="codeSnippetWrapper" style="overflow:auto;cursor:text;font-size:8pt;border-top:silver 1px solid;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-right:silver 1px solid;border-bottom:silver 1px solid;padding-bottom:4px;direction:ltr;text-align:left;padding-top:4px;padding-left:4px;margin:20px 0px 10px;border-left:silver 1px solid;line-height:12pt;padding-right:4px;max-height:200px;width:97.5%;background-color:#f4f4f4;"&gt;
  &lt;pre id="codeSnippet" style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&lt;span style="color:#0000ff;"&gt;this&lt;/span&gt;.liveClient = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; LiveConnectClient(e.Session);&lt;br /&gt;&lt;br /&gt;var myData = await &lt;span style="color:#0000ff;"&gt;this&lt;/span&gt;.liveClient.GetAsync(&lt;span style="color:#006080;"&gt;&amp;quot;me&amp;quot;&lt;/span&gt;);&lt;br /&gt;txtStatus.Text = &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt;.Format(&lt;span style="color:#006080;"&gt;&amp;quot;Full Name:{0}\nFirst Name:{1}\nLast Name:{2}\nProfile Link:{3}\nGender:{4}\nLocale:{5}&amp;quot;&lt;/span&gt;, myData.Result[&lt;span style="color:#006080;"&gt;&amp;quot;name&amp;quot;&lt;/span&gt;],&lt;br /&gt;                                    myData.Result[&lt;span style="color:#006080;"&gt;&amp;quot;first_name&amp;quot;&lt;/span&gt;],&lt;br /&gt;                                    myData.Result[&lt;span style="color:#006080;"&gt;&amp;quot;last_name&amp;quot;&lt;/span&gt;],&lt;br /&gt;                                    myData.Result[&lt;span style="color:#006080;"&gt;&amp;quot;link&amp;quot;&lt;/span&gt;],&lt;br /&gt;                                    myData.Result[&lt;span style="color:#006080;"&gt;&amp;quot;gender&amp;quot;&lt;/span&gt;],&lt;br /&gt;                                    myData.Result[&lt;span style="color:#006080;"&gt;&amp;quot;locale&amp;quot;&lt;/span&gt;]);&lt;/pre&gt;

  &lt;br /&gt;&lt;/div&gt;

&lt;p&gt;Add getting my profile picture, same goes here first define the user I want to get his picture and then the string “picture”&lt;/p&gt;

&lt;div id="codeSnippetWrapper" style="overflow:auto;cursor:text;font-size:8pt;border-top:silver 1px solid;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-right:silver 1px solid;border-bottom:silver 1px solid;padding-bottom:4px;direction:ltr;text-align:left;padding-top:4px;padding-left:4px;margin:20px 0px 10px;border-left:silver 1px solid;line-height:12pt;padding-right:4px;max-height:200px;width:97.5%;background-color:#f4f4f4;"&gt;
  &lt;pre id="codeSnippet" style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;var myPic = await &lt;span style="color:#0000ff;"&gt;this&lt;/span&gt;.liveClient.GetAsync(&lt;span style="color:#006080;"&gt;&amp;quot;me/picture&amp;quot;&lt;/span&gt;);&lt;br /&gt;var bmp = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; BitmapImage(&lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; Uri(myPic.Result[&lt;span style="color:#006080;"&gt;&amp;quot;location&amp;quot;&lt;/span&gt;].ToString()));&lt;br /&gt;imgProfile.Source = bmp;&lt;/pre&gt;

  &lt;br /&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Full Code:&lt;/strong&gt;&lt;/p&gt;

&lt;div id="codeSnippetWrapper" style="overflow:auto;cursor:text;font-size:8pt;border-top:silver 1px solid;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-right:silver 1px solid;border-bottom:silver 1px solid;padding-bottom:4px;direction:ltr;text-align:left;padding-top:4px;padding-left:4px;margin:20px 0px 10px;border-left:silver 1px solid;line-height:12pt;padding-right:4px;max-height:200px;width:97.5%;background-color:#f4f4f4;"&gt;
  &lt;pre id="codeSnippet" style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&lt;span style="color:#0000ff;"&gt;private&lt;/span&gt; LiveConnectClient liveClient;&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;private&lt;/span&gt; async &lt;span style="color:#0000ff;"&gt;void&lt;/span&gt; OnSessionChanged(&lt;span style="color:#0000ff;"&gt;object&lt;/span&gt; sender, LiveConnectSessionChangedEventArgs e)&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color:#0000ff;"&gt;if&lt;/span&gt; (e.Status == LiveConnectSessionStatus.Connected)&lt;br /&gt;    {&lt;br /&gt;        &lt;span style="color:#0000ff;"&gt;this&lt;/span&gt;.liveClient = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; LiveConnectClient(e.Session);&lt;br /&gt;&lt;br /&gt;        var myData = await &lt;span style="color:#0000ff;"&gt;this&lt;/span&gt;.liveClient.GetAsync(&lt;span style="color:#006080;"&gt;&amp;quot;me&amp;quot;&lt;/span&gt;);&lt;br /&gt;        txtStatus.Text = &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt;.Format(&lt;span style="color:#006080;"&gt;&amp;quot;Full Name:{0}\nFirst Name:{1}\nLast Name:{2}\nProfile Link:{3}\nGender:{4}\nLocale:{5}&amp;quot;&lt;/span&gt;, myData.Result[&lt;span style="color:#006080;"&gt;&amp;quot;name&amp;quot;&lt;/span&gt;],&lt;br /&gt;                                            myData.Result[&lt;span style="color:#006080;"&gt;&amp;quot;first_name&amp;quot;&lt;/span&gt;],&lt;br /&gt;                                            myData.Result[&lt;span style="color:#006080;"&gt;&amp;quot;last_name&amp;quot;&lt;/span&gt;],&lt;br /&gt;                                            myData.Result[&lt;span style="color:#006080;"&gt;&amp;quot;link&amp;quot;&lt;/span&gt;],&lt;br /&gt;                                            myData.Result[&lt;span style="color:#006080;"&gt;&amp;quot;gender&amp;quot;&lt;/span&gt;],&lt;br /&gt;                                            myData.Result[&lt;span style="color:#006080;"&gt;&amp;quot;locale&amp;quot;&lt;/span&gt;]);&lt;br /&gt;&lt;br /&gt;        var myPic = await &lt;span style="color:#0000ff;"&gt;this&lt;/span&gt;.liveClient.GetAsync(&lt;span style="color:#006080;"&gt;&amp;quot;me/picture&amp;quot;&lt;/span&gt;);&lt;br /&gt;        var bmp = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; BitmapImage(&lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; Uri(myPic.Result[&lt;span style="color:#006080;"&gt;&amp;quot;location&amp;quot;&lt;/span&gt;].ToString()));&lt;br /&gt;        imgProfile.Source = bmp;&lt;br /&gt;    }&lt;br /&gt;    &lt;span style="color:#0000ff;"&gt;else&lt;/span&gt;&lt;br /&gt;    {&lt;br /&gt;        &lt;span style="color:#0000ff;"&gt;if&lt;/span&gt; (e.Error != &lt;span style="color:#0000ff;"&gt;null&lt;/span&gt;)&lt;br /&gt;        {&lt;br /&gt;            txtStatus.Text = e.Error.Message;&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;/pre&gt;

  &lt;br /&gt;&lt;/div&gt;

&lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/shair/image_0A1B02DE.png"&gt;&lt;img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/shair/image_thumb_4E0EC128.png" width="213" height="332" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h5&gt;Accessing a user&amp;#39;s public info&lt;/h5&gt;

&lt;blockquote&gt;
  &lt;p&gt;There is an exception to the rule that you must get the permission from the user before you can access his or her info: your app can access a user&amp;#39;s publicly available info without requesting any scope. Public info includes the user&amp;#39;s ID, first and last names, display name, gender, locale, and picture. The user&amp;#39;s Messenger friends list is also available if the user has elected to make it public. &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;For example: I’ve changed “me” to my friend &lt;a href="http://blogs.microsoft.co.il/blogs/gilf/" target="_blank"&gt;Gil Fink&lt;/a&gt; Live Id and here is the result:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/shair/image_39A8FB9D.png"&gt;&lt;img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/shair/image_thumb_36B396EA.png" width="438" height="308" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;Step 4: Uploading File To User Folder&lt;/h3&gt;

&lt;p&gt;In this part we’ll see how to upload a file to SkyDrive using Live SDK, first I’ve added to more buttons and a progress bar so we can see the upload progress.&lt;/p&gt;

&lt;p&gt;The first button for picking a file and the second one for starting the upload process.&lt;/p&gt;

&lt;h4&gt;Pick a File&lt;/h4&gt;

&lt;p&gt;Because of SkyDrive file restrictions you can upload any file you want (you basically can but you need to change file extension to txt, doc or any kind of picture extension), so right now I’ve create a File Picker just for text files and word.&lt;/p&gt;

&lt;div id="codeSnippetWrapper" style="overflow:auto;cursor:text;font-size:8pt;border-top:silver 1px solid;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-right:silver 1px solid;border-bottom:silver 1px solid;padding-bottom:4px;direction:ltr;text-align:left;padding-top:4px;padding-left:4px;margin:20px 0px 10px;border-left:silver 1px solid;line-height:12pt;padding-right:4px;max-height:200px;width:97.5%;background-color:#f4f4f4;"&gt;
  &lt;pre id="codeSnippet" style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&lt;span style="color:#0000ff;"&gt;private&lt;/span&gt; async &lt;span style="color:#0000ff;"&gt;void&lt;/span&gt; btnPickFile_Click(&lt;span style="color:#0000ff;"&gt;object&lt;/span&gt; sender, RoutedEventArgs e)&lt;br /&gt;{&lt;br /&gt;    var fp = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; FileOpenPicker();&lt;br /&gt;    fp.ViewMode = PickerViewMode.List;&lt;br /&gt;    fp.SuggestedStartLocation = PickerLocationId.DocumentsLibrary;&lt;br /&gt;    fp.FileTypeFilter.Add(&lt;span style="color:#006080;"&gt;&amp;quot;.txt&amp;quot;&lt;/span&gt;);&lt;br /&gt;    fp.FileTypeFilter.Add(&lt;span style="color:#006080;"&gt;&amp;quot;.doc&amp;quot;&lt;/span&gt;);&lt;br /&gt;    fp.FileTypeFilter.Add(&lt;span style="color:#006080;"&gt;&amp;quot;.docx&amp;quot;&lt;/span&gt;);&lt;br /&gt;    var file = await fp.PickSingleFileAsync();&lt;br /&gt;&lt;br /&gt;    &lt;span style="color:#0000ff;"&gt;if&lt;/span&gt; (file != &lt;span style="color:#0000ff;"&gt;null&lt;/span&gt;)&lt;br /&gt;    {&lt;br /&gt;        _file = file;&lt;br /&gt;        txtFilePath.Text = file.Path;&lt;br /&gt;        btnStartUpload.IsEnabled = &lt;span style="color:#0000ff;"&gt;true&lt;/span&gt;;&lt;br /&gt;    }&lt;br /&gt;    &lt;span style="color:#0000ff;"&gt;else&lt;/span&gt;&lt;br /&gt;    {&lt;br /&gt;        _file = &lt;span style="color:#0000ff;"&gt;null&lt;/span&gt;;&lt;br /&gt;        txtFilePath.Text = &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt;.Empty;&lt;br /&gt;        btnStartUpload.IsEnabled = &lt;span style="color:#0000ff;"&gt;false&lt;/span&gt;;&lt;br /&gt;    }&lt;br /&gt;}&lt;/pre&gt;

  &lt;br /&gt;&lt;/div&gt;

&lt;h4&gt;Start Upload&lt;/h4&gt;

&lt;p&gt;Once we got a file to upload we’ll first create new Progress object of type LiveOperationProgress using this object we’ll see the upload progress and assign it to our ProgressBar.&lt;/p&gt;

&lt;p&gt;In order to upload the file we need to get the file Stream so just call – &lt;strong&gt;OpenStreamForReadAsync &lt;/strong&gt;to get file stream.&lt;/p&gt;

&lt;p&gt;Last we’ll use a built in method “&lt;strong&gt;BackgroundUploadAsync&lt;/strong&gt;”, passing the following parameters:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Upload Location&lt;/li&gt;

  &lt;li&gt;File Name&lt;/li&gt;

  &lt;li&gt;File Stream&lt;/li&gt;

  &lt;li&gt;Overwrite Option&lt;/li&gt;

  &lt;li&gt;Cancellation Token&lt;/li&gt;

  &lt;li&gt;Progress Handler&lt;/li&gt;
&lt;/ul&gt;

&lt;div id="codeSnippetWrapper" style="overflow:auto;cursor:text;font-size:8pt;border-top:silver 1px solid;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-right:silver 1px solid;border-bottom:silver 1px solid;padding-bottom:4px;direction:ltr;text-align:left;padding-top:4px;padding-left:4px;margin:20px 0px 10px;border-left:silver 1px solid;line-height:12pt;padding-right:4px;max-height:200px;width:97.5%;background-color:#f4f4f4;"&gt;
  &lt;pre id="codeSnippet" style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&lt;span style="color:#0000ff;"&gt;private&lt;/span&gt; CancellationTokenSource cts;&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;private&lt;/span&gt; async &lt;span style="color:#0000ff;"&gt;void&lt;/span&gt; btnStartUpload_Click(&lt;span style="color:#0000ff;"&gt;object&lt;/span&gt; sender, RoutedEventArgs e)&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color:#0000ff;"&gt;if&lt;/span&gt; (_file == &lt;span style="color:#0000ff;"&gt;null&lt;/span&gt;) &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;    btnPickFile.IsEnabled = btnStartUpload.IsEnabled = &lt;span style="color:#0000ff;"&gt;false&lt;/span&gt;;&lt;br /&gt;    txtStatus.Text = &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt;.Format(&lt;span style="color:#006080;"&gt;&amp;quot;Uploading Backup...&amp;quot;&lt;/span&gt;);&lt;br /&gt;&lt;br /&gt;    &lt;span style="color:#0000ff;"&gt;this&lt;/span&gt;.pb.Value = 0;&lt;br /&gt;    var progressHandler = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; Progress&amp;lt;LiveOperationProgress&amp;gt;(&lt;br /&gt;        (progress) =&amp;gt; { &lt;span style="color:#0000ff;"&gt;this&lt;/span&gt;.pb.Value = progress.ProgressPercentage; });&lt;br /&gt;&lt;br /&gt;    var stream = await _file.OpenStreamForReadAsync();&lt;br /&gt;    &lt;span style="color:#0000ff;"&gt;this&lt;/span&gt;.cts = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; CancellationTokenSource();&lt;br /&gt;    LiveOperationResult result =&lt;br /&gt;        await &lt;span style="color:#0000ff;"&gt;this&lt;/span&gt;.liveClient.BackgroundUploadAsync(&lt;span style="color:#006080;"&gt;&amp;quot;/me/skydrive&amp;quot;&lt;/span&gt;, _file.Name, stream.AsInputStream(), OverwriteOption.Overwrite, &lt;span style="color:#0000ff;"&gt;this&lt;/span&gt;.cts.Token, progressHandler);&lt;br /&gt;&lt;br /&gt;    txtStatus.Text = &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt;.Format(&lt;span style="color:#006080;"&gt;&amp;quot;Upload Completed!&amp;quot;&lt;/span&gt;);&lt;br /&gt;    btnPickFile.IsEnabled = btnStartUpload.IsEnabled = &lt;span style="color:#0000ff;"&gt;true&lt;/span&gt;;&lt;br /&gt;}&lt;/pre&gt;

  &lt;br /&gt;&lt;/div&gt;

&lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/shair/image_0232C4A2.png"&gt;&lt;img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/shair/image_thumb_048C46A0.png" width="741" height="207" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;Step 5: Get SkyDrive Files&lt;/h3&gt;

&lt;p&gt;Now before downloading files from SkyDrive you need to know their ID, name is not enough for download using Live SDK, so to makes things simpler let’s first get all files from our SkyDrive. Getting all files using Live SDK will also bring the file ID so we’ll be able to save those files locally.&lt;/p&gt;

&lt;p&gt;First I’ve create new object called – SkyDriveFile to save the important data we get from SkyDrive.&lt;/p&gt;

&lt;div id="codeSnippetWrapper" style="overflow:auto;cursor:text;font-size:8pt;border-top:silver 1px solid;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-right:silver 1px solid;border-bottom:silver 1px solid;padding-bottom:4px;direction:ltr;text-align:left;padding-top:4px;padding-left:4px;margin:20px 0px 10px;border-left:silver 1px solid;line-height:12pt;padding-right:4px;max-height:200px;width:97.5%;background-color:#f4f4f4;"&gt;
  &lt;pre id="codeSnippet" style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;class&lt;/span&gt; SkyDriveFile&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; ID { get; set; }&lt;br /&gt;    &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; Name { get; set; }&lt;br /&gt;    &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; Type { get; set; }&lt;br /&gt;    &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; Link { get; set; }&lt;br /&gt;    &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; DateTime CreationDate { get; set; }&lt;br /&gt;&lt;br /&gt;    &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; SkyDriveFile(dynamic fileData)&lt;br /&gt;    {&lt;br /&gt;        &lt;span style="color:#0000ff;"&gt;this&lt;/span&gt;.Name = fileData.name;&lt;br /&gt;        &lt;span style="color:#0000ff;"&gt;this&lt;/span&gt;.ID = fileData.id;&lt;br /&gt;        &lt;span style="color:#0000ff;"&gt;this&lt;/span&gt;.Link = fileData.link;&lt;br /&gt;        &lt;span style="color:#0000ff;"&gt;this&lt;/span&gt;.Type = fileData.type;&lt;br /&gt;        &lt;span style="color:#0000ff;"&gt;this&lt;/span&gt;.CreationDate = Convert.ToDateTime(fileData.created_time);&lt;br /&gt;    }&lt;br /&gt;}&lt;/pre&gt;

  &lt;br /&gt;&lt;/div&gt;

&lt;p&gt;I’ve added a ListView to our XAML to present the files, now all we need to do is using the GetAsync method passing “me/skydrive/files”, this will return all folder and files under my main folder.&lt;/p&gt;

&lt;div id="codeSnippetWrapper" style="overflow:auto;cursor:text;font-size:8pt;border-top:silver 1px solid;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-right:silver 1px solid;border-bottom:silver 1px solid;padding-bottom:4px;direction:ltr;text-align:left;padding-top:4px;padding-left:4px;margin:20px 0px 10px;border-left:silver 1px solid;line-height:12pt;padding-right:4px;max-height:200px;width:97.5%;background-color:#f4f4f4;"&gt;
  &lt;pre id="codeSnippet" style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&lt;span style="color:#0000ff;"&gt;private&lt;/span&gt; async &lt;span style="color:#0000ff;"&gt;void&lt;/span&gt; btnGetFiles_Click(&lt;span style="color:#0000ff;"&gt;object&lt;/span&gt; sender, RoutedEventArgs e)&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color:#0000ff;"&gt;this&lt;/span&gt;.cts = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; CancellationTokenSource();&lt;br /&gt;    LiveOperationResult Aresult =&lt;br /&gt;            await &lt;span style="color:#0000ff;"&gt;this&lt;/span&gt;.liveClient.GetAsync(&lt;span style="color:#006080;"&gt;&amp;quot;me/skydrive/files&amp;quot;&lt;/span&gt;, &lt;span style="color:#0000ff;"&gt;this&lt;/span&gt;.cts.Token);&lt;br /&gt;&lt;br /&gt;    var fileList = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; List&amp;lt;SkyDriveFile&amp;gt;();&lt;br /&gt;&lt;br /&gt;    dynamic data = Aresult.Result;&lt;br /&gt;    &lt;span style="color:#0000ff;"&gt;foreach&lt;/span&gt; (var dd &lt;span style="color:#0000ff;"&gt;in&lt;/span&gt; data)&lt;br /&gt;    {&lt;br /&gt;        &lt;span style="color:#0000ff;"&gt;foreach&lt;/span&gt; (var d &lt;span style="color:#0000ff;"&gt;in&lt;/span&gt; dd.Value)&lt;br /&gt;        {&lt;br /&gt;            fileList.Add(&lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; SkyDriveFile(d));&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    listFiles.ItemsSource = fileList;&lt;br /&gt;}&lt;/pre&gt;

  &lt;br /&gt;&lt;/div&gt;

&lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/shair/image_22F68789.png"&gt;&lt;img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/shair/image_thumb_012AAEF8.png" width="749" height="541" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;Step 6: Download File&lt;/h3&gt;

&lt;p&gt;Now that we got all file ids we can proceed to downloading them into our machine.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/shair/image_5E86707C.png"&gt;&lt;img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/shair/image_thumb_31910DA1.png" width="743" height="549" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To download a file using Live SDK we’ll use the “BackgroundDownloadAsync” method almost in the same way we use the “BackgroundUploadAsync” method, but is time we need to pass the file id that we want to download and adding “/content” after it.&lt;/p&gt;

&lt;p&gt;I’ve create a new file under Temp folder and using Stream.CopyToAsync method I’ve copied the stream I got from SkyDrive into the new file I’ve created.&lt;/p&gt;

&lt;p&gt;
  &lt;div id="codeSnippetWrapper" style="overflow:auto;cursor:text;font-size:8pt;border-top:silver 1px solid;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-right:silver 1px solid;border-bottom:silver 1px solid;padding-bottom:4px;direction:ltr;text-align:left;padding-top:4px;padding-left:4px;margin:20px 0px 10px;border-left:silver 1px solid;line-height:12pt;padding-right:4px;max-height:200px;width:97.5%;background-color:#f4f4f4;"&gt;
    &lt;pre id="codeSnippet" style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&lt;span style="color:#0000ff;"&gt;private&lt;/span&gt; async &lt;span style="color:#0000ff;"&gt;void&lt;/span&gt; btnDownloadFile_Click(&lt;span style="color:#0000ff;"&gt;object&lt;/span&gt; sender, RoutedEventArgs e)&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color:#0000ff;"&gt;this&lt;/span&gt;.pb.Value = 0;&lt;br /&gt;    var progressHandler = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; Progress&amp;lt;LiveOperationProgress&amp;gt;(&lt;br /&gt;        (progress) =&amp;gt; { &lt;span style="color:#0000ff;"&gt;this&lt;/span&gt;.pb.Value = progress.ProgressPercentage; });&lt;br /&gt;&lt;br /&gt;    var file = listFiles.SelectedItem &lt;span style="color:#0000ff;"&gt;as&lt;/span&gt; SkyDriveFile;&lt;br /&gt;&lt;br /&gt;    txtStatus.Text = &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt;.Format(&lt;span style="color:#006080;"&gt;&amp;quot;Downloading Backup...&amp;quot;&lt;/span&gt;);&lt;br /&gt;    LiveDownloadOperationResult result =&lt;br /&gt;        await &lt;span style="color:#0000ff;"&gt;this&lt;/span&gt;.liveClient.BackgroundDownloadAsync(&lt;span style="color:#0000ff;"&gt;string&lt;/span&gt;.Format(&lt;span style="color:#006080;"&gt;&amp;quot;{0}/content&amp;quot;&lt;/span&gt;, file.ID), &lt;span style="color:#0000ff;"&gt;this&lt;/span&gt;.cts.Token, progressHandler);&lt;br /&gt;&lt;br /&gt;    var stream = await result.GetRandomAccessStreamAsync();&lt;br /&gt;&lt;br /&gt;    var temp = Windows.Storage.ApplicationData.Current.TemporaryFolder;&lt;br /&gt;    &lt;span style="color:#008000;"&gt;//Creating new file under application temp folder.&lt;/span&gt;&lt;br /&gt;    var localFile = await temp.CreateFileAsync(file.Name, CreationCollisionOption.GenerateUniqueName);&lt;br /&gt;    &lt;span style="color:#008000;"&gt;//Get new file stream&lt;/span&gt;&lt;br /&gt;    var fileStream = await localFile.OpenStreamForWriteAsync();&lt;br /&gt;&lt;br /&gt;    &lt;span style="color:#008000;"&gt;//Copying SkyDrive file stream into local file.&lt;/span&gt;&lt;br /&gt;    await stream.AsStreamForRead().CopyToAsync(fileStream);&lt;br /&gt;    await fileStream.FlushAsync();&lt;br /&gt;    fileStream.Dispose();&lt;br /&gt;    stream.Dispose();&lt;br /&gt;&lt;br /&gt;    txtStatus.Text = &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt;.Format(&lt;span style="color:#006080;"&gt;&amp;quot;File Save! - &amp;quot;&lt;/span&gt; + localFile.Path);&lt;br /&gt;}&lt;/pre&gt;

    &lt;br /&gt;&lt;/div&gt;
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/shair/image_011A892B.png"&gt;&lt;img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/shair/image_thumb_65958727.png" width="741" height="330" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here is the file under the Temp folder.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/shair/image_3180E7D4.png"&gt;&lt;img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/shair/image_thumb_7410834C.png" width="743" height="130" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/files/folders/shair/entry1313491.aspx" target="_blank"&gt;Download Demo Project&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Enjoy&lt;/p&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=1313495" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/.NET/default.aspx">.NET</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/Development/default.aspx">Development</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/TECH/default.aspx">TECH</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/Windows+8/default.aspx">Windows 8</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/.NET+4.5/default.aspx">.NET 4.5</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/Metro/default.aspx">Metro</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/Visual+Studio+2012/default.aspx">Visual Studio 2012</category><category domain="http://blogs.microsoft.co.il/blogs/shair/archive/tags/Live+SDK/default.aspx">Live SDK</category></item></channel></rss>