Implementierung des Control-Objekts
Gilt für: Outlook 2013 | Outlook 2016
Steuerelementobjekte oder Objekte, die die IMAPIControl : IUnknown-Schnittstelle unterstützen, werden von Anbietern implementiert, um einer Schaltfläche, die in einem MAPI-Dialogfeld angezeigt wird, Funktionalität hinzuzufügen. Steuerelementobjekte können nur für Schaltflächen implementiert werden.
IMAPIControl verfügt über drei Methoden: GetLastError, GetState und Activate.
MAPI ruft GetState auf, um zu bestimmen, ob die Schaltfläche deaktiviert werden soll. GetState wird in den folgenden Situationen aufgerufen:
Wenn das Dialogfeld, in dem die Schaltfläche angezeigt wird, zum ersten Mal angezeigt wird.
Wenn eine Anzeigetabellenbenachrichtigung für die Schaltfläche ausgegeben wird.
Legen Sie den Inhalt des lpulState-Parameters auf MAPI_DISABLED fest, wenn der Benutzer nicht mit der Schaltfläche interagieren kann, und MAPI_ENABLED, ob der Benutzer interagieren kann.
Wenn der Benutzer auf die Schaltfläche klickt, ruft MAPI Aktivieren auf. Aktivieren führt die Aufgabe aus, die der Schaltfläche zugeordnet wurde. Diese Aufgabe kann für Ihren Anbieter geeignet sein, z. B. das Anzeigen eines Dialogfelds oder das Aktualisieren einer Eigenschaft. Wenn die Aufgabe nicht erfolgreich ist, weil der Benutzer sie abgebrochen hat, geben Sie MAPI_E_USER_CANCEL zurück. Geben Sie für andere Fehlerursachen den entsprechenden Fehlerwert zurück.
Wenn die Aufgabe erfolgreich ist und sie mit einer Eigenschaftsänderung verknüpft ist, die sich in einem anderen Steuerelement im Dialogfeld widerspiegelt, rufen Sie ITableData::HrNotify auf. HrNotify wird aufgerufen, um eine Anzeigetabellenbenachrichtigung mit der eigenschaft PR_CONTROL_ID (PidTagControlId) der geänderten Eigenschaft in der TABLE_NOTIFICATION-Struktur auszustellen. Platzieren Sie den neuen Eigenschaftswert nicht in der -Struktur. geben Sie sie stattdessen zurück, wenn IMAPIProp::GetProps aufgerufen wird. Obwohl eine Anzeigetabellenbenachrichtigung in der Regel nicht verwendet werden kann, um ein Steuerelement zu deaktivieren oder zu aktivieren, kann es mit einer Schaltfläche verwendet werden. MAPI aktualisiert das geänderte Steuerelement, um auf die Benachrichtigung zu reagieren.
MAPI ruft die GetLastError-Methode des Steuerelements auf, wenn Activate einen anderen Fehler als MAPI_E_USER_CANCEL zurückgibt. Wenn GetLastError erweiterte Fehlerinformationen in die MAPIERROR-Struktur eingibt, die im Inhalt the_lppMAPIError_ Parameters zurückgegeben wird, zeigt MAPI diese für den Benutzer an.