diff options
author | Vincent Lucas <chenzo@jitsi.org> | 2013-07-15 23:55:51 +0200 |
---|---|---|
committer | Vincent Lucas <chenzo@jitsi.org> | 2013-07-15 23:55:51 +0200 |
commit | dd08179d07e12e40454a655f63909de181e7abe9 (patch) | |
tree | 2712fbdb90ac51f8d0560ffd5d8fd8508f3c0601 /src/native/addrbook/msoutlook | |
parent | cf71357a3294fdddedd6fa112fa03301cc819ca1 (diff) | |
download | jitsi-dd08179d07e12e40454a655f63909de181e7abe9.zip jitsi-dd08179d07e12e40454a655f63909de181e7abe9.tar.gz jitsi-dd08179d07e12e40454a655f63909de181e7abe9.tar.bz2 |
Adds modification of Outlook display for home/work postal address. Corrects Outlook funcitons to get/set/delete email addresses: add the management of EX address type.
Diffstat (limited to 'src/native/addrbook/msoutlook')
-rw-r--r-- | src/native/addrbook/msoutlook/MsOutlookAddrBookContactQuery.cxx | 42 |
1 files changed, 30 insertions, 12 deletions
diff --git a/src/native/addrbook/msoutlook/MsOutlookAddrBookContactQuery.cxx b/src/native/addrbook/msoutlook/MsOutlookAddrBookContactQuery.cxx index b3e4b27..0228a6c 100644 --- a/src/native/addrbook/msoutlook/MsOutlookAddrBookContactQuery.cxx +++ b/src/native/addrbook/msoutlook/MsOutlookAddrBookContactQuery.cxx @@ -1092,13 +1092,13 @@ int MsOutlookAddrBookContactQuery_IMAPIProp_1DeleteProp ULONG baseGroupEntryIdProp = 0; switch(propId) { - case 0x00008083: // dispidEmail1EmailAddress + case 0x00008084: // PidLidEmail1OriginalDisplayName baseGroupEntryIdProp = 0x00008080; break; - case 0x00008093: // dispidEmail2EmailAddress + case 0x00008094: // PidLidEmail2OriginalDisplayName baseGroupEntryIdProp = 0x00008090; break; - case 0x000080A3: // dispidEmail3EmailAddress + case 0x000080A4: // PidLidEmail3OriginalDisplayName baseGroupEntryIdProp = 0x000080A0; break; } @@ -1382,13 +1382,13 @@ int MsOutlookAddrBookContactQuery_IMAPIProp_1SetPropString ULONG baseGroupEntryIdProp = 0; switch(propId) { - case 0x00008083: // dispidEmail1EmailAddress + case 0x00008084: // PidLidEmail1OriginalDisplayName baseGroupEntryIdProp = 0x00008080; break; - case 0x00008093: // dispidEmail2EmailAddress + case 0x00008094: // PidLidEmail2OriginalDisplayName baseGroupEntryIdProp = 0x00008090; break; - case 0x000080A3: // dispidEmail3EmailAddress + case 0x000080A4: // PidLidEmail3OriginalDisplayName baseGroupEntryIdProp = 0x000080A0; break; } @@ -1435,25 +1435,42 @@ int MsOutlookAddrBookContactQuery_IMAPIProp_1SetPropString LONG providerEmailList[1]; switch(propId) { - case 0x00008083: // dispidEmail1EmailAddress + case 0x00008084: // PidLidEmail1OriginalDisplayName providerEmailList[0] = 0x00000000; propArray[1].Value.l |= 0x00000001; break; - case 0x00008093: // dispidEmail2EmailAddress + case 0x00008094: // PidLidEmail2OriginalDisplayName providerEmailList[0] = 0x00000001; propArray[1].Value.l |= 0x00000002; break; - case 0x000080A3: // dispidEmail3EmailAddress + case 0x000080A4: // PidLidEmail3OriginalDisplayName providerEmailList[0] = 0x00000002; propArray[1].Value.l |= 0x00000004; break; } + propArray[0].Value.MVl.cValues = 1; propArray[0].Value.MVl.lpl = providerEmailList; - propArray[2].Value.lpszW = wCharValue; - propArray[3].Value.lpszW = addressType; - propArray[4].Value.lpszW = wCharValue; + if(propArray[2].ulPropTag == PT_ERROR + || propArray[2].Value.err == MAPI_E_NOT_FOUND + || propArray[2].Value.lpszW == NULL) + { + propArray[2].Value.lpszW = wCharValue; + } + if(propArray[3].ulPropTag == PT_ERROR + || propArray[3].Value.err == MAPI_E_NOT_FOUND + || propArray[3].Value.lpszW == NULL) + { + propArray[3].Value.lpszW = addressType; + } + if(propArray[4].ulPropTag == PT_ERROR + || propArray[4].Value.err == MAPI_E_NOT_FOUND + || propArray[4].Value.lpszW == NULL + || wcsncmp(propArray[3].Value.lpszW, addressType, 4) == 0) + { + propArray[4].Value.lpszW = wCharValue; + } propArray[5].Value.lpszW = wCharValue; if(MsOutlookAddrBookContactQuery_createEmailAddress( @@ -1885,6 +1902,7 @@ int MsOutlookAddrBookContactQuery_compareEntryIds( } result = res; } + mapiId1->Release(); MAPIFreeBuffer(contactId1.lpb); mapiId2->Release(); |