Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: ActiveX/СОМ/CORBA > забрать данные от outlook add-in


Автор: aleksh 6.10.2010, 15:49
такая ситуация - есть адд-ин для аутлука, он собирает данные из адресных книг
такая проблема - как к нему подключится из сторонней программы, чтобы забрать собранные им данные?

забирать напрямую из аутлука не предлагать, ибо не подходит
да, вот такая забавная ситуация, но надо именно так

Автор: cat512 6.10.2010, 17:09
Цитата(aleksh @ 6.10.2010,  15:49)
такая ситуация - есть адд-ин для аутлука, он собирает данные из адресных книг
такая проблема - как к нему подключится из сторонней программы, чтобы забрать собранные им данные?

забирать напрямую из аутлука не предлагать, ибо не подходит
да, вот такая забавная ситуация, но надо именно так

Что значит напрямую, созданием Ouutlook Application???
Если это Automation Add-In то тебе повезло, если нет, то повезло меньше smile
Для Automation:
1 Импортируешь TLB Add-In в файл проекта. (уже где-то писал: можешь сделать враппер (флажок 
Generate component wrapper), можешь не использовать враппер(снять флажок и нажать кнопку create Unit), но сложнее в использовании). И в том и другом случае, среда создаст модуль с интерфейсами Add - in, заканчивающийся суффиксом ..._TLB.
2 Создаёшь объект Add-in -a и юзаешь его методы/интерфейсы

Результат зависит от реализации Add-in-а!. Может быть вариант, когда ты ничего не сможешь получить, если Add-In не предоставляет интерфейсов, для доступа к своим данным.
Для не Authomation - сложнее, объясню, если будет необходимость


Автор: aleksh 6.10.2010, 18:34
Цитата(cat512 @  6.10.2010,  17:09 Найти цитируемый пост)
Создаёшь объект Add-in -a и юзаешь его методы/интерфейсы

а можно этот пункт по-подробней
создавать как, через "createoleobject" или как-то иначе?

как обращаться к метода? пытаюсь через точку после созданного объекта - пишет не поддерживает

Цитата(cat512 @  6.10.2010,  17:09 Найти цитируемый пост)
Что значит напрямую, созданием Ouutlook Application???

а чем плохо кроме скорости?

Автор: cat512 7.10.2010, 09:20
Раннее связ.
Код

const
  CLASS_OUTLOOK = 
    '['{AC3E7B34-8A24-41CC-8DB9-B153EADAC129}']'
var
  test: Itest;
begin
   Test := CreateComObject(CLSID_OUTLOOK) as ITEST;
end;


Позднее Связ.
Код

var
  V: OleVariant;
begin
  V := CreateOleObject('Mikrosoft.Outlook');  
end;


Цитата

как обращаться к метода? пытаюсь через точку после созданного объекта - пишет не поддерживает

Ну потому что нет интерфейса такого.
В твоём случае лучше сгенерить враппер, и использовать его методы, нежели  интерфейсы объекта, если не знаешь как работать с ком. 
Цитата

а чем плохо кроме скорости?

Не возможно контролировать ошибки на этапе компиляции!


Автор: aleksh 7.10.2010, 16:57
Цитата(cat512 @  7.10.2010,  09:20 Найти цитируемый пост)
Не возможно контролировать ошибки на этапе компиляции!

товарищи говорят, мол еще возникает вопрос безопасности, нужно подтверждать разрешение на доступ, хотя мне такого эффекта добиться не удалось. не подскажешь, что бы это могло быть?

а вообще - спасибо

Автор: cat512 7.10.2010, 17:55
Цитата(aleksh @ 7.10.2010,  16:57)
Цитата(cat512 @  7.10.2010,  09:20 Найти цитируемый пост)
Не возможно контролировать ошибки на этапе компиляции!

товарищи говорят, мол еще возникает вопрос безопасности, нужно подтверждать разрешение на доступ, хотя мне такого эффекта добиться не удалось. не подскажешь, что бы это могло быть?

а вообще - спасибо

Вот если бы ты ясно объяснял суть проблеммы, то я многое чего мог бы подсказать. smile
Цитата

нужно подтверждать разрешение на доступ

О каком разрешении на доступ идёт речь?
Если о доступе к объекту, и права у обычного USER-а не зарезанны админом  (например на папку где лежит dll), то никаго разрешения ни у кого спрашивать не надо smile
Если идёт речь о регистрации ком - сервера, необходимо что-бы у пользователя были права на запись/редактирование ветки реестра HKEY_CLASSES_ROOT, потому как INPROC - сервера (Add-in-ы) пишут  в эту ветку "нужную инфу"

Автор: aleksh 8.10.2010, 00:30
глупость написал, поспешил...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)