我可以成功的加载菜单和工具条插件,但是有一个问题,每次打开Word2000都会重新添加一次菜单,也就是说菜单项目会越来越多,我在OnDisconnection中使用了CommandMenuEvents::DispEventUnadvise((IDispatch*)m_spMenu);为什么不能够在断开连接时候卸载菜单项目呢??
   另外一个问题是,我的插件是要完成一个自定义的“另存为...”命令,我使用了一个菜单命令,在命令的响应函数中却不能使用对话框,报错:
d:\program files\microsoft visual studio\vc98\mfc\include\afxv_w32.h(14) : fatal error C1189: #error :  WINDOWS.H already included.  MFC apps must not #include <windows.h>
我就无法使用保存对话框来选择文件名称了,怎么办啊?这个我怀疑是我的配置或是接口继承没有选择好,不知道怎么做,我是按照徐景周的几篇文章做的,那位大虾熟悉这种插件开发的,望指教小弟,谢谢

解决方案 »

  1.   

    http://www.vckbase.com/document/viewdoc.asp?id=644
      

  2.   

    这篇文章我看过,但是对我的问题一点作用也没有的,我就是不知道怎么使用MFC的文件对话框,还有菜单项卸载的问题,望大虾赐教
      

  3.   

    在Office2K的插件程序中不会不能使用mfc的库吗?不会吧,com中调用mfc的库应该怎么做呢,很为这个头疼
      

  4.   

    另外,add-ins中·可以使用自己做的ocx吗?
      

  5.   

    可以用MFC类的,但好像有个资源操作,我也记不清了,你可以搜以前的贴,还有徐景周的那个例子是不能用MFC的,你生成工程的时候要看有没有WINAPP类
      

  6.   

    1.你的OnDisConnection函数没有真正卸载菜单,工具条资源,参照例子程序即可.
    2.你的工程并不支持MFC,你需要使用ATL的类,从CAxDialogImpl派生,用法和CDialog差不多
      

  7.   

    我重新生成了一个项目,在向导中选择了支持MFC就可以使用对话框资源了,现在就是菜单的问题还是没有解决,我也猜想是在OnDisConnection没有真正卸载菜单,但是不知道怎么卸载,那个例子中也是那样的啊,还不是没有卸载掉吗
      

  8.   

    DispEventUnadvise的返回值为多少?
      

  9.   

    现在发现了一个问题,加载项加载后,我点开“COM加载项”之后发现列表中我的加载项的前面没有打上勾,关闭word也没能激发"OnDisconnection"事件,我使用消息框测试出来的,奇怪
      

  10.   

    在任务管理器看一下你的word进程是否还没退出.如果没退出,新加载的wordji进程将不会加载COM项.调试直接设断点就可以看到.
      

  11.   

    http://www.vckbase.com/document/viewdoc.asp?id=644