RaiseEvent Late Binding, ActiveX .dll - VB
Формулировка задачи:
Суть вопроса - как ловить событие при позднем связывании с использованием ActiveX.dll?
Пример раннего связыванияhttp://forums.codeguru.com/showthrea...to-raise-event
Делаю плагины для программы, ранее связывание меня не устраивает
Возможно ли при позднем связывании поймать Event?
Позднее связывание делаю так
В классе (dll)
Вызываю и ловлю
===================================
еще вопрос по поводу вызова с помощью vbs
у меня не работает
Пример возьму от сюда Форма в ActiveX Dll
тут
скрипт ничем не изолирован и не ограничен
Листинг программы
- Dim Calc As Object
- Set Calc = CreateObject("Calc.myCalc")
Листинг программы
- Public Event TestEvent()
- Public Sub ShellTestEvent()
- RaiseEvent TestEvent
- End Sub
Листинг программы
- Private Sub cmd_Click()
- Calc.ShellTestEvent
- End Sub
- Private Sub Calc_TestEvent()
- MsgBox "Event Raised from DLL"
- End Sub
Catstail
выложил календарь на ActiveX.dll и vbs скрипт для его вызова, у меня вылетает вот такая ошибкаСпойлер
Решение задачи: «RaiseEvent Late Binding, ActiveX .dll»
textual
Листинг программы
- procedure TForm1.Button1Click(Sender: TObject);
- var
- ClassFactory:IClassFactory2;
- DllHandle:THandle;
- ADllGetClassObject:TDllGetClassObject;
- AObject:INoRegister;
- begin
- DllHandle:=LoadLibrary('C:\Program Files\...путь...\noregister.dll');
- ADllGetClassObject:=GetProcAddress(DllHandle,'DllGetClassObject');
- OleCheck(ADllGetClassObject(CLASS_NoRegister_,IClassFactory2,ClassFactory));
- ClassFactory.CreateInstance(nil,INoRegister,AObject);
- OleCheck(AObject.Method1);
- end;
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д