Einzelnen Beitrag anzeigen

Benutzerbild von uligerhardt
uligerhardt

Registriert seit: 19. Aug 2004
Ort: Hof/Saale
1.735 Beiträge
 
Delphi 2007 Professional
 
#14

AW: Schnittstelle ohne COM-Eigenschaft

  Alt 27. Aug 2013, 07:42
Die Referenzzählung ist dann zu nichts nütze und nichts weiter als lästig
Ich benutze da folgende Basisklasse:
Delphi-Quellcode:
type
  TPureInterfacedObject = class(TObject, IInterface)
  protected
    { IInterface }
    function QueryInterface(const IID: TGUID; out Obj): HResult; virtual; stdcall;
    function _AddRef: Integer; stdcall;
    function _Release: Integer; stdcall;
  end;

{ TPureInterfacedObject }

function TPureInterfacedObject.QueryInterface(const IID: TGUID; out Obj): HResult;
begin
  Result := E_NOINTERFACE;
end;

function TPureInterfacedObject._AddRef: Integer;
begin
  Result := -1;
end;

function TPureInterfacedObject._Release: Integer;
begin
  Result := -1;
end;
Damit generiert der Compiler zwar immer noch Aufrufe für _AddRef und _Release, aber die töten das betroffene Objekt nicht.
Uli Gerhardt
  Mit Zitat antworten Zitat