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
Hinzugefügt, gelöscht oder Empfänger der Nachricht ändert.
HRESULT ModifyRecipients(
ULONG ulFlags,
LPADRLIST lpMods
);
Parameter
ulFlags
[in] Bitmask of flags that controls the recipient changes. Wenn für den Parameter ulFlags Null übergeben wird, ersetzt ModifyRecipients alle vorhandenen Empfänger durch die Empfängerliste, auf die der Parameter lpMods zeigt. Die folgenden Kennzeichnungen können für ulFlags festgelegt werden:
MODRECIP_ADD
Die Empfänger, auf die der Parameter lpMods zeigt, sollten der Empfängerliste hinzugefügt werden.
MODRECIP_MODIFY
Die Empfänger, auf die der Parameter lpMods zeigt, sollten vorhandene Empfänger ersetzen. Alle vorhandenen Eigenschaften werden durch die in der entsprechenden ADRENTRY Struktur ersetzt.
MODRECIP_REMOVE
Vorhandene Empfänger sollten aus der Empfängerliste entfernt werden, indem die PR_ROWID (PidTagRowid)-Eigenschaft, die im Eigenschaftenwertarray jedes Empfängereintrags im Parameter lpMods enthalten ist, als Index verwendet wird.
lpMods
[in] Zeiger auf eine ADRLIST -Struktur, die eine Liste der Empfänger hinzugefügt, gelöscht oder geändert werden, in der Nachricht enthält.
Rückgabewert
S_OK
Die Empfängerliste wurde erfolgreich geändert.
Hinweise
Die IMessage::ModifyRecipients -Methode ändert die Nachricht Empfängerliste. Es ist in dieser Liste gehalten in eine ADRLIST -Struktur, dass die Empfänger Tabelle erstellt wird.
Die ADRLIST -Datenstruktur enthält eine ADRENTRY -Struktur für jeden Empfänger und jede ADRENTRY -Datenstruktur enthält ein Array der Eigenschaftswerte, die die Empfängereigenschaften beschreibt.
Empfänger in der Struktur ADRLIST können gelöst oder nicht aufgelöst werden. Der Unterschied liegt in der Anzahl und Typ der Eigenschaften, die eingebunden werden. Ein nicht aufgelöster Empfänger enthält nur die Eigenschaften PR_DISPLAY_NAME (PidTagDisplayName) und PR_RECIPIENT_TYPE (PidTagRecipientType), während ein aufgelöster Empfänger diese beiden Eigenschaften plus PR_ADDRTYPE (PidTagAddressType) und PR_ENTRYID (PidTagEntryId) enthält. Wenn PR_EMAIL_ADDRESS (PidTagEmailAddress) verfügbar ist, kann sie ebenfalls eingeschlossen werden.
Durch die Zeit, die eine Nachricht gesendet wird, muss nur aufgelösten Empfänger in der Empfängerliste enthalten. Nicht aufgelösten Empfänger verursachen Unzustellbarkeitsberichten erstellt und an den ursprünglichen Absender der Nachricht gesendet werden. Weitere Informationen zu den Vorgang der Namensauflösung aus Sicht des Clients finden Sie unter Auflösen von Namen. Weitere Informationen aus der Perspektive der Adressbuchanbieter finden Sie unter Implementieren der Namensauflösung.
Nicht aufgelöst und nicht aufgelösten Empfänger kann ein Empfänger NULL sein. Das cValues Mitglied der ADRENTRY -Struktur für den Empfänger auf 0 (null) festgelegt ist und der rgPropVals Member wird auf NULL festgelegt.
Hinweise für Aufrufer
Sie können eine Empfängerliste durch Aufrufen von IAddrBook::Address zum Anzeigen des Standarddialogfelds und der Benutzer aufgefordert, wählen Sie Einträge erstellen. Die Adressliste, auf die der Parameter lppAdrListAddress zeigt, kann als lpMods-Parameter an ModifyRecipients übergeben werden.
Wenn Sie Eigenschaften für einen Empfänger in der Struktur ADRLIST angeben, schließen Sie alle Eigenschaften des Empfängers, nicht nur diejenigen neuen oder geänderten. Wenn Sie ein Empfänger geändert wird, werden alle Eigenschaften, die nicht in der Struktur ADRLIST enthalten gelöscht. Zum Abrufen der aktuellen Gruppe von Eigenschaften für alle Empfänger einer Nachricht GetRecipientTable aufrufen und Abrufen von allen Zeilen. Da ein SRowSet dieselbe Struktur wie eine ADRLISTist, können Sie diese austauschbar verwenden.
ModifyRecipients ersetzt alle Einträge in der aktuellen Empfängerliste durch die Informationen, auf die lpMods zeigt, wenn keine der Kennzeichnungen im ulFlags-Parameter festgelegt ist.
Wenn Sie die Kennzeichnung MODRECIP_MODIFY festlegen, ersetzt ModifyRecipients jede gesamte Empfängerzeile durch die zugeordnete Zeile in der ADRLIST-Struktur, die in lpMods übergeben wurde. Achten Sie darauf, dass alle Eigenschaften angeben, die ein Empfänger haben sollen, unabhängig davon, ob sie geändert haben, um zu verhindern, dass Sie versehentlich gelöscht wird.
Es folgen einige Regeln zum Festlegen der Eigenschaften der Empfänger in der Struktur ADRLIST:
Verwenden Sie PT_NULL nicht als einen Eigenschaftentyp aus. ModifyRecipients gibt einen Fehler zurück, wenn dieser Wert auftreten.
Verwenden Sie PT_ERROR nicht als einen Eigenschaftentyp aus. ModifyRecipients wird dieser Wert ignoriert.
Schließen Sie die PR_ROWID-Eigenschaft für alle Empfänger ein, wenn Sie die Kennzeichnung MODRECIP_REMOVE oder MODRECIP_MODIFY in ulFlags festlegen.
Schließen Sie die PR_ROWID-Eigenschaft für keinen der Empfänger ein, wenn Sie die MODRECIP_ADD-Kennzeichnung in ulFlags festlegen oder wenn Sie Null in ulFlags übergeben.
Wenn Sie entweder die PR_ADDRTYPE-Eigenschaft oder PR_EMAIL_ADDRESS-Eigenschaft für einen Empfänger einschließen und eine oder beide Eigenschaften mit dem Adresstyp und der Adresse des Empfängers inkonsistent sind, wie durch PR_ENTRYID identifiziert, die Ergebnisse nicht definiert sind. Das heißt, es gibt drei Möglichkeiten, abhängig vom Dienstanbieter:
Die Nachricht wird an die Adresse, die von den Eigenschaften PR_ADDRTYPE und PR_EMAIL_ADDRESS beschriebenen übermittelt werden.
Die Nachricht wird an den Empfänger durch PR_ENTRYIDidentifizierten übermittelt werden.
Die Nachricht wird aufgrund der Mehrdeutigkeit der Adressinformationen unzustellbar deklariert werden.
Verwenden Sie die Regeln für die Zuweisung in Verwalten von Arbeitsspeicher für ADRLIST und SRowSet Strukturen beschriebenen Speicherzuordnung für die Empfängerliste. ModifyRecipients Freigabe nicht die Struktur ADRLIST noch keines der Unterstrukturen frei. Die Struktur ADRLIST und jede SPropValue Struktur müssen separat mithilfe der Funktion MAPIAllocateBuffer so, dass jeweils einzeln freigegeben werden zugeordnet werden. Wenn die Methode zusätzlichen Speicherplatz für alle SPropValue Struktur erfordert, kann es die SPropValue -Struktur mit einer neuen ersetzen, die später mithilfe der MAPIFreeBufferfreigegeben werden können. SPropValue Originalstruktur sollten auch mithilfe der MAPIFreeBufferfreigegeben werden.
MFCMAPI-Referenz
Einen MFCMAP-Beispielcode finden Sie in der folgenden Tabelle.
| Datei | Funktion | Comment |
|---|---|---|
| MAPIABFunctions.cpp |
AddRecipient |
MFCMAPI (engl.) verwendet die IMessage::ModifyRecipients -Methode, um einen neuen Empfänger einer Nachricht hinzufügen. |