Freigeben über


Schreiben von Formularservercode

Gilt für: Outlook 2013 | Outlook 2016

Sie können sich einen Formularserver wie folgt vorstellen:

  • Ein Win32-Programm, das eine Schnittstelle anzeigt und Windows-Nachrichten über die standardmäßigen Windows-Nachrichtenpumpenmechanismen verarbeitet.

  • Ein Objekt, das seine Klassenfactory bei OLE registriert und von OLE-Automatisierungsmethoden aktiviert wird.

  • Ein MAPI-Objekt, das den MAPI-Regeln für Interaktionen mit anderen MAPI-Komponenten folgt.

Ihr Code muss alle drei dieser allgemeinen Anforderungen gleichzeitig verarbeiten.

Ausführliche Informationen zum Registrieren der Klassenfactory Ihres Formularservers finden Sie im Abschnitt COM- und ActiveX-Objektdienste im Windows SDK. Die Verarbeitung von Windows-Meldungen und das Anzeigen einer Schnittstelle sind standardmäßige Windows-Programmiertechniken, die keine besonderen Anforderungen an MAPI-Formulare haben. Auch hier enthält die Windows SDK Details zur Windows-Programmierung. Dieses Dokument enthält das, was Sie wissen müssen, um die erforderlichen und optionalen MAPI-Formularschnittstellen so zu implementieren, dass sie den MAPI-Regeln für Interaktionen mit anderen MAPI-Komponenten folgen– in erster Linie dem MAPI-Formular-Manager und Messagingclientanwendungen.

Alle Schnittstellen, die Sie beim Implementieren von Formularservern verwenden können, werden direkt oder indirekt von der OLE-Basisklasse IUnknown abgeleitet. Dies bedeutet, dass alle Implementierungen dieser Schnittstellen über die Methoden QueryInterface, AddRef und Release verfügen müssen. Sie können sich viel Arbeit sparen, wenn Sie mehrere Vererbungen verwenden, um alle erforderlichen Schnittstellen in einer eigenen neuen Klasse zu implementieren, sodass alle von Ihnen verwendeten Schnittstellen eine einzelne Implementierung der erforderlichen IUnknown-Methoden gemeinsam nutzen können. Weitere Informationen finden Sie unter den Methoden IUnknown::AddRef, IUnknown::QueryInterface und IUnknown::Release . Es gibt keine besonderen Überlegungen in Bezug auf MAPI-Formularserver für diese Methoden.

Während nicht alle MAPI-Formularschnittstellen für alle Formularserver obligatorisch sind, sind die Methoden in einer bestimmten Schnittstelle obligatorisch. Wenn Sie also eine bestimmte Schnittstelle implementieren möchten, müssen Sie alle Methoden in der -Schnittstelle implementieren. Dies unterscheidet sich von der Situation bei einigen anderen MAPI-Komponenten, z. B. Nachrichtentransporten. Glücklicherweise sind die Methoden in den MAPI-Formularschnittstellen relativ einfach, sodass die Implementierung aller Methoden keine große Belastung für Entwickler darstellt.

Die MAPI-Formularschnittstellen sind unabhängig vom Typ des Entwicklungstools, das zum Erstellen eines Formularservers verwendet wird. Dadurch können Formulare mit verschiedenen Entwicklungstools erstellt werden. Die einzige Voraussetzung ist, dass alle Formularserver die erforderlichen MAPI-Formularschnittstellen unterstützen müssen.

Nicht alle MAPI-Schnittstellen, die sich auf Formulare beziehen, sind von allen Formularservern erforderlich. Mit den optionalen Schnittstellen können Sie einige erweiterte Formularfunktionen implementieren, die von den meisten Formularservern nicht benötigt werden. In der folgenden Tabelle sind die Schnittstellen aufgeführt, wozu sie dienen und ob Sie sie implementieren müssen.

Schnittstelle Beschreibung Status
IMAPIForm : IUnknown
Die primäre Schnittstelle, die Clients verwenden, um Formularserver zu laden, Formularverben auszuführen und Formularserver herunterzufahren. Dies ist auch die vom OLE IUnknown abgeleitete Schnittstelle, die verwendet wird, um andere OLE-Komponenten darüber zu informieren, welche Schnittstellen ein Formularobjekt implementiert. Erforderlich
IPersistMessage : IUnknown
Wird beim Laden von Nachrichten in und beim Speichern von Nachrichten aus Formularobjekten verwendet. Erforderlich
IMAPIFormAdviseSink : IUnknown
Wird von Formularobjekten verwendet, um nachrichtenclient-status nachzuverfolgen und herauszufinden, ob das Formularobjekt in der Lage ist, die nächste oder vorherige Nachricht in einem Ordner anzuzeigen. Optional
IClassFactory
Die OLE-Klassenfactoryschnittstelle, die von Formularobjekten für die Konformität mit dem OLE-Klassenfactorymechanismus verwendet wird. Erforderlich
IMAPIFormFactory : IUnknown
Wird verwendet, wenn ihr Formularserver mehrere Formulartypen unterstützt. In diesem Fall ermöglicht die IMAPIFormFactory-Schnittstelle Clientanwendungen den Zugriff auf mehrere IClassFactory-Schnittstellen (eine pro Formulartyp, den Ihr Formularserver unterstützt), die ihr Formularserver ebenfalls implementieren muss. Optional

Siehe auch

Entwickeln von MAPI-Formularservern