📄 servobj.pas
字号:
unit ServObj;
interface
uses
ComObj, ActiveX, Server_TLB;
type
TBinaryData = class(TAutoObject, IBinaryData)
protected
function Get_Data: OleVariant; safecall;
procedure Set_Data(Value: OleVariant); safecall;
end;
implementation
uses ComServ, ServMain;
function TBinaryData.Get_Data: OleVariant;
var
P: Pointer;
L: Integer;
begin
// Move data from memo into array
L := Length(MainForm.Memo.Text);
Result := VarArrayCreate([0, L - 1], varByte);
P := VarArrayLock(Result);
try
Move(MainForm.Memo.Text[1], P^, L);
finally
VarArrayUnlock(Result);
end;
end;
procedure TBinaryData.Set_Data(Value: OleVariant);
var
P: Pointer;
L: Integer;
S: string;
begin
// Move data from array into memo
L := VarArrayHighBound(Value, 1) - VarArrayLowBound(Value, 1) + 1;
SetLength(S, L);
P := VarArrayLock(Value);
try
Move(P^, S[1], L);
finally
VarArrayUnlock(Value);
end;
MainForm.Memo.Text := S;
end;
initialization
TAutoObjectFactory.Create(ComServer, TBinaryData, Class_BinaryData,
ciSingleInstance, tmApartment);
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -