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


Выполнение правила на локальном компьютере

В этом примере показано, как выполнять правило на локальном компьютере с помощью свойства OnLocalMachine объекта RuleConditions.

Пример

Примечание.

Приведенный ниже пример кода представляет собой фрагмент из книги Программирование приложений для Microsoft Office Outlook 2007.

Если почтовый ящик размещается на сервере Exchange, правило может выполняться на сервере Exchange или в клиенте Outlook. Если правило выполняется на сервере, для оценки условий правила и выполнения действий правила не требуется запускать Outlook. Для выполнения правила в клиенте требуется запускать приложение Outlook. Если свойство IsLocalRule объекта Rule возвращает значение true, правило выполняется в клиенте.

Для действий правила, по умолчанию выполняемых в клиенте (например, отображение оповещений о новых сообщениях), условие OnLocalMachine включается автоматически, а свойству Enabled присваивается значение true только для объекта RuleAction , расположенного на стороне клиента. Для действий правила, обычно выполняемых на сервере, задайте свойство Enabled только для объекта RuleAction, расположенного на стороне клиента, чтобы включить условие OnLocalMachine. В этом случае правило будет принудительно выполняться локально в клиенте.

Если условие OnLocalMachine для правила включено, условие OnOtherMachine также будет включено при выполнении этого правила на другом компьютере. Условие правила типа olConditionOtherMachine означает, что правило может выполняться только на заданном компьютере, отличном от текущего, и не может включаться и отключаться программным способом. Например, если правило создано на текущем компьютере и включено условие правила OnLocalMachine, правило может выполняться только на локальном компьютере. Если это же правило выполняется на другом компьютере, правило будет показывать, что включено условие правила OnOtherMachine.

В представленном ниже примере кода DemoOnMachineOnly создает правило и включает условие OnlyToMe и действие Forward путем присвоения для свойств Enabled значения true. Затем включается условие OnLocalMachine, приводящее к локальному выполнению серверного правила, и правила сохраняются. По умолчанию действие Forward и условие OnlyToMe выполняются на сервере. После включения условия OnLocalMachine они выполняются в качестве клиентского правила.

Если вы используете Visual Studio для тестирования этого примера кода, сначала добавьте ссылку на компонент Microsoft Outlook 15.0 Object Library и задайте переменную Outlook при импорте пространства имен Microsoft.Office.Interop.Outlook. Инструкция using не должна находиться непосредственно перед функциями в примере кода, но ее нужно добавить перед объявлением общедоступного класса. В следующей строке кода показано, как выполнить импорт и назначение в C#.

using Outlook = Microsoft.Office.Interop.Outlook;
private void DemoOnMachineOnly()
{
    Outlook.Rules rules =
        Application.Session.DefaultStore.GetRules();
    Outlook.Rule rule =
        rules.Create("Demo Machine Only Rule",
        Outlook.OlRuleType.olRuleReceive);
    rule.Conditions.OnlyToMe.Enabled = true;
    rule.Actions.Forward.Enabled = true;
    rule.Actions.Forward.Recipients.Add("someone@example.com");
    rule.Actions.Forward.Recipients.ResolveAll();

    // Force the rule to execute locally
    rule.Conditions.OnLocalMachine.Enabled = true;
    rules.Save(true);
}

См. также