ADRPARM
Gilt für: Outlook 2013 | Outlook 2016
Beschreibt die Anzeige und das Verhalten des Dialogfelds "Allgemeine Adresse".
Wert | Beschreibung |
---|---|
Headerdatei |
Mapidefs.h |
typedef struct _ADRPARM
{
ULONG cbABContEntryID;
LPENTRYID lpABContEntryID;
ULONG ulFlags;
LPVOID lpReserved;
ULONG ulHelpContext;
LPSTR lpszHelpFileName;
LPFNABSDI lpfnABSDI;
LPFNDISMISS lpfnDismiss;
LPVOID lpvDismissContext;
LPSTR lpszCaption;
LPSTR lpszNewEntryTitle;
LPSTR lpszDestWellsTitle;
ULONG cDestFields;
ULONG nDestFieldFocus;
LPSTR FAR *lppszDestTitles;
ULONG FAR *lpulDestComps;
LPSRestriction lpContRestriction;
LPSRestriction lpHierRestriction;
} ADRPARM, FAR *LPADRPARM;
Members
cbABContEntryID
Anzahl der Bytes im Eintragsbezeichner, auf den lpABContEntryID verweist.
lpABContEntryID
Zeiger auf den Eintragsbezeichner des Containers, der die anfängliche Liste der Empfängeradressen bereitstellt, die im Adressdialogfeld angezeigt werden.
ulFlags
Bitmaske von Flags, die verschiedenen Optionen des Adressdialogfelds zugeordnet sind. Die folgenden Flags können festgelegt werden:
AB_RESOLVE
Aktivieren Sie die Auflösung aller Namen, nachdem das Adressdialogfeld geschlossen wurde. Wenn es mehrdeutige Einträge gibt, die sich aus dem Namensauflösungsprozess ergeben, wird ein Dialogfeld angezeigt, in dem der Benutzer um Hilfe beim Auflösen dieser Einträge aufgefordert wird. Durch Festlegen dieses Flags wird sichergestellt, dass alle von IAddrBook::Address zurückgegebenen Namen aufgelöst werden.
AB_SELECTONLY
Deaktivieren Sie die Erstellung einmaliger Adressen für eine Empfängerliste. Dieses Flag wird nur verwendet, wenn das Dialogfeld modal ist, wie durch das festgelegte DIALOG_MODAL Flag angegeben.
ADDRESS_ONE
Der Benutzer kann genau einen Empfänger anstelle mehrerer Empfänger aus einer Liste auswählen. Dieses Flag ist nur gültig, wenn cDestFields null ist und das Dialogfeld modal ist, wie durch das festgelegte DIALOG_MODAL-Flag angegeben.
DIALOG_MODAL
Bewirkt, dass die modale Version des Dialogfelds "Allgemeine Adresse" angezeigt wird. Entweder dieses Flag oder DIALOG_SDI sollte festgelegt werden. sie können nicht beide festgelegt werden.
DIALOG_OPTIONS
Bewirkt, dass die Schaltfläche Sendeoptionen im Dialogfeld angezeigt wird. Dieses Flag wird nur verwendet, wenn das Dialogfeld modal ist, wie durch das festgelegte DIALOG_MODAL Flag angegeben.
DIALOG_SDI
Bewirkt, dass die moduslose Version des Dialogfelds "Allgemeine Adresse" angezeigt wird. Entweder dieses Flag oder DIALOG_MODAL sollte festgelegt werden. sie können nicht beide festgelegt werden. Das DIALOG_SDI-Flag wird für Nicht-Outlook-Clients ignoriert, und die modale Version des Dialogfelds wird angezeigt. Daher sollte im lpulUIParam-Parameter von IAddrBook::Address kein Zeiger auf ein Handle erwartet werden.
lpReserved
Reserviert, muss null sein.
ulHelpContext
Gibt den Kontext in der Hilfe an, der zuerst angezeigt wird, wenn der Benutzer im Dialogfeld Adresse auf die Schaltfläche Hilfe klickt.
lpszHelpFileName
Zeiger auf den Namen einer Hilfedatei, die dem Dialogfeld "Adresse" zugeordnet wird. Das lpszHelpFileName-Element wird zusammen mit ulHelpContext verwendet, um die Windows WinHelp-Funktion aufzurufen.
lpfnABSDI
Zeiger auf eine MAPI-Funktion, die auf dem ACCELERATEABSDI-Prototyp oder NULL basiert. Dieser Member gilt nur für die moduslose Version des Dialogfelds, wie durch das festgelegte DIALOG_SDI-Flag angegeben. Clients, die eine ADRPARM-Struktur erstellen, die an IAddrBook::Address übergeben werden soll, müssen den lpfnABSDI-Member immer auf NULL festlegen. Wenn das DIALOG_SDI-Flag festgelegt ist, legt MAPI es vor der Rückgabe auf eine gültige Funktion fest. Clients rufen diese Funktion in ihrer Nachrichtenschleife auf, um sicherzustellen, dass Zugriffstasten im Adressbuchdialogfeld funktionieren. Wenn das Dialogfeld geschlossen wird und MAPI die Funktion aufruft, auf die vom lpfnDismiss-Member verwiesen wird, sollten Clients den Hook der ACCELERATEABSDI-Funktion aus ihrer Nachrichtenschleife aufheben.
lpfnDismiss
Zeiger auf eine Funktion, die auf dem DISMISSMODELESS-Prototyp oder NULL basiert. Dieser Member gilt nur für die moduslose Version des Dialogfelds, wie durch das festgelegte DIALOG_SDI-Flag angegeben. MAPI ruft die DISMISSMODELESS-Funktion auf, wenn der Benutzer das Dialogfeld für die moduslose Adresse schließt und einen Client informiert, der IAddrBook::Address aufruft, dass das Dialogfeld nicht mehr aktiv ist.
lpvDismissContext
Zeiger auf Kontextinformationen, die an die FUNKTION DISMISSMODELESS übergeben werden sollen, auf die der lpfnDismiss-Member zeigt. Dieser Member gilt nur für die moduslose Version des Dialogfelds, wie durch das festgelegte DIALOG_SDI-Flag angegeben.
lpszCaption
Zeiger auf Text, der als Titel für das Dialogfeld "Allgemeine Adresse" verwendet werden soll.
lpszNewEntryTitle
Zeiger auf Text, der als Schaltflächenbeschriftung für die Schaltfläche verwendet werden soll, die entweder das Dialogfeld Neuer Eintrag oder ein anderes Dialogfeld aufruft.
lpszDestWellsTitle
Zeiger auf Text, der als Titel für die Empfängertextfeld-Steuerelemente verwendet werden soll, die in der modalen Version des Dialogfelds "Allgemeine Adresse" angezeigt werden können. Dieses Element wird nicht für dialogfelder ohne Modus verwendet.
cDestFields
Anzahl der Empfängertextfeld-Steuerelemente in der modalen Version des Adressdialogfelds oder 0 (null), wenn das Dialogfeld moduslos ist. Das Dialogfeld "Adresse" ist nur dann zum Durchsuchen geöffnet, wenn die folgenden Bedingungen erfüllt sind:
Das cDestFields-Element ist auf 0 (null) festgelegt.
Das DIALOG_BOX-Flag ist festgelegt.
Das ADDRESS_ONE-Flag ist nicht festgelegt.
Das Festlegen von cDestFields auf 0XFFFFFFFF impliziert, dass MAPI die Standardanzahl von Empfängertextfeld-Steuerelementen erstellen sollte. In diesem Fall müssen die Elemente lppszDestTitles und lpulDestComps NULL sein.
nDestFieldFocus
Gibt das bestimmte Textfeld-Steuerelement an, das den anfänglichen Fokus haben soll, wenn die modale Version des Dialogfelds angezeigt wird. Dieser Wert muss zwischen 0 und dem Wert von cDestFields minus 1 sein.
lppszDestTitles
Zeiger auf ein Array von Bezeichnungen für Schaltflächen, die den einzelnen Textfeldsteuerelementen zugeordnet sind, die in der modalen Version des Adressdialogfelds angezeigt werden. Der Wert des cDestFields-Elements gibt die Anzahl der im Array enthaltenen Bezeichnungen an. Wenn der lppszDestTitles-Member NULL ist, verwendet die Address-Methode Standardtitel.
lpulDestComps
Zeiger auf ein Array von Empfängertypwerten, z. B. MAPI_TO, MAPI_CC und MAPI_BCC, das jedem Textfeldsteuerelement zugeordnet ist. Der Wert des CDestFields-Elements gibt die Anzahl der Empfängertypen an, die im Array enthalten sind. Die Werte, auf die von lpulDestComps verwiesen wird, können verwendet werden, um die eigenschaft PR_RECIPIENT_TYPE (PidTagRecipientType) jedes Empfängers festzulegen. Wenn der lpulDestComps-Member NULL ist, verwendet die Address-Methode Standardempfängertypen.
lpContRestriction
Zeiger auf eine SRestriction-Struktur , die den Typ der Adresseinträge einschränkt, die im Dialogfeld angezeigt werden können.
lpHierRestriction
Zeiger auf eine SRestriction-Struktur , die die Adressbuchcontainer einschränkt, die Adresseinträge bereitstellen können, die im Dialogfeld angezeigt werden sollen.
Hinweise
ADRPARM-Strukturen werden von Clients und Dienstanbietern verwendet, um die Darstellung und das Verhalten der MAPI-Dialogfelder für allgemeine Adressen zu steuern. Es gibt zwei Varianten des Adressdialogfelds: moduslos und modal. Einige der Member in der ADRPARM-Struktur gelten für beide Versionen des Dialogfelds, aber einige gelten nur für eine der beiden Versionen. In der folgenden Tabelle werden die Elemente einer ADRPARM-Struktur auf ihre Verwendung mit den allgemeinen Adressdialogfeldern verknüpft.
ADRPARM-Mitglied | Typ des Dialogfelds |
---|---|
cbABContEntryID und lpABContEntryID |
Modal und moduslos |
ulFlags |
Modal und moduslos |
lpReserved |
Modal und moduslos |
ulHelpContext und lpszHelpFileName |
Modal und moduslos |
lpfnABSDI |
Modeless |
lpfnDismiss und lpvDismissContext |
Modeless |
lpszCaption |
Modal und moduslos |
lpszNewEntryTitle |
Modal |
lpszDestWellsTitle, cDestFields, nDestFieldFocus, lppszDestTitles und lpulDestComps |
Modal |
lpContRestriction |
Modal und moduslos |
lpHierRestriction |
Modal und moduslos |
Das Dialogfeld ohne Modus ist eine schreibgeschützte Anzeige von Einträgen aus einem oder mehreren Adressbuchcontainern. Das Dialogfeld kann alle Einträge aus den ausgewählten Containern anzeigen oder auf die Einträge und Container beschränkt werden, die den kriterien entsprechen, die durch eine Einschränkung festgelegt wurden. Die Inhaltsbeschränkung, auf die von lpContRestriction verwiesen wird, kann die Typen der angezeigten Einträge einschränken, und die Hierarchieeinschränkung, auf die lpHierRestriction verweist, kann die Container einschränken, die die Einträge bereitstellen. Um den Aufrufer zu informieren, wenn das Dialogfeld geschlossen wird, ruft MAPI eine Funktion auf, die vom Aufrufer bereitgestellt wird, der mit dem DISMISSMODELESS-Prototyp übereinstimmt. Eine weitere Funktion, die dem ACCELERATEABSDI-Prototyp entspricht, wird von MAPI bereitgestellt und vom Aufrufer in der Windows-Nachrichtenschleife aufgerufen, um die Arbeit mit Tastenkombinationen zu erleichtern. Die moduslose Version des MapI-Adressdialogfelds kann angezeigt werden, wenn Clients IAddrBook::Address aufrufen oder Dienstanbieter IMAPISupport::Address aufrufen.
Das modale Dialogfeld ist eine Lese-/Schreibanzeige von Einträgen aus einem oder mehreren Containern. Der Inhalt kann auf die gleiche Weise wie die version ohne Modus durch Einschränkungen beeinflusst werden, die in den Membern lpContRestriction und lpHierRestriction festgelegt sind. Zusätzlich zum Listenfeld, in dem Containereinträge angezeigt werden, kann das modale Dialogfeld zwischen einem und drei Textfeld-Steuerelementen zum Speichern der vom Benutzer ausgewählten Einträge enthalten. Jedes Bearbeitungssteuerelement ist einem bestimmten Empfängertyp oder einer PR_RECIPIENT_TYPE Eigenschaft wie MAPI_TO zugeordnet. Das modale Adressdialogfeld kann durch eine der Address-Methoden oder angezeigt werden, wenn Clients IAddrBook::D etails aufrufen und Dienstanbieter IMAPISupport::D etails aufrufen.
Diese Abbildung enthält zwei Textfeldsteuerelemente, da das cDestFields-Element der ADRPARM-Struktur , das die Anzeige dieses Dialogfelds steuert, auf 2 festgelegt ist. Das erste Steuerelement hat den anfänglichen Fokus, da das nDestFieldFocus-Element auf 0 festgelegt ist.
Das lpszNewEntryTitle-Element verweist auf Text für eine Schaltflächenbezeichnung, die bei Auswahl ein zusätzliches Dialogfeld anzeigt. Wie in der Abbildung des modalen Dialogfelds gezeigt, hat die Schaltfläche in der Regel die Bezeichnung Neu , und das angezeigte Dialogfeld listet alle Adresstypen auf, die von einem der Adressbuchanbieter im Profil erstellt werden können. Clients bewirken, dass dieses Dialogfeld Neuer Eintrag angezeigt wird, indem IAddrBook::NewEntry aufgerufen wird und null für den cbEidNewEntryTpl-Parameter und NULL für den lpEidNewEntryTpl-Parameter übergeben wird, wenn der Benutzer die Schaltfläche auswählt. Die informationen, die in diesem Dialogfeld enthalten sind, stammen aus der einmaligen MAPI-Tabelle.
Jeder Eintrag in diesem Dialogfeld ist einer Vorlage für die Eingabe der Daten zugeordnet, die zum Erstellen einer Adresse des jeweiligen Typs erforderlich sind. Die meisten Adressbuchanbieter stellen eine Vorlage für jeden Typ von Adresseintrag bereit, den sie erstellen können. Wenn ein Benutzer eine Auswahl aus diesem Dialogfeld trifft, zeigt MAPI die entsprechende Vorlage an.
Die wichtigsten vier Bits des ulFlags-Elements der ADRPARM-Struktur enthalten eine Versionsnummer, die die Version der ADRPARM-Struktur angibt. Die aktuelle Version ist 0 (null) oder ADRPARM_HELP_CTX. Die aktuelle Implementierung von MAPI schlägt für jede Version der Struktur fehl, die nicht 0 (null) ist.
Zukünftige Versionen der Struktur können völlig anders sein; Sie unterstützen möglicherweise nicht die Versions-Null-Struktur. Die folgenden Makros werden zum Extrahieren der Versionsnummer aus dem ulFlags-Member und zum Kombinieren mit den definierten Flags bereitgestellt:
- GET_ADRPARM_VERSION (ulFlags)
- SET_ADRPARM_VERSION (ulFlags, ulVersion)
- ADRPARM_HELP_CTX