juice |
Отправлено: 30.06.2005, 17:16 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 33
|
Работаю через OLE с Microsoft Outlook. Как установить обработчик некоего события ? Вроде как простая операция а у меня не получается
Вот как пишу я:
CODE |
void __fastcall myfunc(void)
{
}
...
oApp = CreateOleObject("outlook.application");
oNs = oApp.OleFunction("GetNameSpace", "MAPI");
oNs.OlePropertyGet("SyncObjects").OleFunction("Item",1).OlePropertySet ("SyncEnd", myfunc);
|
В ответ выдается ошибка EoleSysError — "Unknown name" |
|
GIZMO |
Отправлено: 06.07.2005, 12:21 |
|
Машинист паровоза
Группа: Участник
Сообщений: 174
|
QUOTE (juice @ 30/06/2005, 17:16) | Работаю через OLE с Microsoft Outlook. Как установить обработчик некоего события ? Вроде как простая операция а у меня не получается
Вот как пишу я:
CODE |
void __fastcall myfunc(void)
{
}
...
oApp = CreateOleObject("outlook.application");
oNs = oApp.OleFunction("GetNameSpace", "MAPI");
oNs.OlePropertyGet("SyncObjects").OleFunction("Item",1).OlePropertySet ("SyncEnd", myfunc);
|
В ответ выдается ошибка EoleSysError — "Unknown name" |
События VCL и события в ОЛЕ не одно и тоже. Надо написать свой класс с реализацией IDispatch (можно воспользоваться ATL или VCL-овским TEventDispacther), затем запросить у сервера. IConnectionPointContainer найти IConnectionPoint и подкл. событию
если юзать ATL то достаточно вызвать AtlAdvise.
|
|
|