Autor Beitrag
tabaz
Hält's aus hier
Beiträge: 10



BeitragVerfasst: Fr 30.09.05 11:36 
Geht das ?
Spezifischer: Ich habe die ActiveX Outlook View Control als Komponente importiert und verwende ist in meinem Projekt. Problem: Dieses ActiveX Control gibts erst ab Office XP. Kann man das irgendwie abfragen, ohne nachzuschauen, ob die DLL vorhanden ist ? (sowas wie ne WinAPI funktion die die ActiveX Controls listet)
rochus
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 416

Win XP Prof, Fedora Core 4, SuSE 7.0
D7 Ent, D2005 Pers
BeitragVerfasst: Fr 30.09.05 11:47 
wenn du weißt, wei die Komponente heißt, dann kannst du per

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
var
  IUnk: IUnknown;
  IComp: IKomponentenInterface;
begin
  try
    IUnk := CreateOleObject('Qualifizierter.Bezeichner');
    if Assigned(IUnk) then 
    begin
      IUnk.QueryInterface(IID_KomponentenIID, IComp);
      if Assigend(IComp) then
      begin
        ShowMessage('sollte vorhanden sein!');
      end;
    end;
  except
    ShowMessage('fehler');
  end;
end;


prüfen, ob die Komponente im System registriert ist.

Moderiert von user profile iconraziel: Tippfehler im Source korrigiert.

_________________
Im Nachhinein ist man immer ein Schlauch!
"Dream as if you'll live forever, live as if you'll die today!" James Dean
Udontknow
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2596

Win7
D2006 WIN32, .NET (C#)
BeitragVerfasst: Fr 30.09.05 12:10 
Hallo!

Eigentlich reicht doch schon das Erstellen des Objekts per CreateOLEObject; Welche Schnittstellen es nun unterstützt, ist ja wieder eine andere Geschichte.

Cu,
Udontknow
tabaz Threadstarter
Hält's aus hier
Beiträge: 10



BeitragVerfasst: Fr 30.09.05 13:03 
Ersteinmal danke für die schnellen Antworten.
Das Problem ist aber, dass es ich das ActiveX Control als Komponente importiert habe. Ich führe im Code kein CreateOleObject aus.