Поделиться через


Методы и свойства в Outlook PIA

В этой статье описано, как получить доступ к методам и свойствам объекта в управляемом коде с помощью основной сборки взаимодействия Outlook (PIA).

Откуда поступают объекты модуля поддержки

При создании PIA в Outlook применяется программа импорта библиотек типов (TLBIMP) в .NET Framework, преобразующая определения типов в библиотеке типа COM в эквивалентные определения из сборки среды CLR. В рамках COM объект фактически является компонентным классом, который состоит из следующих компонентов:

  • основной интерфейс (например, интерфейс _FormRegion );

  • интерфейс события (например, интерфейс FormRegionEvents ).

TLBIMP импортирует основной интерфейс и интерфейс события для каждого объекта и создает ряд интерфейсов, делегатов и классов, среди которых встречаются следующие:

  • интерфейс события .NET (например, интерфейс FormRegionEvents_Event );

  • класс .NET (например, класс FormRegionClass );

  • интерфейс .NET (например, интерфейс FormRegion).

Для чего предназначены объекты модуля поддержки

В следующем списке проверяется содержимое каждого перечисленного ранее интерфейса и класса (объект FormRegion продолжает использоваться в качестве примера).

  • Интерфейс _FormRegion определяет все методы и свойства FormRegion. Этот интерфейс обычно не используется в коде, кроме условия, рассматриваемого ниже.

  • Интерфейс FormRegionEvents определяет методы, которые соответствуют событиям FormRegion. Этот интерфейс не используется в коде.

  • TLBIMP дополнительно обрабатывает интерфейс FormRegionEvents для создания интерфейса FormRegionEvents_Event который определяет все события FormRegion. Этот интерфейс обычно не используется в коде, кроме условия, рассматриваемого ниже.

  • Класс FormRegionClass определяет все методы, свойства и члены событий FormRegion. Это тот класс, с которым интерфейсу FormRegion приписывается скрытая связь, позволяющая написать код для создания экземпляра интерфейса FormRegion. Однако непосредственно в коде этот интерфейс не используется.

  • Интерфейс FormRegion наследует интерфейс _FormRegion и интерфейс FormRegionEvents_Event. На рисунке 1 показана эта связь наследования.

    Рис. 1. Интерфейс FormRegion наследует методы и свойства интерфейса _FormRegion, наследуя события из интерфейса FormRegionEvents_Event

    Интерфейс FormRegion наследует методы и свойства интерфейса _FormRegion, наследуя события из интерфейса FormRegionEvents_Event

    Обычно FormRegion — этот интерфейс, используемый в управляемом коде для доступа к объекту, методу, свойству и элементам события объекта FormRegion.

Используя объект Application в качестве другого примера, вы можете получить доступ к объекту Application , методам, свойствам и событиям через интерфейс приложения . Однако существует три исключения, в которых необходимо использовать другой интерфейс или, в зависимости от языка, вы хотите использовать другой интерфейс:

  • При доступе к методу, который назван так же, как и событие, рекомендуется привести к основному интерфейсу для вызова метода. Например, у объекта Application есть метод Quit и событие Quit. В Visual Basic .NET можно получить доступ к методу Quit с помощью интерфейса Application. В C# можно избежать предупреждения компилятора, приведение метода Quit к основному интерфейсу, как показано в следующем примере кода:

        void DemoApp()
        {
            Outlook.Application myApp = new Outlook.Application();
            // Other application code here
            ((Outlook._Application)myApp).Quit();
        }
    
  • При доступе к событию, названному так же, как и метод объекта, необходимо привести к соответствующему интерфейсу события, чтобы подключиться к событию. Как и в приведенном выше примере, для подключения к событию Quit необходимо привести к интерфейсу ApplicationEvents_11_Event .

  • При подключении к более ранней версии события, которое было впоследствии продлено в позднейшей версии Outlook, необходимо подключиться к версии события в ранней версии интерфейса. Например, если вы хотите подключиться к версии события Quit для объекта Application , реализованного для Outlook 2002, вместо последней версии, подключитесь к событию Quit , определенному в интерфейсе ApplicationEvents_10_Event , а не к событию Quit, определенному в интерфейсе ApplicationEvents_11_Event.

См. также