TypeLibConverter.ConvertTypeLibToAssembly Method Converts a COM type library to an assembly. Overload List Converts a COM type library to an assembly. [Visual Basic] Overloads Public Overridable Function ConvertTypeLibToAssembly(Object, String, Integer, ITypeLibImporterNotifySink, Byte(), StrongNameKeyPair, Boolean) As AssemblyBuilder Implements ITypeLibConverter.ConvertTypeLibToAssembly [ http://msdn2.microsoft.com/en-us/library/aa330536(VS.71).aspx ] [C#] public virtual AssemblyBuilder ConvertTypeLibToAssembly(object, string, int, ITypeLibImporterNotifySink, byte[], StrongNameKeyPair, bool); [ http://msdn2.microsoft.com/en-us/library/aa330536(VS.71).aspx ] [C++] public: virtual AssemblyBuilder* ConvertTypeLibToAssembly(Object*, String*, int, ITypeLibImporterNotifySink*, unsigned char __gc[], StrongNameKeyPair*, bool); [ http://msdn2.microsoft.com/en-us/library/aa330536(VS.71).aspx ] [JScript] public function ConvertTypeLibToAssembly(Object, String, int, ITypeLibImporterNotifySink, Byte[], StrongNameKeyPair, Boolean) : AssemblyBuilder; [ http://msdn2.microsoft.com/en-us/library/aa330536(VS.71).aspx ] Converts a COM type library to an assembly. [Visual Basic] Overloads Public Overridable Function ConvertTypeLibToAssembly(Object, String, TypeLibImporterFlags, ITypeLibImporterNotifySink, Byte(), StrongNameKeyPair, String, Version) As AssemblyBuilder Implements ITypeLibConverter.ConvertTypeLibToAssembly [ http://msdn2.microsoft.com/en- us/library/aa330537(VS.71).aspx ] [C#] public virtual AssemblyBuilder ConvertTypeLibToAssembly(object, string, TypeLibImporterFlags, ITypeLibImporterNotifySink, byte[], StrongNameKeyPair, string, Version); [ http://msdn2.microsoft.com/en-us/library/aa330537(VS.71).aspx ] [C++] public: virtual AssemblyBuilder* ConvertTypeLibToAssembly(Object*, String*, TypeLibImporterFlags, ITypeLibImporterNotifySink*, unsigned char __gc[], StrongNameKeyPair*, String*, Version*); [ http://msdn2.microsoft.com/en-us/library/aa330537(VS.71).aspx ] [JScript] public function ConvertTypeLibToAssembly(Object, String, TypeLibImporterFlags, ITypeLibImporterNotifySink, Byte[], StrongNameKeyPair, String, Version) : AssemblyBuilder; [ http://msdn2.microsoft.com/en-us/library/aa330537(VS.71).aspx ] Example [Visual Basic, C#, C++] Note This example shows how to use one of the overloaded versions of ConvertTypeLibToAssembly. For other examples that might be available, see the individual overload topics. 2007 Microsoft Corporation. All rights reserved. [Visual Basic] Copy Code
Imports System Imports System.Reflection Imports System.Reflection.Emit Imports System.Runtime.InteropServices
Public Class App Private Enum RegKind RegKind_Default = 0 RegKind_Register = 1 RegKind_None = 2 End Enum 'RegKind
<DllImport("oleaut32.dll", CharSet:=CharSet.Unicode, PreserveSig:=False)> _ Private Shared Sub LoadTypeLibEx(ByVal strTypeLibName As [String], ByVal regKind As RegKind, <MarshalAs(UnmanagedType.Interface)> ByRef typeLib As [Object]) End Sub
Public Shared Sub Main() Dim typeLib As [Object] LoadTypeLibEx("SHDocVw.dll", RegKind.RegKind_None, typeLib)
If typeLib Is Nothing Then Console.WriteLine("LoadTypeLibEx failed.") Return End If
Dim converter As New TypeLibConverter() Dim eventHandler As New ConversionEventHandler() Dim asm As AssemblyBuilder = converter.ConvertTypeLibToAssembly(typeLib, "ExplorerLib.dll", 0, eventHandler, Nothing, Nothing, Nothing, Nothing) asm.Save("ExplorerLib.dll") End Sub 'Main End Class 'App _
Public Class ConversionEventHandler Implements ITypeLibImporterNotifySink
Public Sub ReportEvent(ByVal eventKind As ImporterEventKind, ByVal eventCode As Integer, ByVal eventMsg As String) Implements ITypeLibImporterNotifySink.ReportEvent ' handle warning event here... End Sub 'ReportEvent
Public Function ResolveRef(ByVal typeLib As Object) As [Assembly] Implements ITypeLibImporterNotifySink.ResolveRef ' resolve reference here and return a correct assembly... Return Nothing End Function 'ResolveRef End Class 'ConversionEventHandler
[C#] using System; using System.Reflection; using System.Reflection.Emit; using System.Runtime.InteropServices;
public class App { private enum RegKind { RegKind_Default = 0, RegKind_Register = 1, RegKind_None = 2 }
public class ConversionEventHandler : ITypeLibImporterNotifySink { public void ReportEvent( ImporterEventKind eventKind, int eventCode, string eventMsg ) { // handle warning event here... }
public Assembly ResolveRef( object typeLib ) { // resolve reference here and return a correct assembly... return null; } }
[C++] #using <mscorlib.dll>
using namespace System; using namespace System::Reflection; using namespace System::Reflection::Emit; using namespace System::Runtime::InteropServices;
if (typeLib == 0) { Console::WriteLine(S"LoadTypeLibEx failed."); return 0; }
TypeLibConverter* converter = new TypeLibConverter(); ConversionEventHandler* eventHandler = new ConversionEventHandler(); AssemblyBuilder* asmb = converter->ConvertTypeLibToAssembly( typeLib, S"ExplorerLib.dll", (System::Runtime::InteropServices::TypeLibImporterFlags)0, eventHandler, 0, 0, 0, 0); asmb->Save(S"ExplorerLib.dll"); } [JScript] No example is available for JScript. To view a Visual Basic, C#, or C++ example, click the Language Filter button in the upper-left corner of the page. See Also TypeLibConverter Class [ http://msdn2.microsoft.com/en-us/library/system.runtime.interopservices.typelibconverter(VS.71).aspx ] | TypeLibConverter Members [ http://msdn2.microsoft.com/en-us/library/system.runtime.interopservices.typelibconverter_members(VS.71).aspx ] | System.Runtime.InteropServices Namespace [ http://msdn2.microsoft.com/en-us/library/system.runtime.interopservices(VS.71).aspx ]
Python Advanced Programming: The Guide to Learn Python Programming. Reference with Exercises and Samples About Dynamical Programming, Multithreading, Multiprocessing, Debugging, Testing and More