Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi OLE Automatisierung / Events ParamByRef (https://www.delphipraxis.net/32328-ole-automatisierung-events-parambyref.html)

Gruber_Hans_12345 21. Okt 2004 17:58


OLE Automatisierung / Events ParamByRef
 
Hallo

Wie kann ich bei einer OLE Automatisierung einen Parameter zurückgeben ?

Hab in invoke folgendes probiert
Delphi-Quellcode:
   
function TEventSink.Invoke(DispID: integer; const IID: TGUID; LocaleID: integer; Flags: Word; var Params; VarResult,ExcepInfo,ArgErr:Pointer): HResult;
var Args       : PVariantArgList;
begin
  Result := S_OK;
  if DispID = 3 then begin
    Args       := TDispParams(Params).rgvarg;

    // PInteger(varResult)^      := 0;
    Args^[0].vBool := False;
  end;
end;
Die funktion hat drei paramter der letzte (sollte ja dann [0] sein) ist ein Boolean, ob die funktion am OLE Server ausgeführt werden soll oder nicht.

Hat jemand eine Idee warum es nicht so funktioniert ?

shmia 28. Okt 2004 16:15

Re: OLE Automatisierung / Events ParamByRef
 
Zitat:

Zitat von Gruber_Hans_12345
Wie kann ich bei einer OLE Automatisierung einen Parameter zurückgeben ?

Hab in invoke folgendes probiert

Die funktion hat drei paramter der letzte (sollte ja dann [0] sein) ist ein Boolean, ob die funktion am OLE Server ausgeführt werden soll oder nicht.

Ein Event in der OLE Automatisierung ist eine Einbahnstrasse. :roll:
Es können mehr als ein EventSink mit der Event-Source verbunden sein.
Deshalb können keine Parameter zurückgeliefert werden.

Gruber_Hans_12345 28. Okt 2004 16:30

Re: OLE Automatisierung / Events ParamByRef
 
Zitat:

Zitat von shmia
Ein Event in der OLE Automatisierung ist eine Einbahnstrasse. :roll:
Es können mehr als ein EventSink mit der Event-Source verbunden sein.
Deshalb können keine Parameter zurückgeliefert werden.

Bist du dir sicher ?
Warum ist Params dann ein var ?
Warum kann und hat der Parameter als Typ ByRef ($80) gesetzt wenn das sowieso nicht gehen sollte ?


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:51 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz