![]() |
Copy-Methode bei COM-Interfaces
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; |
Re: Copy-Methode bei COM-Interfaces
für korrektes englisch muss es jedenfalls CopyFrom heissen.
CopyOf ist nicht korrekt. das kann gar nicht sein. ich hab hier grad visual j++, da kann ich mal sehen, obs so was gibt..... nö da find ich auf den ersten blick nix. |
Re: Copy-Methode bei COM-Interfaces
Zitat:
Jetzt sieht mein Interface so aus:
Delphi-Quellcode:
Die Methode Clone erzeugt ein neues Objekt aus einem bestehenden. Das wäre also eine Art Copy-Constructor.
IMoney = interface(IDispatch)
['{B075BBA6-DCFE-4300-B920-22D3E70C5A6D}'] ... procedure CopyFrom(const source: IUnknown); safecall; function Clone:IMoney; safecall; .... end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:47 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz