Cómo utilizar propiedades con nombre para entradas de la Libreta de contacto se refieren a los mensajes de correo electrónico, direcciones de correo electrónico y de imagen datos adjuntos en Outlook 2003

Seleccione idioma Seleccione idioma
Id. de artículo: 912237 - Ver los productos a los que se aplica este artículo
Este artículo se ha archivado. Se ofrece "tal cual" y no se volverá a actualizar.
Expandir todo | Contraer todo

En esta página

INTRODUCCIÓN

La Libreta de contacto es una característica en Microsoft Office Outlook 2003 Service Pack 2 (SP2), sólo como en versiones anteriores de Microsoft Outlook. En este artículo se describe cómo utilizar propiedades con nombre para relacionar entradas de la Libreta de contactos para mensajes de correo electrónico, direcciones de correo electrónico y datos adjuntos de imagen en Outlook 2003 SP2.

Más información

Acerca de la Libreta de direcciones contacto

El proveedor de libreta de direcciones de contrato que se incluye en Outlook 2003 SP2 es contab32.dll. Este proveedor muestra información de una carpeta de contactos en el formulario de una libreta de direcciones contacto. El proveedor realiza esto para que pueda utilizar los contactos en la libreta contacto dirigir mensajes de correo electrónico. Todos los contactos que tienen una dirección de correo electrónico o un número de fax están representados en la Libreta de contactos por una lista independiente de cada dirección de correo electrónico o fax el número. Debido a un contacto puede tener hasta tres direcciones de correo electrónico y tres números de fax, cada contacto por lo tanto puede estar representado por hasta seis entradas independientes en la Libreta de direcciones contacto.

Cómo relacionar movimientos de libreta de direcciones de contacto a los mensajes de correo electrónico

La información que está en una entrada de contacto Libreta de direcciones es un subconjunto de la información que está en el mensaje de correo electrónico subyacente para el contacto. La siguiente estructura CONTAB_ENTRYID puede utilizarse para determinar la entrada de libreta de direcciones de contacto del que procede un mensaje subyacente.

definición
#pragma pack(4)
typedef struct _contab_entryid
{
  BYTE misc1[4];
  MAPIUID misc2;
  ULONG misc3;
  ULONG misc4;
  ULONG misc5;
  // EntryID of contact in store.
  ULONG cbeid;
  BYTE abeid[1];
} CONTAB_ENTRYID, *LPCONTAB_ENTRYID;
#pragma pack()
CONTAB_ENTRYID la estructura define el formato de los objetos identificadores de IMailUser de entrada se utilizan en la Libreta de contacto. Puede obtener identificadores de entrada de este tipo de uno o ambos de los siguientes orígenes:
  • La columna PR_ENTRYID de la tabla de contenido de la Libreta de direcciones contacto
  • La propiedad PR_ENTRYID de un objeto IMailUser que se abre desde la Libreta de contactos
Para abrir el mensaje subyacente, convertir el identificador de entrada Libreta de direcciones de contacto a esta estructura. A continuación, utilice a los miembros cbeid y abeid como entrada. ?s contacto

ejemplo Microsoft proporciona ejemplos de programación con fines ilustrativos únicamente, sin ninguna garantía tanto expresa como implícita. Esto incluye, entre otras, las garantías implícitas de comerciabilidad e idoneidad para un fin determinado. Este artículo se supone que está familiarizado con el lenguaje de programación que se muestra y con las herramientas que se utilizan para crear y depurar procedimientos. Los ingenieros de soporte técnico de Microsoft pueden explicarle la funcionalidad de un determinado procedimiento, pero no modificarán estos ejemplos para ofrecer mayor funcionalidad ni crearán procedimientos que cumplan sus requisitos específicos.
HRESULT HrOpenContact(
  LPMAPISESSION lpSession,
  ULONG cbEntryID,
  LPENTRYID lpEntryID,  
  ULONG ulFlags,
  LPMESSAGE* lpContactMessage)
{
  ULONG ulObjType = NULL;
  if (sizeof(CONTAB_ENTRYID) > cbEntryID)
      return MAPI_E_INVALID_PARAMETER;
  LPCONTAB_ENTRYID lpContabEID = (LPCONTAB_ENTRYID) lpEntryID;
  HRESULT hRes = lpSession->OpenEntry(
      lpContabEID->cbeid,
      (LPENTRYID) lpContabEID->abeid,
      NULL,
      ulFlags,
      &ulObjType,
      (LPUNKNOWN*) lpContactMessage);
  return hRes;
}

Cómo relacionar entradas de libreta de direcciones de contacto para las direcciones de correo electrónico

La única forma para tener acceso a las direcciones de correo electrónico en un mensaje de libreta de direcciones de contacto es mediante las propiedades con nombre en el mensaje subyacente. Las propiedades que se documentan aquí son propiedades de sólo lectura. Outlook 2003 no admite soluciones que escribir en estas propiedades.

definiciones
DEFINE_OLEGUID(PSETID_Address, MAKELONG(0x2000+(0x04),0x0006),0,0);
#define dispidEmailAddrType 0x8082
#define dispidEmailEmailAddress 0x8083
#define dispidEmail2AddrType 0x8092
#define dispidEmail2EmailAddress 0x8093
#define dispidEmail3AddrType 0x80A2
#define dispidEmail3EmailAddress 0x80A3
DEFINE_OLEGUID(PSETID_Address, MAKELONG(0x2000+(0x04),0x0006),0,0); #define dispidEmailAddrType 0x8082 #define dispidEmailEmailAddress 0x8083 #define dispidEmail2AddrType 0x8092 #define dispidEmail2EmailAddress 0x8093 #define dispidEmail3AddrType 0x80A2 #define dispidEmail3EmailAddress... uso

Puede utilizar las siguientes constantes para rellenar la estructura MAPINAMEID. Estas constantes están los diversos campos de la estructura.
Contraer esta tablaAmpliar esta tabla
ConstanteCampo
PSETID_AdresslpGuid
MNID_IDulKind
DISPIDTapa
Después de que haya rellenado la estructura MAPINAMEID, utilice el método GetIDsFromNames para obtener la propiedad actual identificadores de estas propiedades. Estas propiedades son todas las propiedades de cadena.

ejemplo Microsoft proporciona ejemplos de programación con fines ilustrativos únicamente, sin ninguna garantía tanto expresa como implícita. Esto incluye, entre otras, las garantías implícitas de comerciabilidad e idoneidad para un fin determinado. Este artículo se supone que está familiarizado con el lenguaje de programación que se muestra y con las herramientas que se utilizan para crear y depurar procedimientos. Los ingenieros de soporte técnico de Microsoft pueden explicarle la funcionalidad de un determinado procedimiento, pero no modificarán estos ejemplos para ofrecer mayor funcionalidad ni crearán procedimientos que cumplan sus requisitos específicos.
HRESULT HrGetEmail1(LPMESSAGE lpContact)
{
  HRESULT hRes = S_OK;
  LPSPropTagArray lpNamedPropTags = NULL;
  MAPINAMEID NamedID = {0};
  LPMAPINAMEID lpNamedID = &NamedID;
  NamedID.lpguid = (LPGUID)&PSETID_Address;
  NamedID.ulKind = MNID_ID;
  NamedID.Kind.lID = dispidEmailEmailAddress;
  hRes = lpContact->GetIDsFromNames(
      1,
      &lpNamedID,
      NULL,
      &lpNamedPropTags);
  if (SUCCEEDED(hRes) && lpNamedPropTags)
  {
      SPropTagArray sPropTagArray;
      sPropTagArray.cValues = 1;
      sPropTagArray.aulPropTag[0] = CHANGE_PROP_TYPE(lpNamedPropTags->aulPropTag[0],PT_STRING8);
      LPSPropValue lpProps = NULL;
      ULONG cProps = 0;
      hRes = lpContact->GetProps(
        &sPropTagArray,
        NULL,
        &cProps,
        &lpProps);
    if (SUCCEEDED(hRes) &&
      1 == cProps &&
      lpProps &&
      PT_STRING8 == PROP_TYPE(lpProps[0].ulPropTag) &&
      lpProps[0].Value.lpszA)
      {
          printf("Email address 1 = \"%s\"\n",lpProps[0].Value.lpszA);
      }
    MAPIFreeBuffer(lpProps);
    MAPIFreeBuffer(lpNamedPropTags);
  }
  return hRes;
}

Cómo relacionar movimientos de libreta de direcciones de contactos con imágenes

Outlook admite una sola imagen para cada contacto. Esta imagen se almacena como datos adjuntos en el mensaje subyacente. Para determinar qué datos adjuntos contienen la imagen, utilice la propiedad PR_ATTACHMENT_CONTACTPHOTO . La propiedad que se documenta aquí es una propiedad de sólo lectura. Outlook no admite soluciones de escritura a esta propiedad.

definición

#define PR_ATTACHMENT_CONTACTPHOTO PROP_TAG( PT_BOOLEAN, 0x7FFF)
uso

La propiedad PR_ATTACHMENT_CONTACTPHOTO puede abrirse como una columna en la tabla de datos adjuntos que se obtiene a través de IMessage::GetAttachmentTable. Se tiene acceso a la propiedad PR_ATTACHMENT_CONTACTPHOTO como una propiedad en el objeto IAttach. Si el valor de la propiedad PR_ATTACHMENT_CONTACTPHOTO es true, el archivo adjunto contiene la imagen del contacto. La imagen se almacena como un archivo .JPEG. Utilice los métodos típicos de MAPI para extraer este archivo adjunto a un archivo.

Referencias

Para obtener más información, visite los siguientes sitios Web de Microsoft (pueden estar en inglés):
http://msdn2.microsoft.com/en-us/library/bb905282.aspx
http://msdn2.microsoft.com/en-us/library/bb820925.aspx
http://msdn2.microsoft.com/en-us/library/bb821181.aspx

Propiedades

Id. de artículo: 912237 - Última revisión: jueves, 23 de enero de 2014 - Versión: 2.1
La información de este artículo se refiere a:
  • Microsoft Office Outlook 2003 sobre las siguientes plataformas
    • Microsoft Office 2003 Service Pack 2
Palabras clave: 
kbnosurvey kbarchive kbmt kbhowto KB912237 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 912237

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com