Abrufen der E-Mail-Adresse eines Kontaktelements
Gilt für: Outlook 2013 | Outlook 2016
In diesem Thema wird gezeigt, wie Sie den Wert einer benannten Eigenschaft abrufen, die die E-Mail-Adresse eines Microsoft Outlook 2010 oder Microsoft Outlook 2013 Kontaktelements darstellt.
Sie können einem Kontaktelement in Outlook 2010 und Outlook 2013 bis zu drei E-Mail-Adressen zuordnen. Jede E-Mail-Adresse entspricht einer Eigenschaft des Outlook 2010- oder Outlook 2013 ContactItem-Objekts in den Outlook 2010- und Outlook 2013-Objektmodellen. Intern in Outlook 2010 und Outlook 2013 entspricht die E-Mail-Adresse auch einer mapi-benannten Eigenschaft. Beispielsweise entspricht die erste E-Mail-Adresse eines Kontakts der Email1Address-Eigenschaft des ContactItem-Objekts in den Outlook 2010- und Outlook 2013-Objektmodellen und den internen Outlook 2010- und Outlook 2013-Objekten mit dem Namen PidLidEmail1EmailAddress Canonical Property.
Um den Wert einer E-Mail-Adresse eines Kontaktelements abzurufen, können Sie das PropertyAccessor-Objekt des Outlook 2010- oder Outlook 2013-Objektmodells verwenden oder zuerst IMAPIProp::GetIDsFromNames verwenden, um das Eigenschaftstag der benannten Eigenschaft abzurufen, und dann dieses Eigenschaftstag in IMAPIProp::GetProps angeben, um den Wert abzurufen. Geben Sie beim Aufrufen von IMAPIProp::GetIDsFromNames die entsprechenden Werte für die MAPINAMEID-Struktur an, auf die der Eingabeparameter lppPropNames verweist. Im folgenden Codebeispiel wird gezeigt, wie Sie die erste E-Mail-Adresse eines angegebenen Kontakts lpContact mithilfe von GetIDsFromNames und GetProps abrufen.
HRESULT HrGetEmail1(LPMESSAGE lpContact)
{
HRESULT hRes = S_OK;
LPSPropTagArray lpNamedPropTags = NULL;
MAPINAMEID NamedID = {0};
LPMAPINAMEID lpNamedID = &NamedID;
NamedID.lpguid = (LPGUID)&PSETID_Address;
NamedID.ulKind = MNID_ID;
NamedID.Kind.lID = dispidEmailEmailAddress;
hRes = lpContact->GetIDsFromNames(
1,
&lpNamedID,
NULL,
&lpNamedPropTags);
if (SUCCEEDED(hRes) && lpNamedPropTags)
{
SPropTagArray sPropTagArray;
sPropTagArray.cValues = 1;
sPropTagArray.aulPropTag[0] = CHANGE_PROP_TYPE(lpNamedPropTags->aulPropTag[0],PT_STRING8);
LPSPropValue lpProps = NULL;
ULONG cProps = 0;
hRes = lpContact->GetProps(
&sPropTagArray,
NULL,
&cProps,
&lpProps);
if (SUCCEEDED(hRes) &&
1 == cProps &&
lpProps &&
PT_STRING8 == PROP_TYPE(lpProps[0].ulPropTag) &&
lpProps[0].Value.lpszA)
{
printf("Email address 1 = \"%s\"\n",lpProps[0].Value.lpszA);
}
MAPIFreeBuffer(lpProps);
MAPIFreeBuffer(lpNamedPropTags);
}
return hRes;
}