// uses the built in outlook email fields, OUTLOOK_EMAIL1 etc, minus 1 for ADDRt_YPE and +1 for EmailOriginalDisplayName String MAPIContact::GetEmail(int nIndex) { String strEmail; ULONG nID = GetOutlookEmailID(nIndex); if(!nID) return String(); #ifdef _WIN32_WCE return GetPropertyString(nID, strEmail); #else LPSPropValue pProp; if(GetOutlookProperty(OUTLOOK_DATA1, nID-1, pProp)) { String strAddrType = MAPIEx::GetValidString(*pProp); MAPIFreeBuffer(pProp); if(GetOutlookProperty(OUTLOOK_DATA1, nID, pProp)) { strEmail = MAPIEx::GetValidString(*pProp); MAPIFreeBuffer(pProp); if(strAddrType == "EX") { // for EX types we use the original display name (seems to contain the appropriate data) if(GetOutlookProperty(OUTLOOK_DATA1, nID+1, pProp)) { strEmail = MAPIEx::GetValidString(*pProp); MAPIFreeBuffer(pProp); } } return strEmail; } } return String(); #endif }
String MAPIContact::GetIMAddress() { String strIMAddress; #ifndef _WIN32_WCE LPSPropValue pProp; if(GetOutlookProperty(OUTLOOK_DATA1, OUTLOOK_IM_ADDRESS, pProp)) { strIMAddress = MAPIEx::GetValidString(*pProp); MAPIFreeBuffer(pProp); return strIMAddress; } #endif return String(); }
BOOL CMAPIAppointment::GetStartTime(SYSTEMTIME& tmStart) { LPSPropValue pProp; if(GetOutlookProperty(OUTLOOK_DATA2, OUTLOOK_APPOINTMENT_START, pProp)) { FILETIME tmLocal; FileTimeToLocalFileTime(&pProp->Value.ft, &tmLocal); FileTimeToSystemTime(&tmLocal, &tmStart); MAPIFreeBuffer(pProp); return TRUE; } return FALSE; }
String MAPIContact::GetFileAs() { String strFileAs; #ifdef _WIN32_WCE return GetPropertyString(PR_DISPLAY_NAME, strFileAs); #else LPSPropValue pProp; if(GetOutlookProperty(OUTLOOK_DATA1, OUTLOOK_FILE_AS, pProp)) { strFileAs = MAPIEx::GetValidString(*pProp); MAPIFreeBuffer(pProp); return strFileAs; } return String(); #endif }
String MAPIContact::GetEmailDisplayAs(int nIndex) { String strDisplayAs; #ifdef _WIN32_WCE return GetEmail(strDisplayAs, nIndex); #else ULONG nID = GetOutlookEmailID(nIndex); if(!nID) return String(); LPSPropValue pProp; if(GetOutlookProperty(OUTLOOK_DATA1, nID-3, pProp)) { strDisplayAs = MAPIEx::GetValidString(*pProp); MAPIFreeBuffer(pProp); return strDisplayAs; } return String(); #endif }