Ich mache folgendes..
Delphi-Quellcode:
function TEVMRPlayer.GetWindowHandle: HWND;
var
pPin: IPIN;
VideoRenderer: IBaseFilter;
Overlay: IOverlay;
HR: HRESULT;
begin
Result := 0;
GraphBuilder.FindFilterByName(PWideChar(FVideoRenderer.VMRFilter), VideoRenderer);
if Assigned(VideoRenderer) then
begin
HR := VideoRenderer.FindPin(nil, pPin);
if (SUCCEEDED(HR)) then
begin
pPin.QueryInterface(IID_IOverlay, Overlay);
Overlay.GetWindowHandle(Result);
end;
end;
end;
FVideoRenderer.FilterName ist in dem Fall "madVR"
VideoRenderer liefert einen Zeiger ist also nicht Nil.
aber trotzdem kracht es hier
VideoRenderer.FindPin(nil, pPin);
verstehe nicht warum.. jemand eine Idee?
gruss