Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Hace referencia a: Outlook 2013 | Outlook 2016
Después de abrir la libreta de direcciones integrada mapi, abra uno o varios contenedores de libreta de direcciones para acceder a los destinatarios dentro de ellos.
Para abrir el contenedor de nivel superior de la libreta de direcciones, llame a IAddrBook::OpenEntry con un identificador de entrada NULL.
Los contenedores de libreta de direcciones se pueden implementar con acceso de solo lectura o de lectura y escritura. Los contenedores de solo lectura solo se usan para la exploración. Los contenedores de lectura y escritura se pueden modificar, lo que permite a los clientes crear nuevas entradas y eliminar y modificar las entradas existentes. Todos los contenedores de libreta de direcciones personales (PAB) se implementan como contenedores de lectura y escritura.
Para abrir cualquier contenedor de nivel inferior, llame a OpenEntry y especifique el identificador de entrada del contenedor que se va a abrir.
Abrir el contenedor designado como PAB
Llame a IAddrBook::GetPAB para recuperar el identificador de entrada del PAB.
Pase este identificador de entrada a IAddrBook::OpenEntry.
Abrir un contenedor que no sea el PAB
Llame a IAddrBook::OpenEntry con un identificador de entrada NULL para abrir el contenedor raíz de la libreta de direcciones.
Llame al método IMAPIContainer::GetHierarchyTable del contenedor raíz para recuperar su tabla de jerarquía, una lista de todos los contenedores de nivel superior de la libreta de direcciones.
Si el contenedor que se va a abrir es de un tipo específico:
Cree una estructura SPropertyRestriction con PR_DISPLAY_TYPE (PidTagDisplayType) para la etiqueta de propiedad, el tipo del contenedor para el valor de propiedad y RELOP_EQ para la relación. PR_DISPLAY_TYPE se pueden establecer en muchos valores, entre ellos:
DT_GLOBAL limitar la tabla de jerarquía a los contenedores que pertenecen a la lista global de direcciones.
DT_LOCAL limitar la tabla a los contenedores que pertenecen a una libreta de direcciones local.
DT_MODIFIABLE limitar la tabla a los contenedores que se pueden modificar.
Cree una estructura SPropTagArray que incluya PR_ENTRYID, PR_DISPLAY_TYPE y cualquier otra columna de interés.
Llame a HrQueryAllRows, pasando la restricción de propiedad y la matriz de etiquetas de propiedad. HrQueryAllRows devolverá cero o más filas, una fila por cada contenedor que pertenezca al tipo especificado. Esté preparado para controlar la devolución de cualquier número de filas.
Llame a IAddrBook::OpenEntry con el identificador de entrada de la columna PR_ENTRYID de la fila que representa el contenedor de interés.
Si el contenedor que se va a abrir pertenece a un proveedor de libreta de direcciones específico:
Cree una estructura SPropertyRestriction con PR_AB_PROVIDERS (PidTagAbProviders) para la etiqueta de propiedad, un valor específico del proveedor para el valor de propiedad y RELOP_EQ para la relación. Normalmente, el valor específico del proveedor es un identificador o GUID único global. Encontrará este valor publicado en uno de los archivos de encabezado del proveedor de libreta de direcciones.
Cree una estructura SPropTagArray que incluya PR_ENTRYID (PidTagEntryId), PR_AB_PROVIDERS y cualquier otra columna de interés.
Llame a HrQueryAllRows, pasando la restricción de propiedad y la matriz de etiquetas de propiedad. HrQueryAllRows devolverá cero filas si el proveedor de libreta de direcciones especificado no está en el perfil. Puede devolver una o más filas para los contenedores de nivel superior del proveedor, en función de cómo se organice el proveedor.
Llame a IAddrBook::OpenEntry con el identificador de entrada de la columna PR_ENTRYID de la fila que representa el contenedor de interés. Si el contenedor que le interesa no es un contenedor de nivel superior, busque el contenedor de nivel superior y recorra la jerarquía.