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

Вниз

OLEVariant   Найти похожие ветки 

 
MixAnOL ©   (2006-09-17 20:15) [0]

Здарово всем!

Есть OLE сервер с событиями, есть событие с параметром widestring. Для тестирования создал клиента, импортировал библиотеку типов для моего сервера. В полученной юните у этого события параметр уже имеет тип OleVariant - почему так происходит?

И как в клиенте получить строку из этого OleVariant??

Что ни пробоваль - получается пустая строка....
Сервер тестировал пошагово, проверял какое значение уходит как параметр...


 
MixAnOL ©   (2006-09-17 20:23) [1]

в дополнение, с помощью VarType определил, что тип у параметра varByRef+varOleStr...
как достать эту строку? что-то в голову ни чего путного не лезет...


 
Percent   (2006-09-17 22:36) [2]

widestring

Тут не всякий "программист", пишущий на Delphi, знает про этот тип. А ты хочешь, чтобы все клиенты твоего OLE сервера об этом типе знали...


 
oxffff ©   (2006-09-17 22:40) [3]

varOleStr Reference to a dynamically allocated UNICODE string.


 
oxffff ©   (2006-09-17 22:49) [4]

Вот тебе пример работы с varOleStr or varbyref
var a:OleVariant;
   b:pWideString;
   c:TVarData;
   d:WideString;
begin
d:="423dasdas4";
b:=@d;
TVarData(a).VType:=varOleStr or varbyref;
TVarData(a).VAny:=b;
showmessage(a); на экране 423dasdas4


 
MixAnOL ©   (2006-09-18 11:02) [5]

TVarData интересная вестчь... но мне не помогла...
может из-за того, что строка передается по ссылке, а событие у меня генерится в процедуре и ссылка на локальную переменную? На событиях OLE требует обязательно указатель, а не значение в параметрах...
Вот и не пойму, как мне делать ссылку правильной..или еще что-то...


 
oxffff ©   (2006-09-18 11:31) [6]

Я написал пример, как устроен varOleStr or varbyref.
Это двойной указатель на строку.

Напиши с кодом, что тебе непонятно.


 
MixAnOL ©   (2006-09-18 13:55) [7]

да похоже у меня собака в другом месте порылась... косяк был в реализации интерфейса.

На счет TVarData: а как мне передать record в OLEVariant?


 
oxffff ©   (2006-09-18 15:33) [8]

Как я могу тебе ответить, если я не знаю, что в чем разрабатывается.
Могу тебе сказать, что сделать можно.


 
Сергей М. ©   (2006-09-18 16:17) [9]


> как мне передать record в OLEVariant


как varArray


 
oxffff ©   (2006-09-18 19:10) [10]

Если так, тогда можно и так varbyte+varbyref



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

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

Наверх




Память: 0.49 MB
Время: 0.046 c
2-1160668222
фтвкун
2006-10-12 19:50
2006.10.29
Внешний вид формы при разных разрешениях


6-1149207572
Валерий
2006-06-02 04:19
2006.10.29
Ошибка до перехвата исключения


2-1160462004
mfender
2006-10-10 10:33
2006.10.29
Пустой TXMLDocument или, как создать корневой узел?


15-1159942031
Курдль
2006-10-04 10:07
2006.10.29
Совсем не в тему Delphi, но такие строки больно берут за душу...


2-1161013609
Alex_KV
2006-10-16 19:46
2006.10.29
Про указатели