上下文菜单扩展 DLL 是 Shell 扩展处理程序的标准类型。与所有这些处理程序一样,它是进程中的组件对象模型 (COM) 对象,对象实现为动态链接库 (DLL)。上下文菜单扩展处理程序导出两个接口,除了 I 未知:IShellExtInit 和 IContextMenu。它使用 Windows Shell 调用的标准函数和过程来管理扩展和 Shell 之间的数据,如 IShellExtInit::初始化、IContextMenu::查询ContextMenu、IContextMenu::GetCommandString,IContextMenu::InvokeCommand。和 (当然) 像所有其他 COM 对象上下文菜单扩展 DLL 导出标准函数: DllMain, DllGetClassObject, DllCanUnloadNow。 但你自己的应用程序不需要知道上面写的所有事情! 为什么? 由于上下文菜单扩展 DLL 仅适用于命令程序,并且通过命令行与您自己的应用程序交互,因此使用 ShellExecute 函数与下一个参数进行交互: lp 操作 = " 开盘 "; lpFile = "fully_qualified_path_to_your_application" (上下文菜单扩展 DLL 从注册表中读取此路径) lpParameters = 指向零终止字符串的指针,该字符串包含上下文菜单扩展 DLL 从命令行程序获得的所有项。应用程序分析此字符串以检索用户从 Windows 资源管理器中选择的所有项目。 nShowCmd = SW_SHOWNORMAL 最后也是唯一的事情是,您必须在代码中写入,以便开始与上下文菜单一起执行应用程序,并且正在分析命令行以获取所有项,即上下文菜单扩展 Dll 已传递到命令行字符串中。在此包中提供的 TestMenu 应用程序可帮助您在项目中对字符串进行编码之前测试字符串的解析(以及菜单功能)。
版本历史记录
- 版本 3.1 发布于 2003-09-06