CreateObject oder CoCreateInstance

  • VB6

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von Unknown.

    CreateObject oder CoCreateInstance

    Hi Leute,

    ich bin echt schon am verzweifeln und hoffe, dass Ihr mir weiterhelfen könnt. Das Problem:

    Ich programmiere DirectShow in VB.NET. Hier möchte ich einen Filtergraphen mit CreateObject oder CoCreateInstance anlegen. Hab beides versucht, und beides klappt nicht. Hier der Code:

    Create Object:

    Quellcode

    1. Dim CLSID_FILTERGRAPH As New System.Guid("{E436EBB3-524F-11CE-9F53-0020AF0BA770}")
    2. pGraphBuilder = CreateObject(CLSID_FILTERGRAPH.ToString)


    Hier bekomme ich immer die Meldung "Die ActiveX-Komponente konnte nicht angelegt werden!"

    CoCreateInstance:

    Quellcode

    1. Private Declare Function CoCreateInstance Lib "ole32" ( _
    2. ByVal rclsid As string, _
    3. ByVal pUnkOuter As Long, _
    4. ByVal dwClsContext As Long, _
    5. ByVal riid As string, _
    6. ByRef ppv As Long) As Long
    7. Dim CLSID_FILTERGRAPH As New System.Guid("{E436EBB3-524F-11CE-9F53-0020AF0BA770}")
    8. Dim IID_IGraphBuilder As New System.Guid("{56A868A9-0AD4-11CE-B03A-0020AF0BA770}")
    9. Const CLSCTX_INPROC_SERVER As Long = 1&
    10. result = CoCreateInstance(CLSID_FILTERGRAPH.toString, 0, CLSCTX_INPROC_SERVER, IID_IGraphBuilder.toString, pGraphBuilder)


    Als "result" bekomme ich immer zurück, dass ein falscher Parameter übergeben wurde.

    Hat wer ne Ahnung, wo das Problem liegt?

    Gruß ... Drea
    CreateObject ist ja auch nicht für CLIDs gedacht. Da
    musst du eine ProgID (so was wie "IGraphBuilder")
    übergeben. Allerdings versteh ich nicht, wieso du das
    über LateBinding machst, ich würde an deiner Stelle
    die QuartzTypeLibrary einfach direkt einbinden und
    auf die FilgraphManager Schnittstelle zugreifen.

    Wegen CoCreateInstance: Ich würde mal versuchen,
    über die ClassFactory Schnittstelle drauf zuzugreifen.
    Siehe hier für nähere Infos.
    (Nach unten Scrollen, bis zu den Anmerkungen)