Freigeben über


IABLogon::OpenEntry

Gilt für: Outlook 2013 | Outlook 2016

Öffnet einen Container, einen Messagingbenutzer oder eine Verteilerliste und gibt einen Zeiger auf eine Schnittstellenimplementierung zurück, um weiteren Zugriff zu ermöglichen.

HRESULT OpenEntry(
  ULONG cbEntryID,
  LPENTRYID lpEntryID,
  LPCIID lpInterface,
  ULONG ulFlags,
  ULONG FAR * lpulObjType,
  LPUNKNOWN FAR * lppUnk
);

Parameter

cbEntryID

[in] Die Byteanzahl im Eintragsbezeichner, auf die der lpEntryID-Parameter verweist.

lpEntryID

[in] Ein Zeiger auf den Eintragsbezeichner des zu öffnenden Containers, Messagingbenutzers oder Verteilerlistens.

lpInterface

[in] Ein Zeiger auf den Schnittstellenbezeichner (Interface Identifier, IID), der die Schnittstelle darstellt, die für den Zugriff auf das geöffnete Objekt verwendet werden soll. Das Übergeben von NULL gibt den Bezeichner für die Standardschnittstelle des Objekts zurück. Für Container ist die Standardschnittstelle IABContainer: IMAPIContainer. Die Standardschnittstellen für Adressbuchobjekte sind IDistList : IMAPIContainer für eine Verteilerliste und IMailUser : IMAPIProp für einen Messagingbenutzer.

ulFlags

[in] Eine Bitmaske von Flags, die steuert, wie das Objekt geöffnet wird. Die folgenden Flags können festgelegt werden:

MAPI_BEST_ACCESS

Fordert an, dass das Objekt mit den maximal zulässigen Netzwerkberechtigungen für den Benutzer und dem maximalen Clientanwendungszugriff geöffnet wird. Wenn der Client beispielsweise über Lese-/Schreibberechtigungen verfügt, sollte das Objekt mit Lese-/Schreibberechtigung geöffnet werden. Wenn der Client schreibgeschützt ist, sollte das Objekt mit schreibgeschützter Berechtigung geöffnet werden.

MAPI_DEFERRED_ERRORS

Ermöglicht es der OpenEntry-Methode , erfolgreich zurückzugeben, möglicherweise bevor der aufrufende Client vollständig auf das Objekt zugegriffen hat. Wenn nicht auf das Objekt zugegriffen wird, kann durch einen nachfolgenden Objektaufruf ein Fehler ausgelöst werden.

MAPI_MODIFY

Fordert Lese-/Schreibberechtigungen an. Standardmäßig werden Objekte mit schreibgeschütztem Zugriff geöffnet, und Clients sollten nicht davon ausgehen, dass lese-/schreibberechtigungen erteilt wurden.

lpulObjType

[out] Ein Zeiger auf den Typ des geöffneten Objekts.

lppUnk

[out] Ein Zeiger auf einen Zeiger auf das geöffnete Objekt.

Hinweise

S_OK

Das Objekt wurde erfolgreich geöffnet.

MAPI_E_NO_ACCESS

Entweder verfügt der Benutzer über unzureichende Berechtigungen zum Öffnen des Objekts, oder es wurde versucht, ein schreibgeschütztes Objekt mit Lese-/Schreibberechtigung zu öffnen.

MAPI_E_NOT_FOUND

Der durch lpEntryID angegebene Eintragsbezeichner stellt kein Objekt dar.

MAPI_E_UNKNOWN_ENTRYID

Der Eintragsbezeichner im lpEntryID-Parameter weist kein format auf, das vom Adressbuchanbieter erkannt wird.

MAPI ruft die OpenEntry-Methode auf, um einen Container, einen Messagingbenutzer oder eine Verteilerliste zu öffnen.

Hinweise für Implementierer

Bevor MAPI Ihre OpenEntry-Methode aufruft, bestimmt sie, dass der Eintragsbezeichner im lpEntryID-Parameter Zu Ihnen und nicht zu einem anderen Anbieter gehört. MapI vergleicht dazu die MAPIUID-Struktur im Eintragsbezeichner mit der MAPIUID , die Sie durch Aufrufen der IMAPISupport::SetProviderUID-Methode beim Start registriert haben.

Öffnen Sie das Objekt als schreibgeschützt, es sei denn, das flag MAPI_MODIFY oder MAPI_BEST_ACCESS ist im ulFlags-Parameter festgelegt. Wenn Sie keine Änderung für das angeforderte Objekt zulassen, öffnen Sie das Objekt überhaupt nicht, und geben Sie MAPI_E_NO_ACCESS zurück.

Wenn MAPI NULL für lpEntryID übergibt, öffnen Sie den Stammcontainer in Ihrer Containerhierarchie.

Das Objekt, zu dem Sie aufgefordert werden, zu öffnen, kann ein Objekt sein, das von einem anderen Anbieter kopiert wurde. In diesem Fall wird die eigenschaft PR_TEMPLATEID (PidTagTemplateid) unterstützt. Wenn das Objekt diese Eigenschaft unterstützt, rufen Sie die IMAPISupport::OpenTemplateID-Methode auf, um eine Bindung an Code für diesen Eintrag im fremden Anbieter zu erstellen. Übergeben Sie dabei PR_TEMPLATEID im lpTemplateID-Parameter und 0 im ulTemplateFlags-Parameter . IMAPISupport::OpenTemplateID übergibt diese Informationen in einem Aufruf der IABLogon::OpenTemplateID-Methode des ausländischen Anbieters an den ausländischen Anbieter. Wenn IMAPISupport::OpenTemplateID einen Fehler auslöst, normalerweise weil der ausländische Anbieter nicht verfügbar ist oder nicht im Profil enthalten ist, versuchen Sie, den Vorgang fortzusetzen, indem Sie den ungebundenen Eintrag als schreibgeschützt behandeln. Weitere Informationen zum Öffnen von Fremdadressbucheinträgen finden Sie unter Als Hostadressbuchanbieter fungieren.

Siehe auch

IABLogon : IUnknown