MAPILogonEx causes crash if Version Info is not specified on the module

I wanted to create a simple Extended MAPI application that would call MAPIInitialize() followed by MAPILogonEx().  Seems simple right?  I do it all the time.  However, this time, for whatever reason, every time I called MAPILogonEx() my process crashed.  No matter what flags I chose, or how I called either MAPIInitialize() or MAPILogonEx(), it would…

0

IMAPISession::OpenMsgStore() returns MAPI_E_VERSION (0x80040110)

As documented previously, Exchange 2016 will not allow connections from Exchange’s MAPI (aka MAPI \ CDO).  MAPI client applications may receive the error MAPI_E_VERSION (0x80040110).  If you are running On-Premises Exchange 2016 and have access to the RPC Client Access logs, you will see this error in the log around the time that the connection…

0

How to configure an Outlook 2016 profile using MFCMAPI

The process for creating a Outlook profile in Outlook 2016 has changed. This article documents the simple steps to create one using MFCMAPI.  Note: For non-developers this is not the recommended way of creating profiles in Outlook 2016.  It is recommended that you use Outlook to create the profile as the logic for this is…

28

MAPI CDO will not be supported for Exchange 2016

I wanted to point out a significant note for some in the Exchange 2016 Architecture blog post here : http://blogs.technet.com/b/exchange/archive/2015/05/05/exchange-server-2016-architecture.aspx.  Specifically, that Exchange 2016 will not support clients using Exchange’s MAPI (aka MAPI \ CDO) to access Exchange Data.  Exchange’s MAPI has been out of main stream support for some time now (as it’s tied…

1

Cool MFCMAPI Feature: Logging every MAPI function called

Wanna learn Extended MAPI?  Sure, we all do.  Well most likely not, but in every project there comes a time when you need to add a feature and you don’t know where to start.  MFCMAPI can be helpful in figuring out what to do in Extended MAPI if you don’t know where to start. Here…

0

HrGetServerDN fails with MAPI_E_CALL_FAILED (0x80004005)

In Exchange 2013 Cumulative Update 3, Exchange stopped stamping the property HomeMTA on the user object in Active Directory. As a result PR_EMS_AB_HOME_MTA_A, a property that HrGetServerDN() depends on no longer works.  HrGetServerDN() is a function from the Exchange Development Kit (EDK) for Exchange 5.5.  It is not supported or recommended for any version of…

2

Using the EmailMessage.Normalize method in a transport agent causes issues with Exchange Server 2013 CU7

I received a report that if you have an existing transport agent and use the method Microsoft.Exchange.Data.Transport.Email.EmailMessage.Normalize(), the transport agent won’t work correctly on Exchange Server 2013 CU7.  This is because of a known issue where the public signature of this method was changed and so existing transport agents will need to be recompiled to work…

0

Automatic reply: Your Out of Office code may no longer work

In Exchange 2007, Out of Office (OOF) was improved and how the mechanism worked was changed.  To support legacy Outlook 2003 clients which didn’t use SetUserOofSettings like Outlook 2007 and Outlook Web App 2007 did, the Out of Office Mailbox Assistant was created. The OOF Mailbox Assistant had several responsibilities, here are the ones relevant…

0

PRXF_IGNORE_SEC_WARNING doesn’t work in MAPI CDO

The flag PRXF_IGNORE_SEC_WARNING doesn’t work in MAPI \ CDO as it should.  The flag was introduced to support RPC over HTTP in the updated MAPI \ CDO that was released around the time of Exchange Server 2013’s release.  The flag is supposed to instruct the MAPI subsystem to use this flag RPC_C_HTTP_FLAG_IGNORE_CERT_CN_INVALID when configuring the…

2

Handbook for the Recently Present

One of the common calls I take in my job are from developers trying to write Instant Messaging and Presence (IM & P) providers to integrate with Office and Sharepoint.  The number of cases I see are increasing so I wanted to start a series dedicated to that topic.  The purposes of this series is…

0