CoGetObject



  • Hallo Leute wie kann ich obige Funktion verwenden.
    Ich weiß hört sich blöd an aber die MSDN hilft mir da nicht arg weiter, da ich
    das mit meinem begrentzten Englisch nicht so gut verstehe.
    Also hat jemand ein Code-Beispiel für mich?

    Gruß,

    Stalin



  • Stalin schrieb:

    Also hat jemand ein Code-Beispiel für mich?

    ISWbemServices* pServices = NULL;
    
    if(SUCCEEDED(CoGetObject(OLESTR("winmgmts:"), NULL, IID_ISWbemServices, (void**)&pServices)))
    {
        pServices->Release();
    }
    

    Aber was willst Du mit der Funktion, wenn Du gar nicht weißt, was sie macht?



  • Ich weiß schon was sie machen soll aber ich konnte einfach nicht herauslesen wie ich sie anwenden soll.
    Der erste Parameter ist mir nicht ganz klar.
    Was bedeutet: OLESTR("winmgmts:").
    Dies konnte ichauch in der MSDN nicht verstehen was ich da rein packen solll.
    Es geht darum, dass ich mir ein Com-Objekt mit CoCreateInstance erzeuge und dann in anderen Programmteieln mit CoGetObjekt auf dieses Objekt zugreifen wollte.

    Gruß,

    Stalin



  • Na, hättest Du das Problem sofort geschildert, hätten wir uns zwei Beiträge sparen können. Aber zurück zum Thema: Das, was Du willst, geht nicht CoGetObject. Wo soll da auch der Pointer herkommen?

    Trage Deine Pointer in die GIT ein und merke Dir irgendwo das Cookie. Dann kannst Du Dir die Pointer über IGlobalInterfaceTable::GetInterfaceFromGlobal besorgen.

    http://www.msdn.microsoft.com/library/default.asp?url=/library/en-us/com/htm/aptnthrd_4ew5.asp?frame=true



  • Ja das hört sich ja nicht schlecht an. Kann ich die GIT auch einsetzen um über mehrere Progs hinweg auf das gleiche Interface(==Objekt) zugreifen zu können?
    Ich hatte mich etwas unverständlich ausgedrückt. Ich muss nämlich nicht nur in verschiedenen Programmteilen sonderen uch von mehreren Progs drauf zugreifen können.

    Gruß,

    Stalin


Anmelden zum Antworten