Important:
This is retired content. This content is outdated and is no longer being maintained. It is provided as a courtesy for individuals who are still using these technologies. This content may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist.
A version of this page is also available for
4/8/2010

This enumeration contains constants that describe types.

Syntax

typedef enum tagTYPEFLAGS {
  TYPEFLAG_FAPPOBJECT = 0x01, 
  TYPEFLAG_FCANCREATE = 0x02, 
  TYPEFLAG_FLICENSED = 0x04, 
  TYPEFLAG_FPREDECLID = 0x08,
  TYPEFLAG_FHIDDEN = 0x10, 
  TYPEFLAG_FCONTROL = 0x20, 
  TYPEFLAG_FDUAL = 0x40,  
  TYPEFLAG_FNONEXTENSIBLE = 0x80, 
  TYPEFLAG_FOLEAUTOMATION = 0x100, 
  TYPEFLAG_FRESTRICTED = 0x200, 
  TYPEFLAG_FAGGREGATABLE = 0x400, 
  TYPEFLAG_FREPLACEABLE = 0x800, 
  TYPEFLAG_FDISPATCHABLE = 0x1000, 
  TYPEFLAG_FREVERSEBIND = 0x2000, 
} TYPEFLAGS;

Elements

TYPEFLAG_FAPPOBJECT

A type description that describes an application object.

TYPEFLAG_FCANCREATE

Instances of the type can be created by ITypeInfo::CreateInstance.

TYPEFLAG_FLICENSED

The type is licensed.

TYPEFLAG_FPREDECLID

The type is predefined. The client application should automatically create a single instance of the object that has this attribute. The name of the variable that points to the object is the same as the class name of the object.

TYPEFLAG_FHIDDEN

The type should not be displayed to browsers.

TYPEFLAG_FCONTROL

The type is a control from which other types will be derived, and should not be displayed to users.

TYPEFLAG_FDUAL

The interface supplies both IDispatchand VTBL binding.

TYPEFLAG_FNONEXTENSIBLE

The interface cannot add members at run time.

TYPEFLAG_FOLEAUTOMATION

The types used in the interface are fully compatible with Automation, including VTBL binding support. Setting dual on an interface sets this flag in addition to TYPEFLAG_FDUAL. Not allowed on dispinterfaces.

TYPEFLAG_FRESTRICTED

Should not be accessible from macro languages. This flag is intended for system-level types or types that type browsers should not display.

TYPEFLAG_FAGGREGATABLE

The class supports aggregation.

TYPEFLAG_FDISPATCHABLE

Indicates that the interface derives from IDispatch, either directly or indirectly. This flag is computed. There is no Object Description Language for the flag.

Remarks

TYPEFLAG_FAPPOBJECT can be used on type descriptions with TypeKind = TKIND_COCLASS, and indicates that the type description specifies an application object.

Members of the application object are globally accessible. The Bindmethod of the ITypeCompinstance associated with the library binds to the members of an application object, just as it does for type descriptions that have TypeKind = TKIND_MODULE.

The type description implicitly defines a global variable with the same name and type described by the type description. This variable is also globally accessible. When Bindis passed the name of an application object, a VARDESCis returned, which describes the implicit variable. The ID of the implicitly created variable is always ID_DEFAULTINST.

The ITypeInfo::CreateInstancefunction of an application object type description is called, and then it uses GetActiveObjectto retrieve the application object. If GetActiveObjectfails because the application is not running, then CreateInstancecalls CoCreateInstance, which should start the application.

When TYPEFLAG_FCANCREATE is True, ITypeInfo::CreateInstancecan create an instance of the type. This is currently true only for component object classes for which a globally unique identifier (GUID) has been specified.

Requirements

Header oaidl.h
Windows Embedded CE Windows CE 2.0 and later
Windows Mobile Windows Mobile Version 5.0 and later

See Also