Was this page helpful?
Your feedback about this content is important. Let us know what you think.
Additional feedback?
1500 characters remaining
Export (0) Print
Expand All
Important This document may not represent best practices for current development, links to downloads and other resources may no longer be valid. Current recommended version can be found here.

#import Attributes

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

Community Additions

ADD
Show:
© 2015 Microsoft