CoCreateInstance



  • Hallo Leute,

    ich programmiere zwar derzeit in VB.Net aber meistens konnten Ihr mir eher weiterhelfen als die VB-Leute. Hier mein Problem:

    Ich programmiere eine Anwendung mit Directshow. Zuerst möchte ich einen GraphBuilder anlegen. Das Objekt versuche ich mit der, aus C++ bekannten Funktion CoCreateInstance anzulegen. Leider bekomme ich als "result" immer zurück, dass ein falscher Datentyp übergeben wurde. Könnt Ihr mir vielleicht weiterhelfen??

    Hier mein Code:

    Private pGraphBuilder As DirectShowLib.IGraphBuilder  //Deklaration des Interfaces    
    
    // CoCreateInstance-Funktion holen
    Private Declare Function CoCreateInstance Lib "ole32.dll" ( _
                        ByVal rclsid As String, _
                        ByVal pUnkOuter As Long, _
                        ByVal dwClsContext As Long, _
                        ByVal riid As String, _
                        ByRef ppv As Object) As Long
    
    //Klassenid und Interfaceid festlegen
    Dim CLSID_FILTERGRAPH As New System.Guid("{E436EBB3-524F-11CE-9F53-0020AF0BA770}")
    Dim IID_IGraphBuilder As New System.Guid("{56A868A9-0AD4-11CE-B03A-0020AF0BA770}")
    
    //Befehl abschicken
    result = CoCreateInstance(CLSID_FILTERGRAPH.ToString, 0, CLSCTX_INPROC_SERVER, IID_IGraphBuilder.ToString, pGraphBuilder)
    

    Liebe Grüße .. Drea



  • Mit einiger Wahscheinlichkeit wird es dann wohl erst funktionieren, wenn du den richtigen Datentyp übergibst...

    Bye, TGGC


Anmelden zum Antworten