AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi COM / ActiveX - "Schnittstelle nicht unterstützt"
Thema durchsuchen
Ansicht
Themen-Optionen

COM / ActiveX - "Schnittstelle nicht unterstützt"

Offene Frage von "Sereby"
Ein Thema von Sereby · begonnen am 3. Feb 2010 · letzter Beitrag vom 4. Feb 2010
Antwort Antwort
Sereby

Registriert seit: 31. Mär 2008
91 Beiträge
 
#1

COM / ActiveX - "Schnittstelle nicht unterstützt"

  Alt 3. Feb 2010, 17:55
Hiho, ich nerv mal wieder

ich habe folgendes Problem:
ich möchte versuchen auf den Microsoft Update Catalog per ActiveX zuzugreifen und verwende die DLL die beim Besuch der Seite im Internet Explorer heruntergeladen wird direkt.

- Schirtt 1: Registrieren der dll per regsvr32 -> OK
- Schritt 2: Importieren der Typenbibliothek in ein Package mit Komponenten-Wrapper (D2009) -> OK
- Schritt 3: Ziehen der neuen Komponente auf eine leere Form eines neuen Projektes -> "Schnittstelle nicht unterstützt" Fehlermeldung!

Beim versuch TMUCatalogWebControl manuell zu erstellen kommt ebenfalls immer die Fehlermeldung.
Ich habe bereits versucht mit Process Explorer dahinter zu kommen warum der da rummeckert weil es muss ja ne fehlerhafte registrierung sein aber unregistrieren und erneutes registrieren funktioniert nicht allerdings die Webseite im IE funktioniert ohne Probleme!

Mir gehts darum, dass ich die Updates da so suchen kann wie es da ist bzw besser eingrenzen kann und dass er auch alles findet!
Derzeit lese ich die windows update info datei (17mb komprimierte .CAB) direkt aus welche allerdings nicht alle Updates enthält :-/ Der Windows Update Katalog ist da viel besser deswegen möchte ich den auslesen lassen.

Ich verwende Delphi 2009 U3 auf Windows 7 x64 RTM

MfG Sereby
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.201 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: COM / ActiveX - "Schnittstelle nicht unterstützt&am

  Alt 3. Feb 2010, 18:13
Verwende nicht den Wrapper sondern direkt das Interface und die entsprechende Co-Klasse.

Manche COM/ActiveX-COntrols funktionieren nicht direkt mit Delphi sondern z.B. nur wenn sie vom TWebBrowser (=IE) gehostet sind (z.B. Adobe SVG Viewer)
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Sereby

Registriert seit: 31. Mär 2008
91 Beiträge
 
#3

Re: COM / ActiveX - "Schnittstelle nicht unterstützt&am

  Alt 3. Feb 2010, 18:16
kannst du mir ein code-beispiel geben wie ich das aufbauen muss? ich habe leider null plan von interfaces und habe die bisher nie verwendet :-/
  Mit Zitat antworten Zitat
Sereby

Registriert seit: 31. Mär 2008
91 Beiträge
 
#4

Re: COM / ActiveX - "Schnittstelle nicht unterstützt&am

  Alt 4. Feb 2010, 10:03
ich wäre weiterhin an einem Code-beispiel bzw direkter hilfe sehr interessiert ^^

ich hab mal mit Processmonitor verglichen was IE bzw mein Programm in der registry so machen während versucht wird das ActiveX zu initialisieren:

Internet Explorer:
http://sereby.org/_privat/IE.png

Mein Tool:
http://sereby.org/_privat/my.png


warum findet der IE das was mein teil nicht findet???
bitte um dringende hilfe :-/
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: COM / ActiveX - "Schnittstelle nicht unterstützt&am

  Alt 4. Feb 2010, 11:02
Die Klasse TMUCatalogWebControl ist von TOleControl abgeleitet. Diese wiederum erstellt die Instance von MUCatalogWebControl auf IOleObject. Und letzteres entspricht anscheinend nicht der Tatsache und wird deshalb nicht unterstützt. --> Fehler in TypeLib, die Klasse solltest du nicht benutzen.

Das Erstellen einer Instanz funktioniert zumindest so:
Delphi-Quellcode:
uses MicrosoftUpdateCatalogWebControlLib_TLB, comobj;

procedure TForm1.Button1Click(Sender: TObject);
var MUCatalogWebControl:IMUCatalogWebControl;
begin
  MUCatalogWebControl:=CreateComObject(CLASS_MUCatalogWebControl) as IMUCatalogWebControl;

end;
//da MUCatalogWebControl ein Interface ist, braucht man hier nicht aufräumen, das macht Delphi von selbst
Jedes Aufrufen einer Methode führt jetzt aber zu einem OLE Fehler: $800C0002 (was anscheinend "invalid url" bedeutet).
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
Sereby

Registriert seit: 31. Mär 2008
91 Beiträge
 
#6

Re: COM / ActiveX - "Schnittstelle nicht unterstützt&am

  Alt 4. Feb 2010, 11:24
danke erstmal für den schritt.
beim IE sucht er nach einem GUID im AppId zweig in der registry.

durch deine modifikation stürzt er zwar nicht ab allerdings sucht er auch nicht wie der IE in AppID sondern in ProgID!
und die GUID die IE verwendet wird bei meinem tool garnicht behandelt

Der teil hier:
Zitat:
Date & Time: 04.02.2010 09:42:36
Event Class: Registry
Operation: RegQueryValue
Result: SUCCESS
Path: HKCR\Wow6432Node\CLSID\{5AE58FCF-6F6A-49B2-B064-02492C66E3F4}\AppId
TID: 3180
Duration: 0.0000069
Type: REG_SZ
Length: 78
Data: {01BAB9B9-D46F-4043-B5F3-6B1618B4A4E5}
{5AE58FCF-6F6A-49B2-B064-02492C66E3F4} -> CLASS_MUCatalogWebControl
{01BAB9B9-D46F-4043-B5F3-6B1618B4A4E5} -> wird nicht von meinem test-tool aufgerufen entspricht aber MUCatalogWebControl Class!

bleibt auch noch die frage wie ich mit dem ding dann nach updates suchen kann.. denn bei den methoden die generiert wurden sieht man nichts was nach suchen aussehen könnte
  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 03:09 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