Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.12.12;
Скачать: CL | DM;

Вниз

Помогоите с OLE-Automation тип Object(VB) это VARIANT(IDL)???   Найти похожие ветки 

 
Галин Алексей   (2003-12-01 13:59) [0]

Мне нужно написать сервер OLE-Automation
В нём нужно создать метод, имеющий два параметра типа Object

Описане метода на Visual Basic выглядит так:

Public Sub RuleMethod(ByVal fieldsObj As Object, ByVal errorObj As Object)

Вот отрывок из хелпа:
"У проверяющего метода должно быть два аргумента типа Object..."

Вопрос - какой тип для параметров мне выбирать в редакторе библиотеки типов ( Object там нет) Может
VARIANT???

Очень благодарен за любую помощь в этом вопросе.
Галин А.М.


 
clickmaker ©   (2003-12-01 14:04) [1]

Вообще Object это просто указатель на объект, но поскольку это OLE, то можно IDispatch


 
Галин Алексей   (2003-12-01 15:38) [2]

Большое спасибо за ответ.
Дело сдвинулось до следующего затыка -
получение идентификатора метода с помощью
GetIDsOfNames() упаковка параметров в массив
OleVariant и вызов Invoke() со всеми этими параметрами

Разбираюсь дальше.


 
Ломброзо ©   (2003-12-01 17:34) [3]

Ну здрасьте. Project->New->ActiveX-> Automation Object
IDispatch в Automation object уже реализован, не мучайте Вы так себя!


 
Ломброзо ©   (2003-12-01 17:36) [4]

А вообще - Object в VB есть IDispatch* в IDL


 
Галин Алексей   (2003-12-02 11:54) [5]

Ещё раз рассыпаюсь благодарностсями за советы, спасшие меня от смерти

Приведённу выше проблему (получение идентификатора метода и так далее - см моё сообщение) решил следующим кодом:

STDMETHODIMP TGalin1Impl::Method4(LPDISPATCH Param1, LPDISPATCH Param2)
{
Variant v, v1;

try
{
v = Param1;
int i=-1;
i= v.Exec( Function ("GetFieldsCount"));
ShowMessage(i);

v.Exec(Procedure("SetFieldByIndex") <<1 << "www" );

v.Exec(Procedure("GetFieldByIndex") <<35 << &v1 );
ShowMessage(v1);

v = Unassigned;
v1 = Unassigned;
}
catch(Exception &e)
{
return Error(e.Message.c_str(), IID_IGalin1);
}
return S_OK;
}



Страницы: 1 вся ветка

Текущий архив: 2003.12.12;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.019 c
6-36792
Calm
2003-10-17 10:55
2003.12.12
Организация управления прог в сети. Как лучше реализовать?


7-36869
Николашка
2003-10-03 11:44
2003.12.12
Interrupt 21h Function 440Dh Minor Code 4Ah


3-36518
Patrick
2003-11-21 14:31
2003.12.12
Интеграция


1-36725
Eagle Owl
2003-12-01 22:05
2003.12.12
TTimer...


1-36695
alex_M
2003-12-02 18:09
2003.12.12
Есть 2 TListView, как определить какое из них активно.