Einzelnen Beitrag anzeigen

EWeiss
(Gast)

n/a Beiträge
 
#20

AW: WindowHandle vom Aktiven Renderer

  Alt 14. Sep 2018, 17:04
Delphi-Quellcode:
function KVideo_GetActiveRenderWindowHandle: HWND stdcall;
begin
  Result := 0;
  
  if not Assigned(EVMRPlayer) then
    exit;

  if EVMRPlayer.PlayerState = psNotReady then
    exit;

  Result := EVMRPlayer.GetActiveRenderWindowHandle;
end;
Delphi-Quellcode:
function TEVMRPlayer.GetActiveRenderWindowHandle: HWND;
var
  hr: HRESULT;
  UnknownInterface: IUnknown;
  Overlay: IOverlay;
begin
    Result := 0;

// hr := CoCreateInstance(CLSID_FilterGraph, nil, CLSCTX_INPROC_SERVER, IID_IGraphBuilder, GraphBuilder);
// if Succeeded(hr) then
// begin
    hr := FindInterfaceAnywhere(GraphBuilder, IOverlay, UnknownInterface);
    if Succeeded(hr) then
    begin
      hr := UnknownInterface.QueryInterface(IOverlay, Overlay);
      if Succeeded(hr) then
        Overlay.GetWindowHandle(Result);
    end else
    ReportError('Create Overlay Error', Hr);
// end;
end;
Fehler Schnittstelle nicht unterstützt.

hr := UnknownInterface.QueryInterface(IID_IOverlay, Overlay); Oder?
Ich verstehe auch die Herangehensweise nicht.
Der GraphBuilder hat doch nichts mit dem Aktiven Video Render Filter zu tun.

Diese sind
VMR7BaseFilter, VMR9BaseFilter, madVRFilter, EVRBaseFilter

gruss

Geändert von EWeiss (14. Sep 2018 um 17:22 Uhr)
  Mit Zitat antworten Zitat