COM Ereignisse absetzten und erhalten



  • Hallo,

    ich habe diese Frage schon einmal ähnlich im Borland Forum gepostet. Ich arbeite mit dem Borland Builder 6, aber wahrscheinlich ist mein Problem nicht wirklich IDE spezifisch. Daher will ich es noch einmal hier probieren:

    Ich möchte in meiner Applikation alle COM Methoden/Events einer "Reistered Tyle Lib" verwenden können. Bis jetzt sitze ich total auf dem trockenen. 😞
    Mein Frage: Gibt es Funktionen in der WinApi COM Methoden aufzurufen und Event zu erhalten?
    Wenn ja, welche?

    Danke!

    P.S.:
    Ich rede nicht über die serielle Comm Schnittstelle!



  • Klar geht das.

    1.) Event-Sink implementieren.
    2.) Objekt erstellen.
    3.) Advise bezüglich Event-Interface absetzen.
    4.) Events empfangen und verarbeiten.
    5.) Unadvise bezüglich Events nicht vergessen.

    Das lässt sich wirklich nicht mit ein paar Worten erklären. Zu Fuss, d.h. ohne
    MFC oder (besser) ATL ist das wirklich nicht trivial, und mit sollte man am
    besten auch ordentlich Ahnung von COM-Programmierung haben.
    Andernfalls hilft wirklich nur VB.



  • Ich habe jetzt hin bekommen mir eine Collection (Borland) namens "Applications" ausgeben zu lassen.
    Inhalt:

    COM+ Utilities
    COM+ QC Dead Letter Queue Listener
    COM+ Explorer
    MS Software Shadow Copy Provider
    .NET Utilities
    IIS Utilities
    IIS In-Process Applications
    IIS Out-Of-Process Pooled Applications
    System Application

    Mit dem "FAS Object Browser" (Einem Programm zum Anzeigen registrierter "Type Libs") kann ich mir eine recht lange Liste von Libs anzeigen lassen. In dieser Liste sind die oberen Einträge nicht enthalten.
    Versuche ich mir anstelle "Applications" z.B. "COM+ Utilities" ausgeben zu lassen, erhalte ich eine Fehlermeldung ("falscher Parameter").
    Das es überhaupt eine Kategorie namens "Appications" gibt hatte ich im Netz gefunden. Woher weiß ich was für Kategorin es gibt?
    Was muss ich tun um mir alle Einträge einer Lib namens "AcroPDFLib" anzeigen zu lassen? 😞 😕

    Danke!



  • Den "Inhalt" eine TypeLib kannst du dir mit entsprechenden Funktionen
    vom ITypeLib-Interface abholen. An die Lib bzw das Interface kommst du mit
    LoadRegTypeLib()/LoadTypeLib() und anschliessend GetTypeInfoOfGuid() ran.


Anmelden zum Antworten