Freigeben über


IMAPISupport::OpenTemplateID

Gilt für: Outlook 2013 | Outlook 2016

Öffnet einen Empfängereintrag in einem ausländischen Adressbuchanbieter.

HRESULT OpenTemplateID(
ULONG cbTemplateID,
LPENTRYID lpTemplateID,
ULONG ulTemplateFlags,
LPMAPIPROP lpMAPIPropData,
LPCIID lpInterface,
LPMAPIPROP FAR * lppMAPIPropNew,
LPMAPIPROP lpMAPIPropSibling
);

Parameter

cbTemplateID

[in] Die Byteanzahl im Vorlagenbezeichner, auf den lpTemplateID verweist.

lpTemplateID

[in] Ein Zeiger auf den Vorlagenbezeichner PR_TEMPLATEID Eigenschaft (PidTagTemplateid) des zu öffnenden Empfängereintrags.

ulTemplateFlags

[in] Eine Bitmaske von Flags, mit denen beschrieben wird, wie der Eintrag geöffnet wird. Das folgende Flag kann festgelegt werden:

FILL_ENTRY

Ein neuer Eintrag wird erstellt. Wenn der fremde Anbieter den nachfolgenden IABLogon::OpenTemplateID-Aufruf von MAPI empfängt, kann er steuern, wie der Eintrag erstellt wird, indem er Eigenschaften ändert, auf die der lpMAPIPropData-Parameter verweist, oder indem eine bestimmte Schnittstellenimplementierung in lppMAPIPropNew zurückgegeben wird, um zu steuern, wie Eigenschaften für den neuen Eintrag festgelegt werden.

lpMAPIPropData

[in] Ein Zeiger auf die Schnittstellenimplementierung, die der Aufrufer für den Zugriff auf den Eintrag verwendet. Dies ist die Implementierung, die der fremde Anbieter mit seiner eigenen Implementierung umschließen und im lppMAPIPropNew-Parameter zurückgeben kann. Der lpMAPIPropData-Parameter muss auf eine Lese-/Schreibschnittstellenimplementierung verweisen, die von IMAPIProp abgeleitet wird: IUnknown und unterstützt die im lpInterface-Parameter angeforderte Schnittstelle.

lpInterface

[in] Ein Zeiger auf den Schnittstellenbezeichner (Interface Identifier, IID), der die Schnittstelle darstellt, die für den Zugriff auf den Eintrag verwendet werden soll. Der Parameter lppMAPIPropNew verweist auf eine Schnittstelle des von lpInterface angegebenen Typs. Die Übergabe von NULL gibt die Standardschnittstelle für einen Messagingbenutzer zurück, IID_IMailUser.

lppMAPIPropNew

[out] Ein Zeiger auf die Schnittstellenimplementierung, die der ausländische Anbieter für den Zugriff auf den Eintrag bereitstellt.

lpMAPIPropSibling

Reserviert; muss NULL sein.

Rückgabewert

S_OK

Der Bindungsprozess war erfolgreich.

MAPI_E_UNKNOWN_ENTRYID

Der Fremdadressbuchanbieter ist nicht vorhanden.

Hinweise

Die IMAPISupport::OpenTemplateID-Methode wird nur für Adressbuchanbieterunterstützungsobjekte implementiert. OpenTemplateID wird nur von Adressbuchanbietern aufgerufen, die als Hosts für Einträge fungieren können, die zu anderen Adressbuchanbietern gehören, auch als ausländische Anbieter bezeichnet. Hostanbieter rufen OpenTemplateID auf, um einen fremden Eintrag zu öffnen, der auftritt, wenn Daten im Hostanbieter an Code im ausländischen Anbieter gebunden sind.

Hinweise für Aufrufer

Rufen Sie OpenTemplateID nur auf, wenn Sie die Speicherung von Einträgen mit Vorlagenbezeichnern von ausländischen Adressbuchanbietern unterstützen. Diese Unterstützung stellt zusätzliche Anforderungen an Ihre IABContainer::CreateEntry - und IABLogon::OpenEntry-Implementierungen . Weitere Informationen finden Sie in den Beschreibungen dieser Methoden und in der Funktion als Hostadressbuchanbieter.

Wenn der OpenTemplateID-Aufruf als gebundene Schnittstelle dieselbe Eigenschaftsobjektimplementierung zurückgibt, die Sie übergeben haben, können Sie den Verweis auf Ihr Eigenschaftsobjekt freigeben. Dies liegt daran, dass der fremde Anbieter die AddRef-Methode des Objekts aufgerufen hat, um seinen eigenen Verweis beizubehalten. Wenn der Fremdanbieter keinen Verweis auf das Eigenschaftsobjekt beibehalten muss, gibt OpenTemplateID das ungebundene Eigenschaftsobjekt zurück.

Wenn OpenTemplateID mit MAPI_E_UNKNOWN_ENTRYID fehlschlägt, versuchen Sie, den Vorgang fortzusetzen, indem Sie den Eintrag als schreibgeschützt behandeln.

Siehe auch

IABLogon::OpenTemplateID

IPropData: IMAPIProp

PidTagTemplateid (kanonische Eigenschaft)

IMAPISupport: IUnknown