DirectDraw->Filter(IVideoWindow)->put_Parent(...) gibt fehler: Interface not supported



  • Ich will den Umgang mit Filter in DirectShow lernen, stoße dabei auf einige Schwierigkeiten:
    beim Aufruf von

    VideoWindow->put_Parent((OAHWND)ghApp);
    

    bekomme ich den Fehlercode 0x80004002 zurück, der laut MSDN für soviel wie Interface not supported steht.
    Dabei wird VideoWindow und ghApp so definiert und erstellt:

    IVideoWindow* VideoWindow = NULL;
    HWND ghApp
    //...
    ghApp = CreateWindow(CLASSNAME, "applName",
    WS_OVERLAPPEDWINDOW | WS_CLIPCHILDREN | WS_CAPTION,
    100, 100, 300, 300, GetDesktopWindow(), NULL, hInstance, NULL);
    //...
    FilterGraphManager->QueryInterface(IID_VideoWindow, (void**)&VideoWindow);
    

    im Eigentlichen nicht recht viel anders als der Demo-Code der bei DirectX dabei war:

    pGB->QueryInterface(IID_IVideoWindow, (void **)&pVW);
    pVW->put_Owner((OAHWND)ghApp);
    ghApp = CreateWindow(CLASSNAME, APPLICATIONNAME, WS_OVERLAPPEDWINDOW | WS_CAPTION | WS_CLIPCHILDREN,
    CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, 0, 0, ghInst, 0);
    

    Der Punkt ist: Die DemoApplikation von DirectX9 (PlayWnd) schafft das setzen des Parents durch die IVideoWindow-Interface ohne Probleme, meine Applikation hat dabei aber ihr Schwierigkeiten, obwohls beide male (fast) das selbe ist 😕
    Weiß jemand, was falsch ist oder was der Grund für den Fehlercode sein könnte?


Anmelden zum Antworten