#import Attributes (C++)

 

The new home for Visual Studio documentation is Visual Studio 2017 Documentation on docs.microsoft.com.

Provides links to attributes used with the #import directive.

Microsoft Specific

The following attributes are available to the #import directive.

AttributeDescription
auto_renameRenames C++ reserved words by appending two underscores (__) to the variable name to resolve potential name conflicts.
auto_searchSpecifies that, when a type library is referenced with #import and itself references another type library, the compiler can do an implicit #import for the other type library.
embedded_idlSpecifies that the type library is written to the .tlh file with the attribute-generated code preserved.
excludeExcludes items from the type library header files being generated.
high_method_prefixSpecifies a prefix to be used in naming high-level properties and methods.
high_property_prefixesSpecifies alternate prefixes for three property methods.
implementation_onlySuppresses the generation of the .tlh header file (the primary header file).
include()Disables automatic exclusion.
inject_statementInserts its argument as source text into the type-library header.
named_guidsTells the compiler to define and initialize GUID variables in old style, of the form LIBID_MyLib, CLSID_MyCoClass, IID_MyInterface, and DIID_MyDispInterface.
no_auto_excludeDisables automatic exclusion.
no_dual_interfacesChanges the way the compiler generates wrapper functions for dual interface methods.
no_implementationSuppresses the generation of the .tli header, which contains the implementations of the wrapper member functions.
no_namespaceSpecifies that the namespace name is not generated by the compiler.
no_registryTells the compiler not to search the registry for type libraries.
no_search_namespaceHas the same functionality as the no_namespace attribute but is used on type libraries that you use the #import directive with the auto_search attribute.
no_smart_pointersSuppresses the creation of smart pointers for all interfaces in the type library.
raw_dispinterfacesTells the compiler to generate low-level wrapper functions for dispinterface methods and properties that call IDispatch::Invoke and return the HRESULT error code.
raw_interfaces_onlySuppresses the generation of error-handling wrapper functions and property declarations that use those wrapper functions.
raw_method_prefixSpecifies a different prefix to avoid name collisions.
raw_native_typesDisables the use of COM support classes in the high-level wrapper functions and forces the use of low-level data types instead.
raw_property_prefixesSpecifies alternate prefixes for three property methods.
renameWorks around name collision problems.
rename_namespaceRenames the namespace that contains the contents of the type library.
rename_search_namespaceHas the same functionality as the rename_namespace attribute but is used on type libraries that you use the #import directive with the auto_search attribute.
tlbidAllows for loading libraries other than the primary type library.

END Microsoft Specific

#import Directive

Show: