Announcement

Collapse
No announcement yet.

COM-Event von VB erhält leere Rückgabe-Parameter (var variant)

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • COM-Event von VB erhält leere Rückgabe-Parameter (var variant)

    Hallo,
    meine Delphi Appl. (D5) soll Events von einem Visual Basic COM-Server
    empfangen. Was eigentl. auch funktioniert. Das Problem ist, daß die von dem ausgelöstem Event erwarteten Rückgabewerte (var Variant), immer leer sind (Der blick in dem VB-Debugger zeigte, daß diese Werte leer ankommen).

    Meine Frage ist :
    Wie kann ich dafür sorgen das die Parameterwerte auch an den VB-Server durchgereicht werden.

    Szenario :
    Mit EventSinkImp.exe habe ich das EventSink-Objekt erstellt.

    Delphi erzeugt durch späte Bindung eine Instanz von dem VB-Server.
    (eine frühe Bindung erzeugte zwar auch das Objekt aber nach dem ersten Zugriff auf eine Server-Methode kam es zu einer Fehlermeldung).
    Danach erzeugt er (über die Klasse) das SinkObjekt und weist ihm eine Behandlungsroutine zu, welche die Parameter mit Leben füllt.

    Hier einen Ausschnitt :
    <PRE>
    ...
    oVar := CreateOLEObject('VBCOMDLL.Kunde');
    AnEvent := TVBEventMethode.Create(Form1);
    AnEvent.Connect(IUnKnown(oVar));
    AnEvent.GetXML := onEvent;
    ...
    Form1.OnEvent(Var XML : OleVariant);
    begin
    XML := '<CLIENTS><KUNDE Nr="1"></KUNDE></CLIENTS>';
    end
    </PRE>

  • #2
    Habe es eben mit Delphi 7 probiert, funktioniert problemlos.
    Das Projekt soll aber mit D5 realisiert werden

    Comment


    • #3
      Hallo,

      &gt;Habe es eben mit Delphi 7 probiert, funktioniert problemlos.

      erst mit Delphi 7 wurde dieser uralter Bug beseitigt, so dass man mit Delphi 5 und 6 nur zwei Optionen hat: <br>
      a) den von Delphi generierten Sourcecode nicht verwenden, sondern von Hand schreiben <br>
      b) den Sourcecode vom Freeware-Tool <b>Delphi Event Sink Generator</b> (EventSinkImp.exe) generieren lassen (Download <i>http://www.techvanguards.com</i>

      Comment


      • #4
        Vielen Dank, Herr Kosch.

        Habe die neuen Version (2.0) von "EventSinkImp.exe" runtergeladen.
        Das Funktioniert.
        Merci

        Comment

        Working...
        X