Главная страница
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.017 c
1-36704
GreySerg
2003-12-02 15:34
2003.12.12
Как сделать hint в закладке (TTabSheet ) , когда наводишь курсор


1-36719
Triny
2003-12-02 13:13
2003.12.12
Сохранение


1-36686
Genry
2003-12-02 19:47
2003.12.12
Регистрация COM-сервера


7-36871
Serge
2003-09-29 21:49
2003.12.12
Перехват чтения/записи файла


1-36715
MakNik
2003-12-02 13:37
2003.12.12
MessageDlg