Einzelnen Beitrag anzeigen

shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#1

Copy-Methode bei COM-Interfaces

  Alt 27. Apr 2005, 13:31
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;
Andreas
  Mit Zitat antworten Zitat