Especificar áreas de formulario en el registro de Windows

Para ejecutar un formulario que contiene un área de formulario en un equipo cliente, debe registrar el área del formulario en el Registro de Windows, especificando la clase de mensaje y otra información necesaria para que Microsoft Outlook muestre el área del formulario. Esta información incluye el nombre para mostrar, la ubicación en la que aparece el área de formulario en un formulario, cualquier archivo de diseño o complemento que implemente el área de formulario, cualquier acción del usuario admitida y cualquier término traducido para la interfaz de usuario. La estructura de esta información sigue un esquema XML del área de formulario; Para obtener más información sobre el esquema XML para las regiones de formulario, vea Microsoft Outlook 2010 Referencia de esquema XML en MSDN Library.

Hay varios métodos para especificar esta información sobre el área de formulario en el Registro. Puede especificar explícitamente el XML, o una ruta de acceso completa al archivo XML, que contenga esta información para el área de formulario y que se ajuste al esquema XML del área de formulario. También puede especificar el ProgID de un complemento que proporcionará a Outlook el manifiesto XML para el área de formulario. Cuando se inicia, Outlook lee la lista de áreas de formulario del Registro y guarda los datos asociados en la memoria caché.

Precaución La edición incorrecta del registro de Windows puede dañar gravemente el sistema. Antes de realizar cualquier cambio en el Registro, debe realizar una copia de seguridad de cualquier información valiosa que se encuentre en el equipo.

Registrar un área de formulario

Registre las regiones del formulario en la clave FormRegions en el Registro de Windows, en la clave de máquina local (como HKEY_LOCAL_MACHINE\Software\Microsoft\Office\Outlook\FormRegions) o en la clave de usuario actual (como HKEY_CURRENT_USER\Software\Microsoft\Office\Outlook\FormRegions). En la clave FormRegions, cree una clave independiente para cada clase de mensaje para la que se hayan creado áreas de formulario. Por ejemplo, si el elemento de correo tiene la clase de mensaje IPM.Note, puede registrar todas las áreas de formulario usadas para mostrar el elemento de correo para el usuario actual en la clave HKEY_CURRENT_USER\Software\Microsoft\Office\Outlook\FormRegions\IPM.Note.

En los pasos siguientes se muestra cómo registrar un área de formulario en el equipo local:

  1. Cierre Outlook.
  2. Agregue la clave siguiente al Registro si no existe: HKEY_LOCAL_MACHINE\Software\Microsoft\Office\Outlook\FormRegions.
  3. Bajo la clave FormRegions, agregue una clave que tenga el nombre de la clase de mensaje a la que esté asociada el área de formulario, si dicha clave no existe. Por ejemplo, para crear un área de formulario para el elemento de contacto, agregue una clave con el nombre IPM.Contact, si no existe.
  4. Para esa clave, agregue un valor del tipo REG_SZ y especifique el mismo nombre que tiene el elemento name del área de formulario. Se trata del nombre interno del área de formulario y solo admite caracteres ASCII. Especifique los datos como uno de los siguientes valores posibles:
    • De forma explícita mediante el XML que especifica el diseño, el comportamiento y otras características del área de formulario y que se ajusta al esquema XML del área de formulario. En este caso, se debe incluir un signo menor o igual (<) antes de los datos.
    • El ProgID de un complemento que proporcionará a Outlook el manifiesto XML para el área de formulario. En este caso, se debe incluir un signo igual (=) antes de los datos. Por ejemplo, si el ProgID de un complemento es MyAddinProject1.ConnectClass, los datos de la clave se deben especificar como =MyAddinProject1.ConnectClass.
    • El nombre de la ruta de acceso completa de archivo local a un archivo de manifiesto XML del área de formulario que describe el diseño, el comportamiento y otras características del área de formulario. Si no se incluye un signo menor o igual (<) o un signo igual (=) antes de los datos, Outlook da por supuesto que los datos son un nombre de ruta de acceso para el archivo de manifiesto XML de las áreas de formulario. Por ejemplo, si el archivo de manifiesto XML del área de formulario, map.xml, se encuentra en c:\Regiones de formulario, especificaría los datos de la clave para que sean c:\Form Regions\map.xml.

Especificar áreas de formulario como reemplazo para formularios estándar

Outlook le permite personalizar el formulario estándar para cada una de las clases de mensaje de Outlook agregando áreas de formulario adyacentes o áreas de formulario independientes al formulario. En la tabla siguiente se muestran los formularios estándar y las clases de mensaje correspondientes en Outlook.

Formulario estándar Clase de mensaje
Cita IPM.Appointment
Contacto IPM.Contact
Entrada del Diario IPM.Activity
Convocatoria de reunión IPM. Meeting.Schedule.Request
Mensaje IPM.Note
Publicación IPM.Post
Tarea IPM. Petición
Solicitud de tarea IPM.Task

Nota No puede especificar regiones de formulario para la clase de mensaje raíz de Outlook, IPM.

Puede agregar áreas de formulario independientes como páginas adicionales a un formulario estándar, pero no puede reemplazar ninguna página existente del formulario estándar y mantener el formulario para la misma clase de mensaje de Outlook. Si necesita reemplazar la página predeterminada o todas las páginas de un formulario estándar, tendrá que derivar una nueva clase de mensaje para ese formulario, especificar un área de formulario de reemplazo para reemplazar la página predeterminada o un área de formulario replace-all para reemplazar todo el formulario y registrar ese área del formulario para la clase de mensaje derivada.

Por ejemplo, puede crear un área de formulario de reemplazo que reemplace la página General del formulario de contacto y registrar el área de formulario para una clase de mensaje derivada de IPM.Contact (por ejemplo, IPM.Contact.MyContact ). No puede registrar el área de formulario para la clase de mensaje IPM.Contact.

Cuando Outlook abre un elemento y ve una clase de mensaje derivada (por ejemplo, IPM. Contact.MyContact.Personal.Family), busca un área de formulario de reemplazo o reemplazo total (es decir, un área de formulario que tenga un elemento formRegionType que sea igual a replace o replaceAll) y que coincida exactamente con la clase de mensaje derivada, IPM. Contact.MyContact.Personal.Family. Si no hay ninguna coincidencia exacta, Outlook lo intentará con IPM.Contact.MyContact.Personal y, si no esto no funciona, lo intentará con IPM.Contact.MyContact. Tenga en cuenta que Outlook ignora cualquier área de formulario de reemplazo o de reemplazo total para IPM.Contact. Si no se obtiene ninguna coincidencia exacta, Outlook buscará cualquier área de formulario cuya propiedad formRegionType sea igual que adjoining o separate para la clase derivada IPM.Contact.MyContact.Personal.Family.

Varias áreas de formulario para la misma clase de mensaje

Cuando uno o varios complementos registran varias áreas de formulario para la misma clase de mensaje, el orden en el que se muestran las áreas de formulario adyacentes en la página predeterminada y el orden de las áreas de formulario independientes en el formulario dependen del orden en el que se hayan instalado los complementos y del orden en el que los complementos registren las áreas de formulario. Si un complemento especifica más de un área de formulario adyacente o más de un área de formulario independiente para una clase de mensaje, el complemento puede usar el elemento displayAfter para especificar el orden de estas áreas de formulario. El orden especificado por displayAfter tiene prioridad sobre el orden de las áreas de formulario en el Registro. Es la única forma en la que los complementos pueden especificar el orden de las áreas de formulario en un formulario.

Una vez instaladas las áreas de formulario en un equipo cliente, los usuarios del formulario pueden personalizar aún más el orden de las áreas de formulario adyacentes abriendo el formulario y moviendo las áreas de formulario hacia arriba o hacia abajo en la página predeterminada mediante el menú contextual del encabezado del área de formulario.

Ejemplo:

A continuación se muestra un ejemplo del código XML para un área de formulario para una clase de mensaje derivada, IPM.Contact.MapUser. El área de formulario se aplica a todos los usuarios de un equipo. El archivo XML, map.xml, se encuentra en c:\Form Regions.

Para registrar el área de formulario, cree el siguiente valor en el Registro de Windows:

Valor del Registro Entrada
Clave HKEY_LOCAL_MACHINE\Software\Microsoft\Office\Outlook\FormRegions\IPM.Contact.MapUser
Nombre MapTab
Tipo REG_SZ
Datos c:\Form Regions\map.xml

A continuación se muestra el contenido de map.xml:

<?xml version="1.0"?> 
<FormRegion xmlns="https://schemas.microsoft.com/office/outlook/12/formregion.xsd">   
    <!-- Internal name --> 
    <name>MapTab</name> 
    <!-- Display name --> 
    <title>Directions</title> 
    <!--  Additive separate form region --> 
    <formRegionType>separate</formRegionType> 
    <!--  Layout file --> 
    <layoutFile>Map.ofs</layoutFile> 
    <!-- Icon for form region in all contexts --> 
    <icons> 
        <default>generic.ico</default> 
    </icons> 
</FormRegion> 

El área de formulario se agrega al formulario como una página después de la última página integrada no oculta del formulario de contacto; normalmente, se incluye después de la página Todos los campos. El título de la página es Directions y su nombre de programación interno es "MapTab". Map.xml especifica un archivo de diseño y un archivo de icono. Tenga en cuenta que todas las rutas de archivo especificadas en el archivo XML pueden especificarse como rutas de acceso completas de archivo o como rutas relativas a la ubicación del archivo de manifiesto XML del área de formulario.

Soporte técnico y comentarios

¿Tiene preguntas o comentarios sobre VBA para Office o esta documentación? Vea Soporte técnico y comentarios sobre VBA para Office para obtener ayuda sobre las formas en las que puede recibir soporte técnico y enviar comentarios.