Propiedades canónicas mapi

Hace referencia a: Outlook 2013 | Outlook 2016

Una propiedad canónica es una propiedad virtual que representa una propiedad MAPI o varias propiedades MAPI definidas con el mismo identificador de propiedad. Las propiedades canónicas solo están diseñadas para facilitar la identificación coherente de las propiedades MAPI en discusiones o documentación fuera del código. A diferencia de los nombres de propiedad etiquetados definidos por MAPI, los nombres de propiedad canónicos no se definen como constantes globales en los archivos de encabezado MAPI.

Convenciones de nomenclatura

Los nombres de propiedad canónicos comienzan con un prefijo, "Pid", que representa "identificador de propiedad". Dependiendo de si la propiedad es una propiedad etiquetada, una propiedad con nombre con un identificador numérico o una propiedad con nombre con un nombre de cadena, el prefijo se califica aún más como "PidTag", "PidLid" y "PidName", respectivamente. Por ejemplo, PidTagAccount representa las propiedades etiquetadas, PR_ACCOUNT (PidTagAccount), PR_ACCOUNT_A (PidTagAccount) y PR_ACCOUNT_W (PidTagAccount), que especifican el nombre de cuenta de un destinatario; PidLidContacts representa la propiedad dispidContacts , una propiedad con nombre que tiene un identificador numérico y que especifica el nombre de los contactos asociados a un mensaje; y PidNamePhishingStamp representa "http://schemas.microsoft.com/outlook/phishingstamp", una propiedad con nombre que tiene un nombre de cadena y que especifica los mensajes de marcado de cadena que probablemente sean suplantación de identidad (phishing).

Representación de propiedades similares mediante una propiedad canónica

Identificación de propiedades en MAPI

Todas las propiedades de MAPI se identifican mediante un identificador de propiedad que es un valor de 16 bits sin signo. El identificador de propiedad y el tipo de propiedad (otro valor de 16 bits sin signo) constituyen una etiqueta de propiedad para la propiedad.

MAPI usa una etiqueta de propiedad para definir propiedades de forma única. Las propiedades que tienen la misma etiqueta de propiedad, como PR_BUSINESS2_TELEPHONE_NUMBER (PidTagBusiness2TelephoneNumber) y PR_OFFICE2_TELEPHONE_NUMBER (PidTagBusiness2TelephoneNumber), se consideran propiedades idénticas en MAPI. Para obtener una lista de las etiquetas de propiedad que MAPI ha definido para sus propias propiedades, vea el archivo de encabezado MAPI, Mapitags.h.

Tenga en cuenta que MAPI divide los identificadores de propiedad en intervalos. Cuando un identificador se encuentra en el intervalo indica su uso y propiedad. Los identificadores de propiedad de las propiedades etiquetadas se encuentran en el intervalo de 0x0001 a 0x7FFF. Dentro de este intervalo se encuentran los identificadores de propiedad de las propiedades definidas por MAPI, que se encuentran en el intervalo de 0x0001 a 0x3FFF. Los identificadores de propiedad de las propiedades con nombre se encuentran en el intervalo de 0x8000 a 0x8FFF.

Las propiedades con nombre se atribuyen adicionalmente a un conjunto de propiedades y a un identificador largo (LID), que es un valor de 32 bits sin signo, o bien a una cadena. Un conjunto de propiedades es un GUID que identifica un grupo de propiedades con nombre con un propósito similar. El conjunto de propiedades y lid o el nombre de cadena se usan para obtener o establecer la propiedad con nombre.

Tipo de propiedad

Aparte de los identificadores, una propiedad se atribuye por un tipo de datos que especifica el tipo de valores permitidos para esa propiedad.

Para las propiedades que son del tipo de cadena, dependiendo de la compatibilidad con Unicode en la plataforma subyacente, la propiedad puede ser de tipo PT_STRING8 (cadena de caracteres de 8 bits terminada en null) o PT_UNICODE (cadena Unicode terminada en NULL). Una propiedad se puede definir con el tipo de PT_TSTRING y, en función de la configuración de compilación, PT_TSTRING establece de forma predeterminada una cadena Unicode para las plataformas que admiten Unicode o una cadena de PT_STRING8 para plataformas que admiten ANSI o DBCS. Es habitual que una propiedad con tipo de cadena se identifique mediante tres nombres similares, como PR_ACCOUNT, PR_ACCOUNT_A y PR_ACCOUNT_W, que son del tipo PT_TSTRING, PT_STRING8 y PT_UNICODE respectivamente.

Para obtener más información sobre los tipos de propiedad y las macros relacionados con los tipos, vea el archivo de encabezado MAPI Mapidefs.h.

Identificación de propiedades similares

En el panorama actual de las propiedades MAPI, no es raro encontrar que una propiedad se ha expuesto con nombres de propiedad diferentes, todos los cuales se definen con el mismo identificador de propiedad. Por ejemplo, las propiedades etiquetadas, PR_BUSINESS2_TELEPHONE_NUMBER y PR_OFFICE2_TELEPHONE_NUMBER, se definen en Mapitags.h para tener el mismo identificador de propiedad y tipo. Estrechamente relacionadas con estas dos propiedades son:

  • PR_BUSINESS2_TELEPHONE_NUMBER_A

  • PR_BUSINESS2_TELEPHONE_NUMBER_W

  • PR_OFFICE2_TELEPHONE_NUMBER_A

  • PR_OFFICE2_TELEPHONE_NUMBER_W

Las propiedades con el sufijo "_A" se escriben como PT_STRING8 y las que tienen el sufijo "_W" se escriben como PT_UNICODE.

El propósito de una propiedad canónica, PidTagBusiness2TelephoneNumber en este ejemplo, es facilitar la referencia a estas propiedades MAPI estrechamente afiliadas mediante un identificador y de forma coherente (con el prefijo "Pid") en todas las propiedades MAPI. Para averiguar qué propiedades MAPI reales representa una propiedad canónica, vea Asignación de nombres de propiedades canónicas a nombres MAPI. Para buscar la propiedad canónica a la que está asociada una propiedad MAPI, vea Asignación de nombres MAPI a nombres de propiedad canónicos.

Compatibilidad mapi con nombres de propiedad canónicos

Dado que las propiedades canónicas no son propiedades reales y no están definidas en los archivos de encabezado MAPI, no debe usar nombres de propiedad canónicos en el código; en su lugar, debe seguir usando los nombres de propiedad MAPI exactos en el código. Por ejemplo, puede hacer referencia a PR_BUSINESS2_TELEPHONE_NUMBER y PR_OFFICE2_TELEPHONE_NUMBER fuera del código como PidTagBusiness2TelephoneNumber y usar PR_BUSINESS2_TELEPHONE_NUMBER o PR_OFFICE2_TELEPHONE_NUMBER en el código.

Si debe usar nombres de propiedad canónicos en el código, primero debe definirlos en sus propios archivos de encabezado.

Nombres de propiedad canónicos y especificaciones del protocolo de Exchange

Se hace referencia a los nombres canónicos en Microsoft Exchange Server especificaciones de protocolo que usan Exchange Server para comunicarse con otros productos de Microsoft. Para obtener más información sobre las propiedades del objeto de mensaje a las que hacen referencia las especificaciones del protocolo de Exchange, vea [MS-OXPROPS].

Vea también

Etiquetas de propiedad MAPI

Información general del identificador de propiedad MAPI

Información general del tipo de propiedad MAPI