IMsgStore::OpenEntry
Hace referencia a: Outlook 2013 | Outlook 2016
Abre una carpeta o un mensaje y devuelve un puntero de interfaz para obtener más acceso.
HRESULT OpenEntry(
ULONG cbEntryID,
LPENTRYID lpEntryID,
LPCIID lpInterface,
ULONG ulFlags,
ULONG FAR * lpulObjType,
LPUNKNOWN FAR * lppUnk
);
Parameters
cbEntryID
[in] Recuento de bytes en el identificador de entrada al que apunta el parámetro lpEntryID.
lpEntryID
[in] Puntero al identificador de entrada del objeto que se va a abrir o NULL. Si lpEntryID está establecido en NULL, OpenEntry abre la carpeta raíz del almacén de mensajes.
lpInterface
[in] Puntero al identificador de interfaz (IID) que representa la interfaz que se va a usar para acceder al objeto abierto. Al pasar NULL, se devuelve la interfaz estándar del objeto (IMAPIFolder para carpetas y IMessage para mensajes).
ulFlags
[in] Máscara de bits de marcas que controla cómo se abre el objeto. Se pueden usar las siguientes marcas:
MAPI_BEST_ACCESS
Solicita que el objeto se abra con los permisos de red máximos permitidos para el usuario y el acceso máximo a la aplicación cliente. Por ejemplo, si el cliente tiene permiso de lectura y escritura, el objeto debe abrirse mediante el permiso de lectura y escritura; Si el cliente tiene permiso de solo lectura, el objeto debe abrirse mediante el permiso de solo lectura.
MAPI_DEFERRED_ERRORS
Permite que OpenEntry devuelva correctamente, posiblemente antes de que el objeto esté totalmente disponible para el cliente que realiza la llamada. Si el objeto no está disponible, la realización de una llamada de objeto posterior puede generar un error.
MAPI_MODIFY
Solicita permiso de lectura y escritura. De forma predeterminada, los objetos se abren con permiso de solo lectura y los clientes no deben funcionar en la suposición de que se concede el permiso de lectura y escritura.
lpulObjType
[out] Puntero al tipo del objeto abierto.
lppUnk
[out] Puntero a un puntero al objeto abierto.
Valor devuelto
S_OK
La llamada se ha realizado correctamente y devuelva el valor esperado o los valores.
MAPI_E_NO_ACCESS
Se intentó modificar un objeto de solo lectura o acceder a un objeto para el que el usuario no tiene permisos suficientes.
MAPI_NO_CACHE
Cuando se abre un almacén en modo almacenado en caché, un cliente o proveedor de servicios puede llamar a IMsgStore::OpenEntry, estableciendo la marca MAPI_NO_CACHE para abrir un elemento o una carpeta en el almacén remoto. Si abre el almacén de mensajes con la marca MDB_ONLINE en el servidor remoto, no es necesario usar la marca de MAPI_NO_CACHE.
Comentarios
El método IMsgStore::OpenEntry abre una carpeta o mensaje y devuelve un puntero a una interfaz que se puede usar para obtener más acceso.
Importante
Al abrir entradas de carpeta en un almacén público, como carpetas y mensajes, use IMsgStore::OpenEntry en lugar de IMAPISession::OpenEntry. Esto garantiza que las carpetas públicas funcionen correctamente cuando se definen varias cuentas de Exchange en un perfil.
Notas para los llamadores
Las carpetas y los mensajes se abren automáticamente con permiso de solo lectura, a menos que establezca la marca MAPI_MODIFY o MAPI_BEST_ACCESS en el parámetro ulFlags . Establecer una de estas marcas no garantiza un tipo determinado de permiso; Los permisos que se le conceden dependen del proveedor del almacén de mensajes, el nivel de acceso y el objeto . Para determinar el nivel de acceso del objeto abierto, recupere su propiedad PR_ACCESS_LEVEL (PidTagAccessLevel).
Aunque IMsgStore::OpenEntry se puede usar para abrir cualquier carpeta o mensaje, normalmente es más rápido usar el método IMAPIContainer::OpenEntry si tiene acceso a la carpeta primaria de la carpeta o mensaje que se va a abrir.
Compruebe el valor devuelto en el parámetro lpulObjType para determinar si el tipo de objeto devuelto es el esperado. Si el tipo de objeto no es el tipo esperado, convierta el puntero del parámetro lppUnk en un puntero del tipo adecuado. Por ejemplo, si abre una carpeta, convierta lppUnk en un puntero de tipo LPMAPIFOLDER.
Referencia de MFCMAPI
Para obtener un ejemplo de código de MFCMAPI, vea la siguiente tabla.
Archivo | Función | Comment |
---|---|---|
MAPIFunctions.cpp |
CallOpenEntry |
MFCMAPI usa el método IMsgStore::OpenEntry para abrir el objeto asociado a un identificador de entrada. |