<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" version="2.0">
  <channel>
    <title>Of Kings and Cabbage - .Net technology</title>
    <link>http://blog.opennetcf.com/afeinman/</link>
    <description>Compact Framework Musings. Alex Feinman's web log</description>
    <copyright>Alex Feinman</copyright>
    <lastBuildDate>Wed, 29 Oct 2008 17:41:37 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 2.3.9074.18820</generator>
    <managingEditor>alex@remuv-this-no-spam.alexfeinman.com</managingEditor>
    <webMaster>alex@remuv-this-no-spam.alexfeinman.com</webMaster>
    <item>
      <trackback:ping>http://blog.opennetcf.com/afeinman/Trackback.aspx?guid=15855efe-824d-4c23-b5d0-b6ff241447cf</trackback:ping>
      <pingback:server>http://blog.opennetcf.com/afeinman/pingback.aspx</pingback:server>
      <pingback:target>http://blog.opennetcf.com/afeinman/PermaLink,guid,15855efe-824d-4c23-b5d0-b6ff241447cf.aspx</pingback:target>
      <dc:creator>
      </dc:creator>
      <wfw:comment>http://blog.opennetcf.com/afeinman/CommentView,guid,15855efe-824d-4c23-b5d0-b6ff241447cf.aspx</wfw:comment>
      <wfw:commentRss>http://blog.opennetcf.com/afeinman/SyndicationService.asmx/GetEntryCommentsRss?guid=15855efe-824d-4c23-b5d0-b6ff241447cf</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Now that we know how to acquire authentication ticket from Windows Live, we can put
it to work accessing the user's contact list. In general a number of requests to the
Live Services follow a common pattern. It is an HTTP(s) request to <font color="#a31515" size="2"><font color="#a31515" size="2"><a href="https://cumulus.services.live.com/{user identity}/{Service}/">https://cumulus.services.live.com/{user
identity}/{Service}/</a></font></font></p>
        <p>
          <font color="#a31515" size="2">
            <font color="#a31515" size="2">Depending on the operation
the request could be GET, PUT, DELETE, POST or other. User identity is the email address
that is the Windows Live ID. Service can be one of the supported services. E.g. for
contacts it is <em>LiveContacts</em>.</font>
          </font>
        </p>
        <p>
          <font color="#a31515" size="2">
            <font color="#a31515" size="2">In order to provide
the authentication ticket to the server the caller needs to include a custom HTTP
header - "Authorization" and set its value to WLID1.0 t="{base64 auth ticket}" where
{base64 auth ticket} is <a href="http://blog.opennetcf.com/afeinman/PermaLink,guid,80ea4a1d-fbc0-485d-a088-fb8f30efb6ab.aspx">the
ticket retrieved from the authentication server</a>.</font>
          </font>
        </p>
        <font color="#a31515" size="2">
          <font color="#a31515" size="2">
            <p>
              <span style="FONT-SIZE: 11px; COLOR: black; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">
                <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">string</span> url <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">=</span><span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4">"https://cumulus.services.live.com/{0}/LiveContacts/"</span>;<br />
url <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">=</span><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">string</span>.Format(url,
userID);<br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">string</span> result <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">=</span> SendHttpRequest(<span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">ref</span> url, <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">string</span>.Format(<span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4">"WLID1.0
t=\"{0}\""</span>,ticket), <span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4">"GET"</span>,
System.Net.HttpStatusCode.OK, <span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4">""</span>, <span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4">""</span>, <span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4">""</span>);<br />
XmlDocument docContacts <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">=</span><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">new</span> XmlDocument();<br />
docContacts.LoadXml(result);</span>
            </p>
            <p>
              <span style="FONT-SIZE: 11px; COLOR: black; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">
                <font face="Verdana" size="2">The
code above will retrieve the entire contact list as described <a href="http://msdn.microsoft.com/en-us/library/bb463933.aspx">here</a>.</font>
              </span>
            </p>
            <p>
              <span style="FONT-SIZE: 11px; COLOR: black; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">
                <font face="Verdana" size="2">In
order to create a contact, a POST to <a href="https://cumulus.services.live.com/{user identity}/LiveContacts/">https://cumulus.services.live.com/{user
identity}/LiveContacts/</a>Contacts is required. The post contents should be an xml
message formatted in accordance with Live contacts schema and having appropriate fields
filled in. It is wort mentioning that WindowsLiveID field is not just an email address.
It has to be a valid Live ID. Another thing to keep in mind is that almost any content-related
error will cause HTTP code 403 (supposedly, for security reasons).</font>
              </span>
            </p>
            <p>
              <span style="FONT-SIZE: 11px; COLOR: black; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">
                <font face="Verdana" size="2">To
delete a contact a DELETE verb is used. In order to indetify the contact being deleted
or updated the application should use contact GUID provided in the ID tag:</font>
              </span>
            </p>
            <span style="FONT-SIZE: 11px; COLOR: black; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">
              <font color="#0000ff">
                <font color="#0000ff">
                  <p>
                    <font size="2">&lt;</font>
                  </p>
                </font>
              </font>
              <font color="#a31515">
                <font color="#a31515" size="2">Contact</font>
              </font>
              <font size="2">
                <font color="#0000ff">
                  <font color="#0000ff">&gt;<br />
   &lt;</font>
                </font>
                <font color="#a31515">
                  <font color="#a31515">ID</font>
                </font>
                <font color="#0000ff">
                  <font color="#0000ff">&gt;</font>
                </font>
                <font color="#0000ff">
                  <strong>ead5572c-9c61-43a2-b71f-f2412e283598</strong>
                </font>
                <font color="#0000ff">
                  <font color="#0000ff">&lt;/</font>
                </font>
                <font color="#a31515">
                  <font color="#a31515">ID</font>
                </font>
              </font>
              <font size="2">
                <font color="#0000ff">
                  <font color="#0000ff">&gt;<br />
   &lt;</font>
                </font>
                <font color="#a31515">
                  <font color="#a31515">AutoUpdateEnabled</font>
                </font>
                <font color="#0000ff">
                  <font color="#0000ff">&gt;</font>
                </font>false<font color="#0000ff"><font color="#0000ff">&lt;/</font></font><font color="#a31515"><font color="#a31515">AutoUpdateEnabled</font></font></font>
              <font size="2">
                <font color="#0000ff">
                  <font color="#0000ff">&gt;<br />
   &lt;</font>
                </font>
                <font color="#a31515">
                  <font color="#a31515">LastChanged</font>
                </font>
                <font color="#0000ff">
                  <font color="#0000ff">&gt;</font>
                </font>2007-11-19T20:26:57.2230000Z<font color="#0000ff"><font color="#0000ff">&lt;/</font></font><font color="#a31515"><font color="#a31515">LastChanged</font></font></font>
              <font size="2">
                <font color="#0000ff">
                  <font color="#0000ff">&gt;<br />
   &lt;</font>
                </font>
                <font color="#a31515">
                  <font color="#a31515">Profiles</font>
                </font>
              </font>
              <font size="2">
                <font color="#0000ff">
                  <font color="#0000ff">&gt;<br />
      &lt;</font>
                </font>
                <font color="#a31515">
                  <font color="#a31515">Personal</font>
                </font>
              </font>
              <font size="2">
                <font color="#0000ff">
                  <font color="#0000ff">&gt;<br />
         &lt;</font>
                </font>
                <font color="#a31515">
                  <font color="#a31515">FirstName</font>
                </font>
                <font color="#0000ff">
                  <font color="#0000ff">&gt;</font>
                </font>Alex<font color="#0000ff"><font color="#0000ff">&lt;/</font></font><font color="#a31515"><font color="#a31515">FirstName</font></font></font>
              <font size="2">
                <font color="#0000ff">
                  <font color="#0000ff">&gt;<br />
         &lt;</font>
                </font>
                <font color="#a31515">
                  <font color="#a31515">LastName</font>
                </font>
                <font color="#0000ff">
                  <font color="#0000ff">&gt;</font>
                </font>Feinman<font color="#0000ff"><font color="#0000ff">&lt;/</font></font><font color="#a31515"><font color="#a31515">LastName</font></font></font>
              <font size="2">
                <font color="#0000ff">
                  <font color="#0000ff">&gt;<br />
         </font>
                </font>
                <font color="#0000ff">
                  <font color="#0000ff">&lt;</font>
                </font>
                <font color="#a31515">
                  <font color="#a31515">Gender</font>
                </font>
                <font color="#0000ff">
                  <font color="#0000ff">&gt;</font>
                </font>Male<font color="#0000ff"><font color="#0000ff">&lt;/</font></font><font color="#a31515"><font color="#a31515">Gender</font></font></font>
              <font size="2">
                <font color="#0000ff">
                  <font color="#0000ff">&gt;<br />
      </font>
                </font>
                <font color="#0000ff">
                  <font color="#0000ff">&lt;/</font>
                </font>
                <font color="#a31515">
                  <font color="#a31515">Personal</font>
                </font>
              </font>
              <font size="2">
                <font color="#0000ff">
                  <font color="#0000ff">&gt;<br />
   &lt;/</font>
                </font>
                <font color="#a31515">
                  <font color="#a31515">Profiles</font>
                </font>
              </font>
              <font size="2">
                <font color="#0000ff">
                  <font color="#0000ff">&gt;<br /></font>
                </font>
                <font color="#0000ff">
                  <font color="#0000ff">&lt;/</font>
                </font>
                <font color="#a31515">
                  <font color="#a31515">Contact</font>
                </font>
              </font>
              <font color="#0000ff">
                <font color="#0000ff">
                  <font size="2">&gt;</font>
                  <p>
                    <font face="Verdana" color="#000000" size="2">The post url will look like this:</font>
                  </p>
                  <font face="Verdana" color="#000000">
                  </font>
                  <font color="#a31515">
                    <font color="#a31515">
                      <p>
                        <a href="https://cumulus.services.live.com/someone@example.com/LiveContacts/contacts/Contact(ead5572c-9c61-43a2-b71f-f2412e283598">
                          <font size="2">https://cumulus.services.live.com/someone@example.com/LiveContacts/contacts/Contact(<strong><font color="#0000ff">ead5572c-9c61-43a2-b71f-f2412e283598
</font></strong></font>
                        </a>
                      </p>
                    </font>)</font>
                  <p>
                  </p>
                </font>
              </font>
            </span>
          </font>
        </font>
        <font face="Verdana" size="2">Same url format is using for updates.
Keep in mind that to update data you need to use PUT verb.</font>
        <br />
        <img width="0" height="0" src="http://blog.opennetcf.com/afeinman/aggbug.ashx?id=15855efe-824d-4c23-b5d0-b6ff241447cf" />
      </body>
      <title>Accessing Windows Live Services from Compact .NET Framework applications - Part II, Contacts</title>
      <guid isPermaLink="false">http://blog.opennetcf.com/afeinman/PermaLink,guid,15855efe-824d-4c23-b5d0-b6ff241447cf.aspx</guid>
      <link>http://blog.opennetcf.com/afeinman/PermaLink,guid,15855efe-824d-4c23-b5d0-b6ff241447cf.aspx</link>
      <pubDate>Wed, 29 Oct 2008 17:41:37 GMT</pubDate>
      <description>&lt;p&gt;
Now that we know how to acquire authentication ticket from Windows Live, we can put
it to work accessing the user's contact list. In general a number of requests to the
Live Services follow a common pattern. It is an HTTP(s) request to &lt;font color=#a31515 size=2&gt;&lt;font color=#a31515 size=2&gt;&lt;a href="https://cumulus.services.live.com/{user identity}/{Service}/"&gt;https://cumulus.services.live.com/{user
identity}/{Service}/&lt;/a&gt;&lt;/font&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#a31515 size=2&gt;&lt;font color=#a31515 size=2&gt;Depending on the operation the
request could be GET, PUT, DELETE, POST or other. User identity is the email address
that is the Windows Live ID. Service can be one of the supported services. E.g. for
contacts it is &lt;em&gt;LiveContacts&lt;/em&gt;.&lt;/font&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#a31515 size=2&gt;&lt;font color=#a31515 size=2&gt;In order to provide the authentication
ticket to the server the caller needs to include a custom HTTP header - "Authorization"
and set its value to WLID1.0 t="{base64 auth ticket}" where {base64 auth ticket} is &lt;a href="http://blog.opennetcf.com/afeinman/PermaLink,guid,80ea4a1d-fbc0-485d-a088-fb8f30efb6ab.aspx"&gt;the
ticket retrieved from the authentication server&lt;/a&gt;.&lt;/font&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;font color=#a31515 size=2&gt;&lt;font color=#a31515 size=2&gt; 
&lt;p&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: black; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;string&lt;/span&gt; url &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;=&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4"&gt;"https://cumulus.services.live.com/{0}/LiveContacts/"&lt;/span&gt;;&lt;br&gt;
url &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;=&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;string&lt;/span&gt;.Format(url,
userID);&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;string&lt;/span&gt; result &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;=&lt;/span&gt; SendHttpRequest(&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;ref&lt;/span&gt; url, &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;string&lt;/span&gt;.Format(&lt;span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4"&gt;"WLID1.0
t=\"{0}\""&lt;/span&gt;,ticket), &lt;span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4"&gt;"GET"&lt;/span&gt;,
System.Net.HttpStatusCode.OK, &lt;span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4"&gt;""&lt;/span&gt;, &lt;span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4"&gt;""&lt;/span&gt;, &lt;span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4"&gt;""&lt;/span&gt;);&lt;br&gt;
XmlDocument docContacts &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;=&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;new&lt;/span&gt; XmlDocument();&lt;br&gt;
docContacts.LoadXml(result);&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: black; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;&lt;font face=Verdana size=2&gt;The
code above will retrieve the entire contact list as described &lt;a href="http://msdn.microsoft.com/en-us/library/bb463933.aspx"&gt;here&lt;/a&gt;.&lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: black; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;&lt;font face=Verdana size=2&gt;In
order to create a contact, a POST to &lt;a href="https://cumulus.services.live.com/{user identity}/LiveContacts/"&gt;https://cumulus.services.live.com/{user
identity}/LiveContacts/&lt;/a&gt;Contacts is required. The post contents should be an xml
message formatted in accordance with Live contacts schema and having appropriate fields
filled in. It is wort mentioning that WindowsLiveID field is not just an email address.
It has to be a valid Live ID. Another thing to keep in mind is that almost any content-related
error will cause HTTP code 403 (supposedly, for security reasons).&lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: black; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;&lt;font face=Verdana size=2&gt;To
delete a contact a DELETE verb is used. In order to indetify the contact being deleted
or updated the application should use contact GUID provided in the ID tag:&lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: black; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;&lt;font color=#0000ff&gt;&lt;font color=#0000ff&gt; 
&lt;p&gt;
&lt;font size=2&gt;&amp;lt;&lt;/font&gt;
&lt;/font&gt;&lt;/font&gt;&lt;font color=#a31515&gt;&lt;font color=#a31515 size=2&gt;Contact&lt;/font&gt;&lt;/font&gt;&lt;font size=2&gt;&lt;font color=#0000ff&gt;&lt;font color=#0000ff&gt;&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font color=#a31515&gt;&lt;font color=#a31515&gt;ID&lt;/font&gt;&lt;/font&gt;&lt;font color=#0000ff&gt;&lt;font color=#0000ff&gt;&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;font color=#0000ff&gt;&lt;strong&gt;ead5572c-9c61-43a2-b71f-f2412e283598&lt;/strong&gt;&lt;/font&gt;&lt;font color=#0000ff&gt;&lt;font color=#0000ff&gt;&amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;font color=#a31515&gt;&lt;font color=#a31515&gt;ID&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size=2&gt;&lt;font color=#0000ff&gt;&lt;font color=#0000ff&gt;&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font color=#a31515&gt;&lt;font color=#a31515&gt;AutoUpdateEnabled&lt;/font&gt;&lt;/font&gt;&lt;font color=#0000ff&gt;&lt;font color=#0000ff&gt;&amp;gt;&lt;/font&gt;&lt;/font&gt;false&lt;font color=#0000ff&gt;&lt;font color=#0000ff&gt;&amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;font color=#a31515&gt;&lt;font color=#a31515&gt;AutoUpdateEnabled&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size=2&gt;&lt;font color=#0000ff&gt;&lt;font color=#0000ff&gt;&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font color=#a31515&gt;&lt;font color=#a31515&gt;LastChanged&lt;/font&gt;&lt;/font&gt;&lt;font color=#0000ff&gt;&lt;font color=#0000ff&gt;&amp;gt;&lt;/font&gt;&lt;/font&gt;2007-11-19T20:26:57.2230000Z&lt;font color=#0000ff&gt;&lt;font color=#0000ff&gt;&amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;font color=#a31515&gt;&lt;font color=#a31515&gt;LastChanged&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size=2&gt;&lt;font color=#0000ff&gt;&lt;font color=#0000ff&gt;&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font color=#a31515&gt;&lt;font color=#a31515&gt;Profiles&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size=2&gt;&lt;font color=#0000ff&gt;&lt;font color=#0000ff&gt;&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font color=#a31515&gt;&lt;font color=#a31515&gt;Personal&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size=2&gt;&lt;font color=#0000ff&gt;&lt;font color=#0000ff&gt;&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font color=#a31515&gt;&lt;font color=#a31515&gt;FirstName&lt;/font&gt;&lt;/font&gt;&lt;font color=#0000ff&gt;&lt;font color=#0000ff&gt;&amp;gt;&lt;/font&gt;&lt;/font&gt;Alex&lt;font color=#0000ff&gt;&lt;font color=#0000ff&gt;&amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;font color=#a31515&gt;&lt;font color=#a31515&gt;FirstName&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size=2&gt;&lt;font color=#0000ff&gt;&lt;font color=#0000ff&gt;&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font color=#a31515&gt;&lt;font color=#a31515&gt;LastName&lt;/font&gt;&lt;/font&gt;&lt;font color=#0000ff&gt;&lt;font color=#0000ff&gt;&amp;gt;&lt;/font&gt;&lt;/font&gt;Feinman&lt;font color=#0000ff&gt;&lt;font color=#0000ff&gt;&amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;font color=#a31515&gt;&lt;font color=#a31515&gt;LastName&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size=2&gt;&lt;font color=#0000ff&gt;&lt;font color=#0000ff&gt;&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;/font&gt;&lt;font color=#0000ff&gt;&lt;font color=#0000ff&gt;&amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font color=#a31515&gt;&lt;font color=#a31515&gt;Gender&lt;/font&gt;&lt;/font&gt;&lt;font color=#0000ff&gt;&lt;font color=#0000ff&gt;&amp;gt;&lt;/font&gt;&lt;/font&gt;Male&lt;font color=#0000ff&gt;&lt;font color=#0000ff&gt;&amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;font color=#a31515&gt;&lt;font color=#a31515&gt;Gender&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size=2&gt;&lt;font color=#0000ff&gt;&lt;font color=#0000ff&gt;&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;/font&gt;&lt;font color=#0000ff&gt;&lt;font color=#0000ff&gt;&amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;font color=#a31515&gt;&lt;font color=#a31515&gt;Personal&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size=2&gt;&lt;font color=#0000ff&gt;&lt;font color=#0000ff&gt;&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;font color=#a31515&gt;&lt;font color=#a31515&gt;Profiles&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size=2&gt;&lt;font color=#0000ff&gt;&lt;font color=#0000ff&gt;&amp;gt;&lt;br&gt;
&lt;/font&gt;&lt;/font&gt;&lt;font color=#0000ff&gt;&lt;font color=#0000ff&gt;&amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;font color=#a31515&gt;&lt;font color=#a31515&gt;Contact&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color=#0000ff&gt;&lt;font color=#0000ff&gt;&lt;font size=2&gt;&amp;gt;&lt;/font&gt;&gt;
&lt;p&gt;
&lt;font face=Verdana color=#000000 size=2&gt;The post url will look like this:&lt;/font&gt;
&lt;/p&gt;
&lt;font face=Verdana color=#000000&gt;&lt;/font&gt;&lt;font color=#a31515&gt;&lt;font color=#a31515&gt; 
&lt;p&gt;
&lt;a href="https://cumulus.services.live.com/someone@example.com/LiveContacts/contacts/Contact(ead5572c-9c61-43a2-b71f-f2412e283598"&gt;&lt;font size=2&gt;https://cumulus.services.live.com/someone@example.com/LiveContacts/contacts/Contact(&lt;strong&gt;&lt;font color=#0000ff&gt;ead5572c-9c61-43a2-b71f-f2412e283598
&lt;/a&gt;
&lt;/font&gt;&gt;)&lt;/font&gt;&gt;
&lt;p&gt;
&lt;/font&gt;&lt;/font&gt;
&lt;/font&gt;&lt;/font&gt;&lt;font face=Verdana size=2&gt;Same url format is using for updates. Keep
in mind that to update data you need to use PUT verb.&lt;/font&gt;
&lt;br&gt;
&gt;
&gt;&gt;&gt;&lt;img width="0" height="0" src="http://blog.opennetcf.com/afeinman/aggbug.ashx?id=15855efe-824d-4c23-b5d0-b6ff241447cf" /&gt;</description>
      <comments>http://blog.opennetcf.com/afeinman/CommentView,guid,15855efe-824d-4c23-b5d0-b6ff241447cf.aspx</comments>
      <category>.Net technology</category>
      <category>Code</category>
      <category>Computers</category>
      <category>Microsoft</category>
    </item>
    <item>
      <trackback:ping>http://blog.opennetcf.com/afeinman/Trackback.aspx?guid=80ea4a1d-fbc0-485d-a088-fb8f30efb6ab</trackback:ping>
      <pingback:server>http://blog.opennetcf.com/afeinman/pingback.aspx</pingback:server>
      <pingback:target>http://blog.opennetcf.com/afeinman/PermaLink,guid,80ea4a1d-fbc0-485d-a088-fb8f30efb6ab.aspx</pingback:target>
      <dc:creator>
      </dc:creator>
      <wfw:comment>http://blog.opennetcf.com/afeinman/CommentView,guid,80ea4a1d-fbc0-485d-a088-fb8f30efb6ab.aspx</wfw:comment>
      <wfw:commentRss>http://blog.opennetcf.com/afeinman/SyndicationService.asmx/GetEntryCommentsRss?guid=80ea4a1d-fbc0-485d-a088-fb8f30efb6ab</wfw:commentRss>
      <title>Accessing Windows Live Services from Compact .NET Framework applications - Part I, Authentication</title>
      <guid isPermaLink="false">http://blog.opennetcf.com/afeinman/PermaLink,guid,80ea4a1d-fbc0-485d-a088-fb8f30efb6ab.aspx</guid>
      <link>http://blog.opennetcf.com/afeinman/PermaLink,guid,80ea4a1d-fbc0-485d-a088-fb8f30efb6ab.aspx</link>
      <pubDate>Wed, 29 Oct 2008 16:13:32 GMT</pubDate>
      <description>&lt;p&gt;
&lt;span style="FONT-SIZE: 10pt; COLOR: #003300; FONT-FAMILY: 'Verdana','sans-serif'"&gt;Windows
Live Services is an infrastructure (I am trying to avoid words like 'ecosystem') that
provides multiple services (contacts, photo albums, blogs, web storage, mail etc)
available via federated authentication mechanism. While the majority of these services
are exposed to the user as web pages, they are also available to regular applications.
Microsoft own such as LIve Mail, Live Writer, Live Gallery as well as 3rd party via&amp;nbsp; &lt;a href="http://msdn.microsoft.com/en-us/library/bb264574.aspx"&gt;&lt;font color=#0000ff&gt;Live
Services SDK&lt;/font&gt;&lt;/a&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;.
I am going to provide a short&amp;nbsp;introduction on accessing some of the Live Services
programmatically from Compact .NET Framework applications.&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span style="FONT-SIZE: 10pt; COLOR: #003300; FONT-FAMILY: 'Verdana','sans-serif'"&gt;The
starting point of any Live Services interaction being authenticating the user, it
is only natural that Microsoft has provided a .&lt;a href="http://msdn.microsoft.com/en-us/library/bb404791.aspx"&gt;NET
component that handles the authentication for applications&lt;/a&gt;. This component however
is offered only for desktop applications. Nevertheless behind every Live Service interaction
there is a web request of a sort, which suggests that it can be emulated using NETCF
code. While there are several authentication options available in Windows Live, there
is just one that is really suitable for smart clients - RPS (Relying Party Suites).
Underneath it is simply an HTTP POST of some XML data over secure channel. Upon successful
request the application receives an encoded authentication ticket valid typically
for 24 hours (the exact expiration time is provided with the ticket). To request the
ticket an application sends XML message to &lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: #a31515; FONT-FAMILY: 'Verdana','sans-serif'"&gt;&lt;a href="https://dev.login.live.com/wstlogin.srf"&gt;&lt;font color=#0000ff&gt;https://dev.login.live.com/wstlogin.srf&lt;/font&gt;&lt;/a&gt;.
The message uses content type "application/soap+xml" and looks like this:&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: #003300; FONT-FAMILY: 'Verdana','sans-serif'"&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;&amp;lt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: #a31515; FONT-FAMILY: 'Courier New'"&gt;s:Envelope&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: red; FONT-FAMILY: 'Courier New'"&gt;xmlns:s&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt; = &lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;"&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;http://www.w3.org/2003/05/soap-envelope&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;"&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: red; FONT-FAMILY: 'Courier New'"&gt;xmlns:wsse&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt; = &lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;"&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;"&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: red; FONT-FAMILY: 'Courier New'"&gt;xmlns:saml&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt; = &lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;"&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;urn:oasis:names:tc:SAML:1.0:assertion&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;"&amp;nbsp;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: red; FONT-FAMILY: 'Courier New'"&gt;xmlns:wsp&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt; = &lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;"&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;http://schemas.xmlsoap.org/ws/2004/09/policy&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;"&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: red; FONT-FAMILY: 'Courier New'"&gt;xmlns:wsu&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt; = &lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;"&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;"&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: red; FONT-FAMILY: 'Courier New'"&gt;xmlns:wsa&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt; = &lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;"&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;http://www.w3.org/2005/08/addressing&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;"&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: red; FONT-FAMILY: 'Courier New'"&gt;xmlns:wssc&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt; = &lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;"&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;http://schemas.xmlsoap.org/ws/2005/02/sc&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;"&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: red; FONT-FAMILY: 'Courier New'"&gt;xmlns:wst&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt; = &lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;"&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;http://schemas.xmlsoap.org/ws/2005/02/trust&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;"&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;&amp;gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Verdana','sans-serif'"&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;&amp;lt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: #a31515; FONT-FAMILY: 'Courier New'"&gt;s:Header&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: #a31515; FONT-FAMILY: 'Courier New'"&gt;wlid:ClientInfo&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: red; FONT-FAMILY: 'Courier New'"&gt;xmlns:wlid&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt; = &lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;"&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;http://schemas.microsoft.com/wlid&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;"&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: #a31515; FONT-FAMILY: 'Courier New'"&gt;wlid:ApplicationID&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;&amp;gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;10&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: #a31515; FONT-FAMILY: 'Courier New'"&gt;wlid:ApplicationID&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: #a31515; FONT-FAMILY: 'Courier New'"&gt;wlid:ClientInfo&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: #a31515; FONT-FAMILY: 'Courier New'"&gt;wsa:Action&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: red; FONT-FAMILY: 'Courier New'"&gt;s:mustUnderstand&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt; = &lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;"&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;1&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;"&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;&amp;gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;http://schemas.xmlsoap.org/ws/2005/02/trust/RST/Issue&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: #a31515; FONT-FAMILY: 'Courier New'"&gt;wsa:Action&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: #a31515; FONT-FAMILY: 'Courier New'"&gt;wsa:To&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: red; FONT-FAMILY: 'Courier New'"&gt;s:mustUnderstand&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt; = &lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;"&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;1&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;"&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;&amp;gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;https://dev.login.live.com/wstlogin.srf&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: #a31515; FONT-FAMILY: 'Courier New'"&gt;wsa:To&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: #a31515; FONT-FAMILY: 'Courier New'"&gt;wsse:Security&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: #a31515; FONT-FAMILY: 'Courier New'"&gt;wsse:UsernameToken&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: red; FONT-FAMILY: 'Courier New'"&gt;wsu:Id&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt; = &lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;"&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;user&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;"&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: #a31515; FONT-FAMILY: 'Courier New'"&gt;wsse:Username&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;&amp;gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;example@live.com&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: #a31515; FONT-FAMILY: 'Courier New'"&gt;wsse:Username&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: #a31515; FONT-FAMILY: 'Courier New'"&gt;wsse:Password&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;&amp;gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;S3cr3t&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: #a31515; FONT-FAMILY: 'Courier New'"&gt;wsse:Password&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: #a31515; FONT-FAMILY: 'Courier New'"&gt;wsse:UsernameToken&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: #a31515; FONT-FAMILY: 'Courier New'"&gt;wsse:Security&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;&amp;gt;&lt;br&gt;
&amp;lt;/&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: #a31515; FONT-FAMILY: 'Courier New'"&gt;s:Header&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;&amp;gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Verdana','sans-serif'"&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;&amp;lt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: #a31515; FONT-FAMILY: 'Courier New'"&gt;s:Body&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: #a31515; FONT-FAMILY: 'Courier New'"&gt;wst:RequestSecurityToken&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: red; FONT-FAMILY: 'Courier New'"&gt;Id&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt; = &lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;"&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;RST0&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;"&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: #a31515; FONT-FAMILY: 'Courier New'"&gt;wst:RequestType&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;&amp;gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;http://schemas.xmlsoap.org/ws/2005/02/trust/Issue&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: #a31515; FONT-FAMILY: 'Courier New'"&gt;wst:RequestType&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: #a31515; FONT-FAMILY: 'Courier New'"&gt;wsp:AppliesTo&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: #a31515; FONT-FAMILY: 'Courier New'"&gt;wsa:EndpointReference&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: #a31515; FONT-FAMILY: 'Courier New'"&gt;wsa:Address&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;&amp;gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;http://live.com&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: #a31515; FONT-FAMILY: 'Courier New'"&gt;wsa:Address&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: #a31515; FONT-FAMILY: 'Courier New'"&gt;wsa:EndpointReference&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: #a31515; FONT-FAMILY: 'Courier New'"&gt;wsp:AppliesTo&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: #a31515; FONT-FAMILY: 'Courier New'"&gt;wsp:PolicyReference&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: red; FONT-FAMILY: 'Courier New'"&gt;URI&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt; = &lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;"&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;MBI&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;"&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: #a31515; FONT-FAMILY: 'Courier New'"&gt;wsp:PolicyReference&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: #a31515; FONT-FAMILY: 'Courier New'"&gt;wst:RequestSecurityToken&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;&amp;gt;&lt;br&gt;
&amp;lt;/&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: #a31515; FONT-FAMILY: 'Courier New'"&gt;s:Body&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;&amp;gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Verdana','sans-serif'"&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: #a31515; FONT-FAMILY: 'Courier New'"&gt;s:Envelope&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;&amp;gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: #a31515; FONT-FAMILY: 'Verdana','sans-serif'"&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Verdana','sans-serif'"&gt;Naturally,
in the above XML the wsse:Username and wsse:Password will have to be substituted with
actual user-provided credentials. In response we expect a standard SOAP message that
has action set to &lt;a href="http://schemas.xmlsoap.org/ws/2005/02/trust/RSTR/Issue"&gt;&lt;font color=#0000ff&gt;http://schemas.xmlsoap.org/ws/2005/02/trust/RSTR/Issue&lt;/font&gt;&lt;/a&gt;.
In the body of this message of particular interest are the following parts:&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: #a31515; FONT-FAMILY: 'Verdana','sans-serif'"&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;&amp;lt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: #a31515; FONT-FAMILY: 'Courier New'"&gt;wst:Lifetime&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: #a31515; FONT-FAMILY: 'Courier New'"&gt;wsu:Created&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;&amp;gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;2008-10-29T14:38:23Z&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: #a31515; FONT-FAMILY: 'Courier New'"&gt;wsu:Created&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: #a31515; FONT-FAMILY: 'Courier New'"&gt;wsu:Expires&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;&amp;gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;2008-10-29T22:38:23Z&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: #a31515; FONT-FAMILY: 'Courier New'"&gt;wsu:Expires&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;&amp;gt;&lt;br&gt;
&amp;lt;/&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: #a31515; FONT-FAMILY: 'Courier New'"&gt;wst:Lifetime&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Verdana','sans-serif'"&gt;and &lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: #a31515; FONT-FAMILY: 'Verdana','sans-serif'"&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Verdana','sans-serif'"&gt;&amp;lt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: #a31515; FONT-FAMILY: 'Verdana','sans-serif'"&gt;wst:RequestedSecurityToken&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Verdana','sans-serif'"&gt;&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: #a31515; FONT-FAMILY: 'Verdana','sans-serif'"&gt;wsse:BinarySecurityToken&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Verdana','sans-serif'"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: red; FONT-FAMILY: 'Verdana','sans-serif'"&gt;Id&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Verdana','sans-serif'"&gt;=&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Verdana','sans-serif'"&gt;"&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Verdana','sans-serif'"&gt;Compact0&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Verdana','sans-serif'"&gt;"&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Verdana','sans-serif'"&gt;&amp;gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Verdana','sans-serif'"&gt;t=[very
long Base64-encoded string here]&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Verdana','sans-serif'"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: #a31515; FONT-FAMILY: 'Verdana','sans-serif'"&gt;wsse:BinarySecurityToken&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Verdana','sans-serif'"&gt;&amp;gt;&lt;br&gt;
&amp;lt;/&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: #a31515; FONT-FAMILY: 'Verdana','sans-serif'"&gt;wst:RequestedSecurityToken&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Verdana','sans-serif'"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Verdana','sans-serif'"&gt;The
former tells us the ticket validity time range. There is no need to reacquire a ticket
until Expires date. The latter contains the actual ticket. Notice that while it has
a format &lt;em&gt;&lt;span style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;t=IKnvriu73nf...&lt;/span&gt;&lt;/em&gt;,
the actual requests sent later to the Live servers will require the Base64 part to
be quoted like this: &lt;em&gt;&lt;span style="FONT-FAMILY: 'Verdana','sans-serif'"&gt;t="IKnvriu73nf..."&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Verdana','sans-serif'"&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Verdana','sans-serif'"&gt;Of
course the application should be prepared to deal with authentication failures. A
logon failure (bad password) will result in a message that looks like this:&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Verdana','sans-serif'"&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp; &amp;lt;S:Body&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;S:Fault&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;S:Code&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;S:Value&amp;gt;S:Sender&amp;lt;/S:Value&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;S:Subcode&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;S:Value&amp;gt;wst:FailedAuthentication&amp;lt;/S:Value&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/S:Subcode&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/S:Code&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;S:Reason&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;S:Text xml:lang="en-US"&amp;gt;Authentication
Failure&amp;lt;/S:Text&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/S:Reason&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;S:Detail&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;psf:error&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;psf:value&amp;gt;0x80048821&amp;lt;/psf:value&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;psf:internalerror&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;psf:code&amp;gt;0x80041012&amp;lt;/psf:code&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;psf:text&amp;gt;The
entered and stored passwords do not match.&amp;lt;/psf:text&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/psf:internalerror&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/psf:error&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/S:Detail&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/S:Fault&amp;gt;&lt;br&gt;
&amp;nbsp; &amp;lt;/S:Body&amp;gt;&lt;br&gt;
&amp;lt;/S:Envelope&amp;gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Verdana','sans-serif'"&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Verdana','sans-serif'"&gt;Notice
that it conveniently includes human-readable failure reason as well as a hex error
code.&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Verdana','sans-serif'"&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Verdana','sans-serif'"&gt;&lt;font color=#000000&gt;The
code&amp;nbsp;to request the ticket would look like this (sans error handling):&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: black; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;public&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;static&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;string&lt;/span&gt; AcquireTicket(&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;string&lt;/span&gt; userName, &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;string&lt;/span&gt; password)&lt;br&gt;
{&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;const&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;string&lt;/span&gt; url &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;=&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4"&gt;@"https://dev.login.live.com/wstlogin.srf"&lt;/span&gt;;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;HttpWebRequest request &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;=&lt;/span&gt; WebRequest.Create(url)&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;as&lt;/span&gt; HttpWebRequest
;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;request.Method &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;=&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4"&gt;"POST"&lt;/span&gt;;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;request.ContentType &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;=&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4"&gt;"application/soap+xml;
charset=UTF-8"&lt;/span&gt;;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;request.Timeout &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;=&lt;/span&gt; 10 &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;*&lt;/span&gt; 1000; &lt;span style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;//
Wait for at most 10 seconds&lt;/span&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;byte&lt;/span&gt;[]
bytes &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;=&lt;/span&gt; System.Text.Encoding.UTF8.GetBytes(&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;string&lt;/span&gt;.Format(
soapEnvelope, userName, password));&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;request.ContentLength &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;=&lt;/span&gt; bytes.Length;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;Stream reqStream &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;=&lt;/span&gt; request.GetRequestStream();&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;reqStream.Write(bytes, 0, bytes.Length);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;reqStream.Close();&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;WebResponse response;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;response &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;=&lt;/span&gt; request.GetResponse();&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;string&lt;/span&gt; xml;&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;using&lt;/span&gt; (System.IO.StreamReader
reader &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;=&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;new&lt;/span&gt; System.IO.StreamReader(response.GetResponseStream()))&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;xml &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;=&lt;/span&gt; reader.ReadToEnd();&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;response.Close();&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;XmlDocument document &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;=&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;new&lt;/span&gt; XmlDocument();&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;document.LoadXml(xml);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;XmlNamespaceManager nsManager &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;=&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;new&lt;/span&gt; XmlNamespaceManager(document.NameTable);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;nsManager.AddNamespace(&lt;span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4"&gt;"wsse"&lt;/span&gt;, &lt;span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4"&gt;"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"&lt;/span&gt;);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;XmlNode node &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;=&lt;/span&gt; document.SelectSingleNode(&lt;span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4"&gt;@"//wsse:BinarySecurityToken/text()"&lt;/span&gt;,
nsManager);&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&lt;/span&gt; (node
== &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;null&lt;/span&gt;)&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;null&lt;/span&gt;; &lt;span style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;//
The wsse:BinarySecurityToken element is missing. Examine the xml for error information&lt;/span&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;else&lt;/span&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&lt;/span&gt; node.Value;&lt;br&gt;
}&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;
&lt;o:p&gt;
&lt;font face=Calibri color=#000000 size=3&gt;To&amp;nbsp;be continued:&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.opennetcf.com/afeinman/aggbug.ashx?id=80ea4a1d-fbc0-485d-a088-fb8f30efb6ab" /&gt;</description>
      <comments>http://blog.opennetcf.com/afeinman/CommentView,guid,80ea4a1d-fbc0-485d-a088-fb8f30efb6ab.aspx</comments>
      <category>.Net technology</category>
      <category>Code</category>
      <category>Computers</category>
      <category>Microsoft</category>
    </item>
    <item>
      <trackback:ping>http://blog.opennetcf.com/afeinman/Trackback.aspx?guid=e6309045-3f60-4ec4-835f-34a7a98c3ab5</trackback:ping>
      <pingback:server>http://blog.opennetcf.com/afeinman/pingback.aspx</pingback:server>
      <pingback:target>http://blog.opennetcf.com/afeinman/PermaLink,guid,e6309045-3f60-4ec4-835f-34a7a98c3ab5.aspx</pingback:target>
      <dc:creator>
      </dc:creator>
      <wfw:comment>http://blog.opennetcf.com/afeinman/CommentView,guid,e6309045-3f60-4ec4-835f-34a7a98c3ab5.aspx</wfw:comment>
      <wfw:commentRss>http://blog.opennetcf.com/afeinman/SyndicationService.asmx/GetEntryCommentsRss?guid=e6309045-3f60-4ec4-835f-34a7a98c3ab5</wfw:commentRss>
      <slash:comments>3</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I was quite surprised to learn that apparently I have missed an important new feature
of Windows Mobile 6 (Professional)- <a href="http://msdn2.microsoft.com/en-us/library/bb431764.aspx">inking
and ink serialization support</a>. Gone are the days when a developer had to tinker
with oh-so-temperamental InkX control. Now everyone and his brother can take advantage
not only of high-quality precision ink support with smoothing and serialization, but
also of handwriting recognition built into Windows Mobile 6 Professional. To quote
the documentation - <em>"It provides a rich inking experience, through high quality
curve–fitted ink with anti-aliasing, transparent ink, and highlighter ink. It provides
an API for Ink collection, data management, rendering, and recognition. It also provides
Ink controls to support the note–taking scenario."</em></p>
        <p>
Another important feature is interoperability and serialized data format compatibility
with ink support on Tablet PC.
</p>
        <p>
While all of this is nice, there is slight bit of bad news - using this rich set of
goodies requires C++. There are 2 ways to use ink in Windows Mobile 6 - InkCanvas
control and an COM automation library. <a href="http://msdn2.microsoft.com/en-us/library/bb431715.aspx">InkCanvas
control </a>offers the ability to use a regular Win32 control (similar to InkX)
to write, highlight, collect ink etc via <a href="http://msdn2.microsoft.com/en-us/library/bb160710.aspx">a
set of Windows messages</a>. <a href="http://msdn2.microsoft.com/en-us/library/bb431732.aspx">COM
automation library </a>on the other hand allows accessing the entire set of features
offered by WISP. And there is no managed wrapper for the time being.
</p>
        <p>
As a public service, we at <a href="http://www.OpenNETCF.com">OpenNETCF.com</a> are
proud to offer <a href="http://www.opennetcf.com/downloads/download.aspx?s=OpenNETCF.WindowsMobile.Ink">WISPLite
managed wrapper</a>. The wrapper offers the entire WISPLite functionality (although
not every method of every interface has been tested). There is InkControl class, which
wraps InkCanvas, and a OpenNETCF.WindowsMobile.Ink namespace that contains imported
COM interfaces. Some of the interfaces do not wrap cleanly, so a bit of coding is
needed.
</p>
        <p>
Here is what the demo app looks like (warning, before running it, change line 132
in Form1.cs to be
</p>
        <font size="2">
          <p>
inkControl1.SetPenStyle((
</p>
        </font>
        <font color="#0000ff" size="2">float</font>
        <font size="2">)trackBar1.Value,
penColor, penType); )</font>
        <p>
          <img src="http://blog.opennetcf.org/afeinman/content/binary/InkDemo.png" border="0" />
        </p>
        <p>
Saving ink data to a file:
</p>
        <font size="2">
          <p>
          </p>
        </font>
        <font color="#0000ff" size="2">using</font>
        <font size="2"> (</font>
        <font color="#2b91af" size="2">SaveFileDialog</font>
        <font size="2"> fd
= </font>
        <font color="#0000ff" size="2">new</font>
        <font size="2">
        </font>
        <font color="#2b91af" size="2">SaveFileDialog</font>
        <font size="2">())<br />
{<br />
  fd.Filter = </font>
        <font color="#a31515" size="2">"Ink files (*.isf)|*.isf|All
files (*.*)|*.*"</font>
        <font size="2">;<br />
  </font>
        <font color="#0000ff" size="2">if</font>
        <font size="2"> (fd.ShowDialog()
== </font>
        <font color="#2b91af" size="2">DialogResult</font>
        <font size="2">.OK)<br />
  {<br />
    </font>
        <font color="#0000ff" size="2">byte</font>
        <font size="2">[]
data = (</font>
        <font color="#0000ff" size="2">byte</font>
        <font size="2">[])inkControl1.GetInkData(</font>
        <font color="#2b91af" size="2">IC_INKENCODING</font>
        <font size="2">.BINARY);<br /></font>
        <font color="#2b91af" size="2">
          <font color="#003300">    </font>FileStream</font>
        <font size="2"> stm
= </font>
        <font color="#2b91af" size="2">File</font>
        <font size="2">.OpenWrite(fd.FileName);<br />
    stm.Write(data, 0, data.Length);<br />
    stm.Close();<br />
  }<br />
}</font>
        <p>
          <font size="2">Getting ink as bitmap and retrieving recongnition result:</font>
        </p>
        <font size="2">
          <p>
pbPreview.Image = inkControl1.GetInkDataAsBitmap();<br />
lblReco.Text = inkControl1.RecognizedText;
</p>
        </font>
        <p>
          <font size="2">In conclusion I'd like to ask to report problems with this wrapper
to this blog's comments. 
</font>
        </p>
        <img width="0" height="0" src="http://blog.opennetcf.com/afeinman/aggbug.ashx?id=e6309045-3f60-4ec4-835f-34a7a98c3ab5" />
      </body>
      <title>WISPLite on Windows Mobile 6</title>
      <guid isPermaLink="false">http://blog.opennetcf.com/afeinman/PermaLink,guid,e6309045-3f60-4ec4-835f-34a7a98c3ab5.aspx</guid>
      <link>http://blog.opennetcf.com/afeinman/PermaLink,guid,e6309045-3f60-4ec4-835f-34a7a98c3ab5.aspx</link>
      <pubDate>Fri, 01 Jun 2007 21:20:22 GMT</pubDate>
      <description>&lt;p&gt;
I was quite surprised to learn that apparently I have missed an important new feature
of Windows Mobile 6 (Professional)- &lt;a href="http://msdn2.microsoft.com/en-us/library/bb431764.aspx"&gt;inking
and ink serialization support&lt;/a&gt;. Gone are the days when a developer had to tinker
with oh-so-temperamental InkX control. Now everyone and his brother can take advantage
not only of high-quality precision ink support with smoothing and serialization, but
also of handwriting recognition built into Windows Mobile 6 Professional. To quote
the documentation - &lt;em&gt;"It provides a rich inking experience, through high quality
curve–fitted ink with anti-aliasing, transparent ink, and highlighter ink. It provides
an API for Ink collection, data management, rendering, and recognition. It also provides
Ink controls to support the note–taking scenario."&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
Another important feature is interoperability and serialized data format compatibility
with ink support on Tablet PC.
&lt;/p&gt;
&lt;p&gt;
While all of this is nice, there is slight bit of bad news - using this rich set of
goodies requires C++. There are 2 ways to use ink in Windows Mobile 6 - InkCanvas
control and an COM automation library. &lt;a href="http://msdn2.microsoft.com/en-us/library/bb431715.aspx"&gt;InkCanvas
control &lt;/a&gt;offers the ability to use a regular&amp;nbsp;Win32 control (similar to InkX)
to write, highlight, collect ink etc via &lt;a href="http://msdn2.microsoft.com/en-us/library/bb160710.aspx"&gt;a
set of Windows messages&lt;/a&gt;. &lt;a href="http://msdn2.microsoft.com/en-us/library/bb431732.aspx"&gt;COM
automation library &lt;/a&gt;on the other hand allows accessing the entire set of features
offered by WISP. And there is no managed wrapper for the time being.
&lt;/p&gt;
&lt;p&gt;
As a public service, we at &lt;a href="http://www.OpenNETCF.com"&gt;OpenNETCF.com&lt;/a&gt;&amp;nbsp;are
proud to offer &lt;a href="http://www.opennetcf.com/downloads/download.aspx?s=OpenNETCF.WindowsMobile.Ink"&gt;WISPLite
managed wrapper&lt;/a&gt;. The wrapper offers the entire WISPLite functionality (although
not every method of every interface has been tested). There is InkControl class, which
wraps InkCanvas, and a OpenNETCF.WindowsMobile.Ink namespace that contains imported
COM interfaces. Some of the interfaces do not wrap cleanly, so a bit of coding is
needed.
&lt;/p&gt;
&lt;p&gt;
Here is what the demo app looks like (warning, before running it, change line 132
in Form1.cs to be
&lt;/p&gt;
&lt;font size=2&gt; 
&lt;p&gt;
inkControl1.SetPenStyle((
&lt;/font&gt;&lt;font color=#0000ff size=2&gt;float&lt;/font&gt;&lt;font size=2&gt;)trackBar1.Value, penColor,
penType); )&lt;/font&gt;&gt;
&lt;p&gt;
&lt;img src="http://blog.opennetcf.org/afeinman/content/binary/InkDemo.png" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
Saving ink data to a file:
&lt;/p&gt;
&lt;font size=2&gt; 
&lt;p&gt;
&lt;/font&gt;&lt;font color=#0000ff size=2&gt;using&lt;/font&gt;&lt;font size=2&gt; (&lt;/font&gt;&lt;font color=#2b91af size=2&gt;SaveFileDialog&lt;/font&gt;&lt;font size=2&gt; fd
= &lt;/font&gt;&lt;font color=#0000ff size=2&gt;new&lt;/font&gt;&lt;font size=2&gt; &lt;/font&gt;&lt;font color=#2b91af size=2&gt;SaveFileDialog&lt;/font&gt;&lt;font size=2&gt;())&lt;br&gt;
{&lt;br&gt;
&amp;nbsp; fd.Filter = &lt;/font&gt;&lt;font color=#a31515 size=2&gt;"Ink files (*.isf)|*.isf|All
files (*.*)|*.*"&lt;/font&gt;&lt;font size=2&gt;;&lt;br&gt;
&amp;nbsp; &lt;/font&gt;&lt;font color=#0000ff size=2&gt;if&lt;/font&gt;&lt;font size=2&gt; (fd.ShowDialog() == &lt;/font&gt;&lt;font color=#2b91af size=2&gt;DialogResult&lt;/font&gt;&lt;font size=2&gt;.OK)&lt;br&gt;
&amp;nbsp; {&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color=#0000ff size=2&gt;byte&lt;/font&gt;&lt;font size=2&gt;[] data
= (&lt;/font&gt;&lt;font color=#0000ff size=2&gt;byte&lt;/font&gt;&lt;font size=2&gt;[])inkControl1.GetInkData(&lt;/font&gt;&lt;font color=#2b91af size=2&gt;IC_INKENCODING&lt;/font&gt;&lt;font size=2&gt;.BINARY);&lt;br&gt;
&lt;/font&gt;&lt;font color=#2b91af size=2&gt;&lt;font color=#003300&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;FileStream&lt;/font&gt;&lt;font size=2&gt; stm
= &lt;/font&gt;&lt;font color=#2b91af size=2&gt;File&lt;/font&gt;&lt;font size=2&gt;.OpenWrite(fd.FileName);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; stm.Write(data, 0, data.Length);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; stm.Close();&lt;br&gt;
&amp;nbsp; }&lt;br&gt;
}&lt;/font&gt;&gt;
&lt;p&gt;
&lt;font size=2&gt;Getting ink as bitmap and retrieving recongnition result:&lt;/font&gt;
&lt;/p&gt;
&lt;font size=2&gt; 
&lt;p&gt;
pbPreview.Image = inkControl1.GetInkDataAsBitmap();&lt;br&gt;
lblReco.Text = inkControl1.RecognizedText;
&lt;/p&gt;
&lt;/font&gt; 
&lt;p&gt;
&lt;font size=2&gt;In conclusion I'd like to ask to report problems with this wrapper to
this blog's comments. 
&lt;/p&gt;
&gt;&lt;img width="0" height="0" src="http://blog.opennetcf.com/afeinman/aggbug.ashx?id=e6309045-3f60-4ec4-835f-34a7a98c3ab5" /&gt;</description>
      <comments>http://blog.opennetcf.com/afeinman/CommentView,guid,e6309045-3f60-4ec4-835f-34a7a98c3ab5.aspx</comments>
      <category>.Net technology</category>
      <category>Code</category>
      <category>Computers</category>
      <category>Microsoft</category>
    </item>
    <item>
      <trackback:ping>http://blog.opennetcf.com/afeinman/Trackback.aspx?guid=6c113acf-7ec2-4328-a154-16c29a4737ce</trackback:ping>
      <pingback:server>http://blog.opennetcf.com/afeinman/pingback.aspx</pingback:server>
      <pingback:target>http://blog.opennetcf.com/afeinman/PermaLink,guid,6c113acf-7ec2-4328-a154-16c29a4737ce.aspx</pingback:target>
      <dc:creator>
      </dc:creator>
      <wfw:comment>http://blog.opennetcf.com/afeinman/CommentView,guid,6c113acf-7ec2-4328-a154-16c29a4737ce.aspx</wfw:comment>
      <wfw:commentRss>http://blog.opennetcf.com/afeinman/SyndicationService.asmx/GetEntryCommentsRss?guid=6c113acf-7ec2-4328-a154-16c29a4737ce</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Sometimes when trying to connect Visual Studio t a device, especially to a custom
CE platform, it is helpful to see if there are any problems reported by the CoreCon
components on the device side. CoreCon components (ConmanClient, trasnport DLLs, edbgtl.dll
and edm.exe) all have an integrated logging facility, which can be used by a developer
for troubleshooting.
</p>
        <p>
To enable Corecon debug log you can set the following under HKLM\Software\Microsoft\VSD\Logging
</p>
        <blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
          <p>
            <font face="Courier New">VSD_LogEnabled: DWORD:1,0</font>
          </p>
          <p>
            <font face="Courier New">VSD_LogToDebugger: DWORD:1,0</font>
          </p>
          <p>
            <font face="Courier New">VSD_LogToConsole: DWORD: 1,0</font>
          </p>
          <p>
            <font face="Courier New">VSD_LogToFile: DWORD:1,0</font>
          </p>
          <p>
            <font face="Courier New">VSD_LogLevel: DWORD - set to at least 4, up to 9</font>
          </p>
          <p>
            <font face="Courier New">VSD_LogFile: REG_SZ (default VSDLogFile.txt)</font>
          </p>
        </blockquote>
        <p>
Keep in mind that the ConMan log can be quite chatty, so enable it sparingly and only
when needed
</p>
        <img width="0" height="0" src="http://blog.opennetcf.com/afeinman/aggbug.ashx?id=6c113acf-7ec2-4328-a154-16c29a4737ce" />
      </body>
      <title>Enabling CoreCon logging in NETCFv2</title>
      <guid isPermaLink="false">http://blog.opennetcf.com/afeinman/PermaLink,guid,6c113acf-7ec2-4328-a154-16c29a4737ce.aspx</guid>
      <link>http://blog.opennetcf.com/afeinman/PermaLink,guid,6c113acf-7ec2-4328-a154-16c29a4737ce.aspx</link>
      <pubDate>Tue, 17 Apr 2007 19:12:44 GMT</pubDate>
      <description>&lt;p&gt;
Sometimes when trying to connect Visual Studio t a device, especially to a custom
CE platform, it is helpful to see if there are any problems reported by the CoreCon
components on the device side. CoreCon components (ConmanClient, trasnport DLLs, edbgtl.dll
and edm.exe) all have an integrated logging facility, which can be used by a developer
for troubleshooting.
&lt;/p&gt;
&lt;p&gt;
To enable Corecon debug log you can set the following under HKLM\Software\Microsoft\VSD\Logging
&lt;/p&gt;
&lt;blockquote dir=ltr style="MARGIN-RIGHT: 0px"&gt; 
&lt;p&gt;
&lt;font face="Courier New"&gt;VSD_LogEnabled: DWORD:1,0&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font face="Courier New"&gt;VSD_LogToDebugger: DWORD:1,0&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font face="Courier New"&gt;VSD_LogToConsole: DWORD: 1,0&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font face="Courier New"&gt;VSD_LogToFile: DWORD:1,0&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font face="Courier New"&gt;VSD_LogLevel: DWORD - set to at least 4, up to 9&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font face="Courier New"&gt;VSD_LogFile: REG_SZ (default VSDLogFile.txt)&lt;/font&gt;
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
Keep in mind that the ConMan log can be quite chatty, so enable it sparingly and only
when needed
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.opennetcf.com/afeinman/aggbug.ashx?id=6c113acf-7ec2-4328-a154-16c29a4737ce" /&gt;</description>
      <comments>http://blog.opennetcf.com/afeinman/CommentView,guid,6c113acf-7ec2-4328-a154-16c29a4737ce.aspx</comments>
      <category>.Net technology</category>
      <category>Code</category>
      <category>Computers</category>
      <category>Microsoft</category>
    </item>
    <item>
      <trackback:ping>http://blog.opennetcf.com/afeinman/Trackback.aspx?guid=ac6cd193-d63c-4644-bf9a-7dd6f0b30c76</trackback:ping>
      <pingback:server>http://blog.opennetcf.com/afeinman/pingback.aspx</pingback:server>
      <pingback:target>http://blog.opennetcf.com/afeinman/PermaLink,guid,ac6cd193-d63c-4644-bf9a-7dd6f0b30c76.aspx</pingback:target>
      <dc:creator>
      </dc:creator>
      <wfw:comment>http://blog.opennetcf.com/afeinman/CommentView,guid,ac6cd193-d63c-4644-bf9a-7dd6f0b30c76.aspx</wfw:comment>
      <wfw:commentRss>http://blog.opennetcf.com/afeinman/SyndicationService.asmx/GetEntryCommentsRss?guid=ac6cd193-d63c-4644-bf9a-7dd6f0b30c76</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a href="http://blogs.ugidotnet.org/raffaele ">Raffaele Rialdi </a>pointed out that
attempting to run RTF Host from Compact Framework 3.5 Power Toys on an emulator produces
the following error:
</p>
        <p>
          <img src="http://blog.opennetcf.org/afeinman/content/binary/RTFError.png" border="0" />
        </p>
        <p>
This is caused by RTF getting confused because the default CoreCon transport on the
emulator is DMA (DeviceDMA.dll). Here are the steps to add emulator as a manual Tcp
connection. Not that many will need it, but it is useful for a demo
</p>
        <p>
1. Start Emulator using Device Emulator Manager.<br />
2. Configure Network and Storage card folder<br />
3. Copy to storage card folder the following file: "C:\Program Files\Common 
<br />
Files\microsoft shared\CoreCon\1.0\Target\wce400\armv4i\TCPConnectionA.dll"<br />
4. In File ExplorerNavigate to \Windows\Corecon1.1. If you don't see it 
<br />
there, connect to the emulator from Studio<br />
5. Launch ClientShutdown (you should see a guid-named folder to appear)<br />
6. Copy \Storage Card\TcpConnectionA.dll to \Windows<br />
7. Go to \Windows and delete DeviceDMA.dll (if you can't, you forgot to 
<br />
launch ClientShutdown)<br />
8. Go back to \Windows\Corecon1.1 and launch ConmanClient.exe<br />
9. Launch RTF Host. Enjoy<br /></p>
        <img width="0" height="0" src="http://blog.opennetcf.com/afeinman/aggbug.ashx?id=ac6cd193-d63c-4644-bf9a-7dd6f0b30c76" />
      </body>
      <title>Running RTF Host (Compact Framework 3.5 Power Toys) on emulator</title>
      <guid isPermaLink="false">http://blog.opennetcf.com/afeinman/PermaLink,guid,ac6cd193-d63c-4644-bf9a-7dd6f0b30c76.aspx</guid>
      <link>http://blog.opennetcf.com/afeinman/PermaLink,guid,ac6cd193-d63c-4644-bf9a-7dd6f0b30c76.aspx</link>
      <pubDate>Sun, 25 Feb 2007 14:45:36 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a href="http://blogs.ugidotnet.org/raffaele "&gt;Raffaele Rialdi &lt;/a&gt;pointed out that
attempting to run RTF Host from Compact Framework 3.5 Power Toys on an emulator produces
the following error:
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://blog.opennetcf.org/afeinman/content/binary/RTFError.png" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
This is caused by RTF getting confused because the default CoreCon transport on the
emulator is DMA (DeviceDMA.dll). Here are the steps to add emulator as a manual Tcp
connection. Not that many will need it, but it is useful for a demo
&lt;/p&gt;
&lt;p&gt;
1. Start Emulator using Device Emulator Manager.&lt;br&gt;
2. Configure Network and Storage card folder&lt;br&gt;
3. Copy to storage card folder the following file: "C:\Program Files\Common 
&lt;br&gt;
Files\microsoft shared\CoreCon\1.0\Target\wce400\armv4i\TCPConnectionA.dll"&lt;br&gt;
4. In File ExplorerNavigate to \Windows\Corecon1.1. If you don't see it 
&lt;br&gt;
there, connect to the emulator from Studio&lt;br&gt;
5. Launch ClientShutdown (you should see a guid-named folder to appear)&lt;br&gt;
6. Copy \Storage Card\TcpConnectionA.dll to \Windows&lt;br&gt;
7. Go to \Windows and delete DeviceDMA.dll (if you can't, you forgot to 
&lt;br&gt;
launch ClientShutdown)&lt;br&gt;
8. Go back to \Windows\Corecon1.1 and launch ConmanClient.exe&lt;br&gt;
9. Launch RTF Host. Enjoy&lt;br&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.opennetcf.com/afeinman/aggbug.ashx?id=ac6cd193-d63c-4644-bf9a-7dd6f0b30c76" /&gt;</description>
      <comments>http://blog.opennetcf.com/afeinman/CommentView,guid,ac6cd193-d63c-4644-bf9a-7dd6f0b30c76.aspx</comments>
      <category>.Net technology</category>
      <category>Code</category>
      <category>Computers</category>
      <category>Microsoft</category>
    </item>
    <item>
      <trackback:ping>http://blog.opennetcf.com/afeinman/Trackback.aspx?guid=fb3cfd88-2d46-4aa8-a89a-8df02b10b6bc</trackback:ping>
      <pingback:server>http://blog.opennetcf.com/afeinman/pingback.aspx</pingback:server>
      <pingback:target>http://blog.opennetcf.com/afeinman/PermaLink,guid,fb3cfd88-2d46-4aa8-a89a-8df02b10b6bc.aspx</pingback:target>
      <dc:creator>
      </dc:creator>
      <wfw:comment>http://blog.opennetcf.com/afeinman/CommentView,guid,fb3cfd88-2d46-4aa8-a89a-8df02b10b6bc.aspx</wfw:comment>
      <wfw:commentRss>http://blog.opennetcf.com/afeinman/SyndicationService.asmx/GetEntryCommentsRss?guid=fb3cfd88-2d46-4aa8-a89a-8df02b10b6bc</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a href="http://blogs.ugidotnet.org/raffaele">Raffaele Rialdi</a> has pointed
out that trying to run RTF Host from <a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=c8174c14-a27d-4148-bf01-86c2e0953eab&amp;DisplayLang=en">CF
3.5 Power Toys </a>(required for manual connectivity) on a Windows Mobile emulator
produces an error :
</p>
        <p>
          <img src="http://blog.opennetcf.org/afeinman/content/binary/RTFError.png" border="0" />
        </p>
        <p>
This is caused by RTF getting confused and trying to use DMA transport instead of
TCP. Here are the steps to establish a manual RTF connection to an emulator (you don't
really need it unless you are doing a demo)
</p>
        <p>
1. Start Emulator using Device Emulator Manager.<br /><br />
2. Configure Network and Storage card folder<br /><br />
3. Copy to storage card folder the following file: "C:\Program Files\Common 
<br />
Files\microsoft shared\CoreCon\1.0\Target\wce400\armv4i\TCPConnectionA.dll"<br /><br />
4. In File ExplorerNavigate to \Windows\Corecon1.1. If you don't see it 
<br />
there, connect to the emulator from Studio<br /><br />
5. Launch ClientShutdown (you should see a guid-named folder to appear)<br /><br />
6. Copy \Storage Card\TcpConnectionA.dll to \Windows<br /><br />
7. Go to \Windows and delete DeviceDMA.dll (if you can't, you forgot to 
<br />
launch ClientShutdown)<br /><br />
8. Go back to \Windows\Corecon1.1 and launch ConmanClient.exe<br /><br />
9. Launch RTF Host. Enjoy<br /></p>
        <img width="0" height="0" src="http://blog.opennetcf.com/afeinman/aggbug.ashx?id=fb3cfd88-2d46-4aa8-a89a-8df02b10b6bc" />
      </body>
      <title>Running RTF Host (Compact Framework 3.5 Power Toys) on emulator</title>
      <guid isPermaLink="false">http://blog.opennetcf.com/afeinman/PermaLink,guid,fb3cfd88-2d46-4aa8-a89a-8df02b10b6bc.aspx</guid>
      <link>http://blog.opennetcf.com/afeinman/PermaLink,guid,fb3cfd88-2d46-4aa8-a89a-8df02b10b6bc.aspx</link>
      <pubDate>Sun, 25 Feb 2007 12:55:18 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a href="http://blogs.ugidotnet.org/raffaele"&gt;Raffaele Rialdi&lt;/a&gt;&amp;nbsp;has pointed
out&amp;nbsp;that&amp;nbsp;trying to run RTF Host from &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=c8174c14-a27d-4148-bf01-86c2e0953eab&amp;amp;DisplayLang=en"&gt;CF
3.5&amp;nbsp;Power Toys &lt;/a&gt;(required for manual connectivity) on a Windows Mobile&amp;nbsp;emulator
produces an error :
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://blog.opennetcf.org/afeinman/content/binary/RTFError.png" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
This is caused by RTF getting confused and trying to use DMA transport instead of
TCP. Here are the steps to establish a manual RTF connection to an emulator (you don't
really need it unless you are doing a demo)
&lt;/p&gt;
&lt;p&gt;
1. Start Emulator using Device Emulator Manager.&lt;br&gt;
&lt;br&gt;
2. Configure Network and Storage card folder&lt;br&gt;
&lt;br&gt;
3. Copy to storage card folder the following file: "C:\Program Files\Common 
&lt;br&gt;
Files\microsoft shared\CoreCon\1.0\Target\wce400\armv4i\TCPConnectionA.dll"&lt;br&gt;
&lt;br&gt;
4. In File ExplorerNavigate to \Windows\Corecon1.1. If you don't see it 
&lt;br&gt;
there, connect to the emulator from Studio&lt;br&gt;
&lt;br&gt;
5. Launch ClientShutdown (you should see a guid-named folder to appear)&lt;br&gt;
&lt;br&gt;
6. Copy \Storage Card\TcpConnectionA.dll to \Windows&lt;br&gt;
&lt;br&gt;
7. Go to \Windows and delete DeviceDMA.dll (if you can't, you forgot to 
&lt;br&gt;
launch ClientShutdown)&lt;br&gt;
&lt;br&gt;
8. Go back to \Windows\Corecon1.1 and launch ConmanClient.exe&lt;br&gt;
&lt;br&gt;
9. Launch RTF Host. Enjoy&lt;br&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.opennetcf.com/afeinman/aggbug.ashx?id=fb3cfd88-2d46-4aa8-a89a-8df02b10b6bc" /&gt;</description>
      <comments>http://blog.opennetcf.com/afeinman/CommentView,guid,fb3cfd88-2d46-4aa8-a89a-8df02b10b6bc.aspx</comments>
      <category>.Net technology</category>
      <category>Microsoft</category>
    </item>
    <item>
      <trackback:ping>http://blog.opennetcf.com/afeinman/Trackback.aspx?guid=79930b08-a3f2-4dfc-9a39-e3fa84048638</trackback:ping>
      <pingback:server>http://blog.opennetcf.com/afeinman/pingback.aspx</pingback:server>
      <pingback:target>http://blog.opennetcf.com/afeinman/PermaLink,guid,79930b08-a3f2-4dfc-9a39-e3fa84048638.aspx</pingback:target>
      <dc:creator>
      </dc:creator>
      <wfw:comment>http://blog.opennetcf.com/afeinman/CommentView,guid,79930b08-a3f2-4dfc-9a39-e3fa84048638.aspx</wfw:comment>
      <wfw:commentRss>http://blog.opennetcf.com/afeinman/SyndicationService.asmx/GetEntryCommentsRss?guid=79930b08-a3f2-4dfc-9a39-e3fa84048638</wfw:commentRss>
      <slash:comments>3</slash:comments>
      <title>What were they thinking?</title>
      <guid isPermaLink="false">http://blog.opennetcf.com/afeinman/PermaLink,guid,79930b08-a3f2-4dfc-9a39-e3fa84048638.aspx</guid>
      <link>http://blog.opennetcf.com/afeinman/PermaLink,guid,79930b08-a3f2-4dfc-9a39-e3fa84048638.aspx</link>
      <pubDate>Mon, 02 Oct 2006 20:23:53 GMT</pubDate>
      <description>Some MSDN articles are very good. Some are useful. Some are bizzare. This one is, well - it makes you ask, what were they thinking&lt;img width="0" height="0" src="http://blog.opennetcf.com/afeinman/aggbug.ashx?id=79930b08-a3f2-4dfc-9a39-e3fa84048638"/&gt;</description>
      <comments>http://blog.opennetcf.com/afeinman/CommentView,guid,79930b08-a3f2-4dfc-9a39-e3fa84048638.aspx</comments>
      <category>.Net technology</category>
      <category>Code</category>
      <category>Computers</category>
      <category>Microsoft</category>
      <category>Rant</category>
    </item>
    <item>
      <trackback:ping>http://blog.opennetcf.com/afeinman/Trackback.aspx?guid=2b278e8e-7066-4ba2-aad8-84d8d94da9ac</trackback:ping>
      <pingback:server>http://blog.opennetcf.com/afeinman/pingback.aspx</pingback:server>
      <pingback:target>http://blog.opennetcf.com/afeinman/PermaLink,guid,2b278e8e-7066-4ba2-aad8-84d8d94da9ac.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://blog.opennetcf.com/afeinman/CommentView,guid,2b278e8e-7066-4ba2-aad8-84d8d94da9ac.aspx</wfw:comment>
      <wfw:commentRss>http://blog.opennetcf.com/afeinman/SyndicationService.asmx/GetEntryCommentsRss?guid=2b278e8e-7066-4ba2-aad8-84d8d94da9ac</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Several people have hit a problem while installing the service pack on Windows Server
2003 machines. The installation (that takes obscenely long time) eventually fails
with a message:
</p>
        <p>
          <font face="Courier New">Error 1718: The file xxxxxxxx.msp was rejected by digital
signature policy.</font>
        </p>
        <p>
Two things with repsect to that:
</p>
        <p>
1) I had this problem and was eventually able to complete installation (on the second
try). What has changed is that I moved the SP file from a network location to a local
drive.
</p>
        <p>
2) Take a look at the setup log. It can be found under %temp%\VS80sp1-KB918525-X86-Beta-ENU
(this path can be pasted into Run box to open the folder)
</p>
        <img width="0" height="0" src="http://blog.opennetcf.com/afeinman/aggbug.ashx?id=2b278e8e-7066-4ba2-aad8-84d8d94da9ac" />
      </body>
      <title>Installing Visual Studio 2005 SP1 Beta 1</title>
      <guid isPermaLink="false">http://blog.opennetcf.com/afeinman/PermaLink,guid,2b278e8e-7066-4ba2-aad8-84d8d94da9ac.aspx</guid>
      <link>http://blog.opennetcf.com/afeinman/PermaLink,guid,2b278e8e-7066-4ba2-aad8-84d8d94da9ac.aspx</link>
      <pubDate>Thu, 28 Sep 2006 21:08:37 GMT</pubDate>
      <description>&lt;p&gt;
Several people have hit a problem while installing the service pack on Windows Server
2003 machines. The installation (that takes obscenely long time) eventually fails
with a message:
&lt;/p&gt;
&lt;p&gt;
&lt;font face="Courier New"&gt;Error 1718: The file&amp;nbsp;xxxxxxxx.msp was rejected by digital
signature policy.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
Two things with repsect to that:
&lt;/p&gt;
&lt;p&gt;
1) I had this problem and was eventually able to complete installation (on the second
try). What has changed is that I moved the SP file from a network location to a local
drive.
&lt;/p&gt;
&lt;p&gt;
2) Take a look at the setup log. It can be found under %temp%\VS80sp1-KB918525-X86-Beta-ENU
(this path can be pasted into Run box to open the folder)
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.opennetcf.com/afeinman/aggbug.ashx?id=2b278e8e-7066-4ba2-aad8-84d8d94da9ac" /&gt;</description>
      <comments>http://blog.opennetcf.com/afeinman/CommentView,guid,2b278e8e-7066-4ba2-aad8-84d8d94da9ac.aspx</comments>
      <category>.Net technology</category>
      <category>Code</category>
      <category>Computers</category>
      <category>Microsoft</category>
    </item>
    <item>
      <trackback:ping>http://blog.opennetcf.com/afeinman/Trackback.aspx?guid=c4dd5ab4-111f-4d05-a40f-6630fe98ae58</trackback:ping>
      <pingback:server>http://blog.opennetcf.com/afeinman/pingback.aspx</pingback:server>
      <pingback:target>http://blog.opennetcf.com/afeinman/PermaLink,guid,c4dd5ab4-111f-4d05-a40f-6630fe98ae58.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://blog.opennetcf.com/afeinman/CommentView,guid,c4dd5ab4-111f-4d05-a40f-6630fe98ae58.aspx</wfw:comment>
      <wfw:commentRss>http://blog.opennetcf.com/afeinman/SyndicationService.asmx/GetEntryCommentsRss?guid=c4dd5ab4-111f-4d05-a40f-6630fe98ae58</wfw:commentRss>
      <title>Upcoming MSDN webcast on IMAPI2 and CD/DVD burning</title>
      <guid isPermaLink="false">http://blog.opennetcf.com/afeinman/PermaLink,guid,c4dd5ab4-111f-4d05-a40f-6630fe98ae58.aspx</guid>
      <link>http://blog.opennetcf.com/afeinman/PermaLink,guid,c4dd5ab4-111f-4d05-a40f-6630fe98ae58.aspx</link>
      <pubDate>Tue, 04 Apr 2006 22:07:24 GMT</pubDate>
      <description>MSDN webcast on IMAPI2 and CD/DVD burning&lt;img width="0" height="0" src="http://blog.opennetcf.com/afeinman/aggbug.ashx?id=c4dd5ab4-111f-4d05-a40f-6630fe98ae58"/&gt;</description>
      <comments>http://blog.opennetcf.com/afeinman/CommentView,guid,c4dd5ab4-111f-4d05-a40f-6630fe98ae58.aspx</comments>
      <category>.Net technology</category>
      <category>Code</category>
      <category>Computers</category>
      <category>Microsoft</category>
    </item>
    <item>
      <trackback:ping>http://blog.opennetcf.com/afeinman/Trackback.aspx?guid=8fb585db-bd44-42fe-afa9-07b116c6d2ba</trackback:ping>
      <pingback:server>http://blog.opennetcf.com/afeinman/pingback.aspx</pingback:server>
      <pingback:target>http://blog.opennetcf.com/afeinman/PermaLink,guid,8fb585db-bd44-42fe-afa9-07b116c6d2ba.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://blog.opennetcf.com/afeinman/CommentView,guid,8fb585db-bd44-42fe-afa9-07b116c6d2ba.aspx</wfw:comment>
      <wfw:commentRss>http://blog.opennetcf.com/afeinman/SyndicationService.asmx/GetEntryCommentsRss?guid=8fb585db-bd44-42fe-afa9-07b116c6d2ba</wfw:commentRss>
      <slash:comments>7</slash:comments>
      <title>New in OpenNETCF SDF 2.0 - Imaging API wrapper - part II</title>
      <guid isPermaLink="false">http://blog.opennetcf.com/afeinman/PermaLink,guid,8fb585db-bd44-42fe-afa9-07b116c6d2ba.aspx</guid>
      <link>http://blog.opennetcf.com/afeinman/PermaLink,guid,8fb585db-bd44-42fe-afa9-07b116c6d2ba.aspx</link>
      <pubDate>Sat, 04 Feb 2006 01:13:30 GMT</pubDate>
      <description>Details on the new features in the Imaging API wrapper - part of SDF 2.0&lt;img width="0" height="0" src="http://blog.opennetcf.com/afeinman/aggbug.ashx?id=8fb585db-bd44-42fe-afa9-07b116c6d2ba"/&gt;</description>
      <comments>http://blog.opennetcf.com/afeinman/CommentView,guid,8fb585db-bd44-42fe-afa9-07b116c6d2ba.aspx</comments>
      <category>.Net technology</category>
      <category>Code</category>
      <category>Microsoft</category>
      <category>SDF 2.0</category>
    </item>
    <item>
      <trackback:ping>http://blog.opennetcf.com/afeinman/Trackback.aspx?guid=e59ee005-91b0-4807-8142-22394b368826</trackback:ping>
      <pingback:server>http://blog.opennetcf.com/afeinman/pingback.aspx</pingback:server>
      <pingback:target>http://blog.opennetcf.com/afeinman/PermaLink,guid,e59ee005-91b0-4807-8142-22394b368826.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://blog.opennetcf.com/afeinman/CommentView,guid,e59ee005-91b0-4807-8142-22394b368826.aspx</wfw:comment>
      <wfw:commentRss>http://blog.opennetcf.com/afeinman/SyndicationService.asmx/GetEntryCommentsRss?guid=e59ee005-91b0-4807-8142-22394b368826</wfw:commentRss>
      <title>New in OpenNETCF SDF 2.0 - Imaging API wrapper - part I</title>
      <guid isPermaLink="false">http://blog.opennetcf.com/afeinman/PermaLink,guid,e59ee005-91b0-4807-8142-22394b368826.aspx</guid>
      <link>http://blog.opennetcf.com/afeinman/PermaLink,guid,e59ee005-91b0-4807-8142-22394b368826.aspx</link>
      <pubDate>Sat, 28 Jan 2006 21:53:31 GMT</pubDate>
      <description>Just released beta 1 of OpenNETCF SDF 2.0 introduces an Imaging API wrapper&lt;img width="0" height="0" src="http://blog.opennetcf.com/afeinman/aggbug.ashx?id=e59ee005-91b0-4807-8142-22394b368826"/&gt;</description>
      <comments>http://blog.opennetcf.com/afeinman/CommentView,guid,e59ee005-91b0-4807-8142-22394b368826.aspx</comments>
      <category>.Net technology</category>
      <category>Code</category>
      <category>Computers</category>
      <category>Microsoft</category>
      <category>SDF 2.0</category>
    </item>
    <item>
      <trackback:ping>http://blog.opennetcf.com/afeinman/Trackback.aspx?guid=3730d6fd-0757-4fe3-a461-591623e3d5d3</trackback:ping>
      <pingback:server>http://blog.opennetcf.com/afeinman/pingback.aspx</pingback:server>
      <pingback:target>http://blog.opennetcf.com/afeinman/PermaLink,guid,3730d6fd-0757-4fe3-a461-591623e3d5d3.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://blog.opennetcf.com/afeinman/CommentView,guid,3730d6fd-0757-4fe3-a461-591623e3d5d3.aspx</wfw:comment>
      <wfw:commentRss>http://blog.opennetcf.com/afeinman/SyndicationService.asmx/GetEntryCommentsRss?guid=3730d6fd-0757-4fe3-a461-591623e3d5d3</wfw:commentRss>
      <title>They are coming</title>
      <guid isPermaLink="false">http://blog.opennetcf.com/afeinman/PermaLink,guid,3730d6fd-0757-4fe3-a461-591623e3d5d3.aspx</guid>
      <link>http://blog.opennetcf.com/afeinman/PermaLink,guid,3730d6fd-0757-4fe3-a461-591623e3d5d3.aspx</link>
      <pubDate>Tue, 01 Nov 2005 21:55:33 GMT</pubDate>
      <description>Visual Studio Launch Tour&lt;img width="0" height="0" src="http://blog.opennetcf.com/afeinman/aggbug.ashx?id=3730d6fd-0757-4fe3-a461-591623e3d5d3"/&gt;</description>
      <comments>http://blog.opennetcf.com/afeinman/CommentView,guid,3730d6fd-0757-4fe3-a461-591623e3d5d3.aspx</comments>
      <category>.Net technology</category>
      <category>Computers</category>
      <category>Microsoft</category>
    </item>
    <item>
      <trackback:ping>http://blog.opennetcf.com/afeinman/Trackback.aspx?guid=d2ed4db6-5d26-4267-b88d-a95e292bad7d</trackback:ping>
      <pingback:server>http://blog.opennetcf.com/afeinman/pingback.aspx</pingback:server>
      <pingback:target>http://blog.opennetcf.com/afeinman/PermaLink,guid,d2ed4db6-5d26-4267-b88d-a95e292bad7d.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://blog.opennetcf.com/afeinman/CommentView,guid,d2ed4db6-5d26-4267-b88d-a95e292bad7d.aspx</wfw:comment>
      <wfw:commentRss>http://blog.opennetcf.com/afeinman/SyndicationService.asmx/GetEntryCommentsRss?guid=d2ed4db6-5d26-4267-b88d-a95e292bad7d</wfw:commentRss>
      <title>Installing VS2005 August CTP on Windows Vista 64</title>
      <guid isPermaLink="false">http://blog.opennetcf.com/afeinman/PermaLink,guid,d2ed4db6-5d26-4267-b88d-a95e292bad7d.aspx</guid>
      <link>http://blog.opennetcf.com/afeinman/PermaLink,guid,d2ed4db6-5d26-4267-b88d-a95e292bad7d.aspx</link>
      <pubDate>Fri, 09 Sep 2005 07:33:53 GMT</pubDate>
      <description>Installing VS2005 August CTP on Windows Vista 64&lt;img width="0" height="0" src="http://blog.opennetcf.com/afeinman/aggbug.ashx?id=d2ed4db6-5d26-4267-b88d-a95e292bad7d"/&gt;</description>
      <comments>http://blog.opennetcf.com/afeinman/CommentView,guid,d2ed4db6-5d26-4267-b88d-a95e292bad7d.aspx</comments>
      <category>.Net technology</category>
      <category>Computers</category>
      <category>Microsoft</category>
    </item>
    <item>
      <trackback:ping>http://blog.opennetcf.com/afeinman/Trackback.aspx?guid=aa53e23d-b8e5-4015-b00a-0c8ea9bc6dfe</trackback:ping>
      <pingback:server>http://blog.opennetcf.com/afeinman/pingback.aspx</pingback:server>
      <pingback:target>http://blog.opennetcf.com/afeinman/PermaLink,guid,aa53e23d-b8e5-4015-b00a-0c8ea9bc6dfe.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://blog.opennetcf.com/afeinman/CommentView,guid,aa53e23d-b8e5-4015-b00a-0c8ea9bc6dfe.aspx</wfw:comment>
      <wfw:commentRss>http://blog.opennetcf.com/afeinman/SyndicationService.asmx/GetEntryCommentsRss?guid=aa53e23d-b8e5-4015-b00a-0c8ea9bc6dfe</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <title>Marvels of COM .NET interop</title>
      <guid isPermaLink="false">http://blog.opennetcf.com/afeinman/PermaLink,guid,aa53e23d-b8e5-4015-b00a-0c8ea9bc6dfe.aspx</guid>
      <link>http://blog.opennetcf.com/afeinman/PermaLink,guid,aa53e23d-b8e5-4015-b00a-0c8ea9bc6dfe.aspx</link>
      <pubDate>Sun, 28 Aug 2005 08:21:02 GMT</pubDate>
      <description>Using .NET stock objects from VB Script&lt;img width="0" height="0" src="http://blog.opennetcf.com/afeinman/aggbug.ashx?id=aa53e23d-b8e5-4015-b00a-0c8ea9bc6dfe"/&gt;</description>
      <comments>http://blog.opennetcf.com/afeinman/CommentView,guid,aa53e23d-b8e5-4015-b00a-0c8ea9bc6dfe.aspx</comments>
      <category>.Net technology</category>
      <category>Computers</category>
      <category>Microsoft</category>
    </item>
    <item>
      <trackback:ping>http://blog.opennetcf.com/afeinman/Trackback.aspx?guid=1dfc3c39-d3cc-4faa-b5f6-cb5c9aed61dd</trackback:ping>
      <pingback:server>http://blog.opennetcf.com/afeinman/pingback.aspx</pingback:server>
      <pingback:target>http://blog.opennetcf.com/afeinman/PermaLink,guid,1dfc3c39-d3cc-4faa-b5f6-cb5c9aed61dd.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://blog.opennetcf.com/afeinman/CommentView,guid,1dfc3c39-d3cc-4faa-b5f6-cb5c9aed61dd.aspx</wfw:comment>
      <wfw:commentRss>http://blog.opennetcf.com/afeinman/SyndicationService.asmx/GetEntryCommentsRss?guid=1dfc3c39-d3cc-4faa-b5f6-cb5c9aed61dd</wfw:commentRss>
      <slash:comments>3</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <a href="http://go.microsoft.com/?linkid=3201441">
          <img src="http://msdneventsbloggers.net/Images/Flair/msdn5c.gif" border="0" />
        </a>
        <p>
I've just done a webcast, which was effectively a repeat of my MEDC'05 presentation
on hosting ActiveX controls in CF 2.0. <a href="https://www118.livemeeting.com/cc/mseventsbmo/view?id=1032278373&amp;pw=F810D48A">It
can be seen here</a></p>
        <p>
Update (09/03/2005). It is apparently not entirely clear from the webcast, where the
source code is. It can be found <a href="http://www.opennetcf.org/downloads/cli331.zip">here</a></p>
        <p>
Update 2 (09/03/2005). The source code will not compile on beta 2 of Visual Studio
because of Marshal.AllocHGlobal/FreeHGlobal that were not introduced until July CTP.
Simply replace them with AllocCoTaskMem/FreeCoTaskMem
</p>
        <p>
Update 3 (09/03/2005). TO be able to host WMP in Pocket PC application you must have
WMP10. WMP9 did not have an ActiveX interface. Some (but not all) of the 2003SE device
have WMP10. All WM5 devices will have WMP10
</p>
        <img width="0" height="0" src="http://blog.opennetcf.com/afeinman/aggbug.ashx?id=1dfc3c39-d3cc-4faa-b5f6-cb5c9aed61dd" />
      </body>
      <title>MSDN Webcast on hosting ActiveX controls</title>
      <guid isPermaLink="false">http://blog.opennetcf.com/afeinman/PermaLink,guid,1dfc3c39-d3cc-4faa-b5f6-cb5c9aed61dd.aspx</guid>
      <link>http://blog.opennetcf.com/afeinman/PermaLink,guid,1dfc3c39-d3cc-4faa-b5f6-cb5c9aed61dd.aspx</link>
      <pubDate>Thu, 25 Aug 2005 23:40:44 GMT</pubDate>
      <description>&lt;a href="http://go.microsoft.com/?linkid=3201441"&gt;&lt;img src="http://msdneventsbloggers.net/Images/Flair/msdn5c.gif" border=0&gt;&lt;/a&gt; 
&lt;p&gt;
I've just done a webcast, which was effectively a repeat of my MEDC'05 presentation
on hosting ActiveX controls in CF 2.0. &lt;a href="https://www118.livemeeting.com/cc/mseventsbmo/view?id=1032278373&amp;amp;pw=F810D48A"&gt;It
can be seen&amp;nbsp;here&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Update (09/03/2005). It is apparently not entirely clear from the webcast, where the
source code is. It can be found &lt;a href="http://www.opennetcf.org/downloads/cli331.zip"&gt;here&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Update 2 (09/03/2005). The source code will not compile on beta 2 of Visual Studio
because of Marshal.AllocHGlobal/FreeHGlobal that were not introduced until July CTP.
Simply replace them with AllocCoTaskMem/FreeCoTaskMem
&lt;/p&gt;
&lt;p&gt;
Update 3 (09/03/2005). TO be able to host WMP in Pocket PC application you must have
WMP10. WMP9 did not have an ActiveX interface. Some (but not all) of the 2003SE device
have WMP10. All WM5 devices will have WMP10
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.opennetcf.com/afeinman/aggbug.ashx?id=1dfc3c39-d3cc-4faa-b5f6-cb5c9aed61dd" /&gt;</description>
      <comments>http://blog.opennetcf.com/afeinman/CommentView,guid,1dfc3c39-d3cc-4faa-b5f6-cb5c9aed61dd.aspx</comments>
      <category>.Net technology</category>
      <category>Computers</category>
      <category>Microsoft</category>
    </item>
    <item>
      <trackback:ping>http://blog.opennetcf.com/afeinman/Trackback.aspx?guid=f7667a91-c17c-4ca0-a6cc-420b53ce6b33</trackback:ping>
      <pingback:server>http://blog.opennetcf.com/afeinman/pingback.aspx</pingback:server>
      <pingback:target>http://blog.opennetcf.com/afeinman/PermaLink,guid,f7667a91-c17c-4ca0-a6cc-420b53ce6b33.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://blog.opennetcf.com/afeinman/CommentView,guid,f7667a91-c17c-4ca0-a6cc-420b53ce6b33.aspx</wfw:comment>
      <wfw:commentRss>http://blog.opennetcf.com/afeinman/SyndicationService.asmx/GetEntryCommentsRss?guid=f7667a91-c17c-4ca0-a6cc-420b53ce6b33</wfw:commentRss>
      <title>InTheHand.com releases Windows Mobile API for .NetCF Suite</title>
      <guid isPermaLink="false">http://blog.opennetcf.com/afeinman/PermaLink,guid,f7667a91-c17c-4ca0-a6cc-420b53ce6b33.aspx</guid>
      <link>http://blog.opennetcf.com/afeinman/PermaLink,guid,f7667a91-c17c-4ca0-a6cc-420b53ce6b33.aspx</link>
      <pubDate>Tue, 02 Aug 2005 16:07:56 GMT</pubDate>
      <description>InTheHand.com releases Windows Mobile API for .NetCF Suite&lt;img width="0" height="0" src="http://blog.opennetcf.com/afeinman/aggbug.ashx?id=f7667a91-c17c-4ca0-a6cc-420b53ce6b33"/&gt;</description>
      <comments>http://blog.opennetcf.com/afeinman/CommentView,guid,f7667a91-c17c-4ca0-a6cc-420b53ce6b33.aspx</comments>
      <category>.Net technology</category>
      <category>Code</category>
      <category>Computers</category>
      <category>Microsoft</category>
    </item>
    <item>
      <trackback:ping>http://blog.opennetcf.com/afeinman/Trackback.aspx?guid=795f7d83-dac3-46f8-a8fc-1f978e8b975f</trackback:ping>
      <pingback:server>http://blog.opennetcf.com/afeinman/pingback.aspx</pingback:server>
      <pingback:target>http://blog.opennetcf.com/afeinman/PermaLink,guid,795f7d83-dac3-46f8-a8fc-1f978e8b975f.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://blog.opennetcf.com/afeinman/CommentView,guid,795f7d83-dac3-46f8-a8fc-1f978e8b975f.aspx</wfw:comment>
      <wfw:commentRss>http://blog.opennetcf.com/afeinman/SyndicationService.asmx/GetEntryCommentsRss?guid=795f7d83-dac3-46f8-a8fc-1f978e8b975f</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
... or is it Superman?
</p>
        <p>
The kind folks, who administer MSDN webcasts, sent me as one of the year 2005 presenters
a shirt and a ... cape. Yes, a red cape.
</p>
        <p>
          <img src="http://www.alexfeinman.com/images/msdncape.jpg" />
        </p>
        <img width="0" height="0" src="http://blog.opennetcf.com/afeinman/aggbug.ashx?id=795f7d83-dac3-46f8-a8fc-1f978e8b975f" />
      </body>
      <title>Batman returns</title>
      <guid isPermaLink="false">http://blog.opennetcf.com/afeinman/PermaLink,guid,795f7d83-dac3-46f8-a8fc-1f978e8b975f.aspx</guid>
      <link>http://blog.opennetcf.com/afeinman/PermaLink,guid,795f7d83-dac3-46f8-a8fc-1f978e8b975f.aspx</link>
      <pubDate>Tue, 24 May 2005 18:42:31 GMT</pubDate>
      <description>&lt;p&gt;
... or is it Superman?
&lt;/p&gt;
&lt;p&gt;
The kind folks, who administer MSDN webcasts, sent me as one of the year 2005 presenters
a shirt and a ... cape. Yes, a red cape.
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://www.alexfeinman.com/images/msdncape.jpg"&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.opennetcf.com/afeinman/aggbug.ashx?id=795f7d83-dac3-46f8-a8fc-1f978e8b975f" /&gt;</description>
      <comments>http://blog.opennetcf.com/afeinman/CommentView,guid,795f7d83-dac3-46f8-a8fc-1f978e8b975f.aspx</comments>
      <category>.Net technology</category>
      <category>Computers</category>
      <category>Microsoft</category>
    </item>
    <item>
      <trackback:ping>http://blog.opennetcf.com/afeinman/Trackback.aspx?guid=1de2284c-a65e-417c-a130-1bd5acd4ad3d</trackback:ping>
      <pingback:server>http://blog.opennetcf.com/afeinman/pingback.aspx</pingback:server>
      <pingback:target>http://blog.opennetcf.com/afeinman/PermaLink,guid,1de2284c-a65e-417c-a130-1bd5acd4ad3d.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://blog.opennetcf.com/afeinman/CommentView,guid,1de2284c-a65e-417c-a130-1bd5acd4ad3d.aspx</wfw:comment>
      <wfw:commentRss>http://blog.opennetcf.com/afeinman/SyndicationService.asmx/GetEntryCommentsRss?guid=1de2284c-a65e-417c-a130-1bd5acd4ad3d</wfw:commentRss>
      <slash:comments>5</slash:comments>
      <title>WCELoad dirty little secrets</title>
      <guid isPermaLink="false">http://blog.opennetcf.com/afeinman/PermaLink,guid,1de2284c-a65e-417c-a130-1bd5acd4ad3d.aspx</guid>
      <link>http://blog.opennetcf.com/afeinman/PermaLink,guid,1de2284c-a65e-417c-a130-1bd5acd4ad3d.aspx</link>
      <pubDate>Thu, 21 Apr 2005 00:52:05 GMT</pubDate>
      <description>How to install your cab to a particular location (Main Memory/Storage Card). Imitating CeAppMgr&lt;img width="0" height="0" src="http://blog.opennetcf.com/afeinman/aggbug.ashx?id=1de2284c-a65e-417c-a130-1bd5acd4ad3d"/&gt;</description>
      <comments>http://blog.opennetcf.com/afeinman/CommentView,guid,1de2284c-a65e-417c-a130-1bd5acd4ad3d.aspx</comments>
      <category>.Net technology</category>
      <category>Code</category>
      <category>Computers</category>
      <category>Microsoft</category>
    </item>
    <item>
      <trackback:ping>http://blog.opennetcf.com/afeinman/Trackback.aspx?guid=92670f8f-c26d-48fc-af23-916e28263c58</trackback:ping>
      <pingback:server>http://blog.opennetcf.com/afeinman/pingback.aspx</pingback:server>
      <pingback:target>http://blog.opennetcf.com/afeinman/PermaLink,guid,92670f8f-c26d-48fc-af23-916e28263c58.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://blog.opennetcf.com/afeinman/CommentView,guid,92670f8f-c26d-48fc-af23-916e28263c58.aspx</wfw:comment>
      <wfw:commentRss>http://blog.opennetcf.com/afeinman/SyndicationService.asmx/GetEntryCommentsRss?guid=92670f8f-c26d-48fc-af23-916e28263c58</wfw:commentRss>
      <slash:comments>26</slash:comments>
      <title>The end of the world as we know it</title>
      <guid isPermaLink="false">http://blog.opennetcf.com/afeinman/PermaLink,guid,92670f8f-c26d-48fc-af23-916e28263c58.aspx</guid>
      <link>http://blog.opennetcf.com/afeinman/PermaLink,guid,92670f8f-c26d-48fc-af23-916e28263c58.aspx</link>
      <pubDate>Thu, 10 Mar 2005 07:14:57 GMT</pubDate>
      <description>Microsoft announces the end of support cycle for VB6&lt;img width="0" height="0" src="http://blog.opennetcf.com/afeinman/aggbug.ashx?id=92670f8f-c26d-48fc-af23-916e28263c58"/&gt;</description>
      <comments>http://blog.opennetcf.com/afeinman/CommentView,guid,92670f8f-c26d-48fc-af23-916e28263c58.aspx</comments>
      <category>.Net technology</category>
      <category>Computers</category>
      <category>Microsoft</category>
      <category>Politics</category>
      <category>Rant</category>
    </item>
    <item>
      <trackback:ping>http://blog.opennetcf.com/afeinman/Trackback.aspx?guid=bcff54f9-c55b-4d5a-a398-0bdadc3102f5</trackback:ping>
      <pingback:server>http://blog.opennetcf.com/afeinman/pingback.aspx</pingback:server>
      <pingback:target>http://blog.opennetcf.com/afeinman/PermaLink,guid,bcff54f9-c55b-4d5a-a398-0bdadc3102f5.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://blog.opennetcf.com/afeinman/CommentView,guid,bcff54f9-c55b-4d5a-a398-0bdadc3102f5.aspx</wfw:comment>
      <wfw:commentRss>http://blog.opennetcf.com/afeinman/SyndicationService.asmx/GetEntryCommentsRss?guid=bcff54f9-c55b-4d5a-a398-0bdadc3102f5</wfw:commentRss>
      <title>Adding tooltips to Compact Framework Toolbar control</title>
      <guid isPermaLink="false">http://blog.opennetcf.com/afeinman/PermaLink,guid,bcff54f9-c55b-4d5a-a398-0bdadc3102f5.aspx</guid>
      <link>http://blog.opennetcf.com/afeinman/PermaLink,guid,bcff54f9-c55b-4d5a-a398-0bdadc3102f5.aspx</link>
      <pubDate>Fri, 25 Feb 2005 03:14:38 GMT</pubDate>
      <description>Adding tooltips to Compact Framework Toolbar control&lt;img width="0" height="0" src="http://blog.opennetcf.com/afeinman/aggbug.ashx?id=bcff54f9-c55b-4d5a-a398-0bdadc3102f5"/&gt;</description>
      <comments>http://blog.opennetcf.com/afeinman/CommentView,guid,bcff54f9-c55b-4d5a-a398-0bdadc3102f5.aspx</comments>
      <category>.Net technology</category>
      <category>Code</category>
      <category>Computers</category>
      <category>Microsoft</category>
    </item>
    <item>
      <trackback:ping>http://blog.opennetcf.com/afeinman/Trackback.aspx?guid=10ce0d78-b8cb-48ff-939b-d30fc4b2950e</trackback:ping>
      <pingback:server>http://blog.opennetcf.com/afeinman/pingback.aspx</pingback:server>
      <pingback:target>http://blog.opennetcf.com/afeinman/PermaLink,guid,10ce0d78-b8cb-48ff-939b-d30fc4b2950e.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://blog.opennetcf.com/afeinman/CommentView,guid,10ce0d78-b8cb-48ff-939b-d30fc4b2950e.aspx</wfw:comment>
      <wfw:commentRss>http://blog.opennetcf.com/afeinman/SyndicationService.asmx/GetEntryCommentsRss?guid=10ce0d78-b8cb-48ff-939b-d30fc4b2950e</wfw:commentRss>
      <title>Obtaining hWnd from TextBox controls on Smartphone</title>
      <guid isPermaLink="false">http://blog.opennetcf.com/afeinman/PermaLink,guid,10ce0d78-b8cb-48ff-939b-d30fc4b2950e.aspx</guid>
      <link>http://blog.opennetcf.com/afeinman/PermaLink,guid,10ce0d78-b8cb-48ff-939b-d30fc4b2950e.aspx</link>
      <pubDate>Wed, 09 Feb 2005 20:24:05 GMT</pubDate>
      <description>Obtaining hWnd from TextBox controls on Smartphone is slightly different from the Pockect PC platform. Here is why.&lt;img width="0" height="0" src="http://blog.opennetcf.com/afeinman/aggbug.ashx?id=10ce0d78-b8cb-48ff-939b-d30fc4b2950e"/&gt;</description>
      <comments>http://blog.opennetcf.com/afeinman/CommentView,guid,10ce0d78-b8cb-48ff-939b-d30fc4b2950e.aspx</comments>
      <category>.Net technology</category>
      <category>Code</category>
      <category>Computers</category>
      <category>Microsoft</category>
    </item>
    <item>
      <trackback:ping>http://blog.opennetcf.com/afeinman/Trackback.aspx?guid=d49f6a98-5994-4898-bfe0-b138e92304f2</trackback:ping>
      <pingback:server>http://blog.opennetcf.com/afeinman/pingback.aspx</pingback:server>
      <pingback:target>http://blog.opennetcf.com/afeinman/PermaLink,guid,d49f6a98-5994-4898-bfe0-b138e92304f2.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://blog.opennetcf.com/afeinman/CommentView,guid,d49f6a98-5994-4898-bfe0-b138e92304f2.aspx</wfw:comment>
      <wfw:commentRss>http://blog.opennetcf.com/afeinman/SyndicationService.asmx/GetEntryCommentsRss?guid=d49f6a98-5994-4898-bfe0-b138e92304f2</wfw:commentRss>
      <title>Keeping referenced DLLs in subfolders</title>
      <guid isPermaLink="false">http://blog.opennetcf.com/afeinman/PermaLink,guid,d49f6a98-5994-4898-bfe0-b138e92304f2.aspx</guid>
      <link>http://blog.opennetcf.com/afeinman/PermaLink,guid,d49f6a98-5994-4898-bfe0-b138e92304f2.aspx</link>
      <pubDate>Wed, 09 Feb 2005 20:15:44 GMT</pubDate>
      <description>Can a Compact Framework application keeps its class libraries in a directory other than the application directory (or \Windows or GAC)? Yes, it can.&lt;img width="0" height="0" src="http://blog.opennetcf.com/afeinman/aggbug.ashx?id=d49f6a98-5994-4898-bfe0-b138e92304f2"/&gt;</description>
      <comments>http://blog.opennetcf.com/afeinman/CommentView,guid,d49f6a98-5994-4898-bfe0-b138e92304f2.aspx</comments>
      <category>.Net technology</category>
      <category>Code</category>
      <category>Computers</category>
      <category>Microsoft</category>
    </item>
    <item>
      <trackback:ping>http://blog.opennetcf.com/afeinman/Trackback.aspx?guid=7e8df78c-a583-4b35-ae5d-02207210ab40</trackback:ping>
      <pingback:server>http://blog.opennetcf.com/afeinman/pingback.aspx</pingback:server>
      <pingback:target>http://blog.opennetcf.com/afeinman/PermaLink,guid,7e8df78c-a583-4b35-ae5d-02207210ab40.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://blog.opennetcf.com/afeinman/CommentView,guid,7e8df78c-a583-4b35-ae5d-02207210ab40.aspx</wfw:comment>
      <wfw:commentRss>http://blog.opennetcf.com/afeinman/SyndicationService.asmx/GetEntryCommentsRss?guid=7e8df78c-a583-4b35-ae5d-02207210ab40</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <title>Scrolling a text box</title>
      <guid isPermaLink="false">http://blog.opennetcf.com/afeinman/PermaLink,guid,7e8df78c-a583-4b35-ae5d-02207210ab40.aspx</guid>
      <link>http://blog.opennetcf.com/afeinman/PermaLink,guid,7e8df78c-a583-4b35-ae5d-02207210ab40.aspx</link>
      <pubDate>Mon, 20 Dec 2004 06:12:42 GMT</pubDate>
      <description>Avoiding flickering when adding data to a multiline textbox in Compact Framework&lt;img width="0" height="0" src="http://blog.opennetcf.com/afeinman/aggbug.ashx?id=7e8df78c-a583-4b35-ae5d-02207210ab40"/&gt;</description>
      <comments>http://blog.opennetcf.com/afeinman/CommentView,guid,7e8df78c-a583-4b35-ae5d-02207210ab40.aspx</comments>
      <category>.Net technology</category>
      <category>Code</category>
      <category>Computers</category>
      <category>Microsoft</category>
    </item>
    <item>
      <trackback:ping>http://blog.opennetcf.com/afeinman/Trackback.aspx?guid=ca4b6843-8efe-48fd-a9a6-27ca30b947e9</trackback:ping>
      <pingback:server>http://blog.opennetcf.com/afeinman/pingback.aspx</pingback:server>
      <pingback:target>http://blog.opennetcf.com/afeinman/PermaLink,guid,ca4b6843-8efe-48fd-a9a6-27ca30b947e9.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://blog.opennetcf.com/afeinman/CommentView,guid,ca4b6843-8efe-48fd-a9a6-27ca30b947e9.aspx</wfw:comment>
      <wfw:commentRss>http://blog.opennetcf.com/afeinman/SyndicationService.asmx/GetEntryCommentsRss?guid=ca4b6843-8efe-48fd-a9a6-27ca30b947e9</wfw:commentRss>
      <title>Data binding and XML</title>
      <guid isPermaLink="false">http://blog.opennetcf.com/afeinman/PermaLink,guid,ca4b6843-8efe-48fd-a9a6-27ca30b947e9.aspx</guid>
      <link>http://blog.opennetcf.com/afeinman/PermaLink,guid,ca4b6843-8efe-48fd-a9a6-27ca30b947e9.aspx</link>
      <pubDate>Mon, 22 Nov 2004 04:41:11 GMT</pubDate>
      <description>So you have a complex xml document and want to bind your screen controls to its nodes/attributes. Here is how.&lt;img width="0" height="0" src="http://blog.opennetcf.com/afeinman/aggbug.ashx?id=ca4b6843-8efe-48fd-a9a6-27ca30b947e9"/&gt;</description>
      <comments>http://blog.opennetcf.com/afeinman/CommentView,guid,ca4b6843-8efe-48fd-a9a6-27ca30b947e9.aspx</comments>
      <category>.Net technology</category>
      <category>Code</category>
      <category>Computers</category>
      <category>Microsoft</category>
    </item>
    <item>
      <trackback:ping>http://blog.opennetcf.com/afeinman/Trackback.aspx?guid=ac683afc-89ef-4817-8bad-0de5d31c6c49</trackback:ping>
      <pingback:server>http://blog.opennetcf.com/afeinman/pingback.aspx</pingback:server>
      <pingback:target>http://blog.opennetcf.com/afeinman/PermaLink,guid,ac683afc-89ef-4817-8bad-0de5d31c6c49.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://blog.opennetcf.com/afeinman/CommentView,guid,ac683afc-89ef-4817-8bad-0de5d31c6c49.aspx</wfw:comment>
      <wfw:commentRss>http://blog.opennetcf.com/afeinman/SyndicationService.asmx/GetEntryCommentsRss?guid=ac683afc-89ef-4817-8bad-0de5d31c6c49</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I've posted an <a href="http://www.opennetcf.org/PermaLink.aspx?guid=4cf118ee-5668-452e-af2c-f3a0c6d43a7f">article </a>discussing
the event handler internals, tips and tricks
</p>
        <img width="0" height="0" src="http://blog.opennetcf.com/afeinman/aggbug.ashx?id=ac683afc-89ef-4817-8bad-0de5d31c6c49" />
      </body>
      <title>Manipulating event handlers in NETCF</title>
      <guid isPermaLink="false">http://blog.opennetcf.com/afeinman/PermaLink,guid,ac683afc-89ef-4817-8bad-0de5d31c6c49.aspx</guid>
      <link>http://blog.opennetcf.com/afeinman/PermaLink,guid,ac683afc-89ef-4817-8bad-0de5d31c6c49.aspx</link>
      <pubDate>Sun, 07 Nov 2004 09:19:43 GMT</pubDate>
      <description>&lt;p&gt;
I've posted an &lt;a href="http://www.opennetcf.org/PermaLink.aspx?guid=4cf118ee-5668-452e-af2c-f3a0c6d43a7f"&gt;article &lt;/a&gt;discussing
the event handler internals, tips and tricks
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.opennetcf.com/afeinman/aggbug.ashx?id=ac683afc-89ef-4817-8bad-0de5d31c6c49" /&gt;</description>
      <comments>http://blog.opennetcf.com/afeinman/CommentView,guid,ac683afc-89ef-4817-8bad-0de5d31c6c49.aspx</comments>
      <category>.Net technology</category>
      <category>Code</category>
      <category>Computers</category>
      <category>Microsoft</category>
    </item>
    <item>
      <trackback:ping>http://blog.opennetcf.com/afeinman/Trackback.aspx?guid=2b998235-dbc2-4041-b479-52e5ef4de87a</trackback:ping>
      <pingback:server>http://blog.opennetcf.com/afeinman/pingback.aspx</pingback:server>
      <pingback:target>http://blog.opennetcf.com/afeinman/PermaLink,guid,2b998235-dbc2-4041-b479-52e5ef4de87a.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://blog.opennetcf.com/afeinman/CommentView,guid,2b998235-dbc2-4041-b479-52e5ef4de87a.aspx</wfw:comment>
      <wfw:commentRss>http://blog.opennetcf.com/afeinman/SyndicationService.asmx/GetEntryCommentsRss?guid=2b998235-dbc2-4041-b479-52e5ef4de87a</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I've posted an article that discusses how to create non-rectangular windows in Windows
CE using Compact Framework. See it <a href="http://www.opennetcf.org/PermaLink.aspx?guid=f0abe92f-6e94-4a19-b0e3-11d1bdb3c9f0">here</a></p>
        <img width="0" height="0" src="http://blog.opennetcf.com/afeinman/aggbug.ashx?id=2b998235-dbc2-4041-b479-52e5ef4de87a" />
      </body>
      <title>Creating irregularly-shaped windows in Windows CE - article is up on www.opennetcf.org</title>
      <guid isPermaLink="false">http://blog.opennetcf.com/afeinman/PermaLink,guid,2b998235-dbc2-4041-b479-52e5ef4de87a.aspx</guid>
      <link>http://blog.opennetcf.com/afeinman/PermaLink,guid,2b998235-dbc2-4041-b479-52e5ef4de87a.aspx</link>
      <pubDate>Thu, 21 Oct 2004 17:27:51 GMT</pubDate>
      <description>&lt;p&gt;
I've posted an article that discusses how to create non-rectangular windows in Windows
CE using Compact Framework. See it &lt;a href="http://www.opennetcf.org/PermaLink.aspx?guid=f0abe92f-6e94-4a19-b0e3-11d1bdb3c9f0"&gt;here&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.opennetcf.com/afeinman/aggbug.ashx?id=2b998235-dbc2-4041-b479-52e5ef4de87a" /&gt;</description>
      <comments>http://blog.opennetcf.com/afeinman/CommentView,guid,2b998235-dbc2-4041-b479-52e5ef4de87a.aspx</comments>
      <category>.Net technology</category>
      <category>Code</category>
      <category>Computers</category>
      <category>Microsoft</category>
    </item>
    <item>
      <trackback:ping>http://blog.opennetcf.com/afeinman/Trackback.aspx?guid=9305a1d9-e24e-4310-89e2-f80808076a37</trackback:ping>
      <pingback:server>http://blog.opennetcf.com/afeinman/pingback.aspx</pingback:server>
      <pingback:target>http://blog.opennetcf.com/afeinman/PermaLink,guid,9305a1d9-e24e-4310-89e2-f80808076a37.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://blog.opennetcf.com/afeinman/CommentView,guid,9305a1d9-e24e-4310-89e2-f80808076a37.aspx</wfw:comment>
      <wfw:commentRss>http://blog.opennetcf.com/afeinman/SyndicationService.asmx/GetEntryCommentsRss?guid=9305a1d9-e24e-4310-89e2-f80808076a37</wfw:commentRss>
      <title>Implementing BeginUpdate/EndUpdate on a Listbox and Combobox</title>
      <guid isPermaLink="false">http://blog.opennetcf.com/afeinman/PermaLink,guid,9305a1d9-e24e-4310-89e2-f80808076a37.aspx</guid>
      <link>http://blog.opennetcf.com/afeinman/PermaLink,guid,9305a1d9-e24e-4310-89e2-f80808076a37.aspx</link>
      <pubDate>Mon, 04 Oct 2004 01:28:01 GMT</pubDate>
      <description>Compact Framework versions of listbox and combobox control do not have BeginUpdtate/EndUpdate methods. This post explains how to implement these methods to help avoid excessive screen updates&lt;img width="0" height="0" src="http://blog.opennetcf.com/afeinman/aggbug.ashx?id=9305a1d9-e24e-4310-89e2-f80808076a37"/&gt;</description>
      <comments>http://blog.opennetcf.com/afeinman/CommentView,guid,9305a1d9-e24e-4310-89e2-f80808076a37.aspx</comments>
      <category>.Net technology</category>
      <category>Code</category>
      <category>Computers</category>
    </item>
    <item>
      <trackback:ping>http://blog.opennetcf.com/afeinman/Trackback.aspx?guid=6c9bdc64-dd33-4c43-952a-5ed0f6c492fa</trackback:ping>
      <pingback:server>http://blog.opennetcf.com/afeinman/pingback.aspx</pingback:server>
      <pingback:target>http://blog.opennetcf.com/afeinman/PermaLink,guid,6c9bdc64-dd33-4c43-952a-5ed0f6c492fa.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://blog.opennetcf.com/afeinman/CommentView,guid,6c9bdc64-dd33-4c43-952a-5ed0f6c492fa.aspx</wfw:comment>
      <wfw:commentRss>http://blog.opennetcf.com/afeinman/SyndicationService.asmx/GetEntryCommentsRss?guid=6c9bdc64-dd33-4c43-952a-5ed0f6c492fa</wfw:commentRss>
      <title>A mysterious case of disappearing CRs</title>
      <guid isPermaLink="false">http://blog.opennetcf.com/afeinman/PermaLink,guid,6c9bdc64-dd33-4c43-952a-5ed0f6c492fa.aspx</guid>
      <link>http://blog.opennetcf.com/afeinman/PermaLink,guid,6c9bdc64-dd33-4c43-952a-5ed0f6c492fa.aspx</link>
      <pubDate>Mon, 20 Sep 2004 17:01:44 GMT</pubDate>
      <description>Why does my web service eat my CRLFs and spit LFs only&lt;img width="0" height="0" src="http://blog.opennetcf.com/afeinman/aggbug.ashx?id=6c9bdc64-dd33-4c43-952a-5ed0f6c492fa"/&gt;</description>
      <comments>http://blog.opennetcf.com/afeinman/CommentView,guid,6c9bdc64-dd33-4c43-952a-5ed0f6c492fa.aspx</comments>
      <category>.Net technology</category>
      <category>Code</category>
      <category>Computers</category>
      <category>Microsoft</category>
    </item>
    <item>
      <trackback:ping>http://blog.opennetcf.com/afeinman/Trackback.aspx?guid=ec034858-e071-4daa-b1be-0323b7f54b11</trackback:ping>
      <pingback:server>http://blog.opennetcf.com/afeinman/pingback.aspx</pingback:server>
      <pingback:target>http://blog.opennetcf.com/afeinman/PermaLink,guid,ec034858-e071-4daa-b1be-0323b7f54b11.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://blog.opennetcf.com/afeinman/CommentView,guid,ec034858-e071-4daa-b1be-0323b7f54b11.aspx</wfw:comment>
      <wfw:commentRss>http://blog.opennetcf.com/afeinman/SyndicationService.asmx/GetEntryCommentsRss?guid=ec034858-e071-4daa-b1be-0323b7f54b11</wfw:commentRss>
      <slash:comments>21</slash:comments>
      <title>How .NET CF application checks for the previous instance</title>
      <guid isPermaLink="false">http://blog.opennetcf.com/afeinman/PermaLink,guid,ec034858-e071-4daa-b1be-0323b7f54b11.aspx</guid>
      <link>http://blog.opennetcf.com/afeinman/PermaLink,guid,ec034858-e071-4daa-b1be-0323b7f54b11.aspx</link>
      <pubDate>Wed, 17 Mar 2004 20:37:08 GMT</pubDate>
      <description>A short guided trip into the bowels of your .NET CF application&lt;img width="0" height="0" src="http://blog.opennetcf.com/afeinman/aggbug.ashx?id=ec034858-e071-4daa-b1be-0323b7f54b11"/&gt;</description>
      <comments>http://blog.opennetcf.com/afeinman/CommentView,guid,ec034858-e071-4daa-b1be-0323b7f54b11.aspx</comments>
      <category>.Net technology</category>
      <category>Code</category>
      <category>Computers</category>
      <category>Microsoft</category>
    </item>
  </channel>
</rss>