AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Standard OCX Versions-Info auslesen
Thema durchsuchen
Ansicht
Themen-Optionen

Standard OCX Versions-Info auslesen

Ein Thema von wisher · begonnen am 3. Mär 2008 · letzter Beitrag vom 3. Mär 2008
Antwort Antwort
wisher

Registriert seit: 28. Okt 2004
17 Beiträge
 
#1

Standard OCX Versions-Info auslesen

  Alt 3. Mär 2008, 09:44
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.
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#2

Re: Standard OCX Versions-Info auslesen

  Alt 3. Mär 2008, 13:09
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:
Das eigentliche Grundproblem ist also, dass ich programmintern weder Name noch Pfad meines OCX kenne.
Was hast du dann überhaupt ? Eine GUID einer CoClass oder ein Interface-Pointer oder ?
Andreas
  Mit Zitat antworten Zitat
wisher

Registriert seit: 28. Okt 2004
17 Beiträge
 
#3

Re: Standard OCX Versions-Info auslesen

  Alt 3. Mär 2008, 13:27
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.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:00 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