Freigeben über


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; 
}