IABLogon::OpenEntry
Hace referencia a: Outlook 2013 | Outlook 2016
Abre un contenedor, un usuario de mensajería o una lista de distribución y devuelve un puntero a una implementación de interfaz para proporcionar 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 contenedor, usuario de mensajería o lista de distribución que se va a abrir.
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 el identificador de la interfaz estándar del objeto. Para los contenedores, la interfaz estándar es IABContainer : IMAPIContainer. Las interfaces estándar para los objetos de libreta de direcciones son IDistList: IMAPIContainer para una lista de distribución y IMailUser : IMAPIProp para un usuario de mensajería.
ulFlags
[in] Máscara de bits de marcas que controla cómo se abre el objeto. Se pueden establecer 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 con permiso de lectura y escritura; si el cliente tiene permiso de solo lectura, el objeto debe abrirse con permiso de solo lectura.
MAPI_DEFERRED_ERRORS
Permite que el método OpenEntry devuelva correctamente, posiblemente antes de que el cliente que realiza la llamada tenga acceso completo al objeto. Si no se tiene acceso al objeto, realizar 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 acceso de solo lectura y los clientes no deben suponer que se ha concedido el permiso de lectura y escritura.
lpulObjType
[out] Puntero al tipo del objeto abierto.
lppUnk
[out] Puntero a un puntero al objeto abierto.
Comentarios
S_OK
El objeto se abrió correctamente.
MAPI_E_NO_ACCESS
El usuario no tiene permisos suficientes para abrir el objeto o se intentó abrir un objeto de solo lectura con permiso de lectura y escritura.
MAPI_E_NOT_FOUND
El identificador de entrada especificado por lpEntryID no representa un objeto.
MAPI_E_UNKNOWN_ENTRYID
El identificador de entrada en el parámetro lpEntryID no es de un formato reconocido por el proveedor de libreta de direcciones.
MAPI llama al método OpenEntry para abrir un contenedor, un usuario de mensajería o una lista de distribución.
Notas a los implementadores
Antes de que MAPI llame al método OpenEntry , determina que el identificador de entrada del parámetro lpEntryID pertenece a usted y no a otro proveedor. MAPI hace esto haciendo coincidir la estructura MAPIUID en el identificador de entrada con el MAPIUID que registró llamando al método IMAPISupport::SetProviderUID al inicio.
Abra el objeto como de solo lectura, a menos que la marca MAPI_MODIFY o MAPI_BEST_ACCESS esté establecida en el parámetro ulFlags . Si no permite la modificación del objeto solicitado, no abra el objeto en absoluto y devuelva MAPI_E_NO_ACCESS.
Si MAPI pasa NULL para lpEntryID, abra el contenedor raíz en la jerarquía de contenedores.
El objeto que se le pide que abra puede ser un objeto copiado de otro proveedor. En este caso, admitirá la propiedad PR_TEMPLATEID (PidTagTemplateid). Si el objeto admite esta propiedad, llame al método IMAPISupport::OpenTemplateID para enlazar al código de esta entrada en el proveedor externo, pasando PR_TEMPLATEID en el parámetro lpTemplateID y 0 en el parámetro ulTemplateFlags . IMAPISupport::OpenTemplateID pasa esta información al proveedor externo en una llamada al método IABLogon::OpenTemplateID del proveedor externo. Si IMAPISupport::OpenTemplateID genera un error, normalmente porque el proveedor externo no está disponible o no está incluido en el perfil, intente continuar tratando la entrada sin enlazar como de solo lectura. Para obtener más información sobre cómo abrir entradas de libreta de direcciones externas, vea Actuar como proveedor de libreta de direcciones de host.