Esempio n. 1
0
// 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
}
Esempio n. 2
0
// uses the built in outlook email fields, OUTLOOK_EMAIL1 etc, minus 1 for ADDR_TYPE and +1 for EmailOriginalDisplayName
BOOL CMAPIContact::GetEmail(CString& strEmail,int nIndex)
{
	strEmail = "";

	ULONG nID=GetOutlookEmailID(nIndex);
	if(!nID) return FALSE;

	LPSPropValue pProp;
	CMAPINamedProperty prop(m_pUser);
	if(prop.GetOutlookProperty(OUTLOOK_DATA1,nID-1,pProp)) {
		CString strAddrType=CMAPIEx::GetValidString(*pProp);
		MAPIFreeBuffer(pProp);
		if(prop.GetOutlookProperty(OUTLOOK_DATA1,nID,pProp)) {
			strEmail=CMAPIEx::GetValidString(*pProp);
			MAPIFreeBuffer(pProp);
			if(strAddrType==_T("EX")) {
				// for EX types we use the original display name (seems to contain the appropriate data)
				if(prop.GetOutlookProperty(OUTLOOK_DATA1,nID+1,pProp)) {
					strEmail=CMAPIEx::GetValidString(*pProp);
					MAPIFreeBuffer(pProp);
				}
			}
			return TRUE;
		}
	}
	return FALSE;
}
Esempio n. 3
0
bool MAPIContact::SetEmailDisplayAs(const String &szDisplayAs, int nIndex) {
#ifdef _WIN32_WCE
	return false;
#endif
	ULONG nID = GetOutlookEmailID(nIndex);
	if(!nID) 
		return false;

	return SetOutlookProperty(OUTLOOK_DATA1, nID-3, szDisplayAs);
}
Esempio n. 4
0
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
}
Esempio n. 5
0
// only supports setting SMTP Email Addresses, sets both display properties, use SetEmailDisplayAs to set the 
// outlook DisplayAs property to some other text.  You should check that the text is a valid SMTP email address
// ie [email protected] because this function will allow any string
bool MAPIContact::SetEmail(const String &szEmail, int nIndex) {
	ULONG nID = GetOutlookEmailID(nIndex);
	if(!nID) 
		return false;

#ifdef _WIN32_WCE
	return m_pPOOM ? m_pPOOM->SetProperty(m_pContact, nID, szEmail) : false;
#else
	if(SetOutlookProperty(OUTLOOK_DATA1, nID-1, "SMTP")) {
		// we set the email field and both display properties
		if(!SetOutlookProperty(OUTLOOK_DATA1, nID, szEmail)) 
			return false;
		if(!SetOutlookProperty(OUTLOOK_DATA1, nID+1, szEmail)) 
			return false;
		if(!SetOutlookProperty(OUTLOOK_DATA1, nID-3, szEmail)) 
			return false;
		return true;
	}
	return false;
#endif
}