Hi,
wie allgemein bekannt ist, benützt man in der
VCL die Methode
Assign um ein Objekt zu kopieren.
Gibt es bei
COM-Schnittstellen ein Art Regel, wie die Methode heisen soll und welche Datentyp als Übergabeparameter vorgesehen ist (wahrscheinlich IUnknown) ?
Ich habe die Methode mal
"CopyOf" genannt, möchte mich aber falls möglich an offizielle M$ Empfehlungen halten.
Delphi-Quellcode:
IMoney = interface(IDispatch)
['{B075BBA6-DCFE-4300-B920-22D3E70C5A6D}']
function Get_Value: Currency; safecall;
procedure Set_Value(Value: Currency); safecall;
function Get_CurString: WideString; safecall;
procedure Set_CurString(const Value: WideString); safecall;
procedure Clear; safecall;
procedure CopyOf(const source: IDispatch); safecall;
// ^^^^^ ^^^^^^^
procedure Add(const value: IMoney); safecall;
procedure Sub(const value: IMoney); safecall;
function AsString(len: SYSINT): WideString; safecall;
procedure Negate; safecall;
procedure Multiply(factor: Double); safecall;
property Value: Currency read Get_Value write Set_Value;
property CurString: WideString read Get_CurString write Set_CurString;
end;
procedure TMoney.CopyOf(const source: IDispatch);
var
src : IMoney;
begin
src := source as IMoney;
FValue := src.Value;
FCurString := src.Get_CurString;
end;