TYPEFLAGS enumeration (oaidl.h)

The type flags.

Syntax

typedef enum tagTYPEFLAGS {
  TYPEFLAG_FAPPOBJECT = 0x1,
  TYPEFLAG_FCANCREATE = 0x2,
  TYPEFLAG_FLICENSED = 0x4,
  TYPEFLAG_FPREDECLID = 0x8,
  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,
  TYPEFLAG_FPROXY = 0x4000
} TYPEFLAGS;

Constants

 
TYPEFLAG_FAPPOBJECT
Value: 0x1
A type description that describes an Application object.
TYPEFLAG_FCANCREATE
Value: 0x2
Instances of the type can be created by ITypeInfo::CreateInstance.
TYPEFLAG_FLICENSED
Value: 0x4
The type is licensed.
TYPEFLAG_FPREDECLID
Value: 0x8
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
Value: 0x10
The type should not be displayed to browsers.
TYPEFLAG_FCONTROL
Value: 0x20
The type is a control from which other types will be derived, and should not be displayed to users.
TYPEFLAG_FDUAL
Value: 0x40
The interface supplies both IDispatch and VTBL binding.
TYPEFLAG_FNONEXTENSIBLE
Value: 0x80
The interface cannot add members at run time.
TYPEFLAG_FOLEAUTOMATION
Value: 0x100
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
Value: 0x200
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
Value: 0x400
The class supports aggregation.
TYPEFLAG_FREPLACEABLE
Value: 0x800
The type is replaceable.
TYPEFLAG_FDISPATCHABLE
Value: 0x1000
Indicates that the interface derives from IDispatch, either directly or indirectly. This flag is computed. There is no Object Description Language for the flag.
TYPEFLAG_FREVERSEBIND
Value: 0x2000
The type has reverse binding.
TYPEFLAG_FPROXY
Value: 0x4000
Interfaces can be marked with this flag to indicate that they will be using a proxy/stub dynamic link library. This flag specifies that the typelib proxy should not be unregistered when the typelib is unregistered.

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 Bind method of the ITypeComp instance 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 Bind is passed the name of an Application object, a VARDESC is returned, which describes the implicit variable. The ID of the implicitly created variable is always ID_DEFAULTINST.

The ITypeInfo::CreateInstance function of an Application object type description is called, and then it uses GetActiveObject to retrieve the Application object. If GetActiveObject fails because the application is not running, then CreateInstance calls CoCreateInstance, which should start the application.

When TYPEFLAG_FCANCREATE is set, CreateInstance can create an instance of this type. This is true only for component object classes for which a globally unique identifier (GUID) has been specified.

Requirements

Requirement Value
Header oaidl.h