IUnknown是COM里最原始的接口。所有COM接口都从IUnknown派生而来,IDispatch接口当然不例外。从IDispatch接口派生一个新接口,意味着该接口支持后绑定。后绑定是的目的是为了支持在利用一些脚本语言(如VBScript,VB,ASP等)开发COM客户端。因为这些脚本语言基本上是解释性语言,到实际运行的时候才能确定需要实例化哪个COM对象以及调用哪些方法。后绑定是相对与前绑定而言的。前绑定是在编译时就可确定使用什么对象,以及调用的方法。而后绑定是在运行时确定这些问题的。通常,实现直接从IUnknown派生的接口的COM对象,使用前绑定,一般采用虚表技术,使用ATl时,除了虚表技术外,接口表技术也是可选的。而实现从IDispach的接口时,就使用后绑定。

解决方案 »

  1.   

    <<COM本质论>>
    <<ATL深入解析>>(?)
      

  2.   

    loneywolf说得没错,建议你看看
    <<COM本质论>>的7.5 动态和静态调用
    里面专门介绍了IDispatch接口
    一般书籍的COM自动化好像也会提到滞后联编
    这样会有一些调用速度上的代价,使用早期联编最好,dispinterface次之
    Idispatch的滞后联编最差,虽然使用起来滞后脸编朘方便
      

  3.   

    推荐图书 
     COM+与VB6 分布式应用程序设计
    对于COM部分的解说可谓是深入浅出 而且从vb的角度阐述
    比起 COM本质论 COM原理  要好懂的多