检测快速访问命令状态

gab*_*abr 9 delphi ribbon windows-ribbon-framework

我们有一个使用Windows Ribbon Framework进行UI 的应用程序.该应用程序本身是用Delphi编写的,并使用Windows Ribbon Framework for Delphi与功能区API进行交互.

我们的功能区XML将很少的命令放入快速访问工具栏.然后,使用可以通过使用内置功能区机制(选择下拉/下拉按钮并单击命令名称)或选择More commands打开配置对话框的命令来删除/添加命令.

快速访问快照

我遇到的问题是我无法找到一种方法来获取QA集合中的当前命令状态(无论它们是否可见).

在上面的示例(图片)中,我想检测前五个命令是否被检查,而最后一个命令不是这样,我可以相应地准备配置对话框.

枚举IUICollection和访问存储在里面的项目我没有问题.我也可以获得UI_PKEY_CommandId每个项目.但是,我无法找到读取已检查/未检查状态的方法.我尝试阅读UI_PKEY_BooleanValueUI_PKEY_Enabled集合中的所有项目,但他们没有返回该状态.

我也尝试过监视,IUICommandHandler.UpdateProperty但是当选中/取消选中此项时,它不会被调用(除了用UI_PKEY_Label键调用它).

Ribbon API甚至支持此功能吗?