Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Получение параметров из Cом объекта.


kostya ©   (2002-04-03 09:50:00) 

У меня проблема следующего рода: Написал Com, в Delphi он прекрасно работает, но когда использую его в VBA, то все функции работают нормально, кроме тех, в которых, возвращаемый параметр строка. В макросе вылетает ошибка "клиент отключен от объекта".


kostya   (2002-04-03 12:46:00) [1]

function Tfindfile.GetNameNew(No: Integer;
out PathFile: WideString): WordBool;
begin
try
PathFile:=FileList.Strings[No];
finally
Result:=True
end;
end;

Работает нормально.


Digitman   (2002-04-03 12:12:00) [2]

>kostya

никаких WideString ! только - OleVariant будет работать на стыке с VBA.


Dok_3D   (2002-04-03 11:38:00) [3]

Можно out OleVariant,
если эта вариантная переменная будет иметь стринговое значение, то VBA ее прекрасно поймет.


Dimka Maslov   (2002-04-03 11:13:00) [4]

или можно и out WideString


kostya   (2002-04-03 11:05:00) [5]

To Dimka Maslov
а что за тип LPCTSTR мне чего то такой не установить :((


kostya   (2002-04-03 10:27:00) [6]

To Digitman

function TSearchFile.GetFileName(Number_: Integer): WideString;
begin
Result:=FileList.Strings[Number_]
end;


Digitman   (2002-04-03 09:57:00) [7]

приведи декларацию и реализацию интерфейсного функц.метода, вызов которого из VBA вызывает сию проблему


Dimka Maslov   (2002-04-03 09:56:00) [8]

В Com-объектах, если они исплоьзуются в VBA нельзя использовать строки, как параметры, возвращаемые функцией. Попробуй заменить такие методы интерфейсов следующим образом

было:
function SomeFunc(Params): PChar;

надо:
function SomeFunc(Params; out ResultStr: LPCTSTR): HResult;



Наверх

Титульная страница Поиск, карта сайта Написать письмо