AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

VCap.QueryInterface 64bit

Ein Thema von luki pescoller · begonnen am 13. Okt 2010 · letzter Beitrag vom 4. Nov 2010
Antwort Antwort
luki pescoller

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

VCap.QueryInterface 64bit

  Alt 13. Okt 2010, 13:44
Hallo Experten,

ich habe eine funktionierende Anwendung die die Komponente VideoCapture_d6.dprj von Egor Averchenkov nutzt, um von einer Kamera über DirectShow Bilder zu übernehmen. Ich habe diese Komponente um eine Funktion erweitert, die ein zusätzliches Interface des Treibers finden kann, über welches Parameter der Kamera gesteuert werden.

Delphi-Quellcode:
function TVideoCapture.InitMFilter(aGUID: TGUID): boolean;
var
  hr: HRESULT;
begin
  Result := false;
  MFilter := nil; // definiert als Variable von TVideoCapture vom Typ IBaseFilter
  try
    hr := VCap.QueryInterface(aGuid,MFilter);
    Result := succeeded(hr);
  finally
  end;
end;
Das funktioniert unter Windows2000, WindowsXP, Windows Vista und Windows 7 mit 32bit ohne Probleme. Ich kriege den Pointer auf das Interface in MFilter und kann diesen dann auch außerhalb der Komponente ansprechen:

Delphi-Quellcode:
...
  IVideoInterface = interface (IUnknown)
    ['{926ddb19-3c8e-476c-9068-eb4555a99231}'] // GUID
    function SetShutterSpeed(const lShutter : eShutterSpeedCMOS):HRESULT; safecall;
  end;

...
   AGUID := StringToGUID('{926ddb19-3c8e-476c-9068-eb4555a99231}');
   if (gCap.InitMFilter(AGUID)) then begin // gCap vom Typ TVideoCapture
      VideoInterface := gCap.MCOMFilter as IVideoInterface; // definiert
      VideoInterface.SetShutterSpeed(v);
...
auf 64bit Systemen erhalte ich immer die Fehlermeldung (hr) NOINTERFACE

Der Treiber für die Kamere existiert als 32bit und als 64bit Version. Die Bilder werden problemlos auch unter 64bit übertragen, nur das Interface kann ich nicht finden.

hat jemand eine Idee woran das liegen kann?

Danke für eure Hilfe
Gruss
Lukas

Geändert von mkinzler ( 3. Nov 2010 um 20:57 Uhr) Grund: Delphi-Tags eingefügt
  Mit Zitat antworten Zitat
Benutzerbild von Assarbad
Assarbad

Registriert seit: 8. Okt 2010
Ort: Frankfurt am Main
1.234 Beiträge
 
#2

AW: VCap.QueryInterface 64bit

  Alt 26. Okt 2010, 20:50
hat jemand eine Idee woran das liegen kann?
MSDN-Library durchsuchenRegistry Reflection vielleicht? Würde ich mal annehmen, daß du da die falsche Einstellung innerhalb deines Programms benutzt. Kannst ja nur die 32bit-DLL (Filter) benutzen innerhalb deines WOW64-Prozesses.
Oliver
"... aber vertrauen Sie uns, die Physik stimmt." (Prof. Harald Lesch)

Geändert von Assarbad (26. Okt 2010 um 21:33 Uhr) Grund: Verlinkung
  Mit Zitat antworten Zitat
luki pescoller

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

AW: VCap.QueryInterface 64bit

  Alt 27. Okt 2010, 09:06
Danke für die Antwort,
habe das Problem gelöst, läuft jetzt auch auf 64bit.

Während auf 32Bit Systemen eine Installation des Kameratreibers über die .INF des Herstellers funktioniert, reicht das bei 64bit offensichtlich nicht aus. Es gibt vom Hersteller dazu eine Setup Programm, welches allerdings noch eine Demosoftware installiert. Die Installation dieser Demo Software wollte ich eigentlich vermeiden.

Das Setup Programm installiert offensichtlich unter 64bit etwas, was nicht in der INF angegeben ist.

Einstweilen muss ich eben mit der Installation der Demo Software leben.

Gruss
Lukas
  Mit Zitat antworten Zitat
Benutzerbild von Assarbad
Assarbad

Registriert seit: 8. Okt 2010
Ort: Frankfurt am Main
1.234 Beiträge
 
#4

AW: VCap.QueryInterface 64bit

  Alt 27. Okt 2010, 10:13
Das Setup Programm installiert offensichtlich unter 64bit etwas, was nicht in der INF angegeben ist.
Bzw. schaltet MSDN-Library durchsuchenRegistry Reflection ein ...
Oliver
"... aber vertrauen Sie uns, die Physik stimmt." (Prof. Harald Lesch)
  Mit Zitat antworten Zitat
Benutzerbild von Assarbad
Assarbad

Registriert seit: 8. Okt 2010
Ort: Frankfurt am Main
1.234 Beiträge
 
#5

AW: VCap.QueryInterface 64bit

  Alt 3. Nov 2010, 20:55
Ähem, würdest du deine Frage dann auch noch als beantwortet markieren?! Sie ist noch als offen markiert.
Oliver
"... aber vertrauen Sie uns, die Physik stimmt." (Prof. Harald Lesch)
  Mit Zitat antworten Zitat
luki pescoller

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

AW: VCap.QueryInterface 64bit

  Alt 4. Nov 2010, 10:16
ok. Danke noch mal.
lukas
  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 19:12 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