• 您的位置我爱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插件的编程实现(之一)