<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Search results matching tag 'devmsgteam'</title><link>http://blogs.msdn.com/search/SearchResults.aspx?tag=devmsgteam&amp;o=DateDescending</link><description>Search results matching tag 'devmsgteam'</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Microsoft Office 2010 beta is available to download</title><link>http://blogs.msdn.com/brijs/archive/2009/11/19/microsoft-office-2010-beta-is-available-to-download.aspx</link><pubDate>Thu, 19 Nov 2009 08:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9925907</guid><dc:creator>brijs</dc:creator><description>&lt;p&gt;I am very excited to share that Microsoft &lt;a href="http://www.microsoft.com/presspass/presskits/2010office"&gt;announced&lt;/a&gt; the public beta release of Office 2010, SharePoint Server 2010, Visio 2010, Project 2010, Office Web Apps for business customers, and Office Mobile 2010. &lt;/p&gt;  &lt;p&gt;If you are developing application based on Outlook; then here are few links related to developing applications for Outlook 2010:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a title="http://msdn.microsoft.com/en-us/library/ee692174(office.14).aspx" href="http://msdn.microsoft.com/en-us/library/ee692174(office.14).aspx" target="_blank"&gt;What's New for Developers in Outlook 2010&lt;/a&gt;      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ee692173(office.14).aspx" target="_blank"&gt;Programming the Outlook 2010 Solutions Module&lt;/a&gt;      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ee692172(office.14).aspx" target="_blank"&gt;Extending the User Interface in Outlook 2010&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;If you are looking for resources to learn more about Office 2010. Then the Office 2010 Developer Workshop includes videos and presentations @ &lt;a href="http://channel9.msdn.com/learn/courses/office2010/" target="_blank"&gt;Office 2010 Workshop&lt;/a&gt;. This content is designed to help you get started developing solutions, from Add-ins to full featured Office Business Applications (OBAs), using Visual Studio 2010 with Office 2010 and SharePoint 2010 as the core platform.&lt;/p&gt;  &lt;p&gt;So, what are you waiting for? hit the road with &lt;a href="http://channel9.msdn.com/learn/courses/Office2010/RoadmapUnit/" target="_blank"&gt;Office 2010 Developer Roadmap&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;And to complement it we can download &lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=A80DFB5D-51C6-4778-8656-A9FF29D3A132&amp;amp;displaylang=en" target="_blank"&gt;Microsoft Visual Studio 2010 Professional Beta&lt;/a&gt; and refer to &lt;/p&gt;  &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/86bkz018(VS.100).aspx" target="_blank"&gt;Visual Studio 2010 - What's New in Office Development&lt;/a&gt; as well. &lt;/p&gt;  &lt;p&gt;Enjoy Learning!!!&lt;/p&gt;</description></item><item><title>Exchange Server 2007 SP2 Update Rollup1 is available to download</title><link>http://blogs.msdn.com/brijs/archive/2009/11/19/exchange-server-2007-sp2-update-rollup1-is-available-to-download.aspx</link><pubDate>Thu, 19 Nov 2009 08:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9925894</guid><dc:creator>brijs</dc:creator><description>&lt;p&gt;Exchange Server 2007 SP2 Update Rollup 1 is available to download @ &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=de91f994-6263-47ef-89d7-6d344997459d&amp;amp;displaylang=en"&gt;Download the Exchange2007-KB971534-EN package now&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Update Rollup 1 for Exchange Server 2007 Service Pack 2 (SP2) resolves issues that were found in Exchange Server 2007 SP2 since the software was released. This update rollup is highly recommended for all Exchange Server 2007 SP2 customers. For the details related to the issue fixed by it refer to &lt;a href="http://support.microsoft.com/kb/971534" target="_blank"&gt;Description of Update Rollup 1 for Exchange Server 2007 Service Pack 2&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;If you are developing application based on Exchange Web Services then following are the issues fixed by Update Rollup 1 for Exchange Server 2007 Service Pack 2 (SP2):&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://support.microsoft.com/kb/973868/"&gt;973868&lt;/a&gt; A delegate cannot cancel meetings in the organizer's calendar by using Exchange Web Service (EWS)      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://support.microsoft.com/kb/973307/"&gt;973307&lt;/a&gt; An application that uses Exchange Web Services returns an exception on an Exchange Server 2007 server      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://support.microsoft.com/kb/972009/"&gt;972009&lt;/a&gt; E-mail messages cannot be retrieved by an Exchange Web Service (EWS)-based application if there are invalid control characters in the text body of the e-mail message&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;So, if you are on Exchange Server 2007 SP2; I would highly recommend you to download and install Update Rollup 1 to fix the know issued with Exchange Server 2007 SP2.&lt;/p&gt;</description></item><item><title>November 2009 Release of MFCMAPI</title><link>http://blogs.msdn.com/stephen_griffin/archive/2009/11/17/november-2009-release-of-mfcmapi.aspx</link><pubDate>Tue, 17 Nov 2009 08:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9923666</guid><dc:creator>Stephen Griffin</dc:creator><description>&lt;p&gt;The November 2009 Release (build 6.0.0.1016) is live: &lt;a href="http://mfcmapi.codeplex.com"&gt;http://mfcmapi.codeplex.com&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;The September 2009 release was downloaded over 18 thousand times, with nearly 1700 of them being the 64 bit build. This exceeded the July build by about 4000 downloads. Yay MFCMAPI!&lt;/p&gt;  &lt;p&gt;Mostly bug fixes this time around. Win 7 finally made me dig into why Close All Windows wasn’t working, and I did a bit of work to make MFCMAPI a better multimon client.&lt;/p&gt;  &lt;p&gt;Here's a change list - see the &lt;a href="http://www.codeplex.com/MFCMAPI/WorkItem/List.aspx"&gt;Issue Tracker&lt;/a&gt; on Codeplex for more details, or look at the code:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Close All: Shutdown of contents table windows was swallowing the WM_CLOSE message for the other windows. Whoops! &lt;/li&gt;    &lt;li&gt;Multimon: New windows and context menus now show on the same screen as their parent window, as they should. &lt;/li&gt;    &lt;li&gt;Unicode Files: MFCMAPI can now handle files (like .msg or .eml files) that have Unicode characters in their names. &lt;/li&gt;    &lt;li&gt;Property Editor: It’s now possible to manually insert CR/LF characters directly in the hex stream of a property and write the exact data you intended, as long as you don’t touch the text editor. This is to work around a bug/feature of the rich edit control that made reproducing certain issues impossible. &lt;/li&gt;    &lt;li&gt;Smart View: Can now turn Smart View off if you’ve got a property that’s causing it to choke. Do continue to report these to me though! &lt;/li&gt;    &lt;li&gt;Version selection: Did some work to make it clearer when you’re running the wrong version of MFCMAPI (32/64) for the version of MAPI you have. &lt;/li&gt;    &lt;li&gt;Error Dialog Suppression: Identified a number of “error” dialogs that confused more than they helped and eliminated them. If there was an actual error it’s written to the debug output. &lt;/li&gt;    &lt;li&gt;Tons of minor issues – 22 total bugs tied to this release, and those are just the ones that were worth calling out. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Enjoy.&lt;/p&gt;&lt;div class="wlWriterHeaderFooter" style="text-align:right; margin:0px; padding:4px 0px 4px 0px;"&gt;&lt;script type="text/javascript"&gt;digg_url = "http://blogs.msdn.com/stephen_griffin/archive/2009/11/17/november-2009-release-of-mfcmapi.aspx";digg_title = "November 2009 Release of MFCMAPI";digg_bgcolor = "#FFFFFF";digg_skin = "compact";&lt;/script&gt;&lt;script src="http://digg.com/tools/diggthis.js" type="text/javascript"&gt;&lt;/script&gt;&lt;script type="text/javascript"&gt;digg_url = undefined;digg_title = undefined;digg_bgcolor = undefined;digg_skin = undefined;&lt;/script&gt;&lt;/div&gt;</description></item><item><title>Where CDO Publishes Free Busy Information</title><link>http://blogs.msdn.com/stephen_griffin/archive/2009/11/16/where-cdo-publishes-free-busy-information.aspx</link><pubDate>Mon, 16 Nov 2009 08:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9922933</guid><dc:creator>Stephen Griffin</dc:creator><description>&lt;p&gt;From time to time, I get asked to explain where CDO publishes Free Busy information in the Public Folder store, so I figured I’d put this article together. The basic process CDO uses for updating FB information is outlined in the More Information section of &lt;a href="http://support.microsoft.com/kb/278954"&gt;KB 278954&lt;/a&gt;. We’re concerned with the part of the process summarized as “queued up to be sent to the site’s Free/Busy public folder.”&lt;/p&gt;  &lt;p&gt;The first thing CDO does is to open the Public Folder store and read a couple properties off of it, &lt;a href="http://msdn.microsoft.com/en-us/library/ms526844(EXCHG.10).aspx"&gt;PR_FREE_BUSY_FOR_LOCAL_SITE_ENTRYID&lt;/a&gt; (0x66250102) and&amp;#160; &lt;a href="http://msdn.microsoft.com/en-us/library/ee160529.aspx"&gt;PR_SPLUS_FREE_BUSY_ENTRYID&lt;/a&gt; (0x66220102). These entry IDs will point at a couple folders in the Public Folder store. The first entry ID points the Free Busy folder for the user’s site, the folder CDO wants to look in for the Free Busy message. If CDO cannot open the folder specified by PR_FREE_BUSY_FOR_LOCAL_SITE_ENTRYID, it turns to the second property, PR_SPLUS_FREE_BUSY_ENTRYID, which points at the “SCHEDULE+ FREE BUSY” folder, a child folder of the NON_IPM_SUBTREE folder. This property will point at the same folder for all users. In this case, CDO will use an algorithm similar to the one described in &lt;a href="http://msdn.microsoft.com/en-us/library/ee237796.aspx"&gt;[MS-OXOPFFB]&lt;/a&gt; to find the correct site folder for the Free Busy message.&lt;/p&gt;  &lt;p&gt;The point of failure here is the Entry ID specified in PR_FREE_BUSY_FOR_LOCAL_SITE_ENTRYID. If this points at the wrong folder, CDO will publish Free Busy information to the wrong folder, and other clients won’t see the updated Free Busy. This property is not one that anybody sets. It’s actually computed on the server side. No amount of changes to a CDO based program can get it to publish Free Busy to the correct folder if the server is handing out the wrong site folder.&lt;/p&gt;  &lt;p&gt;This is where server side troubleshooing articles such as KB &lt;a href="http://support.microsoft.com/kb/326637"&gt;326637&lt;/a&gt; and &lt;a href="http://technet.microsoft.com/en-us/library/bb123804(EXCHG.65).aspx"&gt;Exchange Public Folder Troubleshooting Resources&lt;/a&gt; come in handy. They walk you through the various things that could be wrong with site folders and how to fix them. If PR_FREE_BUSY_FOR_LOCAL_SITE_ENTRYID is pointing at the wrong folder for your users you’ll need to use the steps in those articles to locate the problem and fix it.&lt;/p&gt;  &lt;p&gt;Suppose you just want to determine if PR_FREE_BUSY_FOR_LOCAL_SITE_ENTRYID is pointing at the folder you’d expect it to point to for a particular user. You can use &lt;a href="http://mfcmapi.codeplex.com/"&gt;MFCMAPI&lt;/a&gt; to see where this entry ID points to.&lt;/p&gt;  &lt;p&gt;First, we check which folders we’re being pointed at:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Open MFCMAPI on the machine where your CDO application runs.&lt;/li&gt;    &lt;li&gt;Log on to a profile. You’ll get your best results if you can use the same profile the CDO application uses.&lt;/li&gt;    &lt;li&gt;Select the Public Folder store in the list of stores.&lt;/li&gt;    &lt;li&gt;The properties we want may or may not show in the default list of properties, so we’ll add them:&lt;/li&gt;    &lt;ol&gt;     &lt;li&gt;Click Property Pane/Modify Extra Properties&lt;/li&gt;      &lt;li&gt;Click Add&lt;/li&gt;      &lt;li&gt;In the Property Tag field, type in PR_FREE_BUSY_FOR_LOCAL_SITE_ENTRYID. The rest of the form should fill out automatically.&lt;/li&gt;      &lt;li&gt;Click OK, then click Add again.&lt;/li&gt;      &lt;li&gt;In the Property Tag field, type in PR_SPLUS_FREE_BUSY_ENTRYID. The rest of the form should fill out automatically.&lt;/li&gt;      &lt;li&gt;Click OK, then click OK again to close the Extra Properties window.&lt;/li&gt;   &lt;/ol&gt;    &lt;li&gt;We’ve added the properties, so they should show in the property pane. You can sort by the Property Name column and look them up by name, or sort by the Tag column and look them up by number (0x66250102 for PR_FREE_BUSY_FOR_LOCAL_SITE_ENTRYID and 0x66220102 for PR_SPLUS_FREE_BUSY_ENTRYID.&lt;/li&gt;    &lt;li&gt;Right click on PR_FREE_BUSY_FOR_LOCAL_SITE_ENTRYID and select Open as Entry ID or Object. In the dialog that comes up, hit OK.&lt;/li&gt;    &lt;li&gt;In the resulting hierarchy view, you can now read the name of the site folder the server has directed you to.&lt;/li&gt;    &lt;li&gt;Switch back to the main window and reselect the Public Folder store to refresh the property list.&lt;/li&gt;    &lt;li&gt;Right click on PR_SPLUS_FREE_BUSY_ENTRYID and select Open as Entry ID or Object. In the dialog that comes up, hit OK.&lt;/li&gt;    &lt;li&gt;This will display the hierarchy for the SCHEDULE+ FREE BUSY folder. Click the + icon to display the list of all the site folders in the Public Folder store.&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Next, we determine which folders we should be looking at, following the algorithm from &lt;a href="http://msdn.microsoft.com/en-us/library/ee179045.aspx"&gt;[MS-OXOPFFB]:&lt;/a&gt;&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;In the main window of MFCMAPI, select Session/Display Current User Properties. Hit OK.&lt;/li&gt;    &lt;li&gt;In the Property Pane, locate PR_SEARCH_KEY (0x300B0102).&lt;/li&gt;    &lt;li&gt;Double-click on the property to open it, and take note of the Text field. For me, this says “EX:/O=MICROSOFT/OU=NORTHAMERICA/CN=RECIPIENTS/CN=420275”&lt;/li&gt;    &lt;li&gt;The appropriate site folder can be derived by truncating this string at the / before the first CN. So for me, my site folder should be “EX:/O=MICROSOFT/OU=NORTHAMERICA”.&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;So, now you know what site folder the user has listed in PR_FREE_BUSY_FOR_LOCAL_SITE_ENTRYID, and you know the name of the site folder they should be using. If these two are not the same folder, then you have site folder issues and need to get them addressed.&lt;/p&gt;  &lt;p&gt;Hopefully, this should be enough to help folks who are having site folder issues to understand that CDO is just the innocent victim here when it publishes Free Busy to the wrong folder, and that server side configuration is the real villain.&lt;/p&gt;  &lt;p&gt;Enjoy!&lt;/p&gt;&lt;div class="wlWriterHeaderFooter" style="text-align:right; margin:0px; padding:4px 0px 4px 0px;"&gt;&lt;script type="text/javascript"&gt;digg_url = "http://blogs.msdn.com/stephen_griffin/archive/2009/11/16/where-cdo-publishes-free-busy-information.aspx";digg_title = "Where CDO Publishes Free Busy Information";digg_bgcolor = "#FFFFFF";digg_skin = "compact";&lt;/script&gt;&lt;script src="http://digg.com/tools/diggthis.js" type="text/javascript"&gt;&lt;/script&gt;&lt;script type="text/javascript"&gt;digg_url = undefined;digg_title = undefined;digg_bgcolor = undefined;digg_skin = undefined;&lt;/script&gt;&lt;/div&gt;</description></item><item><title>Issue accessing Public Folder Store using CDO 1.2.1 for Outlook 2007</title><link>http://blogs.msdn.com/brijs/archive/2009/11/13/issue-accessing-public-folder-store-using-cdo-1-2-1-for-outlook-2007.aspx</link><pubDate>Fri, 13 Nov 2009 08:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9922361</guid><dc:creator>brijs</dc:creator><description>&lt;p&gt;If you are using InfoStores collection of CDO 1.2.1 for Outlook 2007 to access Public Folder store and not able to get reference to Public Folder store then here is the explanation of the design change in CDO 1.2.1 from SGriffin’s post@&lt;a href="http://blogs.msdn.com/stephen_griffin/archive/2007/05/30/outlook-2007-public-folders-mapi-and-you.aspx" target="_blank"&gt;Outlook 2007, Public Folders, MAPI and You&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;Basically, Outlook 2007's version of the Exchange provider, emsmdb32, doesn't automatically add the Public Folder store to the message store table of a new profile. Instead, it waits until a successful connection has been made to the Exchange server. If it then detects that the public folders are available, it updates the profile and sends a table notification indicating the availability of Public Folders. This is a change from previous versions of Outlook and from Exchange's version of the provider. We made this change to better support Exchange 2007's Public Folder-less environments.&lt;/p&gt; &lt;p&gt;Here is the vbscript sample code snippet to repro the issue:&lt;/p&gt; &lt;p&gt;NOTE: Following programming examples is for illustration only, without warranty either expressed or implied, including, but not limited to, the implied warranties of merchantability and/or fitness for a particular purpose. This sample code assumes that you are familiar with the programming language being demonstrated and the tools used to create and debug procedures. This sample code is provided for the purpose of illustration only and is not intended to be used in a production environment. &lt;/p&gt; &lt;div class="csharpcode"&gt;&lt;pre class="alt"&gt;&lt;span class="rem"&gt;'Change Server and User name below&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;SERVER = &lt;span class="str"&gt;"Server"&lt;/span&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;Mailbox = &lt;span class="str"&gt;"User"&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;Set&lt;/span&gt; objSession = CreateObject(&lt;span class="str"&gt;"MAPI.Session"&lt;/span&gt;)&lt;/pre&gt;&lt;pre&gt;objSession.LogOn , &lt;span class="str"&gt;""&lt;/span&gt;, &lt;span class="kwrd"&gt;False&lt;/span&gt;, &lt;span class="kwrd"&gt;True&lt;/span&gt;, , &lt;span class="kwrd"&gt;True&lt;/span&gt;, SERVER  &amp;amp; Chr(10) &amp;amp; Mailbox&lt;/pre&gt;&lt;pre class="alt"&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;    &lt;span class="kwrd"&gt;Set&lt;/span&gt; objInfoStores = objSession.InfoStores&lt;/pre&gt;&lt;pre class="alt"&gt;     &lt;span class="kwrd"&gt;For&lt;/span&gt; i = 1 &lt;span class="kwrd"&gt;To&lt;/span&gt; objInfoStores.Count&lt;/pre&gt;&lt;pre&gt;        &lt;span class="kwrd"&gt;If&lt;/span&gt; UCase(objInfoStores.Item(i)) = UCase(&lt;span class="str"&gt;"Public Folders"&lt;/span&gt;) &lt;span class="kwrd"&gt;Then&lt;/span&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;            &lt;span class="kwrd"&gt;Set&lt;/span&gt; objInfoStore = objInfoStores.Item(i)&lt;/pre&gt;&lt;pre&gt;                msgbox objInfoStore.name &lt;/pre&gt;&lt;pre class="alt"&gt;            &lt;span class="kwrd"&gt;Exit&lt;/span&gt; &lt;span class="kwrd"&gt;For&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;        &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;If&lt;/span&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;Next&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;Set&lt;/span&gt; objInfoStores= &lt;span class="kwrd"&gt;Nothing&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="kwrd"&gt;Set&lt;/span&gt; objSession=Nothing&lt;/pre&gt;&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;&lt;strong&gt;&lt;font color="#800000"&gt;The above sample code would not return the name of the Public Folders store to us.&lt;/font&gt;&lt;/strong&gt;&lt;/pre&gt;&lt;pre&gt;&lt;strong&gt;&lt;font color="#800000"&gt;&lt;/font&gt;&lt;/strong&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;&lt;strong&gt;&lt;font color="#800000"&gt;We need to work around the above issue by creating another session object as per the below code snippet:&lt;/font&gt;&lt;/strong&gt;&lt;/pre&gt;&lt;pre&gt;&amp;nbsp;&lt;/pre&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;div class="csharpcode"&gt;&lt;pre class="alt"&gt;&lt;span class="rem"&gt;'Change Server and User name below&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;SERVER = &lt;span class="str"&gt;"Server"&lt;/span&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;Mailbox = &lt;span class="str"&gt;"User"&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;Set&lt;/span&gt; objSession = CreateObject(&lt;span class="str"&gt;"MAPI.Session"&lt;/span&gt;)&lt;/pre&gt;&lt;pre&gt;objSession.LogOn , &lt;span class="str"&gt;""&lt;/span&gt;, &lt;span class="kwrd"&gt;False&lt;/span&gt;, &lt;span class="kwrd"&gt;True&lt;/span&gt;, , &lt;span class="kwrd"&gt;True&lt;/span&gt;, SERVER  &amp;amp; Chr(10) &amp;amp; Mailbox&lt;/pre&gt;&lt;pre class="alt"&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;    &lt;span class="kwrd"&gt;Set&lt;/span&gt; objInfoStores = objSession.InfoStores&lt;/pre&gt;&lt;pre class="alt"&gt;     &lt;span class="kwrd"&gt;For&lt;/span&gt; i = 1 &lt;span class="kwrd"&gt;To&lt;/span&gt; objInfoStores.Count&lt;/pre&gt;&lt;pre&gt;        &lt;span class="kwrd"&gt;If&lt;/span&gt; UCase(objInfoStores.Item(i)) = UCase(&lt;span class="str"&gt;"Public Folders"&lt;/span&gt;) &lt;span class="kwrd"&gt;Then&lt;/span&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;            &lt;span class="kwrd"&gt;Set&lt;/span&gt; objInfoStore = objInfoStores.Item(i)&lt;/pre&gt;&lt;pre&gt;                msgbox objInfoStore.name &lt;/pre&gt;&lt;pre class="alt"&gt;            &lt;span class="kwrd"&gt;Exit&lt;/span&gt; &lt;span class="kwrd"&gt;For&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;        &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;If&lt;/span&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;Next&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre class="alt"&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;&lt;span class="kwrd"&gt;Set&lt;/span&gt; objSession2 = CreateObject(&lt;span class="str"&gt;"MAPI.Session"&lt;/span&gt;)&lt;/pre&gt;&lt;pre class="alt"&gt;objSession2.LogOn , &lt;span class="str"&gt;""&lt;/span&gt;, &lt;span class="kwrd"&gt;False&lt;/span&gt;, &lt;span class="kwrd"&gt;False&lt;/span&gt;, , &lt;span class="kwrd"&gt;True&lt;/span&gt;, SERVER  &amp;amp; Chr(10) &amp;amp; Mailbox&lt;/pre&gt;&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;Set&lt;/span&gt; objInfoStores2 = objSession2.InfoStores&lt;/pre&gt;&lt;pre&gt;     &lt;span class="kwrd"&gt;For&lt;/span&gt; i = 1 &lt;span class="kwrd"&gt;To&lt;/span&gt; objInfoStores2.Count&lt;/pre&gt;&lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;If&lt;/span&gt; UCase(objInfoStores2.Item(i)) = UCase(&lt;span class="str"&gt;"Public Folders"&lt;/span&gt;) &lt;span class="kwrd"&gt;Then&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;            &lt;span class="kwrd"&gt;Set&lt;/span&gt; objInfoStore2 = objInfoStores2.Item(i)&lt;/pre&gt;&lt;pre class="alt"&gt;                msgbox objInfoStore2.name &lt;/pre&gt;&lt;pre&gt;            &lt;span class="kwrd"&gt;Exit&lt;/span&gt; &lt;span class="kwrd"&gt;For&lt;/span&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;If&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;    &lt;span class="kwrd"&gt;Next&lt;/span&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;&lt;span class="kwrd"&gt;Set&lt;/span&gt; objInfoStores= &lt;span class="kwrd"&gt;Nothing&lt;/span&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;Set&lt;/span&gt; objSession=&lt;span class="kwrd"&gt;Nothing&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;Set&lt;/span&gt; objInfoStores2= &lt;span class="kwrd"&gt;Nothing&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="kwrd"&gt;Set&lt;/span&gt; objSession2=Nothing&lt;/pre&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;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; We are using third parameter as “False” for objSession2.Logon, So that it uses the current shared MAPI session.&lt;/p&gt;</description></item><item><title>Exchange Web Services Managed API and EWS Editor is available!</title><link>http://blogs.msdn.com/brijs/archive/2009/11/13/exchange-web-services-managed-api-and-ews-editor-is-available.aspx</link><pubDate>Fri, 13 Nov 2009 08:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9922369</guid><dc:creator>brijs</dc:creator><description>&lt;p&gt;If you are developing using &lt;a href="http://blogs.msdn.com/brijs/archive/2009/04/15/fyi-exchange-web-services-are-now-got-managed-interface.aspx" target="_blank"&gt;Exchange Web Services Managed API&lt;/a&gt; then now you can download @ &lt;a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=c3342fb3-fbcc-4127-becf-872c746840e1#tm" target="_blank"&gt;Microsoft Exchange Web Services (EWS) Managed API 1.0&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The &lt;strong&gt;Microsoft Exchange Web Services (EWS) Managed API 1.0 &lt;/strong&gt;provides a managed interface for developing client applications that use Exchange Web Services. The EWS Managed API simplifies the implementation of applications that communicate with Microsoft Exchange Server 2007 Service Pack 1 (SP1) and later versions of Microsoft Exchange. Built on the Exchange Web Services SOAP protocol and Autodiscover, the EWS Managed API provides a .NET interface to EWS that is easy to learn, use, and maintain.&lt;/p&gt;  &lt;p&gt;Moreover, If you are looking for sample application developed using &lt;strong&gt;Exchange Web Service Managed API&lt;/strong&gt; then &lt;strong&gt;EWS Editor &lt;/strong&gt;is a great resource to have. Read more details about &lt;strong&gt;EWSEditor&lt;/strong&gt; and download it from &lt;strong&gt;Matt’s&lt;/strong&gt; post @ &lt;a href="http://blogs.msdn.com/mstehle/archive/2009/11/09/announcing-ewseditor-1-5.aspx" target="_blank"&gt;Announcing EWSEditor 1.5!&lt;/a&gt; Here are the few points which I really liked about it:&lt;/p&gt;  &lt;p&gt;1. Demonstrate the Exchange Web Services Managed API functionality and simplicity to developers through its source code.    &lt;br /&gt;2. Demonstrate the Exchange Web Services SOAP traffic used to perform actions initiated through an explorer user interface.     &lt;br /&gt;3. Assist non-developers in debugging and understanding Exchange stores by exploring items, folders, and their properties in depth. “&lt;/p&gt;  &lt;p&gt;EWS rocks!&lt;/p&gt;</description></item><item><title>Strange Looking NDR</title><link>http://blogs.msdn.com/stephen_griffin/archive/2009/11/12/strange-looking-ndr.aspx</link><pubDate>Thu, 12 Nov 2009 08:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9921617</guid><dc:creator>Stephen Griffin</dc:creator><description>&lt;p&gt;Not many people are aware of the feature, but &lt;a href="http://mfcmapi.codeplex.com/"&gt;MFCMAPI&lt;/a&gt; implements a &lt;a href="http://msdn.microsoft.com/en-us/library/cc815680.aspx"&gt;MAPI Form Viewer&lt;/a&gt;. This means MFCMAPI can use MAPI to ask Outlook to display messages. You might have run into this if you ever double-click on a message in MFCMAPI. If you’re on a machine with Outlook installed, the message will open up like it does when you double-click it in Outlook. And if Outlook isn’t installed and you’re using Exchange’s MAPI, you get a scary dialog saying we &lt;a href="http://blogs.msdn.com/stephen_griffin/archive/2009/07/08/exchange-mapi-and-the-form-manager.aspx"&gt;couldn’t open the MAPI form manager&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;This is one of those dark corners of MAPI into which few people tread, and most of those who do end up cribbing or parroting the Form Viewer implementation in MFCMAPI itself, meaning nearly every issue they report related to form viewers can be reproduced in MFCMAPI. Sometimes, this turns out to be a bug in my implementation, like an errant warning while &lt;a href="http://mfcmapi.codeplex.com/WorkItem/View.aspx?WorkItemId=9146"&gt;clicking up and down through messages&lt;/a&gt; (fix coming very soon!). Other times, the problem is a bug in Outlook.&lt;/p&gt;  &lt;p&gt;My latest customer’s issue turned out to be the latter case. They had noticed that when they tried to view NDR messages with their Form Viewer, the body of the message would be full of alien looking RTF text:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;“{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fmodern\fcharset0 Consolas;}}     &lt;br /&gt;{\*\generator Riched20 12.0.6413.1000;}\viewkind4\uc1      &lt;br /&gt;\pard\fi-1440\li1440\tx1440\f0\fs21 Your message did not reach some or all of the intended recipients.\par      &lt;br /&gt;etc…”&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;What was really odd was that if you looked at the message in MFCMAPI, this text was no where to be found! And to top it off – if you opened the message from Outlook, you got the NDR message you expected.&lt;/p&gt;  &lt;p&gt;So what was going on? It’s not surprising that Outlook builds the NDR text on the fly. It’s much easier to localize it that way. And the RTF does appear to be the underlying RTF we would generate for the NDR message. But why did we display it wrong, and why did Outlook display it right?&lt;/p&gt;  &lt;p&gt;The key here is the &lt;a href="http://msdn.microsoft.com/en-us/library/cc839522.aspx"&gt;LoadForm&lt;/a&gt; function. This function takes the message class of the form we want to load. Under the covers, LoadForm looks up the message class using &lt;a href="http://msdn.microsoft.com/en-us/library/cc842436.aspx"&gt;ResolveMessageClass&lt;/a&gt; and gets the GUID for the associated class factory. The form manager then passes this GUID over to Outlook and asks for the class factory. This is where we have a problem. Outlook uses the same GUID for multiple form class factories, some of which have different attributes associated with them. The class factory we get has an attribute on it stating it should render using HTML, while the class factory we should have gotten did not have this attribute. So when it comes time to render the text, we use the wrong rendering method and get the ugly RTF text.&lt;/p&gt;  &lt;p&gt;When Outlook opens the message, being the implementer of the forms, it gets to skip many of the MAPI steps. Instead of using the message class to look up a GUID, it uses the message class to look up the class factory directly, getting the right one in the process.&lt;/p&gt;  &lt;p&gt;Based on the fact that this behavior has been unchanged for as long as we can trace back, and we’re only just now hearing of an issue with it, we chose not to fix this problem, but instead document it. So – here’s the documentation. Enjoy!&lt;/p&gt;&lt;div class="wlWriterHeaderFooter" style="text-align:right; margin:0px; padding:4px 0px 4px 0px;"&gt;&lt;script type="text/javascript"&gt;digg_url = "http://blogs.msdn.com/stephen_griffin/archive/2009/11/12/strange-looking-ndr.aspx";digg_title = "Strange Looking NDR";digg_bgcolor = "#FFFFFF";digg_skin = "compact";&lt;/script&gt;&lt;script src="http://digg.com/tools/diggthis.js" type="text/javascript"&gt;&lt;/script&gt;&lt;script type="text/javascript"&gt;digg_url = undefined;digg_title = undefined;digg_bgcolor = undefined;digg_skin = undefined;&lt;/script&gt;&lt;/div&gt;</description></item><item><title>How to do FindItem using Extended MAPI Properties in a Exchange Web Service call?</title><link>http://blogs.msdn.com/brijs/archive/2009/11/12/how-to-do-finditem-using-extended-mapi-properties-in-a-exchange-web-service-call.aspx</link><pubDate>Thu, 12 Nov 2009 08:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9921679</guid><dc:creator>brijs</dc:creator><description>&lt;p&gt;We can perform GetItem &lt;strong&gt;Exchange Web Service&lt;/strong&gt; call to get &lt;strong&gt;Extended MAPI Properties&lt;/strong&gt; refer my previous post &lt;a href="http://blogs.msdn.com/brijs/archive/2009/11/06/how-to-get-extended-mapi-properties-in-the-getitem-exchange-web-service-call.aspx" target="_blank"&gt;How to get Extended MAPI Properties in the GetItem Exchange Web Service call?&lt;/a&gt; and can also perform &lt;strong&gt;FindItem&lt;/strong&gt; based on the Extended MAPI Properties.&lt;/p&gt;  &lt;p&gt;In the sample code given below we would use &lt;strong&gt;CleanGlobalObjectId&lt;/strong&gt; to perform&lt;strong&gt; FindItem&lt;/strong&gt; for Calendar Items:&lt;/p&gt;  &lt;p&gt;NOTE: Following programming examples is for illustration only, without warranty either expressed or implied, including, but not limited to, the implied warranties of merchantability and/or fitness for a particular purpose. This sample code assumes that you are familiar with the programming language being demonstrated and the tools used to create and debug procedures.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;div class="csharpcode"&gt;   &lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; SelectRecordByCGOID()&lt;/pre&gt;

  &lt;pre&gt;        {&lt;/pre&gt;

  &lt;pre class="alt"&gt;            &lt;/pre&gt;

  &lt;pre&gt;            &lt;span class="rem"&gt;//prepare the find item request: we have to use FindItem because&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;            &lt;span class="rem"&gt;//this is the only way to search by CleanGlobalObjectID; GetItem does not allow us&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;            &lt;span class="rem"&gt;//to search with Restrictions&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;            FindItemType findItemRequest = &lt;span class="kwrd"&gt;new&lt;/span&gt; FindItemType();&lt;/pre&gt;

  &lt;pre&gt;            DistinguishedFolderIdType[] folderIDArray = &lt;span class="kwrd"&gt;new&lt;/span&gt; DistinguishedFolderIdType[1];&lt;/pre&gt;

  &lt;pre class="alt"&gt;            folderIDArray[0] = &lt;span class="kwrd"&gt;new&lt;/span&gt; DistinguishedFolderIdType();&lt;/pre&gt;

  &lt;pre&gt;            folderIDArray[0].Id = DistinguishedFolderIdNameType.calendar;&lt;/pre&gt;

  &lt;pre class="alt"&gt;            folderIDArray[0].Mailbox = &lt;span class="kwrd"&gt;new&lt;/span&gt; EmailAddressType();&lt;/pre&gt;

  &lt;pre&gt;            folderIDArray[0].Mailbox.EmailAddress = &lt;span class="str"&gt;&amp;quot;brijs@msglab.com&amp;quot;&lt;/span&gt;;&lt;/pre&gt;

  &lt;pre class="alt"&gt;          &lt;/pre&gt;

  &lt;pre&gt;            &lt;span class="rem"&gt;// Add folders to the request.&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;            findItemRequest.ParentFolderIds = folderIDArray;&lt;/pre&gt;

  &lt;pre&gt;            findItemRequest.Traversal = ItemQueryTraversalType.Shallow;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre&gt;            &lt;span class="rem"&gt;//Prepare an Item shape type that defines how the items in view will be returned.&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;            ItemResponseShapeType itemShapeDefinition = &lt;span class="kwrd"&gt;new&lt;/span&gt; ItemResponseShapeType();&lt;/pre&gt;

  &lt;pre&gt;            itemShapeDefinition.BaseShape = DefaultShapeNamesType.AllProperties  ;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre&gt;            &lt;/pre&gt;

  &lt;pre class="alt"&gt;            &lt;span class="rem"&gt;//filter the results by the CleanGlobalObjectID passed in&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;            PathToExtendedFieldType path = &lt;span class="kwrd"&gt;new&lt;/span&gt; PathToExtendedFieldType();&lt;/pre&gt;

  &lt;pre class="alt"&gt;            &lt;/pre&gt;

  &lt;pre&gt;            path.PropertyId = 35;&lt;/pre&gt;

  &lt;pre class="alt"&gt;            path.PropertyIdSpecified = &lt;span class="kwrd"&gt;true&lt;/span&gt;;&lt;/pre&gt;

  &lt;pre&gt;            path.PropertySetId = &lt;span class="str"&gt;&amp;quot;6ED8DA90-450B-101B-98DA-00AA003F1305&amp;quot;&lt;/span&gt;;&lt;/pre&gt;

  &lt;pre class="alt"&gt;            path.PropertyType = MapiPropertyTypeType.Binary;&lt;/pre&gt;

  &lt;pre&gt;                 &lt;/pre&gt;

  &lt;pre class="alt"&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre&gt;            FieldURIOrConstantType constant = &lt;span class="kwrd"&gt;new&lt;/span&gt; FieldURIOrConstantType();&lt;/pre&gt;

  &lt;pre class="alt"&gt;            ConstantValueType constantValue = &lt;span class="kwrd"&gt;new&lt;/span&gt; ConstantValueType();&lt;/pre&gt;

  &lt;pre&gt;            constantValue.Value = itemGCOID ;&lt;/pre&gt;

  &lt;pre class="alt"&gt;            constant.Item = constantValue;&lt;/pre&gt;

  &lt;pre&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre class="alt"&gt;            RestrictionType restriction = &lt;span class="kwrd"&gt;new&lt;/span&gt; RestrictionType();&lt;/pre&gt;

  &lt;pre&gt;            IsEqualToType equal = &lt;span class="kwrd"&gt;new&lt;/span&gt; IsEqualToType();&lt;/pre&gt;

  &lt;pre class="alt"&gt;            equal.Item = path;&lt;/pre&gt;

  &lt;pre&gt;            equal.FieldURIOrConstant = constant;&lt;/pre&gt;

  &lt;pre class="alt"&gt;            restriction.Item = equal;&lt;/pre&gt;

  &lt;pre&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre class="alt"&gt;            &lt;span class="rem"&gt;//Add the itemShape definition and restriction to the FindItem request&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;            findItemRequest.ItemShape = itemShapeDefinition;&lt;/pre&gt;

  &lt;pre class="alt"&gt;            findItemRequest.Restriction = restriction;&lt;/pre&gt;

  &lt;pre&gt;            &lt;/pre&gt;

  &lt;pre class="alt"&gt;            FindItemResponseType findItemResponse = binding.FindItem(findItemRequest);&lt;/pre&gt;

  &lt;pre&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre class="alt"&gt;            &lt;span class="kwrd"&gt;for&lt;/span&gt; (&lt;span class="kwrd"&gt;int&lt;/span&gt; i = 0; i &amp;lt; findItemResponse.ResponseMessages.Items.Length; i++)&lt;/pre&gt;

  &lt;pre&gt;            {&lt;/pre&gt;

  &lt;pre class="alt"&gt;                &lt;span class="rem"&gt;//verify the FindItem request was successfull&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;                &lt;span class="kwrd"&gt;if&lt;/span&gt; (findItemResponse.ResponseMessages.Items[i].ResponseClass != ResponseClassType.Success)&lt;/pre&gt;

  &lt;pre class="alt"&gt;                {&lt;/pre&gt;

  &lt;pre&gt;                    &lt;span class="kwrd"&gt;throw&lt;/span&gt; &lt;span class="kwrd"&gt;new&lt;/span&gt; Exception(&lt;span class="kwrd"&gt;string&lt;/span&gt;.Format(&lt;/pre&gt;

  &lt;pre class="alt"&gt;                        &lt;span class="str"&gt;&amp;quot;Unable to find calendar view by CleanGlobalObjectID \r\n{0}\r\n{1}&amp;quot;&lt;/span&gt;,&lt;/pre&gt;

  &lt;pre&gt;                        findItemResponse.ResponseMessages.Items[i].ResponseCode,&lt;/pre&gt;

  &lt;pre class="alt"&gt;                        findItemResponse.ResponseMessages.Items[i].MessageText));&lt;/pre&gt;

  &lt;pre&gt;                }&lt;/pre&gt;

  &lt;pre class="alt"&gt;                &lt;span class="kwrd"&gt;else&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;                {&lt;/pre&gt;

  &lt;pre class="alt"&gt;                        &lt;span class="rem"&gt;//Success&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;                        &lt;span class="rem"&gt;//get the calendar items contained in the response&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;                        FindItemResponseMessageType findItemResponseMessage = (FindItemResponseMessageType)findItemResponse.ResponseMessages.Items[i];&lt;/pre&gt;

  &lt;pre&gt;                        ArrayOfRealItemsType findItemResponseItems = (ArrayOfRealItemsType)findItemResponseMessage.RootFolder.Item;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre&gt;                        &lt;span class="kwrd"&gt;for&lt;/span&gt; (&lt;span class="kwrd"&gt;int&lt;/span&gt; x = 0; x &amp;lt; findItemResponseMessage.RootFolder.TotalItemsInView; x++)&lt;/pre&gt;

  &lt;pre class="alt"&gt;                        {&lt;/pre&gt;

  &lt;pre&gt;                            &lt;span class="kwrd"&gt;if&lt;/span&gt; (findItemResponseItems.Items[x] &lt;span class="kwrd"&gt;is&lt;/span&gt; CalendarItemType)&lt;/pre&gt;

  &lt;pre class="alt"&gt;                            {&lt;/pre&gt;

  &lt;pre&gt;                                CalendarItemType calendar = (CalendarItemType)findItemResponseItems.Items[x];&lt;/pre&gt;

  &lt;pre class="alt"&gt;                                Console.WriteLine( &lt;span class="str"&gt;&amp;quot;Item found &amp;quot;&lt;/span&gt;);&lt;/pre&gt;

  &lt;pre&gt;                                Console.WriteLine( calendar.Subject);&lt;/pre&gt;

  &lt;pre class="alt"&gt;                            }&lt;/pre&gt;

  &lt;pre&gt;                        }&lt;/pre&gt;

  &lt;pre class="alt"&gt;                 }&lt;/pre&gt;

  &lt;pre&gt;            }&lt;/pre&gt;

  &lt;pre class="alt"&gt;                                    &lt;/pre&gt;

  &lt;pre&gt;        }&lt;/pre&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;Hope this helps!&lt;/p&gt;</description></item><item><title>EWS has &amp;quot;More Happy&amp;quot; now - EWS Managed API and EWSEditor.</title><link>http://blogs.msdn.com/webdav_101/archive/2009/11/10/ews-has-more-happy-now-ews-managed-api-and-ewseditor.aspx</link><pubDate>Tue, 10 Nov 2009 08:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9920270</guid><dc:creator>danba</dc:creator><description>&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-pagination: none" class=MsoNormal&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Want to make working with Exchange Web Services (EWS) much easier to work with?&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: Calibri"&gt;There is a new API and new tool which can help.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;No matter which way you are doing or going to be doing EWS calls, you should be familiar with both the Exchange Web Services Managed API and EWSEditor.&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-pagination: none" class=MsoNormal&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-pagination: none" class=MsoNormal&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;U&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Exchange Web Services Managed API:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/U&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-pagination: none" class=MsoNormal&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;The &lt;/FONT&gt;&lt;SPAN style="mso-ansi-language: EN" lang=EN&gt;&lt;A href="http://msdn.microsoft.com/en-us/library/dd633709.aspx" mce_href="http://msdn.microsoft.com/en-us/library/dd633709.aspx"&gt;&lt;FONT size=3&gt;Exchange Web Services Managed API&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=3&gt; makes life much easier since it wraps a lot of calling code and logic which is needed to successfully execute EWS calls.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;No matter how you are doing EWS calls (pure soap calls, using generated .Net proxies or a third party API that does EWS calls), you should become familiar with this new API which released on Monday with Exchange 2010.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;This API will work with both Exchange 2010 and 2007.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;This API is a lot easier to use than other coding methods and can reduce code to well under 30% of what’s needed with generated proxy code (my observation).&amp;nbsp; Compared to WebDAV, you would need to write as little as 1.5% of the code with the EWS Managed API - an example of this is sending a meeting request. Yes, that 1.5% is correct.&amp;nbsp; &lt;/FONT&gt;&lt;SPAN style="mso-ansi-language: EN" lang=EN&gt;&lt;FONT size=3&gt;As you can see, this new API is indeed the "go-forward" API for working with mailbox content.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/SPAN&gt;&lt;/FONT&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-pagination: none" class=MsoNormal&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-pagination: none" class=MsoNormal&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;U&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;EWSEditor:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/U&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-pagination: none" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;There is a tool called EWSEditor which is written by a member of my team and used by our entire support team.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;It’s based-upon the EWS Managed API and is helpful in showing how calls using this API can be used since you can get the source code.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;We have been using it since Matt started building his tool using the early Beta of the Managed API in order help diagnose issues on customer’s systems.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-bidi; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;Having source code samples when learning a new API is often invaluable, so be sure to get a copy of the source for EWSEditor to use as a reference.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt; &lt;/SPAN&gt;Please check-out Matt’s blog below for more information on his tool and source code.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-pagination: none" class=MsoNormal&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt 0.25in; mso-pagination: none" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;Announcing EWSEditor 1.5!&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt 0.25in; mso-pagination: none" class=MsoNormal&gt;&lt;A href="http://code.msdn.microsoft.com/ewseditor" mce_href="http://code.msdn.microsoft.com/ewseditor"&gt;&lt;FONT size=3 face=Calibri&gt;http://code.msdn.microsoft.com/ewseditor&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=3 face=Calibri&gt; &lt;/FONT&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt 0.25in; mso-pagination: none" class=MsoNormal&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt 0.25in; mso-pagination: none" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;ExchangeWebServices Namespace (generated .NET proxies)&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt 0.25in; mso-pagination: none" class=MsoNormal&gt;&lt;A href="http://msdn.microsoft.com/en-us/library/exchangewebservices.aspx" mce_href="http://msdn.microsoft.com/en-us/library/exchangewebservices.aspx"&gt;&lt;FONT size=3 face=Calibri&gt;http://msdn.microsoft.com/en-us/library/exchangewebservices.aspx&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=3 face=Calibri&gt; &lt;/FONT&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt 0.25in; mso-pagination: none" class=MsoNormal&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt 0.25in; mso-pagination: none" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;Exchange Web Services Managed API &lt;/FONT&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt 0.25in; mso-pagination: none" class=MsoNormal&gt;&lt;A href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=c3342fb3-fbcc-4127-becf-872c746840e1" mce_href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=c3342fb3-fbcc-4127-becf-872c746840e1"&gt;&lt;FONT size=3 face=Calibri&gt;http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=c3342fb3-fbcc-4127-becf-872c746840e1&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=3 face=Calibri&gt; &lt;/FONT&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt 0.25in; mso-pagination: none" class=MsoNormal&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt 0.25in; mso-pagination: none" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;Introducing the Exchange Web Services Managed API 1.0&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt 0.25in; mso-pagination: none" class=MsoNormal&gt;&lt;A href="http://msdn.microsoft.com/en-us/library/dd637749.aspx" mce_href="http://msdn.microsoft.com/en-us/library/dd637749.aspx"&gt;&lt;FONT size=3 face=Calibri&gt;http://msdn.microsoft.com/en-us/library/dd637749.aspx&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=3 face=Calibri&gt; &lt;/FONT&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt 0.25in; mso-pagination: none" class=MsoNormal&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt 0.25in; mso-pagination: none" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;Microsoft Exchange Web Services Managed API 1.0&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt 0.25in; mso-pagination: none" class=MsoNormal&gt;&lt;A href="http://msdn.microsoft.com/en-us/library/dd633709.aspx" mce_href="http://msdn.microsoft.com/en-us/library/dd633709.aspx"&gt;&lt;FONT size=3 face=Calibri&gt;http://msdn.microsoft.com/en-us/library/dd633709.aspx&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=3 face=Calibri&gt; &lt;/FONT&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-pagination: none" class=MsoNormal&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-pagination: none" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;One thing which I would strongly suggest is that if you find that your code does not work, try using EWSEditor to see if you can reproduce the issue.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;If the operation you are trying to perform is not covered with EWSEditor, then try to see if the problem reproduces with the EWS Managed API.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;EWSEditor &amp;amp; the EWS Managed API have the ability to log off EWS calls being performed. &lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;You can use this logging feature to compare what EWSEditor/The EWS Managed API sends with what your application sends in order to determine where a problem is with your code.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-pagination: none" class=MsoNormal&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-pagination: none" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;Big kudos for…&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; TEXT-INDENT: 0.5in; MARGIN: 0in 0in 0pt; mso-pagination: none" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;The Exchange Development Team for creating the EWS Exchange Managed API.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; TEXT-INDENT: 0.5in; MARGIN: 0in 0in 0pt; mso-pagination: none" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;Matt for building EWSEditor and getting it public!!!&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-pagination: none" class=MsoNormal&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-pagination: none" class=MsoNormal&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-pagination: none" class=MsoNormal&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;</description></item><item><title>Announcing EWSEditor 1.5!</title><link>http://blogs.msdn.com/stephen_griffin/archive/2009/11/09/announcing-ewseditor-1-5.aspx</link><pubDate>Mon, 09 Nov 2009 08:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9919744</guid><dc:creator>Stephen Griffin</dc:creator><description>&lt;p&gt;Matt’s very excited about the &lt;a href="http://blogs.msdn.com/mstehle/archive/2009/11/09/announcing-ewseditor-1-5.aspx"&gt;release of EWSEditor&lt;/a&gt;. This tool does for &lt;a href="http://msdn.microsoft.com/en-us/library/dd633709.aspx"&gt;EWS&lt;/a&gt; what &lt;a href="http://mfcmapi.codeplex.com/"&gt;MFCMAPI&lt;/a&gt; does for MAPI. With this tool, Matt does what I did with MFCMAPI and what I recommend to anyone trying to learn a new API: the best way to learn an API is to write tools that use it.&lt;/p&gt;  &lt;p&gt;As you work with EWSEditor, you may notice a few things which are similar to MFCMAPI. This is no coincidence. EWS and MAPI, both designed primarily to interact with an Exchange server, share much of the same object hierarchy, which in turn dictates that tools designed to explore these hierarchies will be similar. Also, since we sit near each other and act as each other’s ad-hoc PMs, we borrow each other’s features. For instance, EWSEditor implements much of the same Smart View parsing as MFCMAPI, using the same logic, recoded from C++ to CSharp.&lt;/p&gt;  &lt;p&gt;Of course, there’s one similarity between EWSEditor and MFCMAPI that has nothing to do with the underlying APIs or fancy features and everything to do with the fact that Matt and I are programmers, not icon designers. Look familiar?&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="EWSEditor" border="0" alt="EWSEditor" src="http://blogs.msdn.com/blogfiles/stephen_griffin/WindowsLiveWriter/AnnouncingEWSEditor1.5_D756/EWSEditor2_3.png" width="36" height="36" /&gt;&lt;/p&gt;  &lt;p&gt;Enjoy! &lt;/p&gt;&lt;div class="wlWriterHeaderFooter" style="text-align:right; margin:0px; padding:4px 0px 4px 0px;"&gt;&lt;script type="text/javascript"&gt;digg_url = "http://blogs.msdn.com/stephen_griffin/archive/2009/11/09/announcing-ewseditor-1-5.aspx";digg_title = "Announcing EWSEditor 1.5!";digg_bgcolor = "#FFFFFF";digg_skin = "compact";&lt;/script&gt;&lt;script src="http://digg.com/tools/diggthis.js" type="text/javascript"&gt;&lt;/script&gt;&lt;script type="text/javascript"&gt;digg_url = undefined;digg_title = undefined;digg_bgcolor = undefined;digg_skin = undefined;&lt;/script&gt;&lt;/div&gt;</description></item></channel></rss>