<?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>Ryan's Look at Outlook Programmability : General</title><link>http://blogs.msdn.com/rgregg/archive/tags/General/default.aspx</link><description>Tags: General</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Why are you still using ECEs?</title><link>http://blogs.msdn.com/rgregg/archive/2007/10/12/why-are-you-still-using-eces.aspx</link><pubDate>Sat, 13 Oct 2007 01:35:13 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:5430472</guid><dc:creator>rgregg</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/rgregg/comments/5430472.aspx</comments><wfw:commentRss>http://blogs.msdn.com/rgregg/commentrss.aspx?PostID=5430472</wfw:commentRss><wfw:comment>http://blogs.msdn.com/rgregg/rsscomments.aspx?PostID=5430472</wfw:comment><description>&lt;p&gt;Stephen Griffin is asking this &lt;a href="http://blogs.msdn.com/stephen_griffin/archive/2007/10/12/whither-ece.aspx"&gt;question over on his blog&lt;/a&gt;. If you're using Exchange Client Extensions and haven't been able to port your solution over to an add-in (for a reason other than budget concerns or legacy support), now would be a good time to chime in and let him know why.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=5430472" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/rgregg/archive/tags/Object+Model/default.aspx">Object Model</category><category domain="http://blogs.msdn.com/rgregg/archive/tags/General/default.aspx">General</category></item><item><title>Beta 2 Technical Refresh</title><link>http://blogs.msdn.com/rgregg/archive/2006/09/25/771803.aspx</link><pubDate>Tue, 26 Sep 2006 09:58:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:771803</guid><dc:creator>rgregg</dc:creator><slash:comments>5</slash:comments><comments>http://blogs.msdn.com/rgregg/comments/771803.aspx</comments><wfw:commentRss>http://blogs.msdn.com/rgregg/commentrss.aspx?PostID=771803</wfw:commentRss><wfw:comment>http://blogs.msdn.com/rgregg/rsscomments.aspx?PostID=771803</wfw:comment><description>&lt;p&gt;I'm always late on posting these announcements, but as of Sept 9, the &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=b07a3387-01cf-4bc3-821a-0bb10e7a59fa&amp;amp;DisplayLang=en"&gt;B2TR release of Office 2007 is available&lt;/a&gt; on the MS download site.&amp;nbsp; B2TR is available only as a patch to Office 2007 beta 2, so if you already have that installed don't start uninstalling it yet.&lt;/p&gt; &lt;p&gt;If you haven't downloaded Office 2007 beta 2, it's not too late.&amp;nbsp; You can download the bits still from the &lt;a href="http://www.microsoft.com/office/preview/beta/getthebeta.mspx"&gt;Office system preview site&lt;/a&gt;, however due to the number of downloads we've seen already, we're charging a small fee for the download (sorry!).&amp;nbsp; You can also order beta 2 on CD via mail.&amp;nbsp; Of course, if you do download or order beta 2, make sure you install B2TR right away!&lt;/p&gt; &lt;p&gt;I strongly encourage any and all ISVs to download and try out these bits.&amp;nbsp; B2TR is extremely close to what will be shipping when Office is released, with only minor changes in situations where major scenarios are blocked or broken.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=771803" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/rgregg/archive/tags/General/default.aspx">General</category></item><item><title>Third Party Add-ins and Outlook 2007</title><link>http://blogs.msdn.com/rgregg/archive/2006/09/11/749882.aspx</link><pubDate>Mon, 11 Sep 2006 23:38:03 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:749882</guid><dc:creator>rgregg</dc:creator><slash:comments>9</slash:comments><comments>http://blogs.msdn.com/rgregg/comments/749882.aspx</comments><wfw:commentRss>http://blogs.msdn.com/rgregg/commentrss.aspx?PostID=749882</wfw:commentRss><wfw:comment>http://blogs.msdn.com/rgregg/rsscomments.aspx?PostID=749882</wfw:comment><description>&lt;p&gt;While we spend a great deal of time and effort to ensure that the Outlook platform is 100% backwards compatible with previous versions of Outlook, occasionally add-ins do something unexpected, or use the platform in an unexpected or undocumented way.&amp;nbsp; These add-ins can misbehave and cause problems when running against a new version of Outlook (such as Outlook 2007) where they have not been fully tested by the software developer.&lt;/p&gt; &lt;p&gt;Many beta testers found this out the hard way during the Office beta 2 release when some very popular add-ins caused Outlook to crash unexpectedly while sending mail or performing other common tasks.&lt;/p&gt; &lt;p&gt;I've been working closely with a number of ISVs and software developers to ensure that these problems are fixed correctly.&amp;nbsp; Sometimes we've broken the way something works and we have to fix it on the Outlook side.&amp;nbsp; Sometimes the problem lies in the way the add-in works and the add-in needs to be updated.&amp;nbsp; Often this means that the end user needs to disable the add-in until a new version is available.&lt;/p&gt; &lt;p&gt;Because add-in release cycles are not necessarily tied to Office/Outlook releases, this can cause a problem for some users.&amp;nbsp; In the interim between when a new version of Outlook is released and add-ins are updated, you may need to disconnect an add-in to continue to use Outlook effectively.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;To&amp;nbsp;Disconnect an Misbehaving Add-in:&lt;/strong&gt;&lt;/p&gt; &lt;ol&gt; &lt;li&gt;Start Outlook.&amp;nbsp; If you cannot start Outlook because an add-in is causing it to crash immediately, you should be prompted to disable the add-in (in B2TR or later builds), otherwise use the command line &lt;em&gt;outlook.exe /safe&lt;/em&gt; to boot in safe mode.  &lt;li&gt;From the Outlook window, select the &lt;strong&gt;Tools &lt;/strong&gt;menu, and then &lt;strong&gt;Trust Center&lt;/strong&gt;.  &lt;li&gt;Click on the &lt;strong&gt;Add-ins&lt;/strong&gt; tab, and then click the &lt;strong&gt;Go&lt;/strong&gt; button at the bottom of the page.  &lt;li&gt;Disable one or more third party add-ins listed in the dialog.&amp;nbsp; If you were directed here from a crash report, you should have seen information on which add-in was responsible for the crash.&amp;nbsp; Find that add-in and uncheck the box next to the add-in. &lt;li&gt;Click &lt;strong&gt;OK&lt;/strong&gt;.  &lt;li&gt;Restart Outlook.&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;&lt;strong&gt;To Enable a Disabled Add-in:&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;If you're a developer working on an add-in, and Outlook has disabled it, or you are a user who wants to try an add-in again that was previously disabled, you need to access the Disabled Items dialog to enable the add-in.&amp;nbsp; While you can access this from the Trust Center via the Add-ins tab, the easiest way in Outlook is to select the &lt;strong&gt;Help &lt;/strong&gt;menu, then &lt;strong&gt;Disabled Items&lt;/strong&gt;.&amp;nbsp; Find the add-in on the list of disabled items, select it, and click the &lt;strong&gt;Enable&lt;/strong&gt; button to enable the add-in again.&lt;/p&gt; &lt;p&gt;Keep in mind that if the add-in was disabled, it's likely because Outlook believes the add-in is misbehaving.&amp;nbsp; There are some add-ins that are disabled immediately when Outlook is installed, and others that are disabled because Outlook detected a problem.&amp;nbsp; In all cases, you should only enable an add-in again if you are sure that it is not causing any problems in Outlook.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Technical Details for Changes in Beta 2 Technical Refresh&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;If you aren't a developer or a technophile, I suggest you skip this part.&lt;/p&gt; &lt;p&gt;In response to a number of third party problems we've seen during the Beta 2 release of Outlook, we've made a change to the add-in resiliency logic that Outlook uses.&amp;nbsp; Early in the Outlook 2007 release cycle, we decided to make a change to the way Outlook handles errors from installed add-ins.&amp;nbsp; Previously Outlook would catch exceptions from add-ins and silently ignore them.&amp;nbsp; This prevented Outlook from crashing immediately, but Outlook usually would crash later because memory somewhere had become corrupted, and it was just a matter of time before this caused a problem.&amp;nbsp; For Outlook 2007, we now crash immediately when the add-in throws an error, allowing us to better understand the root cause of the failure.&amp;nbsp; Instead of crashing later in some random code, we now crash at the actual cause.&amp;nbsp; However, this change caused Outlook to crash a lot more frequently due to a number of add-ins that expected to be able to throw exceptions without consequence (which is a really bad expectation).&lt;/p&gt; &lt;p&gt;Previously in Outlook 2003, if an add-in caused Outlook to crash while the add-in was being initialized (OnConnection) or disconnected (OnDisconnection), then the add-in could be added to the disabled items list, which prevents the add-in from being loaded or running.&amp;nbsp; If an add-in crashed later, say in an event handler (the most common place we saw crashes in beta 2), then Outlook would crash, and the add-in would not be disabled.&amp;nbsp; This meant that it was possible to have a very bad experience in Outlook where every time Outlook boots, it crashes due to a misbehaving add-in.&amp;nbsp; The only recourse was to use safe mode to disable the add-in, which most users would not immediately discover.&lt;/p&gt; &lt;p&gt;Now, in B2TR Outlook will also perform the same resiliency action if the add-in causes Outlook to crash during an event handler.&amp;nbsp; Outlook will still crash, but upon the next boot of Outlook, you will be presented with a dialog asking if you want to disable the add-in.&amp;nbsp; This way, users who are seeing a large number of add-in related crashes in beta 2 should only see a couple of crashes in beta 2 technical refresh because the add-in can be disabled easily by the user (and we default to disable if the user accepts the prompt defaults).&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=749882" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/rgregg/archive/tags/Object+Model/default.aspx">Object Model</category><category domain="http://blogs.msdn.com/rgregg/archive/tags/General/default.aspx">General</category></item><item><title>Nearly a Month</title><link>http://blogs.msdn.com/rgregg/archive/2006/07/27/680724.aspx</link><pubDate>Fri, 28 Jul 2006 00:56:17 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:680724</guid><dc:creator>rgregg</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/rgregg/comments/680724.aspx</comments><wfw:commentRss>http://blogs.msdn.com/rgregg/commentrss.aspx?PostID=680724</wfw:commentRss><wfw:comment>http://blogs.msdn.com/rgregg/rsscomments.aspx?PostID=680724</wfw:comment><description>&lt;p&gt;It's been nearly a month since my previous post about the shutdown fixes for Outlook 2007, and I should appologies for not having anything useful to add to the blog today.&amp;nbsp; However, I've been busy working on content for a new book on Outlook programmability that will be coming out &lt;em&gt;eventually&lt;/em&gt;.&lt;/p&gt; &lt;p&gt;In the mean time though, I've been working on a sample of a managed code&amp;nbsp;preview handler that integrates with Outlook 2007 to show how you can develop one of those, and that will be the topic of a future blog post.&amp;nbsp; I've also got a couple of other posts planned, but I'm interested in what you, my loyal readers, would like to hear more about.&lt;/p&gt; &lt;p&gt;Do you have anything in the OM today that is confuses you?&amp;nbsp; Unsure how Ribbon works with Outlook and want to know more?&amp;nbsp; Want to know more about how form region layout works?&amp;nbsp; I know there have to be good questions that have gone unanswered out there, and I'd be happy to see what I can do to fill the void in getting these answered.&lt;/p&gt; &lt;p&gt;Of course, don't ask me to write your solution for you.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=680724" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/rgregg/archive/tags/General/default.aspx">General</category></item><item><title>What’s new in Outlook ‘12’ Extensibility</title><link>http://blogs.msdn.com/rgregg/archive/2005/10/18/482322.aspx</link><pubDate>Tue, 18 Oct 2005 20:43:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:482322</guid><dc:creator>rgregg</dc:creator><slash:comments>9</slash:comments><comments>http://blogs.msdn.com/rgregg/comments/482322.aspx</comments><wfw:commentRss>http://blogs.msdn.com/rgregg/commentrss.aspx?PostID=482322</wfw:commentRss><wfw:comment>http://blogs.msdn.com/rgregg/rsscomments.aspx?PostID=482322</wfw:comment><description>&lt;P&gt;Phew... things have been amazingly busy since I posted about PDC last month.&amp;nbsp; We've been pushing to get the new extensibility improvements ready for Beta 1 which is getting very close now.&amp;nbsp; I've been rather quiet, but I promise it was for a very good reason.&lt;/P&gt;
&lt;P&gt;Last month at PDC05 we revealed the first public look at the changes coming in the Outlook ‘12’ extensibility platform to very positive reviews.&amp;nbsp; We’ve introduced several new feature areas in the Outlook object model for the next release including a lot of functionality that I know the community has been asking to see for a while.&lt;/P&gt;
&lt;P&gt;In particular, the team focused on the following five pillars for our improvements in Outlook ‘12’:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Security &amp;amp; Trustworthiness&lt;/LI&gt;
&lt;LI&gt;API Unification&lt;/LI&gt;
&lt;LI&gt;Performance&lt;/LI&gt;
&lt;LI&gt;Form Customization&lt;/LI&gt;
&lt;LI&gt;Innovation&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;In each of these areas we’ve delivered a great deal of improvements and I’m really looking forward to the Beta 1 release where these improvements will be available for developers to start working with.&amp;nbsp; Let me break down the particulars of what we’ve worked on in each area.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT size=4&gt;Security &amp;amp; Trustworthiness&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;In the security area, we migrated the Outlook Security Settings Form over to group policy settings.&amp;nbsp; This provides two key benefits: Outlook ‘12’ can be locked down in ways not previously possible (e.g. without an Exchange server in the profile), and Outlook security settings are now all available from a single management point.&amp;nbsp; This should make IT security administrators pleased as they won’t be required to learn anything about deploying Outlook custom forms to lock down Outlook.&lt;/P&gt;
&lt;P&gt;&lt;FONT size=4&gt;&lt;STRONG&gt;API Unification&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;One of the biggest headaches about developing solutions for the Outlook platform was that the Outlook object model didn’t provide enough access to the core functionality of MAPI to ensure that you use the object model alone to develop a complex and deeply integrated solution.&amp;nbsp; Often developers would need to use the OM in combination with CDO (collaborative data objects) or Exchange Client Extensions (ECEs) to get the API richness they desired.&lt;/P&gt;
&lt;P&gt;For Outlook ‘12’ we’ve taken the most requested functionality from ECEs and CDO that was missing in the object model and incorporated similar functionality into the Outlook object model.&amp;nbsp; This enables solution developers to build on just one API, the Outlook object model, and still have the API richness they desire.&amp;nbsp; We’ve included support for many of the ECE events that were helping in tracking item modifications and lifetimes, support for the “Select Names” dialog, hidden messages, and the ability to access MAPI properties from CDO.&amp;nbsp; We’ve also includes other pieces from these APIs, but I’ll go into more detail on this in a future post.&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=4&gt;&lt;STRONG&gt;Performance&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;Developers would often use CDO in place of the object model because of performance reasons as well as API richness.&amp;nbsp; Outlook only featured the Items collection which meant iterating over individual items and could be potentially slow.&amp;nbsp; In addition it wasn’t clear when Outlook would be required to load the full item into memory, which caused an additional performance hit.&lt;/P&gt;
&lt;P&gt;For Outlook ‘12’ we now include a table object.&amp;nbsp; The table is a lightweight read-only wrapper over the MAPI table which can be used to retrieve data from folders with only the columns you are interested in.&amp;nbsp; When using the table to retrieve data, a developer can be sure Outlook won’t go loading the full item unexpectedly while working with the results.&amp;nbsp; In our preliminary testing, this indicates a good level of increased performance (more on this when I get actual numbers).&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=4&gt;&lt;STRONG&gt;Form Customizations&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;Outlook has included the ability to customize forms for quite some time, but there have been a few limitations and issues that developers have always struggled with: forms cache fragility, missing Outlook controls, look &amp;amp; feel issues, etc.&amp;nbsp; For Outlook ‘12’ we’ve done a major investment in a new form customization method we’ve named Outlook Form Regions.&amp;nbsp; Form Regions should be relatively easy for the developer who has worked with Custom Forms and Outlook add-ins in the past.&lt;/P&gt;
&lt;P&gt;New Form Regions are designed in the same manner as the legacy Custom Forms features, although once the form has been designed the similarities end.&amp;nbsp; Form Regions, instead of using VBScript, are powered by a COM add-in that lives behind the form.&amp;nbsp; Using an add-in provides a form developer the ability to use a powerful IDE (like Visual Studio) with rich features to develop the business logic and code running behind a form.&amp;nbsp; This is a much better story than trying to use VBScript and a text editor to develop this logic.&lt;/P&gt;
&lt;P&gt;Form Regions deployment is also different.&amp;nbsp; Form Regions are deployed with the add-in instead of being published to an organizational forms library.&amp;nbsp; Since these forms are deployed with an installed add-in, they do not depend on the Outlook forms cache and won’t be affected by cache fragility issues.&amp;nbsp; Large corporations can use the various tools (SMS, group policy, etc) they already use to push add-ins down to the desktop to deploy Form Regions as well.&lt;BR&gt;Form Regions also reduce the cost of customizing a form by allowing “adjoining form regions” to be created.&amp;nbsp; An adjoining form region adds a form to the bottom of an existing form, providing space for additional fields and functionality to be added to existing forms without the need to rebuild the entire form.&amp;nbsp; This is particularly useful when a solution just needs to add a few extra fields to one of the built-in forms.&lt;/P&gt;
&lt;P&gt;Additionally Form Regions allow a developer to customize the Preview Pane, a space that previously wasn’t available for custom forms.&amp;nbsp; We’ve also included all of the built-in Outlook controls, like date/time pictures, contact photo, the InfoBar, and several others that allow custom forms to have the richness and fidelity of the built-in Outlook forms.&amp;nbsp; Also, new Form Regions automatically pick up the Windows theme, so they look like the rest of Outlook.&amp;nbsp; I’m certain that anyone who’s done custom form work in Outlook is going to love all of the new features we’ve included in Outlook Form Regions.&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;&lt;FONT size=4&gt;&lt;STRONG&gt;Innovation&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;The innovation bucket catches all of the other improvements we’ve made to the object model, including new members for working with Outlook UI and data.&amp;nbsp; For instance, we’ve included an object model around Outlook views, which provides a more robust and rich way to work with Outlook views than the ViewsXML support from previous versions of Outlook.&amp;nbsp; We’ve also added object model for several other areas:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Rules&lt;/LI&gt;
&lt;LI&gt;Navigation Pane&lt;/LI&gt;
&lt;LI&gt;Sharing&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;I’ll post more about these improvements and how to work with these APIs when the Beta 1 bits are out.&amp;nbsp; Until then, if you want to know more and you weren’t able to attend PDC (or didn’t catch Randy’s talk), you can still download the slides from Randy Byrne’s presentation from the PDC Commnet (scroll down to OFF312).&amp;nbsp; The video from the session is also available on the conference DVDs if you have those available.&lt;/P&gt;
&lt;P&gt;After Office ‘12’ Beta 1 has been released, I’ll post more about the new extensibility improvements we’ve made in this release, and I’ll work on posting sample code and walkthroughs of the various feature areas to help out developers working with these new features.&lt;BR&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=482322" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/rgregg/archive/tags/Object+Model/default.aspx">Object Model</category><category domain="http://blogs.msdn.com/rgregg/archive/tags/General/default.aspx">General</category></item></channel></rss>