1

OneNote 2010 と対話する vb6 アプリケーションがあります。Win XP と Win 7 で統合をテストしています。一部のノートブックは SkyDrive に存在する可能性があり、それらはどちらの OS でも問題なく、ブラウザー経由で開きます。新しいノートブックを作成するときは、ローカルに作成しています。これは XP では問題なく動作しますが、win 7 ではエラーが発生します: "Runtime error "-2147213311 (80042001) M3thod UPdateHierarchy of object IApplication failed" これは、XML が無効であることを意味する OneNote エラーとして解釈しています。XML は同じように生成されます。 OS に関係なく. XP と 7 の間で Microsoft XML ライブラリに違いはありますか? Windows 7 で何が問題なのか特定できませんでした。

Quincy Mutual Insurance Co. は、私が作成しようとしている新しいノートです。

ウィン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>

ウィンドウズ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

誰にもアイデアはありますか?または、誰かがリソースを教えてくれますか? 助けてくれてありがとう!

4

2 に答える 2

0

OneNote 2013 で OneNote ノートブックを開くとスキーマが変更されると思います。カスタム プラグインで同様の問題に直面していました。

以下を試すことができます:

  1. デスクトップ OneNote 2010 で面倒なノートを開く

  2. ノートブックを .onepkg アーカイブ ファイルとして保存する

  3. .onepkg アーカイブ ファイルを PC のどこかに解凍します。

  4. デスクトップ OneNote 2010 で展開されたノートブックを開く

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

于 2012-09-06T09:08:02.727 に答える