Als Hostadressbuchanbieter fungieren
Gilt für: Outlook 2013 | Outlook 2016
Ein Hostanbieter ist ein Adressbuchanbieter, der Empfänger von anderen Anbietern in seine Container einschließt und sich auf die Implementierung der Empfänger durch die anderen Anbieter stützt, um deren Wartung teilweise zu steuern. Ein Hostanbieter verwendet die Vorlagenbezeichner dieser ausländischen Empfänger, um die Daten für diese Empfänger an Code im ausländischen Anbieter zu binden. Dieser Bindungsprozess wird initiiert, wenn Ihr Anbieter die eigenschaft PR_TEMPLATEID (PidTagTemplateid) eines Empfängers abruft und in einem Aufruf an IMAPISupport::OpenTemplateID übergibt.
Wenn Ihr Anbieter IMAPISupport::OpenTemplateID aufruft, gleicht MAPI die MAPIUID innerhalb des Vorlagenbezeichners mit einer mapiuid ab, die von einem Anbieter registriert wurde, und ruft die IABLogon::OpenTemplateID-Methode des Anbieters auf. Der Fremdanbieter gibt möglicherweise einen Zeiger auf das Eigenschaftsobjekt Ihres Anbieters, auf seine eigene Eigenschaftsobjektimplementierung oder auf eine Implementierung zurück, die das Objekt Ihres Anbieters umschließt. Der zurückgegebene Zeiger wird im Inhalt des lppMAPIPropNew-Parameters platziert.
Ihr Anbieter kann auswählen, ob IMAPISupport::OpenTemplateID mit festgelegtem FILL_ENTRY Flag aufgerufen werden soll. Legen Sie dieses Flag fest, wenn der Empfänger erstellt wird oder wenn eine lange Zeit vergangen ist, seit Ihr Anbieter die Eigenschaften des Empfängers aktualisiert hat. Eine häufige Verwendung des FILL_ENTRY-Flags besteht darin, einen Empfänger in Ihrem Anbieter mit dem Original zu synchronisieren. Die Implementierung dieser Art von Synchronisierungszeitplan verbessert die Leistung.
So halten Sie einen ausländischen Empfänger synchronisiert
Bestimmen Sie ein geeignetes Intervall für regelmäßige Updates.
Zeitstempel für jeden Aufruf von IMAPISupport::OpenTemplateID.
Bewerten Sie, ob es erforderlich ist, ein vollständiges Update durchzuführen, basierend auf der Zeitspanne, die seit dem letzten Aufruf abgelaufen ist. Wenn ein vollständiges Update erforderlich ist, rufen Sie IMAPISupport::OpenTemplateID mit dem flag FILL_ENTRY auf. Wenn dies nicht erforderlich ist, legen Sie das Flag nicht für den Aufruf fest.
Wenn ein Client eine Anforderung für eine der Eigenschaften des kopierten Empfängers sendet, kann Ihr Anbieter auswählen, ob die Anforderung selbst verarbeitet oder der vom ausländischen Anbieter bereitgestellte Code verwendet werden soll. Ihr Anbieter kann davon ausgehen, dass der ausländische Anbieter die meisten, wenn nicht alle Aufrufe von IMAPIProp abfängt , mit Ausnahme von IMAPIProp::OpenProperty. Ein Aufruf von OpenProperty , der die eigenschaft PR_DETAILS_TABLE (PidTagDetailsTable) anfordert, wird immer an Ihren Anbieter weitergeleitet.
So greifen Sie auf Vorlagenbezeichnercode zu
Öffnen Sie den Empfänger, und rufen Sie seine IMAPIProp::GetProps-Methode auf, um die eigenschaft PR_TEMPLATEID (PidTagTemplateid) abzurufen. Wenn GetProps fehlschlägt, weil PR_TEMPLATEID nicht verfügbar ist, unterstützt der ausländische Anbieter keinen Vorlagenbezeichner und den zugehörigen Code für diesen Empfänger. Ihr Anbieter muss seine Implementierung des Empfängers für alle Wartungen verwenden.
Wenn der Vorlagenbezeichner von GetProps zurückgegeben wird, übergeben Sie ihn und einen Zeiger auf die IMAPIProp-Implementierung des Empfängers in einem Aufruf der IMAPISupport::OpenTemplateID-Methode . Legen Sie das FILL_ENTRY-Flag fest, wenn die meisten oder alle Eigenschaften des Empfängers aktualisiert werden müssen, z. B. zum Zeitpunkt der Erstellung oder wenn sie für eine Weile nicht aktualisiert wurden.
Wenn OpenTemplateID die IMAPIProp-Implementierung des fremden Anbieters zurückgibt, geben Sie einen Zeiger auf diese Implementierung an den Client zurück.
Wenn OpenTemplateID keine Implementierung zurückgibt, in der Regel, weil sich der fremde Anbieter nicht im Profil befindet, geben Sie einen Zeiger auf die IMAPIProp-Implementierung Ihres Anbieters an den Client zurück. Der Client sollte in der Lage sein, mit den Eigenschaften des Objekts mithilfe einer der beiden Schnittstellen zu arbeiten.