任何人都可以使用 VSTO 重载 SharePoint FileCheckIn 操作吗?我认为微软可能已经忘记实现它(以及许多其他操作)
在我的功能区 XML 中,我添加了以下三个命令:
<commands>
<command idMso="FileCheckIn" onAction="FileCheckIn_Click"/>
<command idMso="FileCheckOut" onAction="FileCheckOut_Click"/>
<command idMso="FileCheckOutDiscard" onAction="FileCheckOutDiscard_Click"/>
</commands>
使用相应的 C# 回调:
public void FileCheckIn_Click(Office.IRibbonControl control, ref bool cancelDefault)
{ cancelDefault = false; /*Does not work*/ }
public void FileCheckOut_Click(Office.IRibbonControl control, ref bool cancelDefault)
{ cancelDefault = false; /* Works! */ }
public void FileCheckOutDiscard_Click(Office.IRibbonControl control, ref bool cancelDefault)
{ cancelDefault = false; /*Does not work*/ }
有趣的是,FileCheckOut 工作正常,但 FileCheckIn 和 FileCheckOutDiscard 不能。奇怪的是,我在 VBA 中取得了更大的成功:
Public Sub FileCheckIn()
MsgBox "I work!"
End Sub
Public Sub FileCheckOut()
MsgBox "I work!"
End Sub
Public Sub FileCheckOutDiscard()
MsgBox "I don't.."
End Sub
希望我在路上的某个地方犯了一个错误。帮助表示赞赏。据我所知,此功能在 Office 2007 和 Office 2010 中已被破坏。我还没有测试过 Office 2013。
--编辑-- 我已经在 Office 2013 中完成了一些测试。更糟糕的是,我担心:
- 在 UI 中执行 CheckIn/CheckOut/Discard 时,不会触发任何 C# 回调
- 只有 FileCheckIn VBA 方法有效
有趣的是,以下代码行会触发 CheckIn C# 回调:
this.Application.CommandBars.ExecuteMso("FileCheckIn");
我想 Office 2013 中的 UI/Backstage 更改可能会更改 VBA 例程的名称。