Compartir a través de


IMAPISupport::OpenEntry

Hace referencia a: Outlook 2013 | Outlook 2016

Abre un objeto y devuelve un puntero de interfaz para obtener más acceso.

HRESULT OpenEntry(
ULONG cbEntryID,
LPENTRYID lpEntryID,
LPCIID lpInterface,
ULONG ulOpenFlags,
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.

lpInterface

[in] Puntero al identificador de interfaz (IID) que representa la interfaz que se va a usar para acceder al objeto. Si se pasa NULL, se devuelve la interfaz estándar del objeto. Por ejemplo, si el objeto que se va a abrir es un mensaje, la interfaz estándar es IMessage; para carpetas, es IMAPIFolder. Las interfaces estándar para los objetos de libreta de direcciones son IDistList para una lista de distribución y IMailUser para un usuario de mensajería.

ulOpenFlags

[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 autor de la llamada. Por ejemplo, si el autor de la llamada tiene permiso de lectura y escritura, el objeto debe abrirse como de lectura y escritura; Si el autor de la llamada tiene permiso de solo lectura, el objeto debe abrirse como de solo lectura.

MAPI_DEFERRED_ERRORS

Permite que OpenEntry devuelva correctamente, posiblemente antes de que el objeto sea totalmente accesible para el autor de la llamada. Si el objeto no es accesible, la realización de una llamada de objeto posterior puede dar lugar a un error.

MAPI_MODIFY

Solicita permiso de lectura y escritura. De forma predeterminada, los objetos se abren como de solo lectura y los autores de llamadas no deben funcionar en la suposición de 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.

Valor devuelto

S_OK

El objeto se abrió correctamente.

MAPI_E_NO_ACCESS

Se intentó modificar un objeto de solo lectura o se intentó acceder a un objeto para el que el usuario no tiene permisos suficientes.

MAPI_E_NOT_FOUND

No hay ningún objeto asociado al identificador de entrada pasado en el parámetro lpEntryID .

MAPI_E_UNKNOWN_ENTRYID

El identificador de entrada pasado en el parámetro lpEntryID está en un formato irreconocible. Este valor se devuelve normalmente si el proveedor de libreta de direcciones que contiene el objeto no está abierto.

Comentarios

El método IMAPISupport::OpenEntry se implementa para todos los objetos de soporte técnico del proveedor de servicios. Los proveedores de servicios llaman a IMAPISupport::OpenEntry para recuperar un puntero a una interfaz que se puede usar para acceder a un objeto determinado.

Notas para los llamadores

Llame a IMAPISupport::OpenEntry solo cuando no sepa qué tipo de objeto está abriendo. Si sabe que está abriendo una carpeta o un mensaje, llame a IMsgStore::OpenEntry en su lugar. Si sabe que está abriendo un contenedor de libreta de direcciones, un usuario de mensajería o una lista de distribución, llame a IAddrBook::OpenEntry. Estos métodos más específicos son más rápidos que IMAPISupport::OpenEntry.

IMAPISupport::OpenEntry abre todos los objetos como de solo lectura, a menos que establezca la marca MAPI_MODIFY o MAPI_BEST_ACCESS en el parámetro ulFlags y los permisos sean suficientes. Establecer una de estas marcas no garantiza un tipo determinado de acceso; Los permisos que se le conceden dependen del nivel de acceso, el objeto y el proveedor de servicios que posee el objeto. Para determinar el nivel de acceso del objeto abierto, recupere su propiedad PR_ACCESS_LEVEL (PidTagAccessLevel).

Compruebe el valor devuelto en el parámetro lpulObjType para determinar que el tipo de objeto devuelto es el esperado. Si el tipo de objeto es el esperado, convierta el puntero desde el parámetro lppUnk a un puntero del tipo adecuado. Por ejemplo, si abre una carpeta, convierta lppUnk en un puntero de tipo LPMAPIFOLDER.

Vea también

IMAPISupport: IUnknown