我正在尝试通过C#在OneNote 2013中创建一个新页面。

            try
        {
            onenoteApp.CreateNewPage(sectionId, out pageId, NewPageStyle.npsBlankPageWithTitle);
        }
        catch (System.Runtime.InteropServices.COMException ex)
        {
            Console.WriteLine(ex.Message);
        }


每次发生COMException并显示消息“ HRESULT异常:0x8004200B”。错误代码表示该节是只读的(hrSectionReadOnly)。
我无法读取该部分以添加更多页面或更新内容。我试图更改.one文件的安全设置,但没有成功。

有谁知道如何解决这个问题?

最佳答案

我在使用C#和OneNote时遇到了相同的问题。每次我调用“写”方法时,这意味着我想编辑OneNote文件中的某些内容,就会得到HRESULT异常:0x8004200B。

我使用Microsoft OneNote 12.0类型库作为参考。我也尝试使用14.0类型的Library,但是在每种方法中,编译器都表示类似


  错误1'Microsoft.Office.Interop.OneNote.Application'不包含'GetHierarchy'的定义,也没有扩展方法'GetHierarchy'接受类型的第一个参数。


因此,对我来说,解决方案是使用OneNote 14.0类型库,并将“嵌入互操作类型”设置为FALSE。您可以通过单击探针中的OneNote参考(如果已添加)来找到它。

从那时起,一切正常!

关于c# - 通过代码创建一个新的OneNote页面,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29065589/

10-11 21:02