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

Вниз

COM сервер   Найти похожие ветки 

 
Skyhawk   (2003-12-19 17:29) [0]

Люди ПОМОГИТЕ!!! Очень надо написать СОМ сервер, который можно было бы запустить на удаленном компьютере,и принимать с него данные в форматах String и Bitmap, но СОМ технология и Remote Procedure Call для меня темный лес. Мне бы совет дельный и исходничек какой нибудь(по возможности). Заранее благодарен...


 
Бином Ньютоныч   (2003-12-19 20:10) [1]

Сервер:

<Server_TLB.pas>
IMyDataPrvd = interface(IDispatch)
["{971107F6-A70E-44CE-AF1A-E715CFEB6E4B}"]
function GetStringData: WideString; safecall;
function GitBitmapData: OleVariant; safecall;
end;

<COM object unit>
TMyDataPrvd = class(TAutoObject, IMyDataPrvd)
protected
function GetStringData: WideString; safecall;
function GitBitmapData: OleVariant; safecall;
end;

function TMyDataPrvd.GetStringData: WideString;
begin
Result:="MyStringData";
end;

function TMyDataPrvd.GitBitmapData: OleVariant;
var
Bmp: TBitmap;
MS: TMemoryStream;
P: PByte;
begin
Bmp:=TBitmap.Create;
try
Bmp.LoadFromFile(BmpFileNameWithPath);
MS:=TMemoryStream.Create;
try
Bmp.SaveToStream(MS);
MS.Position:=0;
Result:=VarArrayCreate([1, MS.Size], varByte);
P:=VarArrayLock(Result);
try
MS.Read(P^, MS.Size);
finally
VarArrayUnlock(Result);
end;
finally
MS.Free;
end;
finally
Bmp.Free;
end;
end;


Клиент:

TForm1 = class(TForm)
Image1: TImage;
Label1: TLabel;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

uses
Server_TLB;

procedure TForm1.Button1Click(Sender: TObject);
var
DataPrvd: IMyDataPrvd;
V: OleVariant;
MS: TMemoryStream;
Sz: integer;
P: PByte;
begin
DataPrvd:=CoMyDataPrvd.Create;
Label1.Caption:=DataPrvd.GetStringData;
V:=DataPrvd.GitBitmapData;
Sz:=VarArrayHighBound(V, 1);
P:=VarArrayLock(V);
try
MS:=TMemoryStream.Create;
try
MS.WriteBuffer(P^, Sz);
MS.Position:=0;
Image1.Picture.Bitmap.LoadFromStream(MS);
finally
MS.Free;
end;
finally
VarArrayUnlock(V);
end;
end;


 
Opuhshii ©   (2003-12-21 14:07) [2]

имхо советом и исходничком не отделаетесь,..
книги нужно читать,.



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

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

Наверх




Память: 0.47 MB
Время: 0.036 c
6-25844
asdqwer
2003-12-29 18:19
2004.03.09
WebBrowser.Document.All.Tags


14-25882
Tarantul
2004-02-16 19:27
2004.03.09
Drag&Drop


1-25731
Mihalich
2004-02-27 00:22
2004.03.09
Работа с файлом смешанного типа.


1-25744
uUnknown
2004-02-26 19:21
2004.03.09
Чем может быть чреват следующий код?


3-25704
Vlad
2004-02-10 13:44
2004.03.09
Снова про удаление дублей в таблице