     <pre><code>
     String GetValue(Variant N, Variant obj)
     {
         int pos = 0;
         String Tempstr = String(obj);
         String Ne = String(String(N) + " = "));
         pos = AnsiPos(Ne, Tempstr);
         if(pos > 0)
         {
             pos = pos + Ne.Length();
             int l = Tempstr.Length();
             Tempstr = Tempstr.SubString(pos, l);
             pos = AnsiPos(";", Tempstr);
             Tempstr = Tempstr.SubString(2, pos -3);

             return Tempstr;
         }
         else
         {
             return " "\x022" ";
         }
     }
     void __fastcall TForm1::FormCreate(TObject *Sender)
     {
        LPUNKNOWN punkEnum;
        LPUNKNOWN punkEnum1;
        LPUNKNOWN propEnum;
        IEnumVARIANT * mocenum=NULL;
        IEnumVARIANT * mocenum1=NULL;
        IEnumVARIANT * penum=NULL;
        VARIANT obj;
        VARIANT obj1;
        VariantInit(&obj);
        int nIndex;
        unsigned long cc;
        IEnumVARIANT * propertyenum=NULL;
        VARIANT prop;
        VariantInit(&prop);
        int nIndex1;
        unsigned long cc1;
        VariantInit(&obj1);
        int nIndex2;
        unsigned long cc2;
        String mystr = "";
        Variant Locator = Variant::CreateObject("WbemScripting.SWbemLocator");
        Variant Services = Locator.OleFunction("ConnectServer", OleVariant("."), OleVariant("root\\ccm\\ContentTransferManager");
        Variant ob = Services.OleFunction("Get", OleVariant("__EventConsumer"));
        Variant ObjSet = ob.OleFunction("Instances_");
        punkEnum =ObjSet.OlePropertyGet("_NewEnum"));
        punkEnum->QueryInterface(IID_IEnumVARIANT, (LPVOID far*)&mocenum);
        mocenum->AddRef();
        punkEnum->Release();
        while(mocEnum->Next(1, &tobj, &c) == S_OK)
        {
           Variant obj = (Variant(tobj.pdispVal));
           Variant PropSet = obj.OlePropertyGet("Properties_");
           pEnum = PropSet.OlePropertyGet("_NewEnum");
           IEnumVARIANT * propEnum=NULL;
           tagVARIANT tprop;
           unsigned long d = 0;
           if(pEnum->QueryInterface(IID_IEnumVARIANT, (LPVOID far*)&propEnum) == S_OK)
           {
               while(propEnum->Next(1, &tprop, &d) == S_OK)
               {
                   Variant prop = Variant(tprop);
                   Variant OT = obj.OlePropertyGet("GetObjectText_");
                   mystr = mystr + prop.Name + ": " + GetValue(Prop.Name, OT) + "\n";
               }
        Variant wsh = Variant::CreateObject("WScript.Shell");
        wsh.OleFunction("Popup", OleVariant(mystr));
        mystr="";
        break;
        }
     </code></pre>

