在delphi的contmenu例子中(一个关于shell编程的例子),
有如下声明.TContextMenu = class(TComObject, IShellExtInit, IContextMenu)
请问class的类中的接口(TComObject, IShellExtInit, IContextMenu)
是怎么添加的啊?
不会是要自己手动添加吧?谢谢.

解决方案 »

  1.   

    这是我最近看到的
        点击Delphi菜单 File | New 。在 ActiveX 页面中选择Active Library ,然后点击 OK 按钮。然后用同样的方法建立一个COM Object。在COM Object Wizard 窗口中,将复选框 Included type library 去掉。然后在Class Name中输入IEHelper,在Implemented Interface 中输入:IDispatch;IObjectwithSite 。然后点击 OK 按钮建立一个COM组件。但我取消Included type library后,
    却不能在Implemented Interface中输入东西了。
    请问这是怎么回事啊?
      

  2.   

    在类的声明中直接写:
    type
      TMyClass = class(TComObject, ……,IMyInterface)
      protected
        //把IMyInterface声明中的所有procedure 和function复制到这,然后按<Ctrl><Shift><C>
      end;
      

  3.   

    没有更好的办法吗?
    比如用new直接添加接口?谢谢还有
    IDispatch;IObjectwithSite
    这些可是标准接口啊!
    在delphi中已经有了定义的。
      

  4.   

    我又看了一下,
    可以通过 com objiect 添加接口。
    不过只能添加一个,
    而且如果对一个已有的接口这么添加其他接口?
      

  5.   

    '但我取消Included type library后,'
    取消了这项,相当于不要TLB,当然不能在实现中使用了。
      

  6.   

    我又看了一下,
    可以通过 com objiect 添加接口。
    不过只能添加一个,
    而且如果对一个已有的接口这么添加其他接口?