Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2006.10.29;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.042 c
6-1149614620
Ezorcist
2006-06-06 21:23
2006.10.29
Вопрос по NAT (на примере ICQ)


15-1160087426
Real
2006-10-06 02:30
2006.10.29
Знатоки HTML (или IE?) как думаете в чем дело тут?


3-1157184653
RVH
2006-09-02 12:10
2006.10.29
Клиент-сервер


2-1160992971
vegarulez
2006-10-16 14:02
2006.10.29
Народ, подскажите компоненту для обмена по протоколу HTTPS.


2-1160631958
Sergey_b
2006-10-12 09:45
2006.10.29
DLL





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский