How do I load a typelib to parse it in C#?

2019-04-28 11:08发布

问题:

In unmanaged code I can use LoadTypeLib() to obtain an ITypeLib* pointer and use that to look into the typelib to find what interfaces it contains.

There is System.Runtime.InteropServices.ComTypes.ITypeLib interface in C# but I can't find an equivalent to LoadTypeLib() function.

How do I load a typelib and obtain an ITypeLib reference in C#?

回答1:

Copied straight from System.Design.NativeMethods, Reflector is useful:

[DllImport("oleaut32.dll", PreserveSig=false)]
public static extern ITypeLib LoadTypeLib([In, MarshalAs(UnmanagedType.LPWStr)] string typelib);