Making The New CDO Work With The Old Exchange

I know a number of you have asked about this – the latest CDO downloads didn’t work with older versions of Exchange because they’re passing a flag that allows them to work with Exchange 2007. I alluded to this problem (without actually calling it out) in my post about CONNECT_IGNORE_NO_PF.

Meanwhile, Jeff has been working on getting this fixed. It’s done now. Jeff has a great post on the fix he pushed through for the CDO downloads to allow them to work with older Exchange servers and still be able to deal with Public Folder-less Exchange 2007 servers.

So here’s my take on this. Only set the “Ignore No PF” flag to 1 if you know you’re dealing with just Exchange 2007, or if you can somehow guarantee that any Exchange 2003 servers have been patched. Otherwise leave it alone.

If you’re in a mixed server environment (probably the case for most shops running Exchange 2007 right now) then you have to have Public Folders, so not setting the flag is the right thing to do.

I haven’t tested it yet, but I believe the get-PublicFolderDatabase cmdlet can be used to determine if you have any public folders in an Exchange 2007 environment.

Comments (3)

  1. Paul says:


    I downloaded the latest CDO and MAPI from the web site. Is my version right?


    (I saw reference to 06.06.7940 in Jeffs post?)

    My code works with Outlook 2003 and 2007 CDO but not with the CDO/MAPI package. However I am not getting the FAILONEPROVIDER. I am getting

    Collaboration Data Objects – [E_FAIL(80004005)]

    Any ideas?


  2. Martin says:

    Do anyone check if the get-PublicFolderDatabase cmdlet is a good way to determine if we have any Public Folders installed in Exchange 2007?

    If so, what is returned if public folders isn’t installed?