如何使用基于 IExecuteCommand 的 shell 扩展使某些上下文菜单选项变灰?
How to gray out some context-menu options with an IExecuteCommand-based shell extension?
使用 IExecuteCommand
方法(如 this blog post 中所述)实现上下文菜单 shell 扩展时,如何将给定的菜单选项变灰?
例如假设 shell 扩展提供了一些菜单选项,其中一些应该根据 shell 扩展计算的某些状态和条件变灰,例如:如果用户右键单击一个文件并且 shell 扩展检测到该文件具有一些给定的属性,一些 shell 扩展上下文菜单选项应该变灰。
如何使用 IExecuteCommand
做到这一点?
或者是否应该使用另一个 Windows Shell COM 接口?
我从未尝试过这个,但你应该能够在你的动词键中将 CommandStateHandler
(未记录?)设置为实现 IExplorerCommandState.
的 CLSID
您可能还会考虑实施 IExplorerCommand 而不是 IExecuteCommand+IExplorerCommandState...
您还可以根据对 属性 系统的 AppliesTo
值的查询来隐藏动词。
使用 IExecuteCommand
方法(如 this blog post 中所述)实现上下文菜单 shell 扩展时,如何将给定的菜单选项变灰?
例如假设 shell 扩展提供了一些菜单选项,其中一些应该根据 shell 扩展计算的某些状态和条件变灰,例如:如果用户右键单击一个文件并且 shell 扩展检测到该文件具有一些给定的属性,一些 shell 扩展上下文菜单选项应该变灰。
如何使用 IExecuteCommand
做到这一点?
或者是否应该使用另一个 Windows Shell COM 接口?
我从未尝试过这个,但你应该能够在你的动词键中将 CommandStateHandler
(未记录?)设置为实现 IExplorerCommandState.
您可能还会考虑实施 IExplorerCommand 而不是 IExecuteCommand+IExplorerCommandState...
您还可以根据对 属性 系统的 AppliesTo
值的查询来隐藏动词。