The PR_TRANSMITABLE_DISPLAY_NAME_W property of a recipient is corrupted in the recipient table of an e-mail message that is received through Microsoft Exchange Server 2003 (923536)



The information in this article applies to:

  • Microsoft Exchange Server 2003 Enterprise Edition
  • Microsoft Exchange Server 2003 Standard Edition, when used with:
    • Microsoft Office Outlook 2003
    • Microsoft Outlook 2000

SYMPTOMS

Consider the following scenario. You try to use a custom-built MAPI application to obtain the recipient table of an e-mail message. The e-mail message is received through Microsoft Exchange Server 2003. In this scenario, the PR_TRANSMITABLE_DISPLAY_NAME_W property of a recipient is corrupted.

CAUSE

This problem occurs if the following conditions are true:
  • The e-mail message is sent from a computer that is running Microsoft Outlook 2000 and that uses double-byte character set (DBCS) characters.
  • The custom-built MAPI application is running on a client computer that has the English version of Microsoft Office Outlook 2003 installed.
  • The custom-built MAPI application calls the HrQueryAllRows function or the QueryRows function to obtain the PR_TRANSMITABLE_DISPLAY_NAME property.
  • The recipient name contains DBCS characters.

RESOLUTION

To resolve this problem, change the custom-built MAPI application to call the HrGetOneProp (IMailuser) function or the IMailUser->GetProps function to obtain the PR_TRANSMITABLE_DISPLAY_NAME property.

Note This resolution may cause an extra remote procedure call (RPC) to the server.

Microsoft provides programming examples for illustration only, without warranty either expressed or implied. This includes, but is not limited to, the implied warranties of merchantability or fitness for a particular purpose. This article assumes that you are familiar with the programming language that is being demonstrated and with the tools that are used to create and to debug procedures. Microsoft support engineers can help explain the functionality of a particular procedure, but they will not modify these examples to provide added functionality or construct procedures to meet your specific requirements.

For example, use the following code example.
ComPtr<IMailUser> spMailUser;
                    
hrx = spAddrBook->OpenEntry(entryId->Value.bin.cb, (LPENTRYID)entryId->Value.bin.lpb, &IID_IMailUser, 0,   &ulObjType, (IUnknown**)&spMailUser);                    
       
LPSPropValue spXmitValue;
hrx = HrGetOneProp(spMailUser, PR_TRANSMITABLE_DISPLAY_NAME_W, &spXmitValue);

Modification Type:MajorLast Reviewed:10/4/2006
Keywords:kbSample kbemail kbprb KB923536 kbAudITPRO