Imported Library Conversion
When the import process converts a type library, it automatically places the types defined within the library in a namespace of the same name as the type library. For example, if you run Tlbimp.exe on the following type library, the utility imports all types defined within the AcmeLib type library into the AcmeLib namespace.
Type library representation
library AcmeLib {
interface Widget {};
coclass Slingshot {};
};
After the conversion, you can use AcmeLib.Slingshot to call the Slingshot class from your managed application.
Namespace AcmeLib
Interface Widget
End Interface
Class Slingshot
End Class
End Namespace
namespace AcmeLib {
interface Widget {};
class Slingshot {};
};
You can use a type library attribute to explicitly control the namespace for the type library import process. Because type library names cannot contain periods, this is the only technique that you can use to import types into a period-delimited namespace. This attribute identifier is 0F21F359-AB84-41e8-9A78-36D110E6D2F9. The following type library representation shows the addition of the user-defined attribute.
Type library representation
[
uuid(…),
version(1.0),
custom(0F21F359-AB84-41e8-9A78-36D110E6D2F9, "Acme.WidgetLib")
]
library AcmeLib {
interface Widget {};
coclass Slingshot {};
};
By using the user-defined attribute, you can force Tlbimp.exe to import the AcmeLib type library into the Acme.WidgetLib namespace. The Slingshot class becomes Acme.WidgetLib.Slingshot in managed code.