Compartir a través de


Preparación de un destinatario

Hace referencia a: Outlook 2013 | Outlook 2016

Una aplicación cliente prepara a los destinatarios convirtiendo sus identificadores de entrada a corto plazo a identificadores de entrada a largo plazo y, posiblemente, agregando, cambiando o reordenando propiedades. Puede preparar destinatarios que forman parte de una lista de destinatarios para un mensaje o destinatarios que no están relacionados con un mensaje. Normalmente, los clientes llaman a IAddrBook::P repareRecips directamente para traducir los identificadores de entrada a corto plazo en identificadores de entrada a largo plazo para los destinatarios que se incluyen en el cuadro de diálogo de dirección común. En el caso de los destinatarios asociados a un mensaje saliente, el proceso de resolución de nombres controla la preparación del destinatario.

Para preparar una lista de destinatarios, llame a IAddrBook::P repareRecips. PrepareRecips acepta una estructura ADRLIST y una lista de etiquetas de propiedad. La estructura ADRLIST contiene los destinatarios que se van a preparar, mientras que la lista de etiquetas de propiedades representa las propiedades que cada destinatario debe admitir. PrepareRecips intenta colocar las propiedades que se incluyen en la lista de etiquetas de propiedades al principio de la estructura ADRLIST . Si falta alguna de las propiedades de la lista de la estructura ADRLIST , MAPI llama al proveedor de la libreta de direcciones para proporcionarlas. Si solo necesita comprobar si hay identificadores de entrada a largo plazo, pase NULL para el parámetro lpSPropTagArray .

Por ejemplo, supongamos que trabaja con cinco destinatarios. Los cinco destinatarios aparecen en la estructura ADRLIST con las siguientes propiedades en el orden siguiente:

  1. PR_ENTRYID (PidTagEntryId)

  2. PR_DISPLAY_NAME (PidTagDisplayName)

  3. PR_SEARCH_KEY (PidTagSearchKey)

  4. PR_EMAIL_ADDRESS (PidTagEmailAddress)

  5. PR_ADDRTYPE (PidTagAddressType)

Se incluyen otras tres propiedades en la estructura ADRLIST para los dos primeros destinatarios.

  1. PR_ACCOUNT (PidTagAccount)

  2. PR_GIVEN_NAME (PidTagGivenName)

  3. PR_SURNAME (PidTagSurname)

Dado que todos los destinatarios deben tener como sus tres primeras propiedades PR_ADDRTYPE, PR_ENTRYID y PR_HOME_TELEPHONE_NUMBER (PidTagHomeTelephoneNumber), cree una matriz de etiquetas de propiedad con estas propiedades y pásela y la estructura ADRLIST a PrepareRecips. PrepareRecips llama al método IMAPIProp::GetProps de cada destinatario para recuperar PR_HOME_TELEPHONE_NUMBER porque actualmente no forma parte de la estructura ADRLIST . Cuando se devuelve PrepareRecips , la lista de destinatarios representa una lista combinada de destinatarios con las propiedades incluidas en la estructura ADRLIST que aparecen primero para cada destinatario.

La lista de destinatarios para los destinatarios 1 y 2 incluye propiedades en el orden siguiente:

  1. PR_ADDRTYPE

  2. PR_ENTRYID

  3. PR_HOME_TELEPHONE_NUMBER

  4. PR_DISPLAY_NAME

  5. PR_SEARCH_KEY

  6. PR_EMAIL_ADDRESS

  7. PR_ADDRTYPE

  8. PR_ACCOUNT

  9. PR_GIVEN_NAME

  10. PR_SURNAME

La lista de destinatarios para los destinatarios 3, 4 y 5 incluye propiedades en el orden siguiente:

  1. PR_ADDRTYPE

  2. PR_ENTRYID

  3. PR_HOME_TELEPHONE_NUMBER

  4. PR_DISPLAY_NAME

  5. PR_SEARCH_KEY

  6. PR_EMAIL_ADDRESS

  7. PR_ADDRTYPE

Como alternativa a llamar a IAddrBook::P repareRecips para trabajar con propiedades, llame al método IMAPIProp::GetProps de cada destinatario y, si es necesario, a su método IMAPIProp::SetProps . Cuando solo un destinatario está involucrado, cualquiera de las técnicas es satisfactoria. Sin embargo, cuando hay varios destinatarios implicados, llamar a PrepareRecips en lugar de a los métodos IMAPIProp ahorra tiempo y, si está trabajando de forma remota, muchas llamadas a procedimientos remotos. PrepareRecips procesa todos los destinatarios en una sola llamada, mientras que GetProps y SetProps realizan una llamada para cada destinatario.