Форум: "Основная";
Текущий архив: 2002.02.25;
Скачать: [xml.tar.bz2];
ВнизDelph и COM помогите разобраться в типах Найти похожие ветки
← →
ikar (2002-02-08 13:51) [0]В VCL я использую компоненты ADO Express, вставляя их в COM внутрипроцессорный. И пытаюсь получить данные в VBA.
Реализация:
(IDL)
{
int _stdcall TInteger( void );
BSTR _stdcall TString( void );
}
(Delphi)
{
function Объект.TInteger: Integer;
begin
Result := Counter;
end;
function Объект.TString: WideString;
begin
Result := WideString(Label1.Caption);
end;
}
Использование:
(VBA)
{
DIM a AS Библиотека.Объект
SET a = CreateObject(IОбъект)
i = a.TInteger // Работает
s = a.TString // Завешивает приложение
}
Я надеюсь на то что RecordSet и в VCL, и в VBA наследуются от одного интерфейса IRecordSet.
CLASS_Recordset {00000535-0000-0010-8000-00AA006D2EA4}
IID__Recordset {00000555-0000-0010-8000-00AA006D2EA4}
Как вообще возможно узнать и использовать интерфейс которого нет в Type Library Editor?
Благодарю за любую помощь.
← →
kig (2002-02-08 16:17) [1]>SET a = CreateObject(IОбъект)
Здесь точно не опечатка? Потому что вообще-то так надо
SET a = CreateObject("ProgID")
Скорее всего ProgID = "Библиотека.Объект"
← →
Набережных С. (2002-02-08 16:19) [2]Функция должна выглядеть либо так:
function Объект.TString: WideString;safecall;
либо так:
function Объект.TString(out Value: WideString):HResult;stdcall;
← →
ikar (2002-02-09 09:55) [3]Спасибо за помощь, обязательно попробую.
kig конечно прав, я так и делаю.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.02.25;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.004 c