从 Silverlight 应用程序调用 OneNote GetHierarchy()
我有一个浏览器外的 Silverlight 4、增强的信任应用程序。我想使用 OneNote 2010 对象模型通过 AutomationFactory 与 OneNote 进行通信,但我无法获取 GetHierarchy() 应用程序的方法才能工作。我知道 OneNote 中有数据,因为我可以从 .NET 应用程序调用该方法并从中获取数据。 GetHierarchy() 方法返回 null。有什么建议吗?
class OneNoteAutomation
{
dynamic oneNote;
enum HierarchyScope
{
hsSelf = 0,
hsChildren = 1,
hsNotebooks = 2,
hsSections = 3,
hsPages = 4
}
public void GetHierarchy()
{
if (AutomationFactory.IsAvailable)
{
this.oneNote = AutomationFactory.CreateObject("OneNote.Application");
var result = this.oneNote.GetHierarchy(
string.Empty,
(int)HierarchyScope.hsNotebooks, 1);
}
}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这是一个已知错误,无法在 AutomationFactory 中使用具有“out”的方法进行调用 - 请参阅 SL4 - AutomationFactory - 带有“out”参数的调用方法引发异常:“无法将调用的参数转换为...”
顺便说一句,我不确定您想用
1< 做什么/code> 在您的
GetHierarchy
调用中 - 这是指向将用所选HierarchyScope
枚举的 XML 填充的字符串的指针。它应该是一个字符串out
变量,而不是一个整数 - 但无论如何,由于错误,它仍然无法在 SL4 中工作。This is a known bug that calls with methods that have 'out' cannot be used in AutomationFactory - please see SL4 - AutomationFactory - Call method with 'out' parameters raise exception: 'Could not convert an argument for the call to...'
BTW, I'm not sure what you are trying to do with the
1
in yourGetHierarchy
call - that is the pointer to the string that will be filled with the XML of the chosenHierarchyScope
enum. It should be a stringout
variable, instead of an integer - but regardless, it still won't work in SL4 due to the bug.