From aaf419adb240ea016faa390ab32226e2db41674c Mon Sep 17 00:00:00 2001 From: "chuang%netscape.com" Date: Mon, 9 Jul 2001 21:11:44 +0000 Subject: [PATCH] Bug 80446 Importing Outlook Contacts doesn't import email addresses, r=Cyrille.Moureaux@Sun.com, sr=mscott --- mailnews/import/outlook/src/MapiApi.cpp | 11 ++++++++-- mailnews/import/outlook/src/nsOutlookMail.cpp | 20 ++++++++++--------- 2 files changed, 20 insertions(+), 11 deletions(-) diff --git a/mailnews/import/outlook/src/MapiApi.cpp b/mailnews/import/outlook/src/MapiApi.cpp index 79b1a998b84a..47cbb93a92b6 100644 --- a/mailnews/import/outlook/src/MapiApi.cpp +++ b/mailnews/import/outlook/src/MapiApi.cpp @@ -632,7 +632,10 @@ void CMapiApi::ListProperties( LPMAPIPROP lpProp, BOOL getValues) GetPropTagName( pArray->aulPropTag[i], desc); if (getValues) { tagArray.aulPropTag[0] = pArray->aulPropTag[i]; - hr = lpProp->GetNamesFromIDs(&lpTagArray, nsnull, 0, &count, &lppPropNames); + hr = lpProp->GetNamesFromIDs(&lpTagArray, nsnull, 0, &count, &lppPropNames); + if (hr == S_OK) + MAPIFreeBuffer(lppPropNames); + LPSPropValue pVal = GetMapiProperty( lpProp, pArray->aulPropTag[i]); if (pVal) { desc += ", "; @@ -662,7 +665,11 @@ static GUID emailGUID = { HRESULT result = lpProp->GetIDsFromNames(1L, &lpMapiNames, 0, &lpMailTagArray); if (result == S_OK) - return lpMailTagArray->aulPropTag[0]; + { + ULONG lTag = lpMailTagArray->aulPropTag[0]; + MAPIFreeBuffer(lpMailTagArray); + return lTag; + } else return 0L; } diff --git a/mailnews/import/outlook/src/nsOutlookMail.cpp b/mailnews/import/outlook/src/nsOutlookMail.cpp index 93bd322ff2e1..584605e64eca 100644 --- a/mailnews/import/outlook/src/nsOutlookMail.cpp +++ b/mailnews/import/outlook/src/nsOutlookMail.cpp @@ -1006,17 +1006,19 @@ PRBool nsOutlookMail::BuildCard( const PRUnichar *pName, nsIAddrDatabase *pDb, n nsString nickName; nsString middleName; nsString secondEMail; + ULONG emailTag; - LPSPropValue pProp; - - ULONG emailTag = m_mapi.GetEmailPropertyTag(pUser, OUTLOOK_EMAIL1_MAPI_ID1); - if (emailTag) { - pProp = m_mapi.GetMapiProperty( pUser, emailTag); - if (pProp) { - m_mapi.GetStringFromProp( pProp, eMail); - SanitizeValue( eMail); - } + LPSPropValue pProp = m_mapi.GetMapiProperty( pUser, PR_EMAIL_ADDRESS); + if (!pProp) { + emailTag = m_mapi.GetEmailPropertyTag(pUser, OUTLOOK_EMAIL1_MAPI_ID1); + if (emailTag) { + pProp = m_mapi.GetMapiProperty( pUser, emailTag); + } } + if (pProp) { + m_mapi.GetStringFromProp( pProp, eMail); + SanitizeValue( eMail); + } // for secondary email emailTag = m_mapi.GetEmailPropertyTag(pUser, OUTLOOK_EMAIL2_MAPI_ID1);