AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi COM Objekt finden, Interface, CComQIPtr
Thema durchsuchen
Ansicht
Themen-Optionen

COM Objekt finden, Interface, CComQIPtr

Offene Frage von "shmia"
Ein Thema von luki pescoller · begonnen am 8. Dez 2009 · letzter Beitrag vom 13. Okt 2010
Antwort Antwort
luki pescoller

Registriert seit: 8. Dez 2009
6 Beiträge
 
Delphi XE7 Professional
 
#1

COM Objekt finden, Interface, CComQIPtr

  Alt 8. Dez 2009, 19:13
Hallo Experten,
ich stehe vor dem Problem, daß ich zu einem Interface ein konkretes Objekt finden muß. In der Beschreibung (C++) ist das wie folgt definiert:

IBaseFilter* pSourceFilter;
...
CComQIPtr<IVideologyCMOS> pKs( pSourceFilter );

IVideologyCMOS ist als interface definiert und die GUID ist bekannt. In Delphi sieht das so aus:

IVideologyCMOS = interface (IUnknown)
['{926ddb19-3c8e-476c-9068-eb4555a99231}'] // GUID

In der Registry findet ich die GUID, d.h. das Interface ist irgendwie registriert. Ich habe nun versucht, den Zeiger auf ein Objekt zu erhalten

var
VideologyCMOS : IVideologyCMOS;
AGUID: TGUID;

begin
AGUID := StringToGUID('{926ddb19-3c8e-476c-9068-eb4555a99231}');
VideoLogyCMOS := CreateComObject(AGUID) as IVideologyCMOS;

...liefert Fehler: 'OLE-Fehler 80040202, ClassID: {926ddb19-3c8e-476c-9068-eb4555a99231}'

neuer Versuch:

OleCheck(CoCreateInstance(AGUID,nil,CLSCTX_ALL,AGU ID, VideologyCMOS));

...liefert denselben Fehler

weiß jemand von Euch wie ich zu einem Objekt komme, über welches ich dann die im Interface spezifizierten Funktionen ansprechen kann?

Danke für Eure Hilfe
Lukas
  Mit Zitat antworten Zitat
luki pescoller

Registriert seit: 8. Dez 2009
6 Beiträge
 
Delphi XE7 Professional
 
#2

AW: COM Objekt finden, Interface, CComQIPtr

  Alt 13. Okt 2010, 18:24
falls es jemanden interessiert

ich verwende die QueryInterface Funktion des Video Capture Filters VCap vom Type IBasefilter.

VCap.QueryInterface(AGUID, aInterface);

auch der IMoniker (mVideo) liefert den Zeiger auf das Interface mit

mVideo.BindToObject(nil,nil,AGUID, aInterface);

was ist da eigentlich der Unterschied?

außerdem funktioniert es bislang nur für 32bit, nicht für 64bit.
Hat jemand eine Idee

danke
lukas
  Mit Zitat antworten Zitat
shmia

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

AW: COM Objekt finden, Interface, CComQIPtr

  Alt 13. Okt 2010, 18:56
Hast du eine Typbibliothek, die du Importieren kannst?

Hast du das Tool OleView auf deinem Rechner?
Falls nicht, unbedingt downloaden das gehört zum Handwerkszeug.
Andreas
  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 08:47 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