Не могу поймать события из ActiveX, расположенного в exe-сервере. Методы disp-интерфейса вызываются нормально.
Если AX в dll, то все ок.
Можно ли ловить события AX из другого процесса и как это сделать?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
i-1>Не могу поймать события из ActiveX, расположенного в exe-сервере. Методы disp-интерфейса вызываются нормально.
i-1>Если AX в dll, то все ок.
i-1>Можно ли ловить события AX из другого процесса и как это сделать?
Проблема вылазит только из javascript?
Если нет, то возможно что неправильно описан интерфейс событий в IDL-файле, из-за чего не работает стандартный typelib-маршаллер.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
i-1>>Не могу поймать события из ActiveX, расположенного в exe-сервере. Методы disp-интерфейса вызываются нормально.
i-1>>Если AX в dll, то все ок.
i-1>>Можно ли ловить события AX из другого процесса и как это сделать?
L>Проблема вылазит только из javascript?
L>Если нет, то возможно что неправильно описан интерфейс событий в IDL-файле, из-за чего не работает стандартный typelib-маршаллер.
В клиенте на с++ события ловятся хорошо.
idl:
#include "olectl.h"
#include "olectl.h"
import "oaidl.idl";
import "ocidl.idl";
[
object,
uuid(24255385-DD46-486A-8584-278ED05D4374),
dual,
nonextensible,
helpstring("IMyCtrl Interface"),
oleautomation,
pointer_default(unique)
]
interface IMyCtrl : IDispatch{
[id(1), helpstring("method TestEvent")] HRESULT TestEvent(void);
};
[
uuid(421DFDB0-F008-4CB4-8C8C-C6049DC26AB9),
version(1.0),
helpstring("tmpEXEEventSrc 1.0 Type Library")
]
library tmpEXEEventSrcLib
{
importlib("stdole2.tlb");
[
uuid(87E5A35E-5C70-4D5A-ABC9-C8F8902B014F),
helpstring("_IMyCtrlEvents Interface")
]
dispinterface _IMyCtrlEvents
{
properties:
methods:
[id(1), helpstring("method Event1")] HRESULT Event1(void);
};
[
uuid(5DA87156-9EAF-4034-9F26-411461CBF281),
control,
helpstring("MyCtrl Class")
]
coclass MyCtrl
{
[default] interface IMyCtrl;
[default, source] dispinterface _IMyCtrlEvents;
};
};
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>