Методы и свойства в 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.
Используя объект 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.