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

Вниз

Правильно передать IStream из DCOM-клиента на DCOM-сервер ?   Найти похожие ветки 

 
Cheburek   (2004-11-15 20:44) [0]

Уважаемые мастера, здравствуйте.
Мучаюсь над проблемой передачи интерфейса IStream
из DCOM-клиента на DCOM-сервер для того, чтобы сервер
мог читать\писать поток, переданный ему клиентом.

Возможно ли такое вообще ? В описании к IStream сказано,
что это обычный СОМ-интерфейс. Я так понимаю что его пере-
давать в качестве параметра на DCOM сервера ? Или я не прав*?

Пример клиента:
//  В метод сервера передаётся имя желаемого файла и IStream приёмника.
var dsa : TStreamAdapter;
   DestSt : TFileStream;
   dI : IStream;
begin
DCOMConnection1.Connected := true;
IMySoed := IMyTestZakachDisp(DCOMConnection1.GetServer);
DestSt := TFileStream.Create("D:\Server.exe",fmCreate);
dsa := TStreamAdapter.Create(DestSt);
di := IStream(dsa);
IMySoed.ReadFile("D:\Program Files\Borland\Delphi7\Projects\SecretPipe2\Server\Server.exe", di);

Пример сервера :
procedure TMyTestZakach.ReadFile(FileName: OleVariant; const Param2: IUnknown);
var ssa : TStreamAdapter;
   SourceSt : TFileStream;
   sI, dI : IStream;
   size : int64;
   rd, wr : int64;
begin
SourceSt := TFileStream.Create(FileName, fmOpenRead);
ssa := TStreamAdapter.Create(SourceSt);
si := IStream(ssa);
size := ssa.Stream.Size;
di := IStream(Param2);
if si.CopyTo(di, size, rd, wr) =  S_OK then ShowMessage("Всё хорошо.");
// Si.Copy вызывает исключение со ссылкой на ole32.dll ????

Подкажите, что можно сделать ?
Приму любую помощью.
Заранее спасибо всем ответившим. С уважением.....

P.S. требуется для перекачки файлов.


 
Чебуратор   (2004-11-16 11:23) [1]

Никто не знает чтоли ?


 
hexone   (2004-11-19 17:48) [2]

Если необязательно использовать IStream, используй SafeArray


 
Набережных С.   (2004-11-27 15:36) [3]

>Cheburek   (15.11.04 20:44)

>procedure TMyTestZakach.ReadFile(FileName: OleVariant; const Param2: IUnknown);
>di := IStream(Param2);

"Как прикажешь тебя понимать, Саид?" Ну я-то ладно, но как это должны понимать Proxy- и StubManager? Как они могут догадаться, что нужно создавать заглушку и заместителя для IStream?

di := Param2 as IStream;]

И, кстати, указатель стрима надо-бы переставить на начало, а?



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

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

Наверх




Память: 0.47 MB
Время: 0.068 c
4-1121730983
[MHT]Tyz
2005-07-19 03:56
2005.09.04
Перехват печати в Windows


2-1081121430
ChiNick
2004-04-05 03:30
2005.09.04
Как работать с цветом


14-1123009670
Михаил(Киров)
2005-08-02 23:07
2005.09.04
Логи WinRoute


1-1123744158
Bios_
2005-08-11 11:09
2005.09.04
????? вместо строк


4-1121344478
viper
2005-07-14 16:34
2005.09.04
Время загрузки