IMAPISupport::OpenEntry
Gilt für: Outlook 2013 | Outlook 2016
Öffnet ein -Objekt und gibt einen Schnittstellenzeiger für weiteren Zugriff zurück.
HRESULT OpenEntry(
ULONG cbEntryID,
LPENTRYID lpEntryID,
LPCIID lpInterface,
ULONG ulOpenFlags,
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 Objekt verwendet werden soll. Das Übergeben von NULL führt dazu, dass die Standardschnittstelle des Objekts zurückgegeben wird. 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.
ulOpenFlags
[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 Aufrufer geöffnet wird. Wenn der Aufrufer beispielsweise über Lese-/Schreibberechtigungen verfügt, sollte das Objekt als Lese-/Schreibzugriff geöffnet werden. Wenn der Aufrufer über schreibgeschützte Berechtigungen verfügt, sollte das Objekt schreibgeschützt geöffnet werden.
MAPI_DEFERRED_ERRORS
Ermöglicht openEntry die erfolgreiche Rückgabe, möglicherweise bevor der Aufrufer vollständig auf das Objekt zugreifen kann. Wenn auf das Objekt nicht zugegriffen werden kann, kann das Ausführen eines nachfolgenden Objektaufrufs zu einem Fehler führen.
MAPI_MODIFY
Fordert Lese-/Schreibberechtigungen an. Standardmäßig werden Objekte schreibgeschützt geöffnet, und Aufrufer sollten nicht unter der Annahme funktionieren, 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.
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 nicht über ausreichende 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 Adressbuchanbieter, der das Objekt enthält, nicht geöffnet ist.
Hinweise
Die IMAPISupport::OpenEntry-Methode wird für alle Dienstanbieterunterstützungsobjekte implementiert. Dienstanbieter rufen IMAPISupport::OpenEntry auf, um einen Zeiger auf eine Schnittstelle abzurufen, die für den Zugriff auf ein bestimmtes Objekt verwendet werden kann.
Hinweise für Aufrufer
Rufen Sie IMAPISupport::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 stattdessen IMsgStore::OpenEntry auf. Wenn Sie wissen, dass Sie einen Adressbuchcontainer, einen Messagingbenutzer oder eine Verteilerliste öffnen, rufen Sie IAddrBook::OpenEntry auf. Diese spezifischeren Methoden sind schneller als IMAPISupport::OpenEntry.
IMAPISupport::OpenEntry öffnet alle Objekte als schreibgeschützt, es sei denn, Sie legen das MAPI_MODIFY- oder MAPI_BEST_ACCESS-Flag im ulFlags-Parameter fest und Ihre Berechtigungen sind ausreichend. Das Festlegen einer dieser Flags garantiert keine bestimmte Art von Zugriff. Welche Berechtigungen Ihnen gewährt werden, hängt von Ihrer Zugriffsebene, dem Objekt und dem Dienstanbieter ab, dem das Objekt gehört. Um die Zugriffsebene des geöffneten Objekts zu bestimmen, rufen Sie dessen PR_ACCESS_LEVEL -Eigenschaft (PidTagAccessLevel) ab.
Überprüfen Sie den im Parameter lpulObjType zurückgegebenen Wert, um festzustellen, ob der zurückgegebene Objekttyp den Erwartungen entspricht. Wenn der Objekttyp erwartungsgemäß ist, wandeln Sie den Zeiger vom lppUnk-Parameter in einen Zeiger des entsprechenden Typs um. Wenn Sie beispielsweise einen Ordner öffnen, wandeln Sie lppUnk in einen Zeiger vom Typ LPMAPIFOLDER um.