Einzelnen Beitrag anzeigen

TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.062 Beiträge
 
Delphi 10.4 Sydney
 
#39

AW: proceduren (Events) aus Interface

  Alt 12. Sep 2016, 13:36
Es wäre noch anzumerken, dass in anderen Sprachen, wie bspw. C++, die Definition von der Erzeuger-Funktion SkinMagnetic Probleme verursachen kann.

Das heißt, diese Funktion...
Delphi-Quellcode:
 function SkinMagnetic : ISkinMagnetic; stdcall;
 begin
   if MagneticWnd = nil then
    MagneticWnd := TMagnetic.Create;
    result := MagneticWnd as ISkinMagnetic;
 end;
...besser umändern zu:
Delphi-Quellcode:
function SkinMagnetic(out ASkinMagnetic: ISkinMagnetic): HRESULT; stdcall;
begin
  Result := S_FALSE;
  try
    if MagneticWnd = nil then
      MagneticWnd := TMagnetic.Create;

    ASkinMagnetic := MagneticWnd as ISkinMagnetic;
    if Assigned(ASkinMagnetic) then
    begin
      Result := S_OK;
    end;
  except
    on E: Exception do
      Result := E_NOINTERFACE;
  end;
end;
  Mit Zitat antworten Zitat