Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für: Outlook 2013 | Outlook 2016
Clients können eine Verteilerliste direkt in einem änderbaren Container wie dem persönlichen Adressbuch (PAB) erstellen.
Erstellen Sie wie folgt ein Array mit einem Eigenschaftentag PR_DEF_CREATE_DL (PidTagDefCreateDl):
SizedPropTagArray(1, tagaDefaultDL) = { 1, { PR_DEF_CREATE_DL } };
Rufen Sie IAddrBook::GetPAB auf, um den Eintragsbezeichner des PAB abzurufen. Wenn ein Fehler auftritt oder GetPAB null oder NULL zurückgibt, fahren Sie nicht fort.
LPENTRYID peidPAB = NULL; ULONG cbeidPAB = 0; lpIAddrBook->GetPAB(&cbeidPAB, &peidPAB);
Rufen Sie IAddrBook::OpenEntry auf, um das PAB zu öffnen. Der ulObjType-Ausgabeparameter sollte auf MAPI_ABCONT festgelegt werden.
ULONG ulObjType = 0; LPABCONT lpPABCont = NULL; lpIAddrBook->OpenEntry(cbeidPAB, peidPAB, NULL, MAPI_MODIFY, &ulObjType, &lpPABCont);
Rufen Sie die IMAPIProp::GetProps-Methode des PAB auf, um die PR_DEF_CREATE_DL-Eigenschaft abzurufen, die Vorlage, die zum Erstellen einer Verteilerliste verwendet wird.
lpPABCont->GetProps(0, tagaDefaultDL, &lpspvDefDLTpl);
Wenn GetProps fehlschlägt:
Rufen Sie die IMAPIProp::OpenProperty-Methode des PAB auf, um die eigenschaft PR_CREATE_TEMPLATES (PidTagCreateTemplates) mit der IMAPITable-Schnittstelle zu öffnen.
Erstellen Sie eine Eigenschaftseinschränkung, um nach der Zeile zu suchen, deren spalte PR_ADDRTYPE (PidTagAddressType) gleich "MAPIPDL" ist.
Rufen Sie IMAPITable::FindRow auf, um diese Zeile zu suchen.
Speichern Sie den von GetProps oder FindRow zurückgegebenen Eintragsbezeichner.
peidDefDLTpl = lpspvDefDLTpl->Value.bin.pb; cbeidDefDLTpl = lpspvDefDLTpl->Value.bin.cb;
Rufen Sie die IABContainer::CreateEntry-Methode des PAB auf, um einen neuen Eintrag mithilfe der Vorlage zu erstellen, die durch den gespeicherten Eintragsbezeichner dargestellt wird. Gehen Sie nicht davon aus, dass es sich bei dem zurückgegebenen Objekt um eine Verteilerliste und nicht um einen Messagingbenutzer handelt, wenn dieser Aufruf remote ausgeführt wird. Beachten Sie, dass das CREATE_CHECK_DUP-Flag im ulFlags-Parameter übergeben wird, um zu verhindern, dass der Eintrag zweimal hinzugefügt wird.
lpPABCont->CreateEntry(cbeidDefDLTpl, peidDefDLTPL, CREATE_CHECK_DUP_STRICT, &lpNewPABEntry);
Rufen Sie die IUnknown::QueryInterface-Methode des neuen Eintrags auf, und übergeben Sie IID_IDistList als Schnittstellenbezeichner, um zu bestimmen, ob der Eintrag eine Verteilerliste ist und die IDistList : IMAPIContainer-Schnittstelle unterstützt. Da CreateEntry anstelle des spezifischeren IMailUser- oder IDistList-Zeigers einen IMAPIProp-Zeiger zurückgibt, überprüfen Sie, ob ein Verteilerlistenobjekt erstellt wurde. Wenn QueryInterface erfolgreich ist, können Sie sicher sein, dass Sie anstelle eines Messagingbenutzers eine Verteilerliste erstellt haben.
Rufen Sie die IMAPIProp::SetProps-Methode der Verteilerliste auf, um den Anzeigenamen und andere Eigenschaften festzulegen.
Rufen Sie die IABContainer::CreateEntry-Methode der Verteilerliste auf, um einen oder mehrere Messagingbenutzer hinzuzufügen.
Rufen Sie die IMAPIProp::SaveChanges-Methode der Verteilerliste auf, wenn Sie bereit sind, sie zu speichern. Um den Eintragsbezeichner der gespeicherten Verteilerliste abzurufen, legen Sie das KEEP_OPEN_READWRITE-Flag fest, und rufen Sie dann IMAPIProp::GetProps auf, um die eigenschaft PR_ENTRYID (PidTagEntryId) anzufordern.
Geben Sie die neue Verteilerliste und den PAB frei, indem Sie ihre IUnknown::Release-Methoden aufrufen.
Rufen Sie MAPIFreeBuffer auf, um den Arbeitsspeicher für den Eintragsbezeichner des PAB und das Array der Größeneigenschaftstags freizugeben.