• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >vc/mfc > IContextMenu3的问题

IContextMenu3的问题

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-04

佚名通过本文主要向大家介绍了严以修身存在的问题,严以律己存在的问题,严以修身方面的问题,不成问题的问题,没问题的英语怎么写等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: IContextMenu3的问题
描述:

我实现了一个上下文菜单扩展,继承了IContextMenu3接口,可是系统却不调用HandleMenuMsg和HandleMenuMsg2,这是怎么回事?
代码如下:
类的申明:
// CContextMenuExt
class ATL_NO_VTABLE CContextMenuExt : 
public CComObjectRootEx<CComSingleThreadModel>,
public CComCoClass<CContextMenuExt, &CLSID_ContextMenuExt>,
public IShellExtInit,
public IContextMenu3
{
public:
CContextMenuExt()
{
}
~CContextMenuExt()
{
}
DECLARE_REGISTRY_RESOURCEID(IDR_CONTEXTMENUEXT)
DECLARE_NOT_AGGREGATABLE(CContextMenuExt)
BEGIN_COM_MAP(CContextMenuExt)
COM_INTERFACE_ENTRY(IShellExtInit)
COM_INTERFACE_ENTRY(IContextMenu)
COM_INTERFACE_ENTRY(IContextMenu2)
COM_INTERFACE_ENTRY(IContextMenu3)
END_COM_MAP()
DECLARE_PROTECT_FINAL_CONSTRUCT()
HRESULT FinalConstruct()
{
return S_OK;
}
void FinalRelease() 
{
}
// IShellExtInit 
STDMETHOD(Initialize)(LPCITEMIDLIST, LPDATAOBJECT, HKEY);
// IContextMenu
STDMETHOD(GetCommandString)(UINT, UINT, UINT*, LPSTR, UINT);
STDMETHOD(InvokeCommand)(LPCMINVOKECOMMANDINFO);
STDMETHOD(QueryContextMenu)(HMENU, UINT, UINT, UINT, UINT);
// IContextMenu2
STDMETHOD(HandleMenuMsg)(UINT, WPARAM, LPARAM);
// IContextMenu3
STDMETHOD(HandleMenuMsg2)(UINT, WPARAM, LPARAM, LRESULT*);
};
OBJECT_ENTRY_AUTO(__uuidof(ContextMenuExt), CContextMenuExt)
类的实现:
HRESULT CContextMenuExt::QueryContextMenu(HMENU hMenu, UINT uMenuIndex, UINT uidFirstCmd, UINT uidLastCmd, UINT uFlags)
{
MENUITEMINFO menuiteminfo;
ZeroMemory(&menuiteminfo, sizeof(menuiteminfo));
menuiteminfo.cbSize = sizeof(menuiteminfo);
menuiteminfo.fMask = MIIM_STRING | MIIM_FTYPE;
menuiteminfo.fType = MFT_OWNERDRAW;
menuiteminfo.dwTypeData = buf;
menuiteminfo.cch = (UINT) _tcslen(buf);
if (!InsertMenuItem(hMenu, uMenuIndex, TRUE, &menuiteminfo))
{
OutputDebugString(_T("InsertMenuItem failed"));
}
return MAKE_HRESULT(SEVERITY_SUCCESS, FACILITY_NULL, 1);
}


解决方案1:

那分给我吧,呵呵


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • IWebBrowser2::Navigate的问题
  • IWebBrowser2::Navigate的问题
  • CoMarshalInterface的问题
  • ATLService+ODBCAPI的问题
  • CoCreateInstance的问题
  • _AtlModule,_AtlWindmodule,_AtlBaseMoudle的问题
  • CComQIPtr的问题
  • ieplugin的问题
  • hookcom的问题
  • IMultiLanguage2::ConvertStringInIStream的问题

相关文章

  • 2017-06-05 ATL控件使用大问题啊
  • 2017-06-04 关于赋值问题!
  • 2017-06-04 怎么用adsi在iisscriptmaps中添加一条isapiextension的配置信息。
  • 2017-06-05 关于dnsapidll的问题
  • 2017-06-05 线程间通信的问题
  • 2017-06-05 如何在dll中获取调用该dll的exe文件名
  • 2017-06-04 高分求教:VC制作的OCX控件无法在VB中调用的问题,错误码80004002
  • 2017-06-05 高分求教线程与Socket编程的问题!
  • 2017-06-04 VC如何访问MATLAB的函数
  • 2017-06-04 CoCreateInstance方式启动的进程外组件,如何获得进程ID

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • ATL复合控件的问题
    • 那里有旋转控件下载?就象工业仪器上的旋钮
    • CBCGPEditCtrl如何更新显示在视图上,不出现乱码?!!恳请指教!
    • COM中的QueryInerface函数中为何要使用一个指向指针的指针?
    • 在ATL中一个类调用另一个类的成员变量的问题进者有分)
    • ATL生成的简单DLL怎么运用到网页上
    • 一个IDL文件如何引用另外一个IDL中的接口定义?
    • vc2005中有没有生成事件监听类的向导?
    • ATL新手求救
    • VC编写OPC客户端与PLC的通信程序运行2小时后即通信不了

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有