请问如何动态调用COM接口呢
就是事先不需要对调用代码添加什么import之类的内容就像工具包中的ActiveX Control Test Container一样请问有没有什么好的方案
谢谢

解决方案 »

  1.   

    QureyInterface()查询接口,获得对象指针来调用
      

  2.   

    Itypelib* lib;
    Loadtypelib("path",lib);//从一个dll文件调入
    lib->gettypeinfocount();//得到一共有多少接口,然后循环去处理
    //假如取第1个
    Itypeinfo* typeinfo;
    GUID gd;
    LPTYPEATTR *trr=NULL;
    typelib->gettypeino(0,typeinfo);
    typeinfo->gettypeattr(trr);
    gd=trr->guid;//得到guid,是不是就可以createInstance了呢?
    LPOLESTR s;
    progidfromCLSID(gd,&s);//你可以看看s是什么哦
    还有很多别的,接下来怎么做,你自己查查msdn吧。
    上面的指针可以转化为智能指针,同时注意大小写。
    最后,你可以把com按面向对象一层一层继承,你用queryinterface可以判断你的com是否可以调用等等。最好的例子就是esri 的arcengine结构