Announcement

Collapse
No announcement yet.

GetActiveOleObject löst Fehler aus

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

  • GetActiveOleObject löst Fehler aus

    Hallo,

    ich habe einen Automatisierungsserver in Delphi4 geschrieben. Wenn ich
    das Programm über CreateOLEObject anspreche, funktioniert alles wunderbar.
    Starte ich jedoch die EXE Datei manuell, so würde ich erwarten, dass ich das gewünschte Interface uber GetActiveOLEObject bekomme. Leider löst der Befehl nur einen Fehler aus??????? So weit mir bekannt ist, registriert sich ja der Automatisierungsserver selbst. Das muß er ja auch getan haben, sonst würde ja CreateOLEObject nicht funktionieren. Ich habe dann zum Test Word manuell geladen. Mit Word funktioniert die Funktion GetActiveOLEObject. Was könnte ich bei meinem Server falsch gemacht haben? Bin dankbar für jeden Hinweis!

    Juergen

  • #2
    Hallo,

    immer dann, wenn ein Client einen Interface-Zeiger auf eine laufende Server-Instanz über GetActiveOLEObject abfordern will, muss sich der COM-Server in der <b>ROT</b> (Running Object Table) anmelden. Das könnte so aussehen (das vollständige Beispielprojekt ist in meinem Buch <i>COM/DCOM/COM+ mit Delphi</i> zu finden):
    <pre>
    procedure TROTServer2.Initialize;
    begin
    inherited Initialize;
    RegisterActiveObject(Self as IUnknown, CLASS_ROTServer2,
    ACTIVEOBJECT_WEAK, FSrvROTHandle);
    end;

    destructor TROTServer2.Destroy;
    begin
    RevokeActiveObject(FSrvROTHandle, nil);
    inherited Destroy;
    end;
    </pre&gt

    Comment


    • #3
      vielen Dank - werde es gleich mal ausprobieren

      Comment

      Working...
      X