VB 6与OneNote的集成

问题描述:

我有一个与OneNote 2010交互的vb6应用程序。我正在测试win XP和Win 7中的集成。一些笔记本可以存在于SkyDrive上,并且这些在任一操作系统中都没有问题,它们通过浏览器。创建新笔记本时,它将在本地创建它。这在XP中正常工作,但在win 7中调用错误: “运行时错误”-2147213311(80042001)M3thod对象IApplication的UPdateHierarchy失败“ 我将其解释为OneNote错误,这意味着XML无效。不管操作系统如何,都是一样的,在XP和7之间,微软的XML库有什么不同吗?我一直无法确定win 7中的问题,希望得到任何帮助,XML和代码如下:VB 6与OneNote的集成

昆西互助保险有限公司是新的笔记本电脑,我想创建

的Win XP:

<?xml version="1.0"?> 
<one:Notebooks xmlns:one="http://schemas.microsoft.com/office/onenote/2010/onenote"> 
    <one:Notebook name="Personal" nickname="Personal" ID="{EB245BB4-63DA-404E-BB9F-447008E7BE52}{1}{B0}" path="https://d.docs.live.net/637f21528f6026bf/^.Documents/Personal/" lastModifiedTime="2012-09-04T20:12:40.000Z" color="#FFD869"/> 
    <one:Notebook name="EMC Insurance Companies" nickname="EMC Insurance Companies" ID="{DBA316FE-5D42-445E-A356-7405E7DD9E12}{1}{B0}" path="https://d.docs.live.net/637f21528f6026bf/^.Documents/EMC Insurance Companies/" lastModifiedTime="2012-06-29T10:41:29.000Z" color="#9595AA"/> 
    <one:Notebook name="Sentry Insurance Company" nickname="Sentry Insurance Company" ID="{8A4E905D-429E-491E-9FE5-856A10BE3CD7}{1}{B0}" path="D:\My Documents\OneNote Notebooks\Sentry Insurance Company" lastModifiedTime="2012-08-14T13:15:36.000Z" color="#BA7575"/> 
    <one:Notebook name="Quincy Mutual Insurance Co" path="D:\My Documents\OneNote Notebooks\\Quincy Mutual Insurance Co"/> 
</one:Notebooks> 

Windows 7的

<?xml version="1.0"?> 
<one:Notebooks xmlns:one="http://schemas.microsoft.com/office/onenote/2010/onenote"> 
    <one:Notebook name="EMC Insurance Companies" nickname="EMC Insurance Companies" ID="{E68066FB-38A4-4190-B82F-0A9F322C29AF}{1}{B0}" path="https://d.docs.live.net/637f21528f6026bf/Documents/EMC Insurance Companies/" lastModifiedTime="2012-08-24T22:07:44.000Z" color="#9595AA"/> 
    <one:UnfiledNotes ID="{C8E287E1-3EF2-464B-9ACB-F22B69A887A5}{1}{B0}"/> 
    <one:Notebook name="Quincy Mutual Insurance Co" path="G:\Users\ROC\Documents\OneNote Notebooks\\Quincy Mutual Insurance Co"/> 
</one:Notebooks> 

-

Private Function GetClientOneNoteNotebookNode(oneNote As OneNote14.Application,  ClientName As String) As MSXML2.IXMLDOMNodeList 
    ' Get the XML that represents the OneNote notebooks available. 
    Dim notebookXml As String 
    Dim doc As MSXML2.DOMDocument 
    Dim elem As MSXML2.IXMLDOMElement 
    Dim newNotebookPath As String 
    Dim notebookNodeList As MSXML2.IXMLDOMNodeList 
    Dim node As MSXML2.IXMLDOMNode 
    Dim defaultNotebookFolder As String 
    ' OneNote fills notebookXml with an XML document providing information 
    ' about what OneNote notebooks are available. 
    ' You want all the data and thus are providing an empty string 
    ' for the bstrStartNodeID parameter. 
    oneNote.GetHierarchy "", hsNotebooks, notebookXml, xs2010 
    ' Use the MSXML Library to parse the XML. 
    Set doc = New MSXML2.DOMDocument 
    If doc.loadXML(notebookXml) Then 
     Set notebookNodeList = doc.documentElement.selectNodes("//one:Notebook[@name='" & ClientName & "']") 
     If notebookNodeList.Length = 0 Then 


      'Get the default location for the notebooks 
      oneNote.GetSpecialLocation slDefaultNotebookFolder, defaultNotebookFolder 
      newNotebookPath = defaultNotebookFolder + "\\" + ClientName 

    '   Dim notebookId As String 
    '   notebookId = doc.Attributes.getNamedItem("id").Text 


      'Create new notebook for cleint 
      Set elem = doc.createElement("one:Notebook") 
      elem.setAttribute "name", ClientName 
      elem.setAttribute "path", newNotebookPath 
      ' add new elelement to the document tree 
      doc.documentElement.appendChild elem 

    '   Set notebookNodeList = doc.documentElement.selectNodes("//one:Notebook [@name='Personal']") 
'   elem.setAttribute "path", defaultNotebookFolder 



      oneNote.UpdateHierarchy doc.XML 
     End If 
     ' Close notebook 
    '  oneNote.CloseNotebook notebookId, False 
    '  ' Open notebook 
    '  oneNote.OpenHierarchy newNotebookPath, "", notebookId, cftNone 
     Set GetClientOneNoteNotebookNode = notebookNodeList 

    Else 
     Set GetClientOneNoteNotebookNode = Nothing 
    End If 
    End Function 

人有什么想法?或者任何人都可以指向我的资源?谢谢你的帮助!

我想开在OneNote 2013的OneNote笔记本将更改架构,我正面临着类似的问题,我的自定义插件

您可以尝试以下操作:

  1. 打开麻烦的笔记本电脑在2010年桌面的OneNote

  2. 保存笔记本作为.onepkg归档文件

  3. 拆开.onepkg档案某处提交您的PC

  4. 打开解压后的笔记本在桌面上的OneNote 2010

编号:http://www.mobilenoter.com/blog/post/2012/08/13/MobileNoter-SE-OneNote-2013-Preview-issues.aspx

+1

感谢您的回复,我在您提供的链接中阅读了相关信息。似乎对2013版本更具体,并在该版本中打开现有的笔记本电脑。我的问题与初始创建新笔记本(本地)有关。我用于XP和Win 7的OneNote版本是2010年。 – roc

我注意到,对于XP的路径中有空格和WIN7没有空格。这可能是罪魁祸首吗? 另外,你的路径中没有双打,你只有一个斜线。也许就是这样?