![]() |
Standard OCX Versions-Info auslesen
Hallo,
das Problem klingt trivial, eine Lösung habe ich allerdings noch nicht gefunden. Ich habe ein ActiveX (OCX), welches als Plugin in einer Art Container (C++ - Anwendung) läuft. Ich möchte nun die Versions-Information meines OCX ermitteln. Die üblichen Möglichkeiten, z.B. über GetFileVersionInfoSize(PChar(ParamStr(0)... scheitern daran, dass ParamStr(0), den Pfad der Rahmenapplikation, also des Containers ermittelt. Das eigentliche Grundproblem ist also, dass ich programmintern weder Name noch Pfad meines OCX kenne. Weiß jemand Rat? Viele Grüße S.L. |
Re: Standard OCX Versions-Info auslesen
Wenn du die GUID der Typlib hast, kannst du mit QueryPathOfRegTypeLib() den Pfad der Typlib abfragen.
Da ja die Typelib in aller Regel in der OCX als Resource enthalten ist, hast du damit den vollen Pfad (+Namen) zur OCX-Datei. Zitat:
|
Re: Standard OCX Versions-Info auslesen
Die GUID der CoClass hätte ich schon und auf die Idee den Pfad aus der Registry auszulesen
würde ich ja zurückgreifen... wenn da nicht die Tatsache wäre, dass wir unsere ActiveX Plugins nicht registrieren dürfen. Momentan arbeiten wir über eine Manifest-Datei, mit deren Hilfe wir die Registrierung umgehen können. Jetzt ist es natürlich nahe liegend den Pfad aus der Manifest Datei zu beziehen, doch der steht da nicht drin. Da Manifest-Dateien nicht mit Pfaden jeglicher Art umgehen können, müssen Host-Anwendung, Plugins und Manifest Datei an einem Ort stehen. Mit ExtractFilePath(ParamStr(0)) bekäme ich also schon den Pfad der Host-Anwendung heraus, der im Moment jedenfalls noch der gleiche ist wie der der Plugins. Nun fehlt mir aber immer noch der Name der OCX-Komponente. Da ich nicht davon ausgehe, dass in Zukunft die OCX immer an der gleichen Stelle liegt, wie die Host-Anwendung, habe ich es momentan so gelöst, dass ich den Pfad der OCX mit GetCurrentDirectory auslese und den OCX-Namen hardcodiert dran hänge. Über diese Infos kann ich dann wie gehabt die Version auslesen. Sehr sauber ist diese Lösung natürlich nicht. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:42 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz