社区
ATL
帖子详情
mfc 开发office 的工具栏 activex 控件时,需要继承那些接口,及步骤?
lvfeng180
2008-07-09 09:05:01
mfc 开发office 的工具栏 activex 控件时,需要继承那些接口,及步骤?
例如:用atl开发的话,需实现IDTExtensibility2 接口,
mfc 实现该接口时 提示不能实现抽象基类的错误.
望蒋大哥给点明示:
其他知道的大哥大姐们,不吝赐教了
...全文
145
8
打赏
收藏
mfc 开发office 的工具栏 activex 控件时,需要继承那些接口,及步骤?
mfc 开发office 的工具栏 activex 控件时,需要继承那些接口,及步骤? 例如:用atl开发的话,需实现IDTExtensibility2 接口, mfc 实现该接口时 提示不能实现抽象基类的错误. 望蒋大哥给点明示: 其他知道的大哥大姐们,不吝赐教了
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
lvfeng180
2008-07-10
打赏
举报
回复
牛人,小弟实在是佩服.
蒋晟
2008-07-10
打赏
举报
回复
看看编译输出里面抱怨什么函数没有实现
lvfeng180
2008-07-09
打赏
举报
回复
我想用onconnect()
和ondisconnect()方法;
在启动word时在onconnect()事件中
把自定义工具栏添加上,
关闭word时,在ondisconnect()事件中把自定义工具栏卸载掉;
不实现IDTExtensibility2接口,在那里添加这些代码
蒋晟
2008-07-09
打赏
举报
回复
Office的接口只有一个,用MFC或者ATL都是调用的同一个接口
MFC实现COM接口的方法可以参考http://msdn.microsoft.com/en-us/library/5hhehwba.aspx
lvfeng180
2008-07-09
打赏
举报
回复
实现文件添加部分:
BEGIN_INTERFACE_MAP(COfficeSignatureAddInCtrl, COleControl)
INTERFACE_PART(COfficeSignatureAddInCtrl, IID__IDTExtensibility2, MyOfficeObj)
END_INTERFACE_MAP()
STDMETHODIMP_(ULONG) COfficeSignatureAddInCtrl::XMyOfficeObj::Release()
{
METHOD_MANAGE_STATE(COfficeSignatureAddInCtrl, MyOfficeObj)
ASSERT_VALID(pThis);
return pThis->m_xOleObject.Release();
}
STDMETHODIMP_(ULONG) COfficeSignatureAddInCtrl::XMyOfficeObj::AddRef()
{
METHOD_MANAGE_STATE(COfficeSignatureAddInCtrl, MyOfficeObj)
ASSERT_VALID(pThis);
return pThis->m_xOleObject.AddRef();
}
STDMETHODIMP COfficeSignatureAddInCtrl::XMyOfficeObj::QueryInterface(REFIID
iid, LPVOID* ppvObj)
{
METHOD_MANAGE_STATE(COfficeSignatureAddInCtrl, MyOfficeObj)
ASSERT_VALID(pThis);
return pThis->m_xOleObject.QueryInterface(iid, ppvObj);
}
STDMETHODIMP COfficeSignatureAddInCtrl::XMyOfficeObj::OnConnection(IDispatch * Application, ext_ConnectMode ConnectMode, IDispatch * AddInInst, SAFEARRAY * * custom)
{
METHOD_MANAGE_STATE(COfficeSignatureAddInCtrl, MyOfficeObj)
ASSERT_VALID(pThis);
return 1;
}
STDMETHODIMP COfficeSignatureAddInCtrl::XMyOfficeObj::OnDisconnection(ext_DisconnectMode RemoveMode, SAFEARRAY * * custom)
{
METHOD_MANAGE_STATE(COfficeSignatureAddInCtrl, MyOfficeObj)
ASSERT_VALID(pThis);
return 1;
}
STDMETHODIMP COfficeSignatureAddInCtrl::XMyOfficeObj::OnBeginShutdown(SAFEARRAY * * custom)
{
METHOD_MANAGE_STATE(COfficeSignatureAddInCtrl, MyOfficeObj)
ASSERT_VALID(pThis);
return 1;
}
STDMETHODIMP COfficeSignatureAddInCtrl::XMyOfficeObj::OnAddInsUpdate(SAFEARRAY * * custom)
{
METHOD_MANAGE_STATE(COfficeSignatureAddInCtrl, MyOfficeObj)
ASSERT_VALID(pThis);
return 1;
}
STDMETHODIMP COfficeSignatureAddInCtrl::XMyOfficeObj::OnStartupComplete(SAFEARRAY * * custom)
{
METHOD_MANAGE_STATE(COfficeSignatureAddInCtrl, MyOfficeObj)
ASSERT_VALID(pThis);
return 1;
}
lvfeng180
2008-07-09
打赏
举报
回复
头文件:
#import "C:\Program Files\Common Files\Designer\msaddndr.dll" raw_interfaces_only, raw_native_types, no_namespace, named_guids
#import "C:\Program Files\Microsoft Office\OFFICE11\msword.olb" rename_namespace("MSWORD"), rename("ExitWindows","WordExitWindows"), named_guids, raw_interfaces_only
using namespace MSWORD;
............................
.........................
//添加部分
DECLARE_INTERFACE_MAP()
//IDTExtensibility2
BEGIN_INTERFACE_PART(MyOfficeObj,IDTExtensibility2)
INIT_INTERFACE_PART(COfficeSignatureAddInCtrl, MyOfficeObj)
STDMETHOD(OnConnection)(IDispatch * Application, ext_ConnectMode ConnectMode, IDispatch * AddInInst, SAFEARRAY * * custom);
STDMETHOD(OnDisconnection)(ext_DisconnectMode RemoveMode, SAFEARRAY * * custom);
STDMETHOD(OnAddInsUpdate)(SAFEARRAY * * custom);
STDMETHOD(OnStartupComplete)(SAFEARRAY * * custom);
STDMETHOD(OnBeginShutdown)(SAFEARRAY * * custom);
END_INTERFACE_PART_STATIC(MyOfficeObj)
lvfeng180
2008-07-09
打赏
举报
回复
现在是我实现了IDTExtensibility2,报 无法初始化抽象基类_IDTExtensibility2
蒋晟
2008-07-09
打赏
举报
回复
IDTExtensibility2接口是Office插件必须实现的接口。
MFC
教程入门知识全集.rar
6.2.1.3 利用
工具栏
编辑器设计
工具栏
按钮 6.2.2 新建一个
工具栏
6.2.3 显示/隐藏
工具栏
6.3 状态栏 6.3.1 状态栏介绍 6.3.1.1 熟悉CStatusBar 类 6.3.1.2 AppWizard 是如何创建状态栏 6.3.2 修改状态栏 6.3....
[
开发
工具] Codejock Xtreme Suite Pro
ActiveX
15.3.1 Retail
Codejock 软件公司的 Xtreme 套件(Xtreme Suite)包含了三种流行的组件: Xtreme 命令
工具栏
(Xtreme Command Bars)—— 把
需要
创建的具有改进对接算法的所有组件提供给 Windows 的图形用户界面(GUI)工程师,这些组件...
C++
MFC
开发
连机五子棋游戏
Visual Studio
开发
包中著名C++
开发
工具,一向以功能强大著称,让零基础朋友快速掌握
MFC
的
开发
。重点让一些有基础的同学能够利用
MFC
开发
一些小的项目获得一些经验。
Visual C++2010
开发
权威指南(共三部分).part1.rar
第11章 Visual C++ 2010
MFC
Activex
控件
454 11.1
Activex
控件
简介 454 11.2
Activex
控件
测试与注册 455 11.2.1
Activex
控件
的测试 455 11.2.2
Activex
控件
的注册 457 11.3
MFC
Activex
控件
向导 458 11.4
Activex
...
ATL
3,245
社区成员
48,539
社区内容
发帖
与我相关
我的任务
ATL
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
复制链接
扫一扫
分享
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章