обработка событий AX из exe-сервера в javascript
От: i-1  
Дата: 14.03.07 14:16
Оценка:
Не могу поймать события из ActiveX, расположенного в exe-сервере. Методы disp-интерфейса вызываются нормально.
Если AX в dll, то все ок.

Можно ли ловить события AX из другого процесса и как это сделать?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re: обработка событий AX из exe-сервера в javascript
От: Left2 Украина  
Дата: 14.03.07 16:36
Оценка:
i-1>Не могу поймать события из ActiveX, расположенного в exe-сервере. Методы disp-интерфейса вызываются нормально.
i-1>Если AX в dll, то все ок.
i-1>Можно ли ловить события AX из другого процесса и как это сделать?

Проблема вылазит только из javascript?
Если нет, то возможно что неправильно описан интерфейс событий в IDL-файле, из-за чего не работает стандартный typelib-маршаллер.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[2]: обработка событий AX из exe-сервера в javascript
От: i-1  
Дата: 14.03.07 18:04
Оценка:
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>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.