public TypeLibViewModel(ITypeLib typeLib)
{
_typeLib = typeLib;
TYPELIBATTR attr = COMUtil.GetTypeLibAttr(typeLib);
CLSID = attr.guid.ToString();
MajorVersion = attr.wMajorVerNum;
MinorVersion = attr.wMinorVerNum;
LCID = attr.lcid;
//Name = Marshal.GetTypeLibName(typeLib);
string name, docString, helpFile;
int helpContext;
typeLib.GetDocumentation(-1,
out name,
out docString,
out helpContext,
out helpFile);
Path = COMUtil.GetTypeLibPath(typeLib);
Name = name;
Description = docString;
// Remove the null char
HelpFilePath = helpFile == null ? string.Empty : helpFile.Substring(0, helpFile.Length - 1);
string asmName, asmCodeBase;
var converter = new TypeLibConverter();
converter.GetPrimaryInteropAssembly(
attr.guid, MajorVersion, MinorVersion, LCID, out asmName, out asmCodeBase);
PIAName = asmName;
PIACodeBase = asmCodeBase;
}