Share via


#import Attributes (C++)

Provides links to attributes used with the #import directive.

Microsoft Specific

The following attributes are available to the #import directive.

Attribute

Description

auto_rename

Renames C++ reserved words by appending two underscores (__) to the variable name to resolve potential name conflicts.

auto_search

Specifies 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_idl

Specifies that the type library is written to the .tlh file with the attribute-generated code preserved.

exclude (#import)

Excludes items from the type library header files being generated.

high_method_prefix

Specifies a prefix to be used in naming high-level properties and methods.

high_property_prefixes

Specifies alternate prefixes for three property methods.

implementation_only

Suppresses the generation of the .tlh header file (the primary header file).

include()

Disables automatic exclusion.

inject_statement

Inserts its argument as source text into the type-library header.

named_guids

Tells 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_exclude

Disables automatic exclusion.

no_dual_interfaces

Changes the way the compiler generates wrapper functions for dual interface methods.

no_implementation

Suppresses the generation of the .tli header, which contains the implementations of the wrapper member functions.

no_namespace

Specifies that the namespace name is not generated by the compiler.

no_registry

Tells the compiler not to search the registry for type libraries.

no_search_namespace

Has 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_pointers

Suppresses the creation of smart pointers for all interfaces in the type library.

raw_dispinterfaces

Tells 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_only

Suppresses the generation of error-handling wrapper functions and property (C++) declarations that use those wrapper functions.

raw_method_prefix

Specifies a different prefix to avoid name collisions.

raw_native_types

Disables the use of COM support classes in the high-level wrapper functions and forces the use of low-level data types instead.

raw_property_prefixes

Specifies alternate prefixes for three property methods.

rename (#import)

Works around name collision problems.

rename_namespace

Renames the namespace that contains the contents of the type library.

rename_search_namespace

Has 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.

tlbid

Allows for loading libraries other than the primary type library.

END Microsoft Specific

See Also

Reference

#import Directive (C++)