Compartir a través de


Métodos y propiedades del PIA de Outlook

En este tema se describe cómo obtener acceso a los métodos y las propiedades de un objeto de código administrado usando el ensamblado de interoperabilidad primario (PIA) de Outlook.

Origen de los objetos auxiliares

Para crear el PIA, Outlook usa el importador de la biblioteca de tipos (TLBIMP) en .NET Framework para convertir definiciones de tipo de la biblioteca de tipos COM en definiciones equivalentes de un ensamblado de Common Language Runtime (CLR). En COM, un objeto es en realidad una coclase que consta de lo siguiente:

TLBIMP importa la interfaz primaria y la interfaz de eventos de cada objeto y crea una cantidad de interfaces, delegados y clases, entre los que se encuentra lo siguiente:

Función de los objetos auxiliares

Continuando con el objeto FormRegion como ejemplo, la siguiente lista examina lo que contiene cada interfaz y clase enumeradas anteriormente.

  • La interfaz _FormRegion define todos los métodos y propiedades de FormRegion. Salvo en un caso que se describe más adelante, esta interfaz no suele usarse en el código.

  • La interfaz FormRegionEvents define métodos que se asignan a eventos de FormRegion. Esta interfaz no se usa en el código.

  • TLBIMP procesa aún más la interfaz FormRegionEvents para crear la interfaz FormRegionEvents_Event que define todos los eventos de FormRegion. Salvo en un caso que se describe más adelante, esta interfaz no suele usarse en el código.

  • La clase FormRegionClass define todos los miembros de eventos, propiedades y métodos de FormRegion. Ésta es la clase a la que se atribuye la interfaz FormRegion para asociarla en segundo plano, de modo que puede escribir un código para crear una instancia de la interfaz FormRegion. Sin embargo, esta interfaz no se usa directamente en código.

  • La interfaz FormRegion hereda la interfaz _FormRegion y la interfaz FormRegionEvents_Event. La figura 1 ilustra esta relación de herencia.

    Figura 1. La interfaz FormRegion hereda métodos y propiedades de la interfaz _FormRegion y eventos de la interfaz FormRegionEvents_Event

    La interfaz FormRegion hereda métodos y propiedades de la interfaz _FormRegion y eventos de la interfaz FormRegionEvents_Event

    Generalmente, FormRegion es la única interfaz que se usa en código administrado para obtener acceso al objeto y a los miembros de eventos, propiedades y métodos del objeto FormRegion.

Usando el objeto Application como otro ejemplo, debe acceder al objeto Application y a sus métodos, propiedades y eventos a través de la interfaz Application. Sin embargo, hay tres excepciones en las que debe usar una interfaz diferente, o según el idioma, podría ser conveniente que usase una interfaz diferente:

  • Al acceder a un método que comparte el mismo nombre que un evento, es recomendable realizar la conversión a la interfaz principal para llamar al método. Por ejemplo, el objeto Application tiene un método Quit y un evento Quit. En Visual Basic. NET, puede obtener acceso al método Quit a través de la interfaz Application. En C#, puede evitar una advertencia del compilador si convierte el método Quit en la interfaz principal, como se muestra en el ejemplo de código siguiente:

        void DemoApp()
        {
            Outlook.Application myApp = new Outlook.Application();
            // Other application code here
            ((Outlook._Application)myApp).Quit();
        }
    
  • Al obtener acceso a un evento que comparte el mismo nombre que un método de ese objeto, debe realizar la conversión a la interfaz de eventos adecuada para conectarse al evento. De forma similar al ejemplo anterior, para conectarse al evento Quit, se convierte en la interfaz ApplicationEvents_11_Event .

  • Al conectarse a una versión anterior de un evento que se ha ampliado posteriormente en una versión posterior de Outlook, debe conectarse a la versión del evento de la interfaz anterior. Por ejemplo, si desea conectarse a la versión del evento Quit para el objeto Application implementado para Outlook 2002 en lugar de la versión más reciente, conéctese al evento Quit definido en la interfaz ApplicationEvents_10_Event , en lugar del evento Quit definido en la interfaz ApplicationEvents_11_Event.

Vea también