您的位置:首页 > 其它

获取当前打开Word文档的名字和路径以及取消自己添加的目录菜单

2008-03-24 14:24 766 查看
一、获取当前打开Word文档的名字和路径
CComPtr <Word::_Document> pDoc;
hr = m_spApp-> get_ActiveDocument(&pDoc);

if (pDoc != NULL)
{
CComBSTR bstrName;
pDoc-> get_FullName(&bstrName);

USES_CONVERSION;
MessageBox(NULL, W2CT(bstrName), _T("当前文档"), MB_OK);
}
上面的代码不能加在OnConnection中,如果要加在OnConnection中,必须先响应_Application的DocumentChange事件,然后才能得到ActiveDocument。

二、取消自己添加的目录菜单
可以用Delete方法,但是在Delete之前必须先unadvise。
假设你的组件是按照下面的继承方式来实现按钮点击响应的:
class ATL_NO_VTABLE CYourCom :
public ...,
public IDispEventSimpleImpl <1, CYourCom, &__uuidof(_CommandBarButtonEvents)>

那么你应该用下面的方式来取消事件通知:
IDispEventSimpleImpl <1, CYourCom, &__uuidof(_CommandBarButtonEvents)> ::DispEventUnadvise(m_spButton);

菜单栏和工具栏的实现类似。

更多技术文章请参看施昌权的个人网站: http://www.joyvc.cn
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: