private VB6ProjectReference ParseObjectReference(string line)
        {
            // Object={831FDD16-0C5C-11D2-A9FC-0000F8754DA1}#2.0#0; mscomctl.OCX

            var result        = new VB6ProjectReference();
            var nameValuePair = line.Split('=');
            var data          = nameValuePair[1].Split(';');
            var tlbRef        = data[0].Split('#');

            result.ReferenceType   = ProjectReferenceTypeEnum.ObjectReference;
            result.TypeLibFileName = data[1].Trim();

            if (tlbRef.Length == 1)
            {
                // "Object=Exact.ExactMenu.1; e4slax.dll"
                result.TypeLibID   = tlbRef[0];
                result.TypeLibVer  = null;
                result.TypeLibLCID = null;
            }
            else
            {
                result.TypeLibID   = tlbRef[0];
                result.TypeLibVer  = tlbRef[1];
                result.TypeLibLCID = tlbRef[2];
            }

            return(result);
        }
        private VB6ProjectReference ParseProjectReference(string line)
        {
            // Reference=*\G{00020430-0000-0000-C000-000000000046}#2.0#0#..\..\Windows\system32\stdole2.tlb#OLE Automation

            var result        = new VB6ProjectReference();
            var nameValuePair = line.Split('=');
            var data          = nameValuePair[1].Split('#'); // first 3 is type lib, fourth one is file path, fifth is optional description.

            result.ReferenceType   = ProjectReferenceTypeEnum.ProjectReference;
            result.TypeLibID       = new string(data[0].Skip(3).ToArray()); // Get GUID
            result.TypeLibVer      = data[1];
            result.TypeLibLCID     = data[2];
            result.TypeLibFileName = data[3];

            if (data.Length > 4)
            {
                result.TypeLibDescription = data[4];
            }

            return(result);
        }