<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"><title type="html">Wiz/dumb</title><subtitle type="html">Messaging development spouts and findings.</subtitle><id>http://blogs.msdn.com/pcreehan/atom.xml</id><link rel="alternate" type="text/html" href="http://blogs.msdn.com/pcreehan/default.aspx" /><link rel="self" type="application/atom+xml" href="http://blogs.msdn.com/pcreehan/atom.xml" /><generator uri="http://communityserver.org" version="2.1.61025.2">Community Server</generator><updated>2008-09-19T13:38:00Z</updated><entry><title>Fixing the Charset on MIME Messages When Using ADODB.Stream.ReadText</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/pcreehan/archive/2009/10/29/fixing-the-charset-on-mime-messages-when-using-adodb-stream-readtext.aspx" /><id>http://blogs.msdn.com/pcreehan/archive/2009/10/29/fixing-the-charset-on-mime-messages-when-using-adodb-stream-readtext.aspx</id><published>2009-10-29T20:00:00Z</published><updated>2009-10-29T20:00:00Z</updated><content type="html">&lt;p&gt;We had an issue recently where the customer had written an application to process MIME messages that had body parts encoded with the &lt;a href="http://www.ietf.org/rfc/rfc1489.txt?number=1489"&gt;koi8-r charset&lt;/a&gt;…or at least that’s what it said:&lt;/p&gt;  &lt;pre class="csharpcode"&gt;------_=_NextPart_001_01C9F067.D9742103
Content-Type: text/plain;
    charset=&amp;quot;koi8-r&amp;quot;
Content-Transfer-Encoding: quoted-printable&lt;/pre&gt;

&lt;p&gt;If you use code similar to the following, the resulting characters returned were not correct.&lt;/p&gt;

&lt;div style="padding-bottom: 5px; padding-left: 5px; width: 519px; padding-right: 5px; display: block; float: none; margin-left: auto; margin-right: auto; padding-top: 5px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:e0cbcb2d-a678-4b8e-a139-0da1ba0ab375" class="wlWriterEditableSmartContent"&gt;
&lt;div style="border: #000080 1px solid; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt;
&lt;div style="background-color: #ffffff; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap"&gt;
&lt;p&gt;

&lt;span style="color:#0000ff"&gt;private&lt;/span&gt; &lt;span style="color:#0000ff"&gt;string&lt;/span&gt; ReadBodyPart()&lt;br&gt;
{&lt;br&gt;
    CDO.&lt;span style="color:#2b91af"&gt;IDataSource&lt;/span&gt; oIDsrc;&lt;br&gt;
    ADODB.&lt;span style="color:#2b91af"&gt;Stream&lt;/span&gt; objBpStream = &lt;span style="color:#0000ff"&gt;new&lt;/span&gt; ADODB.&lt;span style="color:#2b91af"&gt;Stream&lt;/span&gt;();&lt;br&gt;
    CDO.&lt;span style="color:#2b91af"&gt;Message&lt;/span&gt; objCDOMsg = &lt;span style="color:#0000ff"&gt;new&lt;/span&gt; CDO.&lt;span style="color:#2b91af"&gt;Message&lt;/span&gt;();&lt;br&gt;
    CDO.&lt;span style="color:#2b91af"&gt;IBodyPart&lt;/span&gt; oIBodyPart;&lt;br&gt;
    &lt;br&gt;
    objBpStream.Open(vtMissing, &lt;br&gt;
        ADODB.&lt;span style="color:#2b91af"&gt;ConnectModeEnum&lt;/span&gt;.adModeUnknown,&lt;br&gt;
        ADODB.&lt;span style="color:#2b91af"&gt;StreamOpenOptionsEnum&lt;/span&gt;.adOpenStreamUnspecified, &lt;br&gt;
        &lt;span style="color:#0000ff"&gt;string&lt;/span&gt;.Empty, &lt;br&gt;
        &lt;span style="color:#0000ff"&gt;string&lt;/span&gt;.Empty);&lt;br&gt;
&lt;br&gt;
    objBpStream.LoadFromFile(EML_FILE_PATH);           &lt;br&gt;
    &lt;br&gt;
    oIDsrc = (CDO.&lt;span style="color:#2b91af"&gt;IDataSource&lt;/span&gt;)objCDOMsg;&lt;br&gt;
    &lt;br&gt;
    oIDsrc.OpenObject(objBpStream, &lt;span style="color:#a31515"&gt;"_Stream"&lt;/span&gt;);&lt;br&gt;
&lt;br&gt;
    objBpStream.Close();&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
    oIBodyPart = (CDO.&lt;span style="color:#2b91af"&gt;IBodyPart&lt;/span&gt;)objCDOMsg.TextBodyPart;&lt;br&gt;
    objBpStream = (ADODB.&lt;span style="color:#2b91af"&gt;Stream&lt;/span&gt;)oIBodyPart.GetDecodedContentStream();&lt;br&gt;
    &lt;span style="color:#0000ff"&gt;return&lt;/span&gt; objBpStream.ReadText(-1);&lt;br&gt;
&lt;br&gt;
}
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;style type="text/css"&gt;

.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;The problem is that koi8-r is the &lt;a href="http://msdn.microsoft.com/en-us/library/system.text.encoding.bodyname(VS.85).aspx"&gt;body name&lt;/a&gt; for both “windows-1251” (&lt;a href="http://msdn.microsoft.com/en-us/goglobal/cc305144.aspx"&gt;codepage 1251&lt;/a&gt;) and “koi8-r” (&lt;a href="http://www.ietf.org/rfc/rfc1489.txt?number=1489"&gt;codepage 20866&lt;/a&gt;). I took a look at what the &lt;a href="http://msdn.microsoft.com/en-us/library/ms526935(EXCHG.10).aspx"&gt;TextBody&lt;/a&gt; and &lt;a href="http://msdn.microsoft.com/en-us/library/ms527537(EXCHG.10).aspx"&gt;HtmlBody&lt;/a&gt; properties were doing because they can return the characters correctly. Turns out, when the message is loaded, we make an API call to &lt;a href="http://msdn.microsoft.com/en-us/library/aa741015(VS.85).aspx"&gt;GetCharsetInfo&lt;/a&gt; and pass in the value defined in the header. This gives us back a structure that contains the &lt;a href="http://msdn.microsoft.com/en-us/library/aa767878(VS.85).aspx"&gt;uiCodePage&lt;/a&gt; used by &lt;a href="http://msdn.microsoft.com/en-us/library/ms526935(EXCHG.10).aspx"&gt;TextBody&lt;/a&gt; and &lt;a href="http://msdn.microsoft.com/en-us/library/ms527537(EXCHG.10).aspx"&gt;HtmlBody&lt;/a&gt; later.&lt;/p&gt;

&lt;p&gt;Fortunately, the .net framework provides methods to do this as well. I simply leverage them to correct the charset I’m given.&lt;/p&gt;

&lt;div style="padding-bottom: 5px; padding-left: 5px; width: 519px; padding-right: 5px; display: block; float: none; margin-left: auto; margin-right: auto; padding-top: 5px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:c2b19660-5aa6-4101-9a3a-ba8cc4b6ae56" class="wlWriterEditableSmartContent"&gt;
&lt;div style="border: #000080 1px solid; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt;
&lt;div style="background-color: #ffffff; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap"&gt;
&lt;p&gt;

&lt;span style="color:#0000ff"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff"&gt;static&lt;/span&gt; &lt;span style="color:#0000ff"&gt;string&lt;/span&gt; GetCharSetName(&lt;span style="color:#0000ff"&gt;string&lt;/span&gt; bodyName)&lt;br&gt;
{&lt;br&gt;
    &lt;span style="color:#2b91af"&gt;Encoding&lt;/span&gt; encoding = &lt;span style="color:#2b91af"&gt;Encoding&lt;/span&gt;.GetEncoding(bodyName);&lt;br&gt;
    &lt;span style="color:#0000ff"&gt;if&lt;/span&gt; (encoding != &lt;span style="color:#0000ff"&gt;null&lt;/span&gt;)&lt;br&gt;
    {&lt;br&gt;
        &lt;span style="color:#0000ff"&gt;int&lt;/span&gt; iCP = encoding.WindowsCodePage;&lt;br&gt;
        &lt;span style="color:#0000ff"&gt;return&lt;/span&gt; &lt;span style="color:#2b91af"&gt;Encoding&lt;/span&gt;.GetEncoding(iCP).WebName;&lt;br&gt;
    }&lt;br&gt;
    &lt;span style="color:#0000ff"&gt;return&lt;/span&gt; bodyName;&lt;br&gt;
}
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;Then I just insert a call to that function above my call to ReadText and we’re good.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;
  &lt;div style="padding-bottom: 5px; padding-left: 5px; width: 519px; padding-right: 5px; display: block; float: none; margin-left: auto; margin-right: auto; padding-top: 5px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:f7dac8f9-8241-483c-a229-a0021993acaa" class="wlWriterEditableSmartContent"&gt;
&lt;div style="border: #000080 1px solid; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt;
&lt;div style="background-color: #ffffff; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap"&gt;
&lt;p&gt;

&lt;span style="color:#0000ff"&gt;private&lt;/span&gt; &lt;span style="color:#0000ff"&gt;string&lt;/span&gt; ReadBodyPart()&lt;br&gt;
{&lt;br&gt;
    CDO.&lt;span style="color:#2b91af"&gt;IDataSource&lt;/span&gt; oIDsrc;&lt;br&gt;
    ADODB.&lt;span style="color:#2b91af"&gt;Stream&lt;/span&gt; objBpStream = &lt;span style="color:#0000ff"&gt;new&lt;/span&gt; ADODB.&lt;span style="color:#2b91af"&gt;Stream&lt;/span&gt;();&lt;br&gt;
    CDO.&lt;span style="color:#2b91af"&gt;Message&lt;/span&gt; objCDOMsg = &lt;span style="color:#0000ff"&gt;new&lt;/span&gt; CDO.&lt;span style="color:#2b91af"&gt;Message&lt;/span&gt;();&lt;br&gt;
    CDO.&lt;span style="color:#2b91af"&gt;IBodyPart&lt;/span&gt; oIBodyPart;&lt;br&gt;
    &lt;br&gt;
    objBpStream.Open(vtMissing, &lt;br&gt;
        ADODB.&lt;span style="color:#2b91af"&gt;ConnectModeEnum&lt;/span&gt;.adModeUnknown,&lt;br&gt;
        ADODB.&lt;span style="color:#2b91af"&gt;StreamOpenOptionsEnum&lt;/span&gt;.adOpenStreamUnspecified, &lt;br&gt;
        &lt;span style="color:#0000ff"&gt;string&lt;/span&gt;.Empty, &lt;br&gt;
        &lt;span style="color:#0000ff"&gt;string&lt;/span&gt;.Empty);&lt;br&gt;
&lt;br&gt;
    objBpStream.LoadFromFile(EML_FILE_PATH);           &lt;br&gt;
    &lt;br&gt;
    oIDsrc = (CDO.&lt;span style="color:#2b91af"&gt;IDataSource&lt;/span&gt;)objCDOMsg;&lt;br&gt;
    &lt;br&gt;
    oIDsrc.OpenObject(objBpStream, &lt;span style="color:#a31515"&gt;"_Stream"&lt;/span&gt;);&lt;br&gt;
&lt;br&gt;
    objBpStream.Close();&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
    oIBodyPart = (CDO.&lt;span style="color:#2b91af"&gt;IBodyPart&lt;/span&gt;)objCDOMsg.TextBodyPart;&lt;br&gt;
    objBpStream = (ADODB.&lt;span style="color:#2b91af"&gt;Stream&lt;/span&gt;)oIBodyPart.GetDecodedContentStream();&lt;br&gt;
    objBpStream.Charset = GetCharSetName(objBpStream.Charset);&lt;br&gt;
    &lt;span style="color:#0000ff"&gt;return&lt;/span&gt; objBpStream.ReadText(-1);&lt;br&gt;
&lt;br&gt;
}
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9914370" width="1" height="1"&gt;</content><author><name>pcreehan</name><uri>http://blogs.msdn.com/members/pcreehan.aspx</uri></author><category term="MIME" scheme="http://blogs.msdn.com/pcreehan/archive/tags/MIME/default.aspx" /><category term=".NET" scheme="http://blogs.msdn.com/pcreehan/archive/tags/.NET/default.aspx" /><category term="DevMsgTeam" scheme="http://blogs.msdn.com/pcreehan/archive/tags/DevMsgTeam/default.aspx" /><category term="CDOSYS" scheme="http://blogs.msdn.com/pcreehan/archive/tags/CDOSYS/default.aspx" /><category term="CDOSYS/CDOEX" scheme="http://blogs.msdn.com/pcreehan/archive/tags/CDOSYS_2F00_CDOEX/default.aspx" /></entry><entry><title>Parsing ServerVersion: When an Int Is Really 5 Ints</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/pcreehan/archive/2009/09/21/parsing-serverversion-when-an-int-is-really-5-ints.aspx" /><id>http://blogs.msdn.com/pcreehan/archive/2009/09/21/parsing-serverversion-when-an-int-is-really-5-ints.aspx</id><published>2009-09-21T18:45:00Z</published><updated>2009-09-21T18:45:00Z</updated><content type="html">&lt;p&gt;I recently had a case where a customer was asking how to figure out the mailbox version of a given user using Exchange Web Services (EWS). We noticed there is a node returned in the AutoDiscover response message called ServerVersion, but this value seems pretty opaque. Here’s a snippet from the AutoDiscover POX response from my test server:&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;div style="padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:5db1e74e-106d-4e32-a475-a93a8a216f5f" class="wlWriterEditableSmartContent"&gt;
&lt;div style="border: #000080 1px solid; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt;
&lt;div style="background-color: #ffffff; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap"&gt;
&lt;p&gt;  &lt;span style="color:#0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;Protocol&lt;/span&gt;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br&gt; &lt;span style="color:#0000ff"&gt;  &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;Type&lt;/span&gt;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;EXCH&lt;span style="color:#0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515"&gt;Type&lt;/span&gt;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br&gt; &lt;span style="color:#0000ff"&gt;  &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;Server&lt;/span&gt;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;MAILBOXEX7.domain.com&lt;span style="color:#0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515"&gt;Server&lt;/span&gt;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br&gt; &lt;span style="color:#0000ff"&gt;  &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;ServerDN&lt;/span&gt;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;/o=First Organization/ou=Exchange Administrative Group (FYDIBOHF23SPDLT)/cn=Configuration/cn=Servers/cn=MAILBOXEX7&lt;span style="color:#0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515"&gt;ServerDN&lt;/span&gt;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br&gt; &lt;span style="color:#0000ff"&gt;  &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;ServerVersion&lt;/span&gt;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;720280B0&lt;span style="color:#0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515"&gt;ServerVersion&lt;/span&gt;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br&gt; &lt;span style="color:#0000ff"&gt;  &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;MdbDN&lt;/span&gt;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;/o=First Organization/ou=Exchange Administrative Group (FYDIBOHF23SPDLT)/cn=Configuration/cn=Servers/cn=MAILBOXEX7/cn=Microsoft Private MDB&lt;span style="color:#0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515"&gt;MdbDN&lt;/span&gt;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br&gt; &lt;span style="color:#0000ff"&gt;  &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;PublicFolderServer&lt;/span&gt;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;MAILBOXEX7.domain.com&lt;span style="color:#0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515"&gt;PublicFolderServer&lt;/span&gt;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br&gt; &lt;span style="color:#0000ff"&gt;  &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;AD&lt;/span&gt;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;domainDC.domain.com&lt;span style="color:#0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515"&gt;AD&lt;/span&gt;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br&gt; &lt;span style="color:#0000ff"&gt;  &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;ASUrl&lt;/span&gt;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;https://casserver.domain.com/EWS/Exchange.asmx&lt;span style="color:#0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515"&gt;ASUrl&lt;/span&gt;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br&gt; &lt;span style="color:#0000ff"&gt;  &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;EwsUrl&lt;/span&gt;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;https://casserver.domain.com/EWS/Exchange.asmx&lt;span style="color:#0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515"&gt;EwsUrl&lt;/span&gt;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br&gt; &lt;span style="color:#0000ff"&gt;  &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;OOFUrl&lt;/span&gt;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;https://casserver.domain.com/EWS/Exchange.asmx&lt;span style="color:#0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515"&gt;OOFUrl&lt;/span&gt;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br&gt; &lt;span style="color:#0000ff"&gt;  &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;UMUrl&lt;/span&gt;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;https://casserver.domain.com/UnifiedMessaging/Service.asmx&lt;span style="color:#0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515"&gt;UMUrl&lt;/span&gt;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br&gt; &lt;span style="color:#0000ff"&gt;  &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;OABUrl&lt;/span&gt;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;https://casserver/OAB/4c44408b-66b7-42d9-8247-316fca26961c/&lt;span style="color:#0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515"&gt;OABUrl&lt;/span&gt;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br&gt; &lt;span style="color:#0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515"&gt;Protocol&lt;/span&gt;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;  &lt;p&gt;The ServerVersion value returned in AutoDiscover is a 32-bit integer value represented in hexidecimal format (720280B0). The integer by itself doesn’t mean anything. It turns out, this integer is really a serialized structure. Here’s how it breaks down: &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;0x720280B0 (or 1912766640 in decimal) represented in binary is 01110010000000101000000010110000. If we break this binary chunk up into 5 pieces, we’ll see the structure we are after:&lt;/p&gt;  &lt;p&gt;0111&amp;#160; 001000&amp;#160; 000010&amp;#160; 1&amp;#160; 000000010110000&lt;/p&gt;  &lt;p&gt;0111&amp;#160; (7) - The first 4 bits represent a number used for comparison against older version number structures. You can ignore this.&lt;/p&gt;  &lt;p&gt;001000 (8) – The next 6 bits represent the major version number.&lt;/p&gt;  &lt;p&gt;000010 (2) – The next 6 bits represent the minor version number.&lt;/p&gt;  &lt;p&gt;1 (1) – This bit is just a flag that you can ignore.&lt;/p&gt;  &lt;p&gt;000000010110000 (176) – The last 15 bits is the build number.&lt;/p&gt;  &lt;p&gt;So I can see that my server is running build 08.02.0176.&lt;/p&gt;  &lt;p&gt;To parse this value in code is quite easy if you use the binary shift operators. The following sample is in C#, but similar constructs exist in most languages. GetServerVersionIntFromString simply gets the ServerVersion value from the AutoDiscover response body and converts the string value “720280B0” into an unisigned integer using UInt32.Parse&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New"&gt;&lt;span style="color: #2b91af"&gt;UInt32 &lt;/span&gt;intServerVersion = GetServerVersionIntFromString(sb);       &lt;br /&gt;      &lt;br /&gt;&lt;span style="color: blue"&gt;uint &lt;/span&gt;build = intServerVersion &amp;amp; 0x7FFF; &lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color: green"&gt;//get bottom 15 bits        &lt;br /&gt;&lt;/span&gt;&lt;span style="color: blue"&gt;uint &lt;/span&gt;minor = (intServerVersion &amp;gt;&amp;gt; 16) &amp;amp; 0x3F; &lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color: green"&gt;//get 6 bits from 16 bits in        &lt;br /&gt;&lt;/span&gt;&lt;span style="color: blue"&gt;uint &lt;/span&gt;major = (intServerVersion &amp;gt;&amp;gt; 22) &amp;amp; 0x3F; &lt;/font&gt;&lt;span style="color: green"&gt;&lt;font face="Courier New"&gt;//gets 6 bits from 22 bits in        &lt;br /&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;I should point out that in Exchange 2010 and above, a new AutoDiscover option is being made available – AutoDiscover SOAP. If you know you will be targeting an Exchange 2010 server, you can use the SOAP AutoDiscover calls which can return you the server major and minor build numbers in a more easily consumable format.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;div style="padding-bottom: 5px; padding-left: 5px; width: 519px; padding-right: 5px; display: block; float: none; margin-left: auto; margin-right: auto; padding-top: 5px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:6c070350-cc31-48b0-9bdc-d676beaef6b4" class="wlWriterEditableSmartContent"&gt;
&lt;div style="border: #000080 1px solid; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt;
&lt;div style="background-color: #ffffff; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap"&gt;
&lt;p&gt;  &lt;span style="color:#0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;s:Header&lt;/span&gt;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br&gt; &lt;span style="color:#0000ff"&gt;  &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;a:Action&lt;/span&gt;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;s:mustUnderstand&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;1&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;http://schemas.microsoft.com/exchange/2010/Autodiscover/Autodiscover/GetUserSettingsResponse&lt;span style="color:#0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515"&gt;a:Action&lt;/span&gt;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br&gt; &lt;span style="color:#0000ff"&gt;  &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;h:ServerVersionInfo&lt;/span&gt;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;xmlns:h&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;http://schemas.microsoft.com/exchange/2010/Autodiscover&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;xmlns:i&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;http://www.w3.org/2001/XMLSchema-instance&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br&gt; &lt;span style="color:#0000ff"&gt;    &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;h:MajorVersion&lt;/span&gt;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;14&lt;span style="color:#0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515"&gt;h:MajorVersion&lt;/span&gt;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br&gt; &lt;span style="color:#0000ff"&gt;    &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;h:MinorVersion&lt;/span&gt;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;0&lt;span style="color:#0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515"&gt;h:MinorVersion&lt;/span&gt;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br&gt; &lt;span style="color:#0000ff"&gt;    &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;h:MajorBuildNumber&lt;/span&gt;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;639&lt;span style="color:#0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515"&gt;h:MajorBuildNumber&lt;/span&gt;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br&gt; &lt;span style="color:#0000ff"&gt;    &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;h:MinorBuildNumber&lt;/span&gt;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;20&lt;span style="color:#0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515"&gt;h:MinorBuildNumber&lt;/span&gt;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br&gt; &lt;span style="color:#0000ff"&gt;    &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;h:Version&lt;/span&gt;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;Exchange2010&lt;span style="color:#0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515"&gt;h:Version&lt;/span&gt;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br&gt; &lt;span style="color:#0000ff"&gt;  &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515"&gt;h:ServerVersionInfo&lt;/span&gt;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br&gt; &lt;span style="color:#0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515"&gt;s:Header&lt;/span&gt;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9897561" width="1" height="1"&gt;</content><author><name>pcreehan</name><uri>http://blogs.msdn.com/members/pcreehan.aspx</uri></author><category term="Exchange" scheme="http://blogs.msdn.com/pcreehan/archive/tags/Exchange/default.aspx" /><category term=".NET" scheme="http://blogs.msdn.com/pcreehan/archive/tags/.NET/default.aspx" /><category term="Exchange 2007" scheme="http://blogs.msdn.com/pcreehan/archive/tags/Exchange+2007/default.aspx" /><category term="Exchange Web Services (EWS)" scheme="http://blogs.msdn.com/pcreehan/archive/tags/Exchange+Web+Services+_2800_EWS_2900_/default.aspx" /><category term="DevMsgTeam" scheme="http://blogs.msdn.com/pcreehan/archive/tags/DevMsgTeam/default.aspx" /></entry><entry><title>MimeContent vs Mime Content</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/pcreehan/archive/2009/09/16/mimecontent-vs-mime-content.aspx" /><id>http://blogs.msdn.com/pcreehan/archive/2009/09/16/mimecontent-vs-mime-content.aspx</id><published>2009-09-16T22:46:31Z</published><updated>2009-09-16T22:46:31Z</updated><content type="html">&lt;p&gt;Recently, I helped a customer with an issue where they were wondering if it was essential to set the &lt;a href="http://msdn.microsoft.com/en-us/library/aa563719.aspx"&gt;ToRecipients&lt;/a&gt;, &lt;a href="http://msdn.microsoft.com/en-us/library/aa581076.aspx"&gt;CcRecipients&lt;/a&gt;, and &lt;a title="BccRecipients" href="http://msdn.microsoft.com/en-us/library/aa565250.aspx"&gt;BccRecipients&lt;/a&gt; if they were setting the same values in the &lt;a href="http://msdn.microsoft.com/en-us/library/aa580801.aspx"&gt;MimeContent&lt;/a&gt; property when doing a &lt;a href="http://msdn.microsoft.com/en-us/library/aa566468.aspx"&gt;CreateItem&lt;/a&gt; call in Exchange Web Services. While trying to test out the scenarios, I thought “maybe it depends on the order of the elements in your &amp;lt;t:Message&amp;gt;. I soon realized that the order of the properties in the &amp;lt;t:Message&amp;gt; node seemed to matter. As it turns out, MessageType inherits from ItemType and MimeContent is defined on the ItemType where the recipient properties are defined on the MessageType and both of these are xs:sequence types. This means that their elements must appear in a specific order. Any deviation from the prescribed sequence results in a schema validation error returned from EWS. That meant that the MimeContent property itself always had to appear before the recipient properties since MimeContent is the first element described in the ItemType.&lt;/p&gt;  &lt;p&gt;Here’s the schema for the ItemType and you can see that MimeContent is first.&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;div style="padding-bottom: 5px; padding-left: 5px; width: 519px; padding-right: 5px; display: block; float: none; margin-left: auto; margin-right: auto; padding-top: 5px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:b2056d32-7a64-46ba-800a-9a0dc141e084" class="wlWriterEditableSmartContent"&gt;
&lt;div style="border: #000080 1px solid; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt;
&lt;div style="background-color: #ffffff; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap"&gt;
&lt;p&gt;  &lt;span style="color:#0000ff"&gt;&amp;lt;!--&lt;/span&gt;&lt;span style="color:#008000"&gt; Core contents of an item. &lt;/span&gt;&lt;span style="color:#0000ff"&gt;--&amp;gt;&lt;/span&gt;&lt;br&gt; &lt;span style="color:#0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;xs:complexType&lt;/span&gt;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;name&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;ItemType&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br&gt; &lt;span style="color:#0000ff"&gt;  &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;xs:sequence&lt;/span&gt;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br&gt; &lt;span style="color:#0000ff"&gt;    &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;xs:element&lt;/span&gt;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;name&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;MimeContent&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;type&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;t:MimeContentType&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;minOccurs&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;0&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; /&amp;gt;&lt;/span&gt;&lt;br&gt; &lt;span style="color:#0000ff"&gt;    &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;xs:element&lt;/span&gt;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;name&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;ItemId&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;type&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;t:ItemIdType&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;minOccurs&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;0&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; /&amp;gt;&lt;/span&gt;&lt;br&gt; &lt;span style="color:#0000ff"&gt;    &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;xs:element&lt;/span&gt;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;name&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;ParentFolderId&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;type&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;t:FolderIdType&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;minOccurs&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;0&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;br&gt; &lt;span style="color:#0000ff"&gt;    &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;xs:element&lt;/span&gt;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;name&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;ItemClass&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;type&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;t:ItemClassType&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;minOccurs&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;0&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; /&amp;gt;&lt;/span&gt;&lt;br&gt; &lt;span style="color:#0000ff"&gt;    &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;xs:element&lt;/span&gt;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;name&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;Subject&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;type&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;xs:string&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;minOccurs&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;0&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; /&amp;gt;&lt;/span&gt;&lt;br&gt; &lt;span style="color:#0000ff"&gt;    &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;xs:element&lt;/span&gt;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;name&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;Sensitivity&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;type&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;t:SensitivityChoicesType&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;minOccurs&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;0&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; /&amp;gt;&lt;/span&gt;&lt;br&gt; &lt;span style="color:#0000ff"&gt;    &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;xs:element&lt;/span&gt;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;name&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;Body&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;type&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;t:BodyType&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;minOccurs&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;0&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; /&amp;gt;&lt;/span&gt;&lt;br&gt; &lt;span style="color:#0000ff"&gt;    &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;xs:element&lt;/span&gt;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;name&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;Attachments&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;type&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;t:NonEmptyArrayOfAttachmentsType&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;minOccurs&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;0&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; /&amp;gt;&lt;/span&gt;&lt;br&gt; &lt;span style="color:#0000ff"&gt;    &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;xs:element&lt;/span&gt;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;name&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;DateTimeReceived&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;type&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;xs:dateTime&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;minOccurs&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;0&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; /&amp;gt;&lt;/span&gt;&lt;br&gt; &lt;span style="color:#0000ff"&gt;    &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;xs:element&lt;/span&gt;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;name&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;Size&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;type&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;xs:int&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;minOccurs&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;0&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; /&amp;gt;&lt;/span&gt;&lt;br&gt; &lt;span style="color:#0000ff"&gt;    &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;xs:element&lt;/span&gt;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;name&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;Categories&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;type&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;t:ArrayOfStringsType&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;minOccurs&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;0&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; /&amp;gt;&lt;/span&gt;&lt;br&gt; &lt;span style="color:#0000ff"&gt;    &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;xs:element&lt;/span&gt;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;name&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;Importance&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;type&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;t:ImportanceChoicesType&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;minOccurs&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;0&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; /&amp;gt;&lt;/span&gt;&lt;br&gt; &lt;span style="color:#0000ff"&gt;    &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;xs:element&lt;/span&gt;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;name&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;InReplyTo&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;type&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;xs:string&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;minOccurs&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;0&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; /&amp;gt;&lt;/span&gt;&lt;br&gt; &lt;span style="color:#0000ff"&gt;    &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;xs:element&lt;/span&gt;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;name&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;IsSubmitted&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;type&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;xs:boolean&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;minOccurs&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;0&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; /&amp;gt;&lt;/span&gt;&lt;br&gt; &lt;span style="color:#0000ff"&gt;    &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;xs:element&lt;/span&gt;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;name&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;IsDraft&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;type&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;xs:boolean&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;minOccurs&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;0&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; /&amp;gt;&lt;/span&gt;&lt;br&gt; &lt;span style="color:#0000ff"&gt;    &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;xs:element&lt;/span&gt;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;name&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;IsFromMe&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;type&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;xs:boolean&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;minOccurs&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;0&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; /&amp;gt;&lt;/span&gt;&lt;br&gt; &lt;span style="color:#0000ff"&gt;    &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;xs:element&lt;/span&gt;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;name&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;IsResend&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;type&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;xs:boolean&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;minOccurs&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;0&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; /&amp;gt;&lt;/span&gt;&lt;br&gt; &lt;span style="color:#0000ff"&gt;    &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;xs:element&lt;/span&gt;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;name&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;IsUnmodified&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;type&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;xs:boolean&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;minOccurs&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;0&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; /&amp;gt;&lt;/span&gt;&lt;br&gt; &lt;span style="color:#0000ff"&gt;    &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;xs:element&lt;/span&gt;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;name&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;InternetMessageHeaders&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;type&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;t:NonEmptyArrayOfInternetHeadersType&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;minOccurs&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;0&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; /&amp;gt;&lt;/span&gt;&lt;br&gt; &lt;span style="color:#0000ff"&gt;    &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;xs:element&lt;/span&gt;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;name&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;DateTimeSent&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;type&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;xs:dateTime&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;minOccurs&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;0&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; /&amp;gt;&lt;/span&gt;&lt;br&gt; &lt;span style="color:#0000ff"&gt;    &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;xs:element&lt;/span&gt;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;name&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;DateTimeCreated&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;type&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;xs:dateTime&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;minOccurs&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;0&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; /&amp;gt;&lt;/span&gt;&lt;br&gt; &lt;span style="color:#0000ff"&gt;    &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;xs:element&lt;/span&gt;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;name&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;ResponseObjects&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;type&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;t:NonEmptyArrayOfResponseObjectsType&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;minOccurs&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;0&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; /&amp;gt;&lt;/span&gt;&lt;br&gt; &lt;span style="color:#0000ff"&gt;    &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;xs:element&lt;/span&gt;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;name&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;ReminderDueBy&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;type&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;xs:dateTime&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;minOccurs&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;0&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; /&amp;gt;&lt;/span&gt;&lt;br&gt; &lt;span style="color:#0000ff"&gt;    &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;xs:element&lt;/span&gt;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;name&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;ReminderIsSet&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;type&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;xs:boolean&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;minOccurs&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;0&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; /&amp;gt;&lt;/span&gt;&lt;br&gt; &lt;span style="color:#0000ff"&gt;    &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;xs:element&lt;/span&gt;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;name&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;ReminderMinutesBeforeStart&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;type&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;t:ReminderMinutesBeforeStartType&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;minOccurs&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;0&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; /&amp;gt;&lt;/span&gt;&lt;br&gt; &lt;span style="color:#0000ff"&gt;    &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;xs:element&lt;/span&gt;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;name&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;DisplayCc&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;type&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;xs:string&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;minOccurs&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;0&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; /&amp;gt;&lt;/span&gt;&lt;br&gt; &lt;span style="color:#0000ff"&gt;    &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;xs:element&lt;/span&gt;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;name&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;DisplayTo&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;type&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;xs:string&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;minOccurs&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;0&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; /&amp;gt;&lt;/span&gt;&lt;br&gt; &lt;span style="color:#0000ff"&gt;    &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;xs:element&lt;/span&gt;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;name&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;HasAttachments&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;type&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;xs:boolean&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;minOccurs&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;0&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;br&gt; &lt;span style="color:#0000ff"&gt;    &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;xs:element&lt;/span&gt;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;name&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;ExtendedProperty&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;type&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;t:ExtendedPropertyType&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;minOccurs&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;0&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;maxOccurs&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;unbounded&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; /&amp;gt;&lt;/span&gt;&lt;br&gt; &lt;span style="color:#0000ff"&gt;    &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;xs:element&lt;/span&gt;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;name&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;Culture&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;type&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;xs:language&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;minOccurs&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;0&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;br&gt; &lt;span style="color:#0000ff"&gt;    &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;xs:element&lt;/span&gt;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;name&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;EffectiveRights&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;type&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;t:EffectiveRightsType&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;minOccurs&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;0&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; /&amp;gt;&lt;/span&gt;&lt;br&gt; &lt;span style="color:#0000ff"&gt;    &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;xs:element&lt;/span&gt;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;name&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;LastModifiedName&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;type&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;xs:string&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;minOccurs&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;0&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; /&amp;gt;&lt;/span&gt;&lt;br&gt; &lt;span style="color:#0000ff"&gt;    &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;xs:element&lt;/span&gt;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;name&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;LastModifiedTime&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;type&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;xs:dateTime&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;minOccurs&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;0&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; /&amp;gt;&lt;/span&gt;&lt;br&gt; &lt;span style="color:#0000ff"&gt;  &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515"&gt;xs:sequence&lt;/span&gt;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br&gt; &lt;span style="color:#0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515"&gt;xs:complexType&lt;/span&gt;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;That’s followed by the MessageType schema that is an extension of ItemType. This is where the recipient properties appear.&lt;/p&gt;  &lt;div style="padding-bottom: 5px; padding-left: 5px; width: 519px; padding-right: 5px; display: block; float: none; margin-left: auto; margin-right: auto; padding-top: 5px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:a00f7d6b-41d5-4070-8720-bf9fd7f064f3" class="wlWriterEditableSmartContent"&gt;
&lt;div style="border: #000080 1px solid; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt;
&lt;div style="background-color: #ffffff; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap"&gt;
&lt;p&gt;  &lt;span style="color:#0000ff"&gt;&amp;lt;!--&lt;/span&gt;&lt;span style="color:#008000"&gt; - - - - - - - - - - - - - - - - - - &lt;/span&gt;&lt;span style="color:#0000ff"&gt;--&amp;gt;&lt;/span&gt;&lt;br&gt; &lt;span style="color:#0000ff"&gt;&amp;lt;!--&lt;/span&gt;&lt;span style="color:#008000"&gt;   Message type: derived from item   &lt;/span&gt;&lt;span style="color:#0000ff"&gt;--&amp;gt;&lt;/span&gt;&lt;br&gt; &lt;span style="color:#0000ff"&gt;&amp;lt;!--&lt;/span&gt;&lt;span style="color:#008000"&gt; - - - - - - - - - - - - - - - - - - &lt;/span&gt;&lt;span style="color:#0000ff"&gt;--&amp;gt;&lt;/span&gt;&lt;br&gt; &lt;span style="color:#0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;xs:complexType&lt;/span&gt;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;name&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;MessageType&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br&gt; &lt;span style="color:#0000ff"&gt;  &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;xs:complexContent&lt;/span&gt;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br&gt; &lt;span style="color:#0000ff"&gt;    &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;xs:extension&lt;/span&gt;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;base&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;t:ItemType&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br&gt; &lt;span style="color:#0000ff"&gt;      &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;xs:sequence&lt;/span&gt;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br&gt; &lt;span style="color:#0000ff"&gt;        &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;xs:element&lt;/span&gt;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;name&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;Sender&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;minOccurs&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;0&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;type&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;t:SingleRecipientType&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; /&amp;gt;&lt;/span&gt;&lt;br&gt; &lt;span style="color:#0000ff"&gt;        &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;xs:element&lt;/span&gt;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;name&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;ToRecipients&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;type&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;t:ArrayOfRecipientsType&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;minOccurs&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;0&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; /&amp;gt;&lt;/span&gt;&lt;br&gt; &lt;span style="color:#0000ff"&gt;        &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;xs:element&lt;/span&gt;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;name&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;CcRecipients&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;type&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;t:ArrayOfRecipientsType&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;minOccurs&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;0&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; /&amp;gt;&lt;/span&gt;&lt;br&gt; &lt;span style="color:#0000ff"&gt;        &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;xs:element&lt;/span&gt;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;name&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;BccRecipients&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;type&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;t:ArrayOfRecipientsType&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;minOccurs&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;0&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; /&amp;gt;&lt;/span&gt;&lt;br&gt; &lt;span style="color:#0000ff"&gt;        &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;xs:element&lt;/span&gt;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;name&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;IsReadReceiptRequested&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;type&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;xs:boolean&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;minOccurs&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;0&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; /&amp;gt;&lt;/span&gt;&lt;br&gt; &lt;span style="color:#0000ff"&gt;        &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;xs:element&lt;/span&gt;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;name&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;IsDeliveryReceiptRequested&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;type&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;xs:boolean&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;minOccurs&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;0&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; /&amp;gt;&lt;/span&gt;&lt;br&gt; &lt;span style="color:#0000ff"&gt;        &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;xs:element&lt;/span&gt;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;name&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;ConversationIndex&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;type&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;xs:base64Binary&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;minOccurs&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;0&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; /&amp;gt;&lt;/span&gt;&lt;br&gt; &lt;span style="color:#0000ff"&gt;        &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;xs:element&lt;/span&gt;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;name&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;ConversationTopic&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;type&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;xs:string&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;minOccurs&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;0&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; /&amp;gt;&lt;/span&gt;&lt;br&gt; &lt;span style="color:#0000ff"&gt;        &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;xs:element&lt;/span&gt;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;name&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;From&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;type&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;t:SingleRecipientType&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;minOccurs&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;0&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; /&amp;gt;&lt;/span&gt;&lt;br&gt; &lt;span style="color:#0000ff"&gt;        &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;xs:element&lt;/span&gt;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;name&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;InternetMessageId&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;type&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;xs:string&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;minOccurs&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;0&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; /&amp;gt;&lt;/span&gt;&lt;br&gt; &lt;span style="color:#0000ff"&gt;        &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;xs:element&lt;/span&gt;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;name&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;IsRead&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;type&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;xs:boolean&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;minOccurs&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;0&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; /&amp;gt;&lt;/span&gt;&lt;br&gt; &lt;span style="color:#0000ff"&gt;        &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;xs:element&lt;/span&gt;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;name&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;IsResponseRequested&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;type&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;xs:boolean&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;minOccurs&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;0&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; /&amp;gt;&lt;/span&gt;&lt;br&gt; &lt;span style="color:#0000ff"&gt;        &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;xs:element&lt;/span&gt;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;name&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;References&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;type&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;xs:string&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;minOccurs&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;0&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; /&amp;gt;&lt;/span&gt;&lt;br&gt; &lt;span style="color:#0000ff"&gt;        &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;xs:element&lt;/span&gt;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;name&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;ReplyTo&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;type&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;t:ArrayOfRecipientsType&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;minOccurs&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;0&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; /&amp;gt;&lt;/span&gt;&lt;br&gt; &lt;span style="color:#0000ff"&gt;        &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;xs:element&lt;/span&gt;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;name&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;ReceivedBy&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;type&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;t:SingleRecipientType&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;minOccurs&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;0&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; /&amp;gt;&lt;/span&gt;&lt;br&gt; &lt;span style="color:#0000ff"&gt;        &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;xs:element&lt;/span&gt;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;name&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;ReceivedRepresenting&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;type&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;t:SingleRecipientType&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;minOccurs&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;0&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; /&amp;gt;&lt;/span&gt;&lt;br&gt; &lt;span style="color:#0000ff"&gt;      &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515"&gt;xs:sequence&lt;/span&gt;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br&gt; &lt;span style="color:#0000ff"&gt;    &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515"&gt;xs:extension&lt;/span&gt;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br&gt; &lt;span style="color:#0000ff"&gt;  &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515"&gt;xs:complexContent&lt;/span&gt;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br&gt; &lt;span style="color:#0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515"&gt;xs:complexType&lt;/span&gt;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;  &lt;p&gt;If you think about how the server will process this XML SOAP request, it will get the MimeContent first and then the first-class properties after that. So the server will build out its entire MIME message based on the content of the MimeContent property and then override those values with the first-class properties that follow. The same holds true for other properties like Body, Subject, etc.&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;After I figured all this out, I found this already clearly explained in &lt;a href="http://www.microsoft.com/mspress/companion/9780735623927/"&gt;Inside Microsoft Exchange Server 2007 Web Services&lt;/a&gt; explaining this same phenomenon when attempting to set the subject:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Well, during a CreateItem call, properties are processed on a first-come, first-served basis.&amp;#160; You first create an empty message, set the contents from the MIME, and then set the explicit subject. This really isn’t a problem in practice although it has some interesting implications. The schema mandates a specific ordering of elements within item instances. In other words, trying to put the subject before the MimeContent property results in a schema validation error. Therefore, which property overwrites which is dictated by the ordering as defined in the schema. (page 176)&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;They later go on to say the only time you’ll have a conflict is when you try to also set the same properties using the extended properties, so avoid doing that. There’s no need to set both the first-class property and it’s equivalent extended property.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9896018" width="1" height="1"&gt;</content><author><name>pcreehan</name><uri>http://blogs.msdn.com/members/pcreehan.aspx</uri></author><category term="MIME" scheme="http://blogs.msdn.com/pcreehan/archive/tags/MIME/default.aspx" /><category term="Exchange 2007" scheme="http://blogs.msdn.com/pcreehan/archive/tags/Exchange+2007/default.aspx" /><category term="Exchange Web Services (EWS)" scheme="http://blogs.msdn.com/pcreehan/archive/tags/Exchange+Web+Services+_2800_EWS_2900_/default.aspx" /><category term="DevMsgTeam" scheme="http://blogs.msdn.com/pcreehan/archive/tags/DevMsgTeam/default.aspx" /></entry><entry><title>Exchange 2007 SP2 is Released</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/pcreehan/archive/2009/08/27/exchange-2007-sp2-is-released.aspx" /><id>http://blogs.msdn.com/pcreehan/archive/2009/08/27/exchange-2007-sp2-is-released.aspx</id><published>2009-08-28T01:14:16Z</published><updated>2009-08-28T01:14:16Z</updated><content type="html">&lt;p&gt;In case you missed it, &lt;a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=4c4bd2a3-5e50-42b0-8bbb-2cc9afe3216a"&gt;Exchange 2007 SP2&lt;/a&gt; was released this week. There are some cool new features, which the EHLO blog talks about &lt;a href="http://msexchangeteam.com/archive/2009/08/25/452095.aspx"&gt;here&lt;/a&gt; as well as all the bug fixes etc.&lt;/p&gt;  &lt;p&gt;One major thing to point out is that we no longer promote X- headers to custom properties on messages – though you can still get to them through the internet transport headers property.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9887524" width="1" height="1"&gt;</content><author><name>pcreehan</name><uri>http://blogs.msdn.com/members/pcreehan.aspx</uri></author><category term="Exchange 2007" scheme="http://blogs.msdn.com/pcreehan/archive/tags/Exchange+2007/default.aspx" /><category term="DevMsgTeam" scheme="http://blogs.msdn.com/pcreehan/archive/tags/DevMsgTeam/default.aspx" /></entry><entry><title>Line Breaks in Managed Web Service Proxy Classes</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/pcreehan/archive/2009/07/22/line-breaks-in-managed-web-service-proxy-classes.aspx" /><id>http://blogs.msdn.com/pcreehan/archive/2009/07/22/line-breaks-in-managed-web-service-proxy-classes.aspx</id><published>2009-07-22T16:00:00Z</published><updated>2009-07-22T16:00:00Z</updated><content type="html">&lt;p&gt;&lt;a href="http://blogs.msdn.com/mstehle" target="_blank"&gt;Matt&lt;/a&gt;, &lt;a href="http://blogs.msdn.com/rickhall/" target="_blank"&gt;Rick&lt;/a&gt;, and I were working on an issue recently where when an application using EWS would set a contact’s Street address to a value containing a carriage return and line feed, like this:&lt;/p&gt;  &lt;div style="padding-bottom: 5px; padding-left: 5px; width: 519px; padding-right: 5px; display: block; float: none; margin-left: auto; margin-right: auto; padding-top: 5px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:e582ef6a-2f57-44bf-9a0d-0a69c46a7e60" class="wlWriterEditableSmartContent"&gt;
&lt;div style="border: #000080 1px solid; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt;
&lt;div style="background-color: #ffffff; max-height: auto; overflow: scroll; padding: 2px 5px; white-space: nowrap"&gt;
&lt;p&gt;  physicalAddress.Street = &lt;span style="color:#a31515"&gt;"1234 56 Ave NE&amp;#92;r&amp;#92;nc/oPatrick Creehan"&lt;/span&gt;;
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;  &lt;p&gt;the address card control in Outlook would render it like this:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/pcreehan/WindowsLiveWriter/LineBreaksinManagedWebServiceProxyClasse_FFB2/image_2.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/pcreehan/WindowsLiveWriter/LineBreaksinManagedWebServiceProxyClasse_FFB2/image_thumb.png" width="244" height="168" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Ugly, right? The problem was that the XMLSerializer would strip out the line feed and leave the carriage return, which the address card didn’t like.&lt;/p&gt;  &lt;p&gt;We could prove by sending raw XML requests in a separate application that sending &amp;amp;#x0d;&amp;amp;#x0a; for the carriage return line feed would make everything right, however, if we set the street address like this:&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;div style="padding-bottom: 5px; padding-left: 5px; width: 519px; padding-right: 5px; display: block; float: none; margin-left: auto; margin-right: auto; padding-top: 5px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:1fc5c445-38f8-4f60-b627-4423e203f45f" class="wlWriterEditableSmartContent"&gt;
&lt;div style="border: #000080 1px solid; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt;
&lt;div style="background-color: #ffffff; max-height: auto; overflow: scroll; padding: 2px 5px; white-space: nowrap"&gt;
&lt;p&gt;  physicalAddress.Street = &lt;span style="color:#a31515"&gt;"1234 56 Ave NE&amp;amp;#x0d;&amp;amp;#x0a;c/oPatrick Creehan"&lt;/span&gt;;
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;  &lt;p&gt;then the contact’s address card would look like this:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/pcreehan/WindowsLiveWriter/LineBreaksinManagedWebServiceProxyClasse_FFB2/image_4.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/pcreehan/WindowsLiveWriter/LineBreaksinManagedWebServiceProxyClasse_FFB2/image_thumb_1.png" width="244" height="170" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Even uglier! It seems that the .net framework, in an attempt to help us out is encoding our string for XML but it wasn’t letting us specify the value we knew was right.&lt;/p&gt;  &lt;p&gt;So – the solution is to implement your own class which can handle the XmlSerialization yourself, and replace the auto-generated proxy class’s decision for the type to yours.&lt;/p&gt;  &lt;p&gt;Here’s my simple class:&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;div style="padding-bottom: 5px; padding-left: 5px; width: 519px; padding-right: 5px; display: block; float: none; margin-left: auto; margin-right: auto; padding-top: 5px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:627acf82-aa7a-47c3-958e-2293295323ee" class="wlWriterEditableSmartContent"&gt;
&lt;div style="border: #000080 1px solid; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt;
&lt;div style="background: #ddd; max-height: 300px; overflow: scroll; padding: 0"&gt;
&lt;ol style="background: #ffffff; margin: 0 0 0 35px; white-space: nowrap"&gt;
&lt;li&gt;     [&lt;span style="color:#2b91af"&gt;SoapTypeAttribute&lt;/span&gt;(Namespace = &lt;span style="color:#a31515"&gt;"http://schemas.microsoft.com/exchange/services/2006/types"&lt;/span&gt;,TypeName=&lt;span style="color:#a31515"&gt;"text"&lt;/span&gt;)]&lt;/li&gt;&lt;li&gt;     &lt;span style="color:#0000ff"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff"&gt;class&lt;/span&gt; &lt;span style="color:#2b91af"&gt;mstring&lt;/span&gt;:&lt;span style="color:#2b91af"&gt;IXmlSerializable&lt;/span&gt;   &lt;/li&gt;&lt;li&gt;     {&lt;/li&gt;&lt;li&gt;         &lt;span style="color:#0000ff"&gt;private&lt;/span&gt; &lt;span style="color:#0000ff"&gt;string&lt;/span&gt; m_string = &lt;span style="color:#0000ff"&gt;string&lt;/span&gt;.Empty;&lt;/li&gt;&lt;li&gt; &lt;/li&gt;&lt;li&gt;         &lt;span style="color:#0000ff"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff"&gt;override&lt;/span&gt; &lt;span style="color:#0000ff"&gt;string&lt;/span&gt; ToString()&lt;/li&gt;&lt;li&gt;         {&lt;/li&gt;&lt;li&gt;             &lt;span style="color:#0000ff"&gt;return&lt;/span&gt; m_string;&lt;/li&gt;&lt;li&gt;         }&lt;/li&gt;&lt;li&gt;         &lt;/li&gt;&lt;li&gt;  &lt;/li&gt;&lt;li&gt;         &lt;span style="color:#0000ff"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff"&gt;static&lt;/span&gt; &lt;span style="color:#2b91af"&gt;mstring&lt;/span&gt; CreateMString(&lt;span style="color:#0000ff"&gt;string&lt;/span&gt; str){&lt;/li&gt;&lt;li&gt;             &lt;span style="color:#2b91af"&gt;mstring&lt;/span&gt; newmstring = &lt;span style="color:#0000ff"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af"&gt;mstring&lt;/span&gt;();&lt;/li&gt;&lt;li&gt;             newmstring.m_string = str;&lt;/li&gt;&lt;li&gt;             &lt;span style="color:#0000ff"&gt;return&lt;/span&gt; newmstring;&lt;/li&gt;&lt;li&gt;         }&lt;/li&gt;&lt;li&gt; &lt;/li&gt;&lt;li&gt;         &lt;span style="color:#0000ff"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff"&gt;static&lt;/span&gt; &lt;span style="color:#0000ff"&gt;implicit&lt;/span&gt; &lt;span style="color:#0000ff"&gt;operator&lt;/span&gt; &lt;span style="color:#2b91af"&gt;mstring&lt;/span&gt;(&lt;span style="color:#0000ff"&gt;string&lt;/span&gt; str)&lt;/li&gt;&lt;li&gt;         {&lt;/li&gt;&lt;li&gt;             &lt;span style="color:#0000ff"&gt;return&lt;/span&gt; CreateMString(str);&lt;/li&gt;&lt;li&gt;         }&lt;/li&gt;&lt;li&gt; &lt;/li&gt;&lt;li&gt; &lt;/li&gt;&lt;li&gt; &lt;span style="color:#0000ff"&gt;        #region&lt;/span&gt; IXmlSerializable Members&lt;/li&gt;&lt;li&gt; &lt;/li&gt;&lt;li&gt;         &lt;span style="color:#0000ff"&gt;public&lt;/span&gt; System.Xml.Schema.&lt;span style="color:#2b91af"&gt;XmlSchema&lt;/span&gt; GetSchema()&lt;/li&gt;&lt;li&gt;         {&lt;/li&gt;&lt;li&gt;             &lt;span style="color:#0000ff"&gt;return&lt;/span&gt; &lt;span style="color:#0000ff"&gt;new&lt;/span&gt; System.Xml.Schema.&lt;span style="color:#2b91af"&gt;XmlSchema&lt;/span&gt;();&lt;/li&gt;&lt;li&gt;         }&lt;/li&gt;&lt;li&gt; &lt;/li&gt;&lt;li&gt;         &lt;span style="color:#0000ff"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff"&gt;void&lt;/span&gt; ReadXml(&lt;span style="color:#2b91af"&gt;XmlReader&lt;/span&gt; reader)&lt;/li&gt;&lt;li&gt;         {&lt;/li&gt;&lt;li&gt;             m_string = reader.ReadContentAsString();&lt;/li&gt;&lt;li&gt;         }&lt;/li&gt;&lt;li&gt; &lt;/li&gt;&lt;li&gt;         &lt;span style="color:#0000ff"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff"&gt;void&lt;/span&gt; WriteXml(&lt;span style="color:#2b91af"&gt;XmlWriter&lt;/span&gt; writer)&lt;/li&gt;&lt;li&gt;         {&lt;/li&gt;&lt;li&gt;             &lt;span style="color:#0000ff"&gt;string&lt;/span&gt; outString = m_string;&lt;/li&gt;&lt;li&gt;             outString = &lt;span style="color:#2b91af"&gt;HttpUtility&lt;/span&gt;.HtmlEncode(outString);&lt;/li&gt;&lt;li&gt; &lt;/li&gt;&lt;li&gt;             outString = outString.Replace(&lt;span style="color:#a31515"&gt;"&amp;#92;r"&lt;/span&gt;, &lt;span style="color:#a31515"&gt;"&amp;amp;#x0d;"&lt;/span&gt;);&lt;/li&gt;&lt;li&gt;             outString = outString.Replace(&lt;span style="color:#a31515"&gt;"&amp;#92;n"&lt;/span&gt;, &lt;span style="color:#a31515"&gt;"&amp;amp;#x0a;"&lt;/span&gt;);&lt;/li&gt;&lt;li&gt; &lt;/li&gt;&lt;li&gt;             writer.WriteRaw(outString.ToString());&lt;/li&gt;&lt;li&gt;         \&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;A few things to point out is that I decorated this class with the XML namespace for the Exchange Web Services so that it doesn’t fail schema validation. Also, I didn’t really test whether this works when binding to an existing contact – there may be more work needed in the ReadXML section. In order to support still setting the Street property to a string, I had to override the implicit operator. That allows me to set Street to a string even though technically, now Street is an “mstring.” You’ll notice that the work of actually writing the correct value occurs in WriteXml which we got by implementing IXmlSerializable. Now when the SOAP infrastructure goes to build the request, it will call into our interface to serialize this class.&lt;/p&gt;  &lt;p&gt;That reminds me, the last thing you need to do to hook all this up is to go into the web service proxy class Reference.cs and modify the PhysicalAddressDictionaryEntryType so the street properties use your new mstring class instead of string:&lt;/p&gt;  &lt;div style="padding-bottom: 5px; padding-left: 5px; width: 519px; padding-right: 5px; display: block; float: none; margin-left: auto; margin-right: auto; padding-top: 5px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:c8541ccf-1be2-4f5d-a2d5-246bbfb5f0cc" class="wlWriterEditableSmartContent"&gt;
&lt;div style="border: #000080 1px solid; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt;
&lt;div style="background: #ddd; max-height: 300px; overflow: scroll; padding: 0"&gt;
&lt;ol style="background: #ffffff; margin: 0 0 0 35px; white-space: nowrap"&gt;
&lt;li&gt;     &lt;span style="color:#808080"&gt;///&lt;/span&gt;&lt;span style="color:#008000"&gt; &lt;/span&gt;&lt;span style="color:#808080"&gt;&amp;lt;remarks/&amp;gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;     [System.CodeDom.Compiler.&lt;span style="color:#2b91af"&gt;GeneratedCodeAttribute&lt;/span&gt;(&lt;span style="color:#a31515"&gt;"System.Xml"&lt;/span&gt;, &lt;span style="color:#a31515"&gt;"2.0.50727.4918"&lt;/span&gt;)]&lt;/li&gt;&lt;li&gt;     [System.&lt;span style="color:#2b91af"&gt;SerializableAttribute&lt;/span&gt;()]&lt;/li&gt;&lt;li&gt;     [System.Diagnostics.&lt;span style="color:#2b91af"&gt;DebuggerStepThroughAttribute&lt;/span&gt;()]&lt;/li&gt;&lt;li&gt;     [System.ComponentModel.&lt;span style="color:#2b91af"&gt;DesignerCategoryAttribute&lt;/span&gt;(&lt;span style="color:#a31515"&gt;"code"&lt;/span&gt;)]&lt;/li&gt;&lt;li&gt;     [System.Xml.Serialization.&lt;span style="color:#2b91af"&gt;XmlTypeAttribute&lt;/span&gt;(Namespace=&lt;span style="color:#a31515"&gt;"http://schemas.microsoft.com/exchange/services/2006/types"&lt;/span&gt;)]&lt;/li&gt;&lt;li&gt;     &lt;span style="color:#0000ff"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff"&gt;partial&lt;/span&gt; &lt;span style="color:#0000ff"&gt;class&lt;/span&gt; &lt;span style="color:#2b91af"&gt;PhysicalAddressDictionaryEntryType&lt;/span&gt; {&lt;/li&gt;&lt;li&gt;         &lt;/li&gt;&lt;li&gt;         &lt;span style="color:#0000ff"&gt;private&lt;/span&gt; &lt;span style="color:#2b91af"&gt;mstring&lt;/span&gt; streetField;&lt;/li&gt;&lt;li&gt;         &lt;/li&gt;&lt;li&gt;         &lt;span style="color:#0000ff"&gt;private&lt;/span&gt; &lt;span style="color:#0000ff"&gt;string&lt;/span&gt; cityField;&lt;/li&gt;&lt;li&gt;         &lt;/li&gt;&lt;li&gt;         &lt;span style="color:#0000ff"&gt;private&lt;/span&gt; &lt;span style="color:#0000ff"&gt;string&lt;/span&gt; stateField;&lt;/li&gt;&lt;li&gt;         &lt;/li&gt;&lt;li&gt;         &lt;span style="color:#0000ff"&gt;private&lt;/span&gt; &lt;span style="color:#0000ff"&gt;string&lt;/span&gt; countryOrRegionField;&lt;/li&gt;&lt;li&gt;         &lt;/li&gt;&lt;li&gt;         &lt;span style="color:#0000ff"&gt;private&lt;/span&gt; &lt;span style="color:#0000ff"&gt;string&lt;/span&gt; postalCodeField;&lt;/li&gt;&lt;li&gt;         &lt;/li&gt;&lt;li&gt;         &lt;span style="color:#0000ff"&gt;private&lt;/span&gt; &lt;span style="color:#2b91af"&gt;PhysicalAddressKeyType&lt;/span&gt; keyField;&lt;/li&gt;&lt;li&gt;         &lt;/li&gt;&lt;li&gt;         &lt;span style="color:#808080"&gt;///&lt;/span&gt;&lt;span style="color:#008000"&gt; &lt;/span&gt;&lt;span style="color:#808080"&gt;&amp;lt;remarks/&amp;gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;         &lt;span style="color:#0000ff"&gt;public&lt;/span&gt; &lt;span style="color:#2b91af"&gt;mstring&lt;/span&gt; Street {&lt;/li&gt;&lt;li&gt;             &lt;span style="color:#0000ff"&gt;get&lt;/span&gt; {&lt;/li&gt;&lt;li&gt;                 &lt;span style="color:#0000ff"&gt;return&lt;/span&gt; &lt;span style="color:#0000ff"&gt;this&lt;/span&gt;.streetField;&lt;/li&gt;&lt;li&gt;             }&lt;/li&gt;&lt;li&gt;             &lt;span style="color:#0000ff"&gt;set&lt;/span&gt; {&lt;/li&gt;&lt;li&gt;                 &lt;span style="color:#0000ff"&gt;this&lt;/span&gt;.streetField = &lt;span style="color:#0000ff"&gt;value&lt;/span&gt;;&lt;/li&gt;&lt;li&gt;             }&lt;/li&gt;&lt;li&gt;         }&lt;/li&gt;&lt;li&gt; &lt;/li&gt;&lt;li&gt;         &lt;span style="color:#808080"&gt;///&lt;/span&gt;&lt;span style="color:#008000"&gt; &lt;/span&gt;&lt;span style="color:#808080"&gt;&amp;lt;remarks/&amp;gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;         &lt;span style="color:#0000ff"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff"&gt;string&lt;/span&gt; City {&lt;/li&gt;&lt;li&gt;             &lt;span style="color:#0000ff"&gt;get&lt;/span&gt; {&lt;/li&gt;&lt;li&gt;                 &lt;span style="color:#0000ff"&gt;return&lt;/span&gt; &lt;span style="color:#0000ff"&gt;this&lt;/span&gt;.cityField;&lt;/li&gt;&lt;li&gt;             }&lt;/li&gt;&lt;li&gt;             &lt;span style="color:#0000ff"&gt;set&lt;/span&gt; {&lt;/li&gt;&lt;li&gt;                 &lt;span style="color:#0000ff"&gt;this&lt;/span&gt;.cityField = &lt;span style="color:#0000ff"&gt;value&lt;/span&gt;;&lt;/li&gt;&lt;li&gt;             }&lt;/li&gt;&lt;li&gt;         }&lt;/li&gt;&lt;li&gt;         &lt;/li&gt;&lt;li&gt;         &lt;span style="color:#808080"&gt;///&lt;/span&gt;&lt;span style="color:#008000"&gt; &lt;/span&gt;&lt;span style="color:#808080"&gt;&amp;lt;remarks/&amp;gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;         &lt;span style="color:#0000ff"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff"&gt;string&lt;/span&gt; State {&lt;/li&gt;&lt;li&gt;             &lt;span style="color:#0000ff"&gt;get&lt;/span&gt; {&lt;/li&gt;&lt;li&gt;                 &lt;span style="color:#0000ff"&gt;return&lt;/span&gt; &lt;span style="color:#0000ff"&gt;this&lt;/span&gt;.stateField;&lt;/li&gt;&lt;li&gt;             }&lt;/li&gt;&lt;li&gt;             &lt;span style="color:#0000ff"&gt;set&lt;/span&gt; {&lt;/li&gt;&lt;li&gt;                 &lt;span style="color:#0000ff"&gt;this&lt;/span&gt;.stateField = &lt;span style="color:#0000ff"&gt;value&lt;/span&gt;;&lt;/li&gt;&lt;li&gt;             }&lt;/li&gt;&lt;li&gt;         }&lt;/li&gt;&lt;li&gt;         &lt;/li&gt;&lt;li&gt;         &lt;span style="color:#808080"&gt;///&lt;/span&gt;&lt;span style="color:#008000"&gt; &lt;/span&gt;&lt;span style="color:#808080"&gt;&amp;lt;remarks/&amp;gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;         &lt;span style="color:#0000ff"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff"&gt;string&lt;/span&gt; CountryOrRegion {&lt;/li&gt;&lt;li&gt;             &lt;span style="color:#0000ff"&gt;get&lt;/span&gt; {&lt;/li&gt;&lt;li&gt;                 &lt;span style="color:#0000ff"&gt;return&lt;/span&gt; &lt;span style="color:#0000ff"&gt;this&lt;/span&gt;.countryOrRegionField;&lt;/li&gt;&lt;li&gt;             }&lt;/li&gt;&lt;li&gt;             &lt;span style="color:#0000ff"&gt;set&lt;/span&gt; {&lt;/li&gt;&lt;li&gt;                 &lt;span style="color:#0000ff"&gt;this&lt;/span&gt;.countryOrRegionField = &lt;span style="color:#0000ff"&gt;value&lt;/span&gt;;&lt;/li&gt;&lt;li&gt;             }&lt;/li&gt;&lt;li&gt;         }&lt;/li&gt;&lt;li&gt;         &lt;/li&gt;&lt;li&gt;         &lt;span style="color:#808080"&gt;///&lt;/span&gt;&lt;span style="color:#008000"&gt; &lt;/span&gt;&lt;span style="color:#808080"&gt;&amp;lt;remarks/&amp;gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;         &lt;span style="color:#0000ff"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff"&gt;string&lt;/span&gt; PostalCode {&lt;/li&gt;&lt;li&gt;             &lt;span style="color:#0000ff"&gt;get&lt;/span&gt; {&lt;/li&gt;&lt;li&gt;                 &lt;span style="color:#0000ff"&gt;return&lt;/span&gt; &lt;span style="color:#0000ff"&gt;this&lt;/span&gt;.postalCodeField;&lt;/li&gt;&lt;li&gt;             }&lt;/li&gt;&lt;li&gt;             &lt;span style="color:#0000ff"&gt;set&lt;/span&gt; {&lt;/li&gt;&lt;li&gt;                 &lt;span style="color:#0000ff"&gt;this&lt;/span&gt;.postalCodeField = &lt;span style="color:#0000ff"&gt;value&lt;/span&gt;;&lt;/li&gt;&lt;li&gt;             }&lt;/li&gt;&lt;li&gt;         }&lt;/li&gt;&lt;li&gt;         &lt;/li&gt;&lt;li&gt;         &lt;span style="color:#808080"&gt;///&lt;/span&gt;&lt;span style="color:#008000"&gt; &lt;/span&gt;&lt;span style="color:#808080"&gt;&amp;lt;remarks/&amp;gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;         [System.Xml.Serialization.&lt;span style="color:#2b91af"&gt;XmlAttributeAttribute&lt;/span&gt;()]&lt;/li&gt;&lt;li&gt;         &lt;span style="color:#0000ff"&gt;public&lt;/span&gt; &lt;span style="color:#2b91af"&gt;PhysicalAddressKeyType&lt;/span&gt; Key {&lt;/li&gt;&lt;li&gt;             &lt;span style="color:#0000ff"&gt;get&lt;/span&gt; {&lt;/li&gt;&lt;li&gt;                 &lt;span style="color:#0000ff"&gt;return&lt;/span&gt; &lt;span style="color:#0000ff"&gt;this&lt;/span&gt;.keyField;&lt;/li&gt;&lt;li&gt;             }&lt;/li&gt;&lt;li&gt;             &lt;span style="color:#0000ff"&gt;set&lt;/span&gt; {&lt;/li&gt;&lt;li&gt;                 &lt;span style="color:#0000ff"&gt;this&lt;/span&gt;.keyField = &lt;span style="color:#0000ff"&gt;value&lt;/span&gt;;&lt;/li&gt;&lt;li&gt;             }&lt;/li&gt;&lt;li&gt;         }&lt;/li&gt;&lt;li&gt;     \&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;  &lt;p&gt;and (after removing the email address so the address will fit on the card) it looks like this:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/pcreehan/WindowsLiveWriter/LineBreaksinManagedWebServiceProxyClasse_FFB2/image_6.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/pcreehan/WindowsLiveWriter/LineBreaksinManagedWebServiceProxyClasse_FFB2/image_thumb_2.png" width="244" height="144" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Cake.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9844004" width="1" height="1"&gt;</content><author><name>pcreehan</name><uri>http://blogs.msdn.com/members/pcreehan.aspx</uri></author><category term="Outlook" scheme="http://blogs.msdn.com/pcreehan/archive/tags/Outlook/default.aspx" /><category term="Exchange" scheme="http://blogs.msdn.com/pcreehan/archive/tags/Exchange/default.aspx" /><category term="Outlook 2007" scheme="http://blogs.msdn.com/pcreehan/archive/tags/Outlook+2007/default.aspx" /><category term=".NET" scheme="http://blogs.msdn.com/pcreehan/archive/tags/.NET/default.aspx" /><category term="Exchange 2007" scheme="http://blogs.msdn.com/pcreehan/archive/tags/Exchange+2007/default.aspx" /><category term="Exchange Web Services (EWS)" scheme="http://blogs.msdn.com/pcreehan/archive/tags/Exchange+Web+Services+_2800_EWS_2900_/default.aspx" /><category term="DevMsgTeam" scheme="http://blogs.msdn.com/pcreehan/archive/tags/DevMsgTeam/default.aspx" /></entry><entry><title>ConfigureMsgService fails with MAPI_E_INVALID_PARAMETER (0x80070057)</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/pcreehan/archive/2009/07/10/configuremsgservice-fails-with-mapi-e-invalid-parameter-0x80070057.aspx" /><id>http://blogs.msdn.com/pcreehan/archive/2009/07/10/configuremsgservice-fails-with-mapi-e-invalid-parameter-0x80070057.aspx</id><published>2009-07-10T16:02:00Z</published><updated>2009-07-10T16:02:00Z</updated><content type="html">&lt;p&gt;I recently helped a customer with an issue where they were calling &lt;a href="http://msdn.microsoft.com/en-us/library/cc815632.aspx" target="_blank"&gt;ConfigureMsgService&lt;/a&gt; and that call was failing, returning an HRESULT of MAPI_E_INVALID_PARAMETER (0x80070057). After debugging it, we established that the reason that ConfigureMsgService was failing was that the PR_PROFILE_HOME_SERVER_ADDRS property was missing from the profile. Outlook seemed to work fine, logons worked, sending mail worked; it was just that ConfigureMsgService would fail. We tried recreating the profile, but still the property wasn’t being set on the profile.&lt;/p&gt;  &lt;p&gt;It turns out that PR_PROFILE_HOME_SERVER_ADDRS gets its value from PR_EMS_AB_NETWORK_ADDRESS, which in turn, gets its value from the networkAddress attribute on the server object in Active Directory. That value was set correctly, but permissions to that object were not. After following the requirements laid out on &lt;a href="http://technet.microsoft.com/en-us/library/bb123738(EXCHG.65).aspx" target="_blank"&gt;technet&lt;/a&gt; for permissions to AD objects, we determined that the Authenticated Users group was missing the ACL for Read All Properties on the server object. Once we set that permission and recreated the profile, the property was set correctly on the profile and ConfigureMsgService started succeeding.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9824944" width="1" height="1"&gt;</content><author><name>pcreehan</name><uri>http://blogs.msdn.com/members/pcreehan.aspx</uri></author><category term="Outlook" scheme="http://blogs.msdn.com/pcreehan/archive/tags/Outlook/default.aspx" /><category term="Exchange" scheme="http://blogs.msdn.com/pcreehan/archive/tags/Exchange/default.aspx" /><category term="MAPI" scheme="http://blogs.msdn.com/pcreehan/archive/tags/MAPI/default.aspx" /><category term="Outlook 2007" scheme="http://blogs.msdn.com/pcreehan/archive/tags/Outlook+2007/default.aspx" /><category term="Exchange 2007" scheme="http://blogs.msdn.com/pcreehan/archive/tags/Exchange+2007/default.aspx" /><category term="DevMsgTeam" scheme="http://blogs.msdn.com/pcreehan/archive/tags/DevMsgTeam/default.aspx" /></entry><entry><title>DeleteItem Ignores ChangeKeys</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/pcreehan/archive/2009/07/08/deleteitem-ignores-changekeys.aspx" /><id>http://blogs.msdn.com/pcreehan/archive/2009/07/08/deleteitem-ignores-changekeys.aspx</id><published>2009-07-09T00:49:45Z</published><updated>2009-07-09T00:49:45Z</updated><content type="html">&lt;p&gt;According to our &lt;a href="http://msdn.microsoft.com/en-us/library/aa580234.aspx" target="_blank"&gt;documentation&lt;/a&gt;, &lt;a href="http://msdn.microsoft.com/en-us/library/aa580484.aspx" target="_blank"&gt;DeleteItem&lt;/a&gt; calls should fail with a ErrorStaleObject error when the ChangeKey is not the most recent one. This, however, is not the case. In Exchange 2007, the ChangeKey is completely ignored in &lt;a href="http://msdn.microsoft.com/en-us/library/aa580484.aspx" target="_blank"&gt;DeleteItem&lt;/a&gt; calls. This decision was made on the logic that if you are trying to delete an item, chances are you don’t care if you have the most recent copy or not. But, what if you do?&lt;/p&gt;  &lt;p&gt;You could try doing a &lt;a href="http://msdn.microsoft.com/en-us/library/aa565934.aspx" target="_blank"&gt;GetItem&lt;/a&gt;, check the ChangeKey and then call &lt;a href="http://msdn.microsoft.com/en-us/library/aa580484.aspx" target="_blank"&gt;DeleteItem&lt;/a&gt; right after, but that still leaves a small window of time between your &lt;a href="http://msdn.microsoft.com/en-us/library/aa565934.aspx" target="_blank"&gt;GetItem&lt;/a&gt; and your &lt;a href="http://msdn.microsoft.com/en-us/library/aa580484.aspx" target="_blank"&gt;DeleteItem&lt;/a&gt; calls where the item may have been changed.&lt;/p&gt;  &lt;p&gt;Here’s a workaround which will help you implement the logic yourself using &lt;a href="http://msdn.microsoft.com/en-us/library/aa579617.aspx" target="_blank"&gt;pull notifications&lt;/a&gt;. &lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Do a &lt;a href="http://msdn.microsoft.com/en-us/library/aa566188.aspx" target="_blank"&gt;Subscribe&lt;/a&gt; on the folder of the item to subscribe for Pull notifications.&lt;/li&gt;    &lt;li&gt;Next, do a &lt;a href="http://msdn.microsoft.com/en-us/library/aa565934.aspx" target="_blank"&gt;GetItem&lt;/a&gt; and ensure that you do, in fact, have the most recent copy.&lt;/li&gt;    &lt;li&gt;Do your &lt;a href="http://msdn.microsoft.com/en-us/library/aa580484.aspx" target="_blank"&gt;DeleteItem&lt;/a&gt;.&lt;/li&gt;    &lt;li&gt;Do your &lt;a href="http://msdn.microsoft.com/en-us/library/aa566199.aspx" target="_blank"&gt;GetEvents&lt;/a&gt; to check for notifications.&lt;/li&gt;    &lt;li&gt;If you get just a &lt;a href="http://msdn.microsoft.com/en-us/library/aa581010.aspx" target="_blank"&gt;MovedEvent&lt;/a&gt;, then your item was deleted without having been modified (you get a &lt;a href="http://msdn.microsoft.com/en-us/library/aa581010.aspx" target="_blank"&gt;MovedEvent&lt;/a&gt; because the item was moved to the Deleted Items folder). You may get a &lt;a href="http://msdn.microsoft.com/en-us/library/aa565233.aspx" target="_blank"&gt;DeletedEvent&lt;/a&gt; depending on which flags you passed to &lt;a href="http://msdn.microsoft.com/en-us/library/aa580484.aspx" target="_blank"&gt;DeleteItem&lt;/a&gt;. If you get a &lt;a href="http://msdn.microsoft.com/en-us/library/aa565390.aspx" target="_blank"&gt;ModifiedEvent&lt;/a&gt; before your &lt;a href="http://msdn.microsoft.com/en-us/library/aa581010.aspx" target="_blank"&gt;MovedEvent&lt;/a&gt;, you can then go retrieve the item from the Deleted Items folder and check the values of the properties from the item there. If you hard deleted the item (and therefore got a &lt;a href="http://msdn.microsoft.com/en-us/library/aa565233.aspx" target="_blank"&gt;DeletedEvent&lt;/a&gt;) you cannot go get the latest copy from Deleted Items, because it isn’t there.&lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/aa564263.aspx" target="_blank"&gt;Unsubscribe&lt;/a&gt;.&lt;/li&gt; &lt;/ol&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9824907" width="1" height="1"&gt;</content><author><name>pcreehan</name><uri>http://blogs.msdn.com/members/pcreehan.aspx</uri></author><category term="Exchange" scheme="http://blogs.msdn.com/pcreehan/archive/tags/Exchange/default.aspx" /><category term="Exchange 2007" scheme="http://blogs.msdn.com/pcreehan/archive/tags/Exchange+2007/default.aspx" /><category term="Exchange Web Services (EWS)" scheme="http://blogs.msdn.com/pcreehan/archive/tags/Exchange+Web+Services+_2800_EWS_2900_/default.aspx" /><category term="DevMsgTeam" scheme="http://blogs.msdn.com/pcreehan/archive/tags/DevMsgTeam/default.aspx" /></entry><entry><title>TNEF (Chapter 2): Old School</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/pcreehan/archive/2009/01/27/tnef-chapter-2-old-school.aspx" /><id>http://blogs.msdn.com/pcreehan/archive/2009/01/27/tnef-chapter-2-old-school.aspx</id><published>2009-01-28T02:09:40Z</published><updated>2009-01-28T02:09:40Z</updated><content type="html">&lt;p&gt;As discussed in &lt;a href="http://blogs.msdn.com/pcreehan/archive/2009/01/16/tnef-chapter-1-basics.aspx" target="_blank"&gt;Chapter 1&lt;/a&gt; of this captivating series, MAPI contains an interface to allow developers to create and read TNEF data. This interface is the &lt;a href="http://msdn.microsoft.com/en-us/library/cc840016.aspx" target="_blank"&gt;ITnef&lt;/a&gt; interface. There are only a few methods in this interface and they are, for the most part, self explanatory. The entire process of creating a TNEF stream can be done in just a few steps: &lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Call &lt;a href="http://msdn.microsoft.com/en-us/library/cc839976.aspx" target="_blank"&gt;OpenTnefStreamEx&lt;/a&gt; to get a TNEF stream to write into.       &lt;br /&gt;      &lt;br /&gt;Make sure you pass in TNEF_ENCODE since you’ll be creating TNEF. If you were reading TNEF, you’d pass in TNEF_DECODE instead. The other flags to worry about here are TNEF_BEST_DATA, TNEF_COMPATIBILITY, and TNEF_PURE. All of these just signal to MAPI how you want the properties you add to the TNEF stream treated. They will either be all converted to the old-school attributes (TNEF_COMPATIBILITY) – you shouldn’t use this one; some will be converted to attributes but also written to the attMAPIProps section (TNEF_BEST_DATA); or they will all just be written to the MAPI props and none of them written to the attributes (TNEF_PURE). &lt;/li&gt;    &lt;li&gt;Call &lt;a href="http://msdn.microsoft.com/en-us/library/cc815786.aspx" target="_blank"&gt;EncodeRecips&lt;/a&gt; and pass in the Recipient table you get from a call to &lt;a href="http://msdn.microsoft.com/en-us/library/cc815662.aspx"&gt;IMessage::GetRecipientTable&lt;/a&gt; on your message. &lt;/li&gt;    &lt;li&gt;Call &lt;a href="http://msdn.microsoft.com/en-us/library/cc839951.aspx" target="_blank"&gt;AddProps&lt;/a&gt; passing in an &lt;a href="http://msdn.microsoft.com/en-us/library/cc765903.aspx" target="_blank"&gt;SPropTagArray&lt;/a&gt; of non-transmittable prop tags and use the TNEF_PROP_EXCLUDE flag.       &lt;br /&gt;      &lt;br /&gt;There are essentially two schools of thought for building your TNEF: exclude the props you don’t want and let MAPI deal with the rest; or choose carefully which props you &lt;em&gt;do&lt;/em&gt; want to include and add them each piecemeal. These are the reason for having the TNEF_PROP_EXCLUDE and TNEF_PROP_INCLUDE flags. One of them says here are the properties I don’t want you to encode (TNEF_PROP_EXCLUDE) and the other, TNEF_PROP_INCLUDE, says I want you to include all of these properties.       &lt;br /&gt;      &lt;br /&gt;There’s another method, &lt;a title="ITnef--SetProps" href="http://msdn.microsoft.com/en-us/library/cc765611.aspx"&gt;SetProps&lt;/a&gt;, which does just that, sets the value of a property in the TNEF stream to a value you supply. This allows you to modify the data of the message you are trying to encode, or add additional properties that weren’t on the original.       &lt;br /&gt;      &lt;br /&gt;Back to &lt;a href="http://msdn.microsoft.com/en-us/library/cc839951.aspx" target="_blank"&gt;AddProps&lt;/a&gt; for a moment. The flags that supports don’t stop with TNEF_PROP_INCLUDE and TNEF_PROP_EXCLUDE, There is also TNEF_PROP_ATTACHMENTS_ONLY which says “of the properties I’ve given you to work with, I only want you to include/exclude the ones that have to do with attachments. Contrast that with TNEF_PROP_MESSAGE_ONLY which says &amp;quot;”of the properties I’ve given you to work with, I only want you to include/exclude the ones that have to do with the message itself – not attachments.” Then there’s the CONTAINED flags: TNEF_PROP_CONTAINED and TNEF_PROP_CONTAINED_TNEF. TNEF_PROP_CONTAINED means that these properties are going on an attachment; and the TNEF_PROP_CONTAINED_TNEF means I have TNEF data I’m going to give you to put in an attachment – like if you already had a TNEF blob you wanted to include as an attachment, which I’ll demonstrate below. &lt;/li&gt;    &lt;li&gt;Once you get all your properties added and included/excluded properly, you call &lt;a href="http://msdn.microsoft.com/en-us/library/cc765543.aspx"&gt;Finish&lt;/a&gt; and you’re done. One thing that makes it a little complicated though, is that you have to keep alive all the pointers and streams, etc you’re using in your TNEF until Finish is called, because that’s when all the internal work is actually done. So when you call Finish, that’s when MAPI says, Oh, ok, let me go get that recipient table you gave me. If you’ve already released it, then the process fails. &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;So it’s pretty easy to do this. This is essentially the way that &lt;a href="http://www.codeplex.com/mfcmapi"&gt;MFCMAPI&lt;/a&gt; demonstrates how to do it (look in File.cpp under SaveToTNEF). There are problems associated with doing it this way when it comes to Unicode properties and when having multiple embedded messages.&lt;/p&gt;  &lt;p&gt;The more complicated way to do this to work around some of the issues described above is to add the properties you want explicitly, including each attachment. &lt;/p&gt;  &lt;p&gt;The basic difference in the strategy is that instead of calling &lt;a href="http://msdn.microsoft.com/en-us/library/cc839951.aspx" target="_blank"&gt;AddProps&lt;/a&gt; with TNEF_PROP_EXCLUDE, call it with TNEF_PROP_INCLUDE and give it the &lt;a href="http://msdn.microsoft.com/en-us/library/cc765903.aspx" target="_blank"&gt;SPropTagArray&lt;/a&gt; you get from a call to &lt;a href="http://msdn.microsoft.com/en-us/library/cc765530.aspx"&gt;GetPropList&lt;/a&gt; on the message. You’ll need to filter out the non-transmittable properties (such as custom props and things like the Store EntryID). Once you add all the message props, call &lt;a href="http://msdn.microsoft.com/en-us/library/cc839924.aspx"&gt;GetAttachmentTable&lt;/a&gt; and loop through each attachment and do one of two things, if it’s not an embedded message, just add the attachment data with &lt;a href="http://msdn.microsoft.com/en-us/library/cc839951.aspx" target="_blank"&gt;AddProps&lt;/a&gt; on PR_ATTACH_DATA_BIN; otherwise, you’re going to recurse over yourself and build a TNEF stream from the embedded message. When you call Finish on it, then you’ll add it to the parent TNEF stream by calling &lt;a href="http://msdn.microsoft.com/en-us/library/cc839951.aspx" target="_blank"&gt;AddProps&lt;/a&gt; with PR_ATTACH_DATA_OBJ and using the TNEF_PROP_CONTAINED_TNEF flag and give it the stream for your TNEF blob. Once you unwind all the way, you’ll have your “master” TNEF stream. Essentially, you’ll follow the steps here: &lt;a title="http://msdn.microsoft.com/en-us/library/cc839833.aspx" href="http://msdn.microsoft.com/en-us/library/cc839833.aspx"&gt;http://msdn.microsoft.com/en-us/library/cc839833.aspx&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9378932" width="1" height="1"&gt;</content><author><name>pcreehan</name><uri>http://blogs.msdn.com/members/pcreehan.aspx</uri></author><category term="Outlook" scheme="http://blogs.msdn.com/pcreehan/archive/tags/Outlook/default.aspx" /><category term="Exchange" scheme="http://blogs.msdn.com/pcreehan/archive/tags/Exchange/default.aspx" /><category term="MAPI" scheme="http://blogs.msdn.com/pcreehan/archive/tags/MAPI/default.aspx" /><category term="DevMsgTeam" scheme="http://blogs.msdn.com/pcreehan/archive/tags/DevMsgTeam/default.aspx" /><category term="TNEF" scheme="http://blogs.msdn.com/pcreehan/archive/tags/TNEF/default.aspx" /></entry><entry><title>TNEF (Chapter 1): Basics</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/pcreehan/archive/2009/01/16/tnef-chapter-1-basics.aspx" /><id>http://blogs.msdn.com/pcreehan/archive/2009/01/16/tnef-chapter-1-basics.aspx</id><published>2009-01-16T19:17:36Z</published><updated>2009-01-16T19:17:36Z</updated><content type="html">&lt;p&gt;I’ve worked quite a few cases recently regarding problems some folks have had either reading or composing TNEF content. I’ve learned quite a bit myself as a result, and I thought I’d share. I decided I would do a series of blog posts on the topic and hopefully save some of you the time I spent learning all this.&lt;/p&gt;  &lt;p&gt;So, being the first post on the topic, I suppose now would be a good time for a review on just what TNEF is and how it’s structured.&lt;/p&gt;  &lt;p&gt;TNEF stands for Transport-Neutral Encapsulation Format. If you use Outlook or any other MAPI client as your mail client, you may know that MAPI is a protocol for communication between the client and the mailbox server. MAPI defines a set of interfaces which the client can use to work with the data in the mailbox. The MAPI structure for the data is hierarchical with messages being contained in containers, which themselves can have a parent container, all the way up to the root of the store. MAPI also defines a set of properties understood by the client and, in some cases, the server. If all mail sent could stay on this one server and only go between clients on this one system, this would be all we need; but we know that’s not the case. A very large quantity of e-mail is sent over the internet to foreign systems every day. The vast majority of those use an industry-standard protocol called SMTP (Simple Mail Transfer Protocol) to send messages in an industry-standard format called MIME (Multipurpose Internet Mail Extensions). MIME is composed of body parts, which can in turn be composed of additional body parts themselves. MIME also allows you to add headers to each of the body parts which allow you to describe the content of that body part. So one body part may be a Word Document attachment, so the MIME headers on that body part would contain the MIME type such as application/doc and the transfer type, such as base64. The content of that body part would then contain a base64 encoding of the document. The headers for the root body part contain information such as the subject of the message, the sender and recipient information, etc. &lt;/p&gt;  &lt;p&gt;As a message makes its way through transport from one person’s email client to another person’s, it encounters many “hops” (brief stops at SMTP servers in the routing path) which have the opportunity to modify the headers. They do this in order to track the path the message took or to flag it as SPAM, verify the sender address, etc. So there’s a chance the headers you specify when you send the message won’t be the same as when the message arrives at the destination. The headers also only support text values. One of the problems discovered early on about the MIME format was that it has no concept of “rich text.” &lt;/p&gt;  &lt;p&gt;In early versions of Outlook, users wanted the ability to send and receive email that contained rich text bodies. Microsoft devised a plan to create an attachment to the messages it was sending that would have a certain content-type and would come to have a well-known name, “winmail.dat”. This attachment would contain an &lt;em&gt;encapsulation&lt;/em&gt; of the MAPI properties that could represent this rich body that would work across any transport and be readable by any system that supported MIME.&lt;/p&gt;  &lt;p&gt;The original structure just supported a very simple structure that was basically Name/size/value. These were called “attributes” and the names of these attributes are still prefixed by “att.” Many of the attribute names can be seen here: &lt;a title="http://msdn.microsoft.com/en-us/library/cc765736.aspx" href="http://msdn.microsoft.com/en-us/library/cc765736.aspx"&gt;http://msdn.microsoft.com/en-us/library/cc765736.aspx&lt;/a&gt;. The most important of these attributes for the purposes of our discussion will be the &lt;a target="_blank" href="http://msdn.microsoft.com/en-us/library/cc842114.aspx"&gt;attMAPIProps&lt;/a&gt;. This attribute contains a list of MAPI properties that the receiving system can set on the message once it has converted the other MIME parts into their MAPI format. Some of the TNEF attributes can be directly translated into MAPI properties as defined by the link earlier in this paragraph, but there is not a 1-1 mapping between TNEF attributes and MAPI properties – hence the attMAPIProps attribute. Attachments and recipient data can also be encoded into the TNEF structure, which we’ll examine more later.&lt;/p&gt;  &lt;p&gt;MSDN documents the general structure of TNEF but it’s hard to understand. Last year, when Exchange decided to be among those systems that elected to publicly document their protocols, they created &lt;a target="_blank" href="http://msdn.microsoft.com/en-us/library/cc425498.aspx"&gt;[MS-OXTNEF].pdf&lt;/a&gt;, which documents very clearly the structure of the TNEF data and how to parse it. Don’t get too nervous, though. I have parsed a 3MB TNEF blob manually myself, but in Exchange 2007, we provide &lt;a target="_blank" href="http://msdn.microsoft.com/en-us/library/microsoft.exchange.data.contenttypes.tnef.aspx"&gt;managed code interfaces&lt;/a&gt; to allow you to read (or write) this data very easily. In subsequent posts, I’ll dive more into the structure and into the managed classes, as well as the legacy &lt;a target="_blank" href="http://msdn.microsoft.com/en-us/library/cc840016.aspx"&gt;MAPI ITnef&lt;/a&gt; interfaces, and more into problems you may experience in developing TNEF-enabled applications.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9329079" width="1" height="1"&gt;</content><author><name>pcreehan</name><uri>http://blogs.msdn.com/members/pcreehan.aspx</uri></author><category term="Outlook" scheme="http://blogs.msdn.com/pcreehan/archive/tags/Outlook/default.aspx" /><category term="Exchange" scheme="http://blogs.msdn.com/pcreehan/archive/tags/Exchange/default.aspx" /><category term="MAPI" scheme="http://blogs.msdn.com/pcreehan/archive/tags/MAPI/default.aspx" /><category term="MIME" scheme="http://blogs.msdn.com/pcreehan/archive/tags/MIME/default.aspx" /><category term="DevMsgTeam" scheme="http://blogs.msdn.com/pcreehan/archive/tags/DevMsgTeam/default.aspx" /><category term="TNEF" scheme="http://blogs.msdn.com/pcreehan/archive/tags/TNEF/default.aspx" /></entry><entry><title>New Drop of MAPI/CDO Download Released Today</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/pcreehan/archive/2008/12/19/new-drop-of-mapi-cdo-download-released-today.aspx" /><id>http://blogs.msdn.com/pcreehan/archive/2008/12/19/new-drop-of-mapi-cdo-download-released-today.aspx</id><published>2008-12-20T00:48:47Z</published><updated>2008-12-20T00:48:47Z</updated><content type="html">&lt;p&gt;After a hiccup earlier this week in getting the new MAPI &amp;amp; CDO downloads published to microsoft.com, they released today.&lt;/p&gt;  &lt;p&gt;MAPI / CDO&lt;/p&gt;  &lt;p&gt;&lt;a title="http://www.microsoft.com/downloads/details.aspx?familyid=E17E7F31-079A-43A9-BFF2-0A110307611E&amp;amp;displaylang=en" href="http://www.microsoft.com/downloads/details.aspx?familyid=E17E7F31-079A-43A9-BFF2-0A110307611E&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?familyid=E17E7F31-079A-43A9-BFF2-0A110307611E&amp;amp;displaylang=en&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;CDO 1.21&lt;/p&gt;  &lt;p&gt;&lt;a title="http://www.microsoft.com/downloads/details.aspx?familyid=2714320D-C997-4DE1-986F-24F081725D36&amp;amp;displaylang=en" href="http://www.microsoft.com/downloads/details.aspx?familyid=2714320D-C997-4DE1-986F-24F081725D36&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?familyid=2714320D-C997-4DE1-986F-24F081725D36&amp;amp;displaylang=en&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9242911" width="1" height="1"&gt;</content><author><name>pcreehan</name><uri>http://blogs.msdn.com/members/pcreehan.aspx</uri></author><category term="MAPI" scheme="http://blogs.msdn.com/pcreehan/archive/tags/MAPI/default.aspx" /><category term="CDO 1.21" scheme="http://blogs.msdn.com/pcreehan/archive/tags/CDO+1.21/default.aspx" /><category term="DevMsgTeam" scheme="http://blogs.msdn.com/pcreehan/archive/tags/DevMsgTeam/default.aspx" /></entry><entry><title>MAPI Docs Moved</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/pcreehan/archive/2008/12/04/mapi-docs-moved.aspx" /><id>http://blogs.msdn.com/pcreehan/archive/2008/12/04/mapi-docs-moved.aspx</id><published>2008-12-04T18:34:00Z</published><updated>2008-12-04T18:34:00Z</updated><content type="html">&lt;P&gt;So, the Exchange team decided they didn't want to maintain the MAPI documentation anymore since they don't ship MAPI anymore. So the Outlook team stepped up and took over the docs. As such, you can now find them under the Outlook branch in the MSDN left-nav.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://msdn.microsoft.com/en-us/library/cc765775.aspx"&gt;http://msdn.microsoft.com/en-us/library/cc765775.aspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A target=_blank href="http://blogs.msdn.com/stephen_griffin" mce_href="http://blogs.msdn.com/stephen_griffin"&gt;Steve Griffin&lt;/A&gt; has been working with the Outlook team&amp;nbsp;on prettying them up and updating them for a few months,&amp;nbsp;and they're now&amp;nbsp;better than ever! He even got a new icon for &lt;A target=_blank href="http://www.codeplex.com/mfcmapi" mce_href="http://www.codeplex.com/mfcmapi"&gt;MFCMAPI&lt;/A&gt; out of the deal!&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9175526" width="1" height="1"&gt;</content><author><name>pcreehan</name><uri>http://blogs.msdn.com/members/pcreehan.aspx</uri></author><category term="Outlook" scheme="http://blogs.msdn.com/pcreehan/archive/tags/Outlook/default.aspx" /><category term="Exchange" scheme="http://blogs.msdn.com/pcreehan/archive/tags/Exchange/default.aspx" /><category term="MAPI" scheme="http://blogs.msdn.com/pcreehan/archive/tags/MAPI/default.aspx" /><category term="Outlook 2007" scheme="http://blogs.msdn.com/pcreehan/archive/tags/Outlook+2007/default.aspx" /><category term="DevMsgTeam" scheme="http://blogs.msdn.com/pcreehan/archive/tags/DevMsgTeam/default.aspx" /></entry><entry><title>Trouble with Live Search Maps Add-in for Outlook</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/pcreehan/archive/2008/10/22/trouble-with-live-search-maps-add-in-for-outlook.aspx" /><id>http://blogs.msdn.com/pcreehan/archive/2008/10/22/trouble-with-live-search-maps-add-in-for-outlook.aspx</id><published>2008-10-22T16:08:27Z</published><updated>2008-10-22T16:08:27Z</updated><content type="html">&lt;p&gt;Several million of you have downloaded the Live Search Maps Add-in for Outlook which allows integration in Outlook with maps and has some cool functionality around extending your appointment blocks to account for automatically calculated travel time among other things.&lt;/p&gt;  &lt;p&gt;We have received a large number of support cases that are caused either directly or indirectly because of this add-in. These include hangs, crashes, and leaks. There could be any number of different reasons for those, but to name one culprit, the add-in interops with CDO 1.21, which if you are a messaging developer following the blogs of anyone on our team, you will know that this is not supported. &lt;/p&gt;  &lt;p&gt;&lt;a title="http://support.microsoft.com/kb/266353" href="http://support.microsoft.com/kb/266353"&gt;http://support.microsoft.com/kb/266353&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Worse than that, it is distributing CDO.dll, which is also not supported. &lt;a href="http://support.microsoft.com/kb/171440"&gt;http://support.microsoft.com/kb/171440&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;A customer of mine reported an issue that lead us to another discovery. The add-in installs a custom form to your Personal forms registry and changes the default form for the calendar to IPM.Appointment.Location. The form it publishes is based on the LEO.oft form that it installs in your Program Files. The OFT was clearly customized from an existing item in the designer’s mailbox. The form contains a value for PR_START_DATE and PR_END_DATE set to 4/6/2006. The problem with this is that Outlook doesn’t use PR_START_DATE and PR_END_DATE, but CDO 1.21 does and OWA will set them as well. Outlook uses custom named props to keep track of dates.&amp;#160; Exchange normally keeps these custom props and PR_START/END_DATE in sync, but only if it needs to because of a modification you did from OWA or something like that. Otherwise, the original values will stick. &lt;/p&gt;  &lt;p&gt;If you have a CDO 1.21 application which filters based on a date, all the appointments you created with this form in your calendar will appear to be on 4/6/2006.&lt;/p&gt;  &lt;p&gt;The long-term plan for what to do about all the problems in this add-in has not been determined at the time of writing of this blog, but it may result in the download being removed from microsoft.com. This won’t help you fix up any items that already exist in your calendar though – nor will it prevent users from using the add-in if they already have it downloaded and installed. &lt;/p&gt;  &lt;p&gt;If you insist on continuing to use the add-in, then please at least use &lt;a title="Updated OFT file in ZIP format" href="http://patrick.creehan.members.winisp.net/Files/LEO.zip"&gt;this updated form&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;You will need to publish this form to your Personal Forms library over the original. If you uncomfortable with that, you can &lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Uninstall the add-in using Add/Remove Programs. &lt;/li&gt;    &lt;li&gt;Remove the existing form from your Personal forms library, &lt;/li&gt;    &lt;li&gt;Close Outlook and ensure no instances of Outlook.exe are running in Task Manager. &lt;/li&gt;    &lt;li&gt;Reinstall the add-in, &lt;/li&gt;    &lt;li&gt;Replace the LEO.oft in the Program Files folder (C:\Program Files\Live Search Maps for Outlook) with the one contained in the ZIP file linked above. &lt;/li&gt;    &lt;li&gt;Open Outlook. (the add-in will publish your new form). &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;This should allow your CDO 1.21 code to execute normally on any newly created items. For existing items, you can use Outlook Object Model or CDO 1.21 (or Extended MAPI) code to loop through the appointments in your calendar and delete the PR_START_DATE and PR_END_DATE properties if they are on 4/6/2006 with a message class of IPM.Appointment.Location. Outlook should still be able to work with the appointment just fine without those properties.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9011073" width="1" height="1"&gt;</content><author><name>pcreehan</name><uri>http://blogs.msdn.com/members/pcreehan.aspx</uri></author><category term="Outlook" scheme="http://blogs.msdn.com/pcreehan/archive/tags/Outlook/default.aspx" /><category term="VSTO" scheme="http://blogs.msdn.com/pcreehan/archive/tags/VSTO/default.aspx" /><category term="Outlook 2007" scheme="http://blogs.msdn.com/pcreehan/archive/tags/Outlook+2007/default.aspx" /><category term="CDO 1.21" scheme="http://blogs.msdn.com/pcreehan/archive/tags/CDO+1.21/default.aspx" /><category term="DevMsgTeam" scheme="http://blogs.msdn.com/pcreehan/archive/tags/DevMsgTeam/default.aspx" /></entry><entry><title>Misha Shneerson : COM Interop: Handling events has side effects</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/pcreehan/archive/2008/10/22/misha-shneerson-com-interop-handling-events-has-side-effects.aspx" /><id>http://blogs.msdn.com/pcreehan/archive/2008/10/22/misha-shneerson-com-interop-handling-events-has-side-effects.aspx</id><published>2008-10-22T16:04:09Z</published><updated>2008-10-22T16:04:09Z</updated><content type="html">&lt;p&gt; Misha, a Senior Dev on the VSTO team just posted this blog describing why handling events in managed code can be problematic. This is not news to our team, but he provides a good explanation of why it’s problematic. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/mshneer/archive/2008/10/18/com-interop-handling-events-has-side-effects.aspx"&gt;Misha Shneerson : COM Interop: Handling events has side effects&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;If any of what he says sounds familiar, it’s because our own &lt;a href="http://blogs.msdn.com/mstehle"&gt;Matt Stehle&lt;/a&gt; has been talking about this &lt;a href="http://blogs.msdn.com/mstehle/archive/2008/06/12/oom-net-part-5-event-planning.aspx"&gt;for a while&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9011064" width="1" height="1"&gt;</content><author><name>pcreehan</name><uri>http://blogs.msdn.com/members/pcreehan.aspx</uri></author><category term="Outlook" scheme="http://blogs.msdn.com/pcreehan/archive/tags/Outlook/default.aspx" /><category term="VSTO" scheme="http://blogs.msdn.com/pcreehan/archive/tags/VSTO/default.aspx" /><category term="Outlook Object Model" scheme="http://blogs.msdn.com/pcreehan/archive/tags/Outlook+Object+Model/default.aspx" /><category term="Outlook 2007" scheme="http://blogs.msdn.com/pcreehan/archive/tags/Outlook+2007/default.aspx" /><category term=".NET" scheme="http://blogs.msdn.com/pcreehan/archive/tags/.NET/default.aspx" /><category term="DevMsgTeam" scheme="http://blogs.msdn.com/pcreehan/archive/tags/DevMsgTeam/default.aspx" /></entry><entry><title>OnSyncDelete Delete</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/pcreehan/archive/2008/09/30/onsyncdelete-delete.aspx" /><id>http://blogs.msdn.com/pcreehan/archive/2008/09/30/onsyncdelete-delete.aspx</id><published>2008-09-30T20:58:09Z</published><updated>2008-09-30T20:58:09Z</updated><content type="html">The Exchange team is looking for some feedback on business scenarios that will be impacted by removing store sinks from the code. With Exchange 2007 and beyond, the new technology designed to replace store sinks is EWS Notifications and Transport Agents. However, with the removal of the synchronous store sinks, OnSyncSave and OnSyncDelete, there will be no means of synchronous notification of changes on the store. If you have a business scenario that makes use of synchronous store sinks, hop over...(&lt;a href="http://blogs.msdn.com/pcreehan/archive/2008/09/30/onsyncdelete-delete.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8970548" width="1" height="1"&gt;</content><author><name>pcreehan</name><uri>http://blogs.msdn.com/members/pcreehan.aspx</uri></author><category term="Exchange" scheme="http://blogs.msdn.com/pcreehan/archive/tags/Exchange/default.aspx" /><category term="Exchange 2007" scheme="http://blogs.msdn.com/pcreehan/archive/tags/Exchange+2007/default.aspx" /><category term="Exchange Web Services (EWS)" scheme="http://blogs.msdn.com/pcreehan/archive/tags/Exchange+Web+Services+_2800_EWS_2900_/default.aspx" /><category term="DevMsgTeam" scheme="http://blogs.msdn.com/pcreehan/archive/tags/DevMsgTeam/default.aspx" /><category term="Agents" scheme="http://blogs.msdn.com/pcreehan/archive/tags/Agents/default.aspx" /></entry><entry><title>Forwarding Appointments in Outlook Prepopulates “To” Field With All Attendees</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/pcreehan/archive/2008/09/19/forwarding-appointments-in-outlook-prepopulates-to-field-with-all-attendees.aspx" /><id>http://blogs.msdn.com/pcreehan/archive/2008/09/19/forwarding-appointments-in-outlook-prepopulates-to-field-with-all-attendees.aspx</id><published>2008-09-19T20:38:00Z</published><updated>2008-09-19T20:38:00Z</updated><content type="html">We’ve had a lot of folks calling in recently about this one. The symptoms are that if you go to your calendar in Outlook and forward a meeting, the To field is prepopulated with all attendees of the meeting and the Subject field is not prefixed with “FW:.” The common denominator of all victims of this problem is that they all had their meetings processed with CDO 1.21. This is common if you are a Blackberry user, but could happen if any application processes your appointment with CDO 1.21 before...(&lt;a href="http://blogs.msdn.com/pcreehan/archive/2008/09/19/forwarding-appointments-in-outlook-prepopulates-to-field-with-all-attendees.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8959149" width="1" height="1"&gt;</content><author><name>pcreehan</name><uri>http://blogs.msdn.com/members/pcreehan.aspx</uri></author><category term="Outlook" scheme="http://blogs.msdn.com/pcreehan/archive/tags/Outlook/default.aspx" /><category term="Exchange" scheme="http://blogs.msdn.com/pcreehan/archive/tags/Exchange/default.aspx" /><category term="Outlook 2007" scheme="http://blogs.msdn.com/pcreehan/archive/tags/Outlook+2007/default.aspx" /><category term="CDO 1.21" scheme="http://blogs.msdn.com/pcreehan/archive/tags/CDO+1.21/default.aspx" /><category term="DevMsgTeam" scheme="http://blogs.msdn.com/pcreehan/archive/tags/DevMsgTeam/default.aspx" /></entry></feed>