private void StoreRelatedPartsData(List<PartInfo> piList)
        {
            m_relObjects = new Dictionary<string, OleLinkData>();

            foreach (PartInfo pi in piList)
            {
                if (string.Compare(pi.Type, OpenXmlFactory.Get(m_openXmlFormat).OfficeDocumentRelationshipsOleObject, true) == 0 ||
                    string.Compare(pi.Type, OpenXmlFactory.Get(m_openXmlFormat).OfficeDocumentRelationshipsExternalLinkPath, true) == 0)
                {
                    OleLinkData oleData = new OleLinkData();
                    oleData.m_id = pi.Id;
                    oleData.m_targetPath = pi.Target;
                    oleData.m_type = pi.Type;
                    m_relObjects.Add(pi.Id, oleData);
                }
            }
        }
        private void HandleOleLinks(XmlNodeInformation nodeInfo, OleLinkData oleData)
        {
            if (DocumentText != null)
            {
                TextType links = GetTextType(ContentType.Links, true);
                if (links.GetChildCount() == 0)
                {
                    TextNode linkNode = new TextNode();
                    AddNewNodeInfo(linkNode, "Processed", "true", DataType.String);
                    AddNewNodeInfo(linkNode, "ProgId", m_currentLinkProgId, DataType.String);
                    AddNewNodeInfo(linkNode, "Type", "File Link", DataType.String);
                    AddNewNodeInfo(linkNode, "RefIndex", "", DataType.String);
                    AddNewNodeInfo(linkNode, "RefName", "", DataType.String);
                    AddNewNodeInfo(linkNode, "LinkType", oleData.m_type, DataType.String);
                    AddNewNodeInfo(linkNode, "Path", m_currentLinkTargetPath, DataType.String);
                    AddNewNodeInfo(linkNode, "Id", oleData.m_id, DataType.String);

                    links.AddChild(linkNode);
                }
                else
                {
                    HandleOleLinks(links);
                }
            }
            m_currentOleItemNames.Clear();
        }