我爱Aspx >> VC.Net >> Office2000下内部COM插件的编程实现(之二)
Office2000下内部COM插件的编程实现(之二)
- 作者:aspxer 来源:internet 日期:2007-5-21 23:49:26 关键字:com
- ,让我们在菜单“工具”中新建一个菜单条。 代码如下: _bstr_t bstrNewMenuText(OLESTR("新增菜单条")); CComPtr < Office::CommandBarControls> spCmdCtrls; CComPtr < Office::CommandBarControls> spCmdBarCtrls; CComPtr < Office::CommandBarPopup> spCmdPopup; CComPtr < Office::CommandBarControl> spCmdCtrl; CComPtr < Office::CommandBar> spCmdBar; // 通过CommandBar获取Outlook主菜单 hr = spCmdBars->get_ActiveMenuBar(&spCmdBar); if (FAILED(hr)) return hr; // 获取菜单条的CommandBarControls spCmdCtrls = spCmdBar->GetControls(); ATLASSERT(spCmdCtrls); // 在第5个"工具"菜单下新增一菜单条 CComVariant vItem(5); spCmdCtrl= spCmdCtrls->GetItem(vItem); ATLASSERT(spCmdCtrl); IDispatchPtr spDisp; spDisp = spCmdCtrl->GetControl(); // 获取菜单条CommandBarPopup接口 CComQIPtr < Office::CommandBarPopup> ppCmdPopup(spDisp); ATLASSERT(ppCmdPopup); spCmdBarCtrls = ppCmdPopup->GetControls(); ATLASSERT(spCmdBarCtrls); CComVariant vMenuType(1); // 控件类型 - menu CComVariant vMenuPos(6); CComVariant vMenuEmpty(DISP_E_PARAMNOTFOUND, VT_ERROR); CComVariant vMenuShow(VARIANT_TRUE); // 菜单将显示 CComVariant vMenuTemp(VARIANT_TRUE); // 临时 CComPtr < Office::CommandBarControl> spNewMenu; // 用Add方法创建新的菜单条 spNewMenu = spCmdBarCtrls->Add(vMenuType, vMenuEmpty, vMenuEmpty, vMenuEmpty, vMenuTemp); ATLASSERT(spNewMenu); spNewMenu->PutCaption(bstrNewMenuText); spNewMenu->PutEnabled(VARIANT_TRUE); spNewMenu->PutVisible(VARIANT_TRUE); // 利用CommandBarButton来在菜单条前显示位图 CComQIPtr < Office::_CommandBarButton> spCmdMenuButton(spNewMenu); ATLASSERT(spCmdMenuButton); spCmdMenuButton->PutStyle(Office::msoButtonIconAndCaption); // 同新增工具条第一个按钮位图相同方法 spCmdMenuButton->PasteFace(); // 显示菜单 spNewMenu->PutVisible(VARIANT_TRUE); m_spMenu = spCmdMenuButton; 这样,通过在Outlook中通过上面提到的方法加载COM插件,就可以看到如图一
【我对这篇文章有话说?】
- 广告位招租,广告代号:content_468_15
- 上一篇:Win32学习笔记 序
下一篇:Office2000下内部COM插件的编程实现(之一)
- 关于我们 | 广告服务 | 网站建设 | 版权申明 | 申请链接 | 联系我们
- Copyright © 2007 5iaspx.COM. All Right Reserved.
- 本站内容仅供学习,研究,探讨,个人收藏,如有侵权,敬请联系我们,我们尽快解决!