Конференция "Corba" » OLE сервер Outlook [D7, WinXP]
 
  • Alekss1944 © (20.11.12 12:00) [20]
    Спасибо, но если запущен  Outlook , то и не надо ни каких
    ухищрений и так все работает и при ckRunningOrNew.
    А   ConnectKind = ckRunningInstance при AutoConnect = False
    не имеет смысла
     
    Вобщем это плохое решение, так как надо самому запускать
    Outlook и объяснять это пользователю.(?????)
    Надо чтобы работало только из проги через OLE сервер.
  • Аббат Пиккола (28.11.12 12:15) [21]
    А я вот вообще не использую компоненты вроде TOutlookApplication. Вместо этого делаю как-то так:

    try
     Outlook := GetActiveOleObject('Outlook.Application') ;
    except
     Outlook := CreateOleObject('Outlook.Application') ;
    end;

    Если Outlook стартован, будет получена ссылка на него. Если нет - он будет стартован и будет получена ссылка на него.
  • Alekss1944 © (28.11.12 15:52) [22]
    Спасибо.
    И что при этом не будет того эффекта
    ( то есть выгрузка процесса после
    закрытия окна Outlook "Контакты"?
    Почитайте историю писем.
  • Аббат Пиккола (28.11.12 18:00) [23]
    Я читал переписку. Я не знаю. Просто у меня возникло предположение, что компонент TOutlookApplication всегда создает новый экземпляр сервера аутлук, если использовать свойство AutoConnect := True.
    К сожалению, у меня нет исхзодных текстов этого компонента, чтобы залезть и посмотреть, как там все организовано.
    Но я вот что думаю. Так как в списке методов я вижу метод ConnectTo(), следовательно, должна существовать возможность подключиться к уже имеющемуся экземпляру сервера автоматизации. Нужно, ИМХО, выяснить, зачем этот метод и как его задействовать.
  • Alekss1944 © (28.11.12 18:24) [24]
    Спасибо.
    экземпляр сервера аутлук создается в моей проге один раз при запуске
    и я с ним работаю до выхода из программы.
    ns := OutlookApplication1.GetNamespace(WideString('MAPI'));
    где  ns: NameSpace; // глабальная область видимости

    Но если я запускаю от себя окно Контакта Outlook
    посредством функции  contitem.Display(false) и
    потом его закрываю, то процесс   "Outlook.exe"
    выгружается, а мне надо продолжать работу
    с сервером.
 
Конференция "Corba" » OLE сервер Outlook [D7, WinXP]
Есть новые Нет новых   [118574   +16][b:0][p:0]