
图9
但是点击时没有响应,最后就让我们来解决这个问题。
1. 在COutlookAddin继承类中加入IDispEventSimpleImpl继承,代码如下:
class ATL_NO_VTABLE COutlookAddin :
public CComObjectRootEx<CComSingleThreadModel>,
……
public IDispEventSimpleImpl<1,COutlookAddin,&__uuidof(Office::_CommandBarButtonEvents)>2. 声明_ATL_SINK_INFO结构回调参数信息。在OutlookAddin.h文件中加入下面语句:// 按钮事件响应信息声明
extern _ATL_FUNC_INFO OnClickButtonInfo;在OutlookAddin.cpp文件中加入定义语句,如下:// 按钮事件响应信息定义
_ATL_FUNC_INFO OnClickButtonInfo ={CC_STDCALL,VT_EMPTY,2,{VT_DISPATCH,VT_BYREF
| VT_BOOL}};3. 加入Sink映射,如下:EGIN_SINK_MAP(COutlookAddin)
SINK_ENTRY_INFO(1, __uuidof(Office::_CommandBarButtonEvents),/*dispid*/
0x01, OnClickButton1, &OnClickButtonInfo)
SINK_ENTRY_INFO(2, __uuidof(Office::_CommandBarButtonEvents),/*dispid*/
0x01, OnClickButton2, &OnClickButtonInfo)
SINK_ENTRY_INFO(3, __uuidof(Office::_CommandBarButtonEvents),/*dispid*/
0x01, OnClickMenu, &OnClickButtonInfo)
END_SINK_MAP()4. 加入事件函数。在OutlookAddin.h中加入声明:
void __stdcall OnClickButton1(IDispatch * /*Office::_CommandBarButton**/
Ctrl,VARIANT_BOOL * CancelDefault);在OutlookAddin.cpp中加入实现:// 工具条按钮1点击事件响应函数
void __stdcall CWordAddin::OnClickButton1(IDispatch *
/*Office::_CommandBarButton**/ Ctrl,VARIANT_BOOL * CancelDefault)
{
MessageBox(NULL, "hello", "world", MB_OK);
}浏览URL http://www.qqread.com/word/d349798.html 相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
相关专题
- Office技巧专区 (7169篇文章)
- 软件插件 (7560篇文章)
- 超级技巧 批量更新Office 2003 (0次浏览)
- 傻眼了吧 Word2007也能算算式 (0次浏览)
- 在Word中任意选中单词某一部分字母 (0次浏览)
- 不删减文字 给Word文件减减肥 (0次浏览)
- 新年到 用Word2007制作春节喜庆用品 (0次浏览)



