Compartir a través de


IAddrBook::OpenEntry

Hace referencia a: Outlook 2013 | Outlook 2016

Abre una entrada de libreta de direcciones y devuelve un puntero a una interfaz que se puede usar para acceder a la entrada.

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 que representa la entrada de la libreta de direcciones que se va a abrir.

lpInterface

[in] Puntero al identificador de interfaz (IID) de la interfaz que se va a usar para acceder a la entrada abierta. Al pasar NULL, se devuelve la interfaz estándar del objeto. Para los usuarios de mensajería, la interfaz estándar es IMailUser : IMAPIProp. Para las listas de distribución, es IDistList: IMAPIContainer y, para los contenedores, es IABContainer: IMAPIContainer. Los autores de la llamada pueden establecer lpInterface en la interfaz estándar adecuada o en una interfaz de la jerarquía de herencia.

ulFlags

[in] Máscara de bits de marcas que controla cómo se abre la entrada. Se pueden establecer las siguientes marcas.

MAPI_BEST_ACCESS

Solicita que la entrada se abra con el máximo de permisos de red y cliente permitidos. Por ejemplo, si el cliente tiene permiso de lectura y escritura, el proveedor de libreta de direcciones debe intentar abrir la entrada con permiso de lectura y escritura. El cliente puede recuperar el nivel de acceso concedido llamando al método IMAPIProp::GetProps de la entrada abierta y recuperando la propiedad PR_ACCESS_LEVEL (PidTagAccessLevel).

MAPI_CACHE_ONLY

Abre una entrada de libreta de direcciones y accede a ella solo desde la memoria caché. Por ejemplo, puede usar esta marca para permitir que una aplicación cliente abra la lista global de direcciones (GAL) en modo de intercambio almacenado en caché y acceda a una entrada en esa libreta de direcciones desde la memoria caché sin crear tráfico entre el cliente y el servidor. Esta marca solo es compatible con el proveedor de libreta de direcciones de Exchange.

MAPI_DEFERRED_ERRORS

Permite que la llamada se realice correctamente, posiblemente antes de que la entrada esté totalmente abierta y disponible, lo que implica que las llamadas posteriores a la entrada podrían devolver un error.

MAPI_GAL_ONLY

Use solo la GAL para realizar la resolución de nombres. Esta marca solo es compatible con el proveedor de libreta de direcciones de Exchange.

Nota:

Es posible que el MAPI_GAL_ONLY ulFlags no esté definido en el archivo de encabezado descargable que tiene actualmente, en cuyo caso puede agregarlo al código con el siguiente valor: #define MAPI_GAL_ONLY (0x00000080)

MAPI_MODIFY

Solicita que la entrada se abra con permiso de lectura y escritura. Dado que las entradas se abren con acceso de solo lectura de forma predeterminada, los clientes no deben suponer que se concedió el permiso de lectura y escritura independientemente de si se ha establecido MAPI_MODIFY.

MAPI_NO_CACHE

No use la libreta de direcciones sin conexión para realizar la resolución de nombres. Esta marca solo es compatible con el proveedor de libreta de direcciones de Exchange.

lpulObjType

[out] Puntero al tipo de la entrada abierta.

lppUnk

[out] Puntero a un puntero a la entrada abierta.

Valor devuelto

S_OK

La entrada se abrió correctamente.

MAPI_E_NO_ACCESS

Se intentó abrir una entrada para la que el usuario no tiene permisos suficientes.

MAPI_E_NOT_FOUND

La entrada representada por lpEntryID no existe.

MAPI_E_UNKNOWN_ENTRYID

No se reconoce el identificador de entrada especificado en lpEntryID . Este valor se devuelve normalmente si el proveedor de libreta de direcciones responsable de la entrada correspondiente no está abierto.

Comentarios

Los clientes y proveedores de servicios llaman al método IAddrBook::OpenEntry para abrir una entrada de libreta de direcciones. MAPI reenvía la llamada al proveedor de libreta de direcciones adecuado, según la estructura MAPIUID incluida en el identificador de entrada pasado en el parámetro lpEntryID . El proveedor de libreta de direcciones abre la entrada como de solo lectura a menos que se establezca la marca MAPI_MODIFY o MAPI_BEST_ACCESS en el parámetro ulFlags . Sin embargo, estas marcas son sugerencias. Si el proveedor de libreta de direcciones no permite la modificación de la entrada solicitada, devuelve MAPI_E_NO_ACCESS.

El parámetro lpInterface indica qué interfaz se debe usar para acceder a la entrada abierta. Pasar NULL en lpInterface indica que se debe usar la interfaz MAPI estándar para ese tipo de entrada. Dado que el proveedor de libreta de direcciones puede devolver una interfaz diferente a la sugerida por el parámetro lpInterface , el autor de la llamada debe comprobar 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 del tipo esperado, el autor de la llamada puede convertir el parámetro lppUnk en un tipo que sea más adecuado.

Vea también