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); }