![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Получить бинарные данные из внешнего OLE сервера [Delphi, Windows]
yaJohn © (2006-11-21 12:08:00)Приветствую.
Какая-то дурацкая проблема...
Написал внешний OLE сервер. Теперь клиенту необходимо получить из ОЛЕ сервера бинарные данные. Создаю в интерфейсе новую функцию. Теперь нужно в одном из параметров вернуть бинарные данные, точнее говоря - обычную строку. VARIANT * параметр работает, но упорно игнорирует часть строки (что, собственно логично). Попытки использовать LPSTR к успеху тоже не привели. Стоит объявить LPSTR параметр как in-out - при выходе из процедуры на стороне ОЛЕ сервера идут страшные аксесвиолейшены. Просто LPSTR (и как var параметр тоже) прекрасно передает бинарные данные в ОЛЕ сервер, но любые изменения в данных сделанные в ОЛЕ сервере не видны клиенту.
Можно, конечно, слать данные в VAR массивах или кодировать в MIME и передавать через VARIANT * но это же ИЗВРАТ.
Допоможите люди добрые, тыкните пальцем...
wal (2006-11-23 10:11:00) [1]
> Ленив я...
Это зря
> А в дельфях есть обьект уже реализовавший IStream?
TStreamAdapter
случайно (2006-11-23 08:22:00) [2]Есть и в системе, и в Дельфи, но название длинное. а я тож ленив. Поиск поможет
yaJohn (2006-11-22 19:21:00) [3]э.... IStream - хорошая идея.
А в дельфях есть обьект уже реализовавший IStream? Ленив я...
случайно (2006-11-22 07:18:00) [4]> clickmaker © (21.11.06 16:12) [3]
> слать данные в VAR массивах или кодировать в MIME и передавать
> через VARIANT * но это же ИЗВРАТ.
COM по другому не умеет. Только вариант-совместимые типы.
Нужно быстро передавать сырые наборы байт - тогда сокеты в помощь
Умеет, только прокси-стаб делать надо. Или IStream передавать, тож вариант.
clickmaker (2006-11-21 16:12:00) [5]
> слать данные в VAR массивах или кодировать в MIME и передавать
> через VARIANT * но это же ИЗВРАТ.
COM по другому не умеет. Только вариант-совместимые типы.
Нужно быстро передавать сырые наборы байт - тогда сокеты в помощь
wal (2006-11-21 13:40:00) [6]Ну дак ты определись всетаки, бинарные данные, или всеже строку?
Если строку, то #0 как раз и определяет ее конец, если бинарные данные, то используй, например, массивы вриантные, почему это изврат - непонятно
yaJohn (2006-11-21 12:09:00) [7]upd.
VARIANT * параметр игнорирует часть строки после #0.