Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi COM Objekt finden, Interface, CComQIPtr (https://www.delphipraxis.net/144469-com-objekt-finden-interface-ccomqiptr.html)

luki pescoller 8. Dez 2009 18:13


COM Objekt finden, Interface, CComQIPtr
 
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

luki pescoller 13. Okt 2010 17:24

AW: COM Objekt finden, Interface, CComQIPtr
 
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

shmia 13. Okt 2010 17:56

AW: COM Objekt finden, Interface, CComQIPtr
 
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.


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:15 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