• Sign In
 
  • MSDN Blogs
  • Microsoft Blog Images
  • More ...

  • Advanced search options...
  • Blog Home
  • About
  • Email Blog Author
  • Share this
  • RSS for posts
  • Atom
  • RSS for comments
  • CDO (20)
  • Code Snippet (42)
  • Custom Providers (15)
  • Debugging (7)
  • DevMsgTeam (278)
  • Documentation (101)
  • DST (8)
  • EWS (7)
  • Exchange (100)
  • Gotchas (91)
  • Hotfix (28)
  • MAPI (220)
  • MAPI Download (48)
  • MFCMAPI (92)
  • MSDN (54)
  • Non Dev (11)
  • OOM (17)
  • Outlook (163)
  • Outlook 2007 Auxiliary Reference (45)
  • Outlook Integration API (11)
  • Protocol Docs (20)
  • PST/OST (22)
  • Referrals (8)
  • Vista (12)
  • WrapPST (15)
Links:
  • Download MFCMAPI
  • MFCMAPI on Facebook
  • Troubleshooting Outlook Crashes
  • Office Update Center
  • Developer Messaging Team Blog
This site is provided "AS IS" with no warranties, and confers no rights. Use of included code samples are subject to the terms specified in the Terms of Use.
Archives
  • May 2012 (1)
  • April 2012 (3)
  • March 2012 (3)
  • February 2012 (3)
  • January 2012 (1)
  • December 2011 (3)
  • November 2011 (1)
  • October 2011 (3)
  • September 2011 (1)
  • August 2011 (1)
  • July 2011 (4)
  • June 2011 (3)
  • May 2011 (3)
  • April 2011 (3)
  • March 2011 (5)
  • February 2011 (1)
  • January 2011 (2)
  • December 2010 (1)
  • November 2010 (4)
  • October 2010 (1)
  • September 2010 (3)
  • August 2010 (5)
  • July 2010 (3)
  • June 2010 (3)
  • May 2010 (1)
  • April 2010 (3)
  • March 2010 (3)
  • February 2010 (3)
  • January 2010 (2)
  • December 2009 (3)
  • November 2009 (5)
  • October 2009 (4)
  • September 2009 (5)
  • August 2009 (5)
  • July 2009 (11)
  • June 2009 (6)
  • May 2009 (5)
  • April 2009 (3)
  • March 2009 (18)
  • February 2009 (10)
  • January 2009 (3)
  • December 2008 (2)
  • November 2008 (2)
  • October 2008 (5)
  • September 2008 (4)
  • August 2008 (10)
  • July 2008 (6)
  • June 2008 (8)
  • May 2008 (2)
  • April 2008 (4)
  • March 2008 (2)
  • February 2008 (2)
  • January 2008 (5)
  • December 2007 (3)
  • November 2007 (2)
  • October 2007 (3)
  • September 2007 (1)
  • August 2007 (4)
  • July 2007 (5)
  • June 2007 (3)
  • May 2007 (4)
  • April 2007 (1)
  • March 2007 (6)
  • February 2007 (3)
  • January 2007 (2)
  • December 2006 (4)
  • November 2006 (3)
  • October 2006 (1)
  • August 2006 (1)
  • June 2006 (5)
  • May 2006 (5)
  • December 2005 (1)
  • November 2005 (4)
  • October 2005 (2)
  • September 2005 (1)
  • April 2005 (3)
  • December 2004 (2)
  • September 2004 (2)
  • August 2004 (3)
  • July 2004 (3)

Whither ECE?

MSDN Blogs > SGriffin's MAPI Internals > Whither ECE?

Whither ECE?

Stephen Griffin - MSFT
12 Oct 2007 3:15 PM
  • Comments 16

This is a question for those of you out there who still have Exchange Client Extensions.

Aside from budget concerns and legacy support, what blocks you from re-implementing your extension as an Outlook Add-In? Specifically, I'm looking for events and capabilites that would have to be added to the Outlook Object Model to allow you to migrate your code.

For example, ECEs have an OnRead event that happens before Outlook reads from a message. This allows the extension to modify the message first. The OOM's Read event happens after Outlook reads from the message, so it's too late. You would need some sort of BeforeRead event to match the ECE.

Can you come up with more? I've got a list I put together here, but I want to see what you folks have actually run up against, so I'm most interested in real world examples drawn from your own code. Thanks!

[Update: 11/21/27]

Welcome viewers from Patrick and Randy's blog! I've seen a few comments that indicate support for legacy clients is a major concern. We definitely understand that and it's on our list. But what we're looking for here is things that you're doing with ECEs right now that you cannot do with Add-Ins. To put it another way - if ECEs suddenly vanished and you had to implement your code in an Add-In, what missing features or capabilities would be showstoppers?

  • 16 Comments
Outlook, OOM, DevMsgTeam
Comments
  • Dmitry Streblechenko
    12 Oct 2007 4:38 PM

    1. None of the  MailItem.Attachment* and MailItem.BeforeAttachment* events point ot a file path when an attachment is being added.

    2. Selecton collection still feels slower in OOM, even if it was significantly improved and no longer runs out of ROC channels trying to open all selected messages when ones touches any Selection property.

    3. Namespace.PickFolder is no match for IExchExtCallback::ChooseFolder()

    4. MailItem only exposes BeforeCheckNames, while ECE has IExchExtMessageEvents::OnCheckNames / OnCheckNamesComplete

    5. ECE allows to abort submit and leave the message open, abort submit and close the editor, or let the message go through. OOM only allows 2 out of 3.

  • Shawn
    12 Oct 2007 5:05 PM

    Event notifications is extremely unreliable.  If there are more than 64 events (I believe that is the threshold, I don't have my book near right now) on a single object, they get reduce to "Something Changed" event and you have to try to guess what exactly has been changed.

  • Ryan's Look at Outlook Programmability
    12 Oct 2007 6:35 PM

    Stephen Griffin is asking this question over on his blog . If you're using Exchange Client Extensions

  • Mark Wilson
    12 Oct 2007 7:54 PM

    Hi Steve.

    I really need the functionality of

    OnRead

    OnOpen

    OnOpenComplete

    OnSubmit

    DoCommand

  • Lev
    13 Oct 2007 1:15 AM

    My code depends on ECE's functionality of OnSubmit returning S_FALSE ( to let Outlook submit item ), S_OK ( Submit is processed by the client- do not touch ), E_FAIL - the Inspector comes back up...

    This is critical for the clients because the processed-by-me message should not go to Exchange.  If I were to use COM AddIn, it gives me only 2 options ( S_OK - passes to Exchange ) or E_FAIL - inspector comes back up.

    I also Depend on OnSubmit & OnSubmitComplete.

    When I get OnSubmitComplete ( and I returned S_OK from ECE's OnSubmit to prevent Outlook from doing anything with the message ), I am free to delete the message ( or do whatever else I want ).  With MailItem.Send event ( OOM ), this is not the case - the message is locked for the duration of Send event.

    In OOM, once I touch an item - Submit status is cancelled ( with the exception of getting "Submitted" property ).  ECE allows me to examine an IMessage ( e.g., in OnSelectionChange ) without cancelling Submit.  This is handy in cached mode.  For parity, I'd want a way to get IMessage from OOM without cancelling Submit status.

  • Martijn Brinkers
    13 Oct 2007 4:08 PM

    Outlook Object Model does not give access to the raw message source when the message is an S/MIME message. Also creating your own S/MIME message is not possible with the Outlook object model.

  • Stewart
    15 Oct 2007 8:27 AM

    I think that it is safe to say that there are really good reasons to expose the same event notifications in OOM as existed in ECE.  I'm searching code that is important to our product that I've "inherited" and so I don't know it's ins and outs real well but I know we use OnRead, OnReadComplete, OnSubmit, OnSubmitComplete, OnWrite, OnWriteComplete, and several others.  The OnRead notification is crucial - being able to fix up a message before the user sees it is why we have the ECE application.

  • Karl
    16 Oct 2007 3:10 AM

    A public announcement saying Microsoft is abandoning ECE for the Add-in.

    I guess that we would re-implement the product if we had to but I cannot see any good valid reason for spending a substantial amount of time for absolutely no improvement (feature-speaking).

    My company does not wish to/have the budget for changing tech's just for the hell of it and the only way to allocate the money and resources would be a public announcement.

    Technically speaking, we would probably be able to migrate but we would have to go through a lot of hassle since we need to keep compatibility with Outlook 2000 and upwards and the integration-part is tough as our 'paying' customers require 100% (what they think) integration in ALL environements and they do not understand nor accept any faults...so it would be a challenge...

    So, was that answer enough? :-)

  • Frank Kang
    16 Oct 2007 3:33 PM

    There does not seem to be the equivalent to the Exchange Client Custom Action in an Outlook Add-In. Supporting Custom Actions for Outlook Rules is the only place in our application where it is not implemented as an Outlook Add-In.

  • Michael Tissington
    26 Oct 2007 12:50 AM

    ECE is tightly coupled to MAPI store provider.

  • Stephen Griffin - MSFT
    28 Oct 2007 9:29 PM

    Mike - what do you mean by that? What does ECE have to do with a store provider?

  • Wiz/dumb
    21 Nov 2007 10:09 AM

    We want to know why you're still using ECEs as opposed to an add-in. Please hop over to Stephen Griffin

  • Anon
    21 Nov 2007 11:37 AM

    ECES has remained the same in recent versions whilst the object model is continuously changing and thus it is difficult to program for all versions of Outlook from 2000 upwards using the latest object model technologies. Compatibility with previous versions of Outlook is a pain for all new object model technologies, especially those that have to do with .NET (signed assemblies, Office PIAS, etc), that is a difficult story to handle reliably for all versions of Outlook. Even the recent Office Addin runtime v3.0 is only for version 2007 of Office and you need to maintain multiple versions of Visual Studio to support even only Office 2003 and 2007 together. ECES is the same everywhere. You learn one thing, implement it and it works. No redistributables and different Visual Studio tools versions and whatnot and no differents between Outlook versions.

  • Cristian Amarie
    9 Aug 2008 3:52 AM

    I'm also forced into an ECE due to attachment handling support needed.

    IExchExtAttachedFileEvents::OnOpenSzFile does NOT fire when an .ecf file is used, but it IS fired when the registry entry is used - but only for mail items, not for tasks. This method is one of the "before" events are fired to the ECE (and we have the S_OK to deal with the attachment itself) and does not have an equivalent in OL <= 2003, correct?

    OL just fires AttachmentRead event (I think BeforeAttachmentWriteToTempFile is the way to go in an addin, but only from OL 2007 and up...), which is a postmortem event.

    If the OOM will fully replace ECEs... then you're 100% right. And still there are places where, without MAPI(x), you're stucked.

    So? Do we see the day when OOM will be *the* way? :)

  • Do What?
    15 Oct 2008 1:14 PM

    Exchange Client Extensions are used in Outlook to extend the functionality of Outlook.&#160; A developer

Page 1 of 2 (16 items) 12
Leave a Comment
  • Please add 7 and 8 and type the answer here:
  • Post
  • © 2012 Microsoft Corporation.
  • Terms of Use
  • Trademarks
  • Privacy Statement
  • Report Abuse
  • 5.6.402.223