Freigeben über


IMAPISession::OpenEntry

Gilt für: Outlook 2013 | Outlook 2016

Öffnet ein -Objekt und gibt einen Schnittstellenzeiger für zusätzlichen Zugriff zurück.

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 Objekts.

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 die Standardschnittstelle des Objekts zurück. Wenn das zu öffnende Objekt beispielsweise eine Nachricht ist, ist die Standardschnittstelle IMessage; für Ordner ist es IMAPIFolder. Die Standardschnittstellen für Adressbuchobjekte sind IDistList für eine Verteilerliste und IMailUser für einen Messagingbenutzer.

ulFlags

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

MAPI_BEST_ACCESS

Fordert an, dass das Objekt mithilfe der maximal zulässigen Netzwerkberechtigungen für den Benutzer und des maximalen Clientanwendungszugriffs 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_CACHE_OK

Verwenden Sie alle Mittel, einschließlich Offlineadressbüchern, um die Namensauflösung durchzuführen.

MAPI_CACHE_ONLY

Verwenden Sie nur das Offlineadressbuch, um die Namensauflösung durchzuführen. Sie können dieses Flag beispielsweise verwenden, um einer Clientanwendung das Öffnen der globalen Adressliste (GAL) im zwischengespeicherten Austauschmodus und den Zugriff auf einen Eintrag in diesem Adressbuch aus dem Cache zu ermöglichen, ohne Datenverkehr zwischen Client und Server zu erzeugen. Dieses Flag wird nur vom Exchange-Adressbuchanbieter unterstützt.

MAPI_DEFERRED_ERRORS

Ermöglicht openEntry die erfolgreiche Rückgabe, möglicherweise bevor das Objekt vollständig für den aufrufenden Client verfügbar ist. Wenn das Objekt nicht verfügbar ist, kann das Ausführen eines nachfolgenden Objektaufrufs zu einem Fehler führen.

MAPI_MODIFY

Fordert Lese-/Schreibberechtigungen an. Standardmäßig werden Objekte mit schreibgeschützter Berechtigung geöffnet, und Clients sollten nicht unter der Annahme funktionieren, dass Lese-/Schreibberechtigungen erteilt werden.

MAPI_NO_CACHE

Verwenden Sie nicht das Offlineadressbuch, um die Namensauflösung durchzuführen. Dieses Flag wird nur vom Exchange-Adressbuchanbieter unterstützt.

SHOW_SOFT_DELETES

Elemente anzeigen, die derzeit als vorläufig gelöscht markiert sind (d. a. in der Aufbewahrungszeitphase für gelöschte Elemente).

lpulObjType

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

lppUnk

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

Rückgabewert

S_OK

Das Objekt wurde erfolgreich geöffnet.

MAPI_E_NO_ACCESS

Es wurde versucht, ein schreibgeschütztes Objekt zu ändern, oder es wurde versucht, auf ein Objekt zuzugreifen, für das der Benutzer über unzureichende Berechtigungen verfügt.

MAPI_E_NOT_FOUND

Dem Eintragsbezeichner, der im lpEntryID-Parameter übergeben wird, ist kein Objekt zugeordnet.

MAPI_E_UNKNOWN_ENTRYID

Der im lpEntryID-Parameter übergebene Eintragsbezeichner weist ein nicht erkennbares Format auf. Dieser Wert wird in der Regel zurückgegeben, wenn der Dienstanbieter, der das Objekt enthält, nicht geöffnet ist.

Hinweise

Die IMAPISession::OpenEntry-Methode öffnet einen Nachrichtenspeicher oder ein Adressbuchobjekt und gibt einen Zeiger auf eine Schnittstelle zurück, die für den Zugriff auf das Objekt verwendet werden kann.

Hinweise für Aufrufer

Wichtig

Verwenden Sie beim Öffnen von Ordnereinträgen in einem öffentlichen Speicher, z. B. Ordner und Nachrichten, IMsgStore::OpenEntry anstelle von IMAPISession::OpenEntry. Dadurch wird sichergestellt, dass öffentliche Ordner ordnungsgemäß funktionieren, wenn mehrere Exchange-Konten in einem Profil definiert sind.

Rufen Sie IMAPISession::OpenEntry nur auf, wenn Sie nicht wissen, welche Art von Objekt Sie öffnen. Wenn Sie wissen, dass Sie einen Ordner oder eine Nachricht öffnen, rufen Sie IMsgStore::OpenEntry auf. Wenn Sie wissen, dass Sie einen Adressbuchcontainer, einen Nachrichtenbenutzer oder eine Verteilerliste öffnen, rufen Sie IAddrBook::OpenEntry auf. Diese spezifischeren Methoden sind schneller als IMAPISession::OpenEntry.

MAPI öffnet alle Objekte mit schreibgeschützter Berechtigung, es sei denn, Sie legen das MAPI_MODIFY- oder MAPI_BEST_ACCESS-Flag im ulFlags-Parameter fest. Das Festlegen einer dieser Flags garantiert keine bestimmte Art von Zugriff. Die gewährten Berechtigungen hängen vom Dienstanbieter, der Zugriffsebene und dem Objekt ab. Um die Zugriffsebene des geöffneten Objekts zu bestimmen, rufen Sie dessen PR_ACCESS_LEVEL -Eigenschaft (PidTagAccessLevel) ab.

Das Aufrufen von IMAPISession::OpenEntry und festlegen, dass lpEntryID auf den Eintragsbezeichner eines Nachrichtenspeichers verweist, entspricht dem Aufrufen der IMAPISession::OpenMsgStore-Methode mit festgelegtem MDB_NO_DIALOG Flag. Die Flageinstellungen sind ebenfalls gleichwertig, mit der Ausnahme, dass Sie zum Anfordern von Lese-/Schreibberechtigungen mit OpenMsgStore das MDB_WRITE-Flag anstelle von MAPI_MODIFY festlegen müssen.

Überprüfen Sie den im Parameter lpulObjType zurückgegebenen Wert, um zu ermitteln, ob der zurückgegebene Objekttyp den Erwartungen entspricht. Wenn der Objekttyp nicht der typ ist, den Sie erwartet haben, wandeln Sie den Zeiger vom Parameter lppUnk in einen Zeiger des entsprechenden Typs um. Wenn Sie beispielsweise einen Ordner öffnen, wandeln Sie lppUnk in einen Zeiger vom Typ LPMAPIFOLDER um.

MFCMAPI-Referenz

Einen MFCMAP-Beispielcode finden Sie in der folgenden Tabelle.

Datei Funktion Kommentar
MAPIFunctions.cpp
CallOpenEntry
MFCMAPI verwendet die IMAPISession::OpenEntry-Methode , um ein Objekt zu öffnen.

Siehe auch

IAddrBook::OpenEntry

IDistList : IMAPIContainer

IMailUser : IMAPIProp

IMAPIFolder : IMAPIContainer

IMAPISession::OpenMsgStore

IMessage: IMAPIProp

IMsgStore::OpenEntry

IMAPISession : IUnknown

MFCMAPI (engl.) als ein Codebeispiel