The TYPEFLAGS enumeration values are used in the wTypeFlags field of a TYPEATTR to specify the features of a type, as specified in section 2.2.44. They also are used in the pTypeFlags parameter of the ITypeInfo2::GetTypeFlags method.
The function invocation constants are defined in the TYPEFLAGS enumeration.
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_FPROXY = 0x4000
} TYPEFLAGS;
TYPEFLAG_FAPPOBJECT: MUST be set if the type was declared with the [appobject] attribute (see section 2.2.49.8).
TYPEFLAG_FCANCREATE: MUST NOT be set if the type was declared with the [noncreatable] attribute (see section 2.2.49.8). Otherwise, MUST be set.
TYPEFLAG_FLICENSED: MUST be set if the type was declared with the [licensed] attribute (see section 2.2.49.8).
TYPEFLAG_FPREDECLID: MUST be set if the type was declared with the [predeclid] or [appobject] attributes (see section 2.2.49.8).
TYPEFLAG_FHIDDEN: MUST be set if the type was declared with the [hidden] attribute (see section 2.2.49.8).
TYPEFLAG_FCONTROL: MUST be set if the type was declared with the [control] attribute (see section 2.2.49.8).
TYPEFLAG_FDUAL: MUST be set if the type was declared with the [dual] attribute (see section 2.2.49.4.2).
TYPEFLAG_FNONEXTENSIBLE: MUST be set if the type was declared with the [nonextensible] attribute (see section 2.2.49.4).
TYPEFLAG_FOLEAUTOMATION: MUST be set if the type is a DCOM interface that was declared with the [oleautomation] or [dual] attributes (see section 2.2.49.4). MUST NOT be set if the type is a dispinterface.
TYPEFLAG_FRESTRICTED: MUST be set if the type was declared with the [restricted] attribute (see section 2.2.49.5.1).
TYPEFLAG_FAGGREGATABLE: MUST be set if the type was declared with the [aggregatable] attribute (see section 2.2.49.8).
TYPEFLAG_FREPLACEABLE: MUST be set if the type contains a member that was declared with the [replaceable] attribute (see section 2.2.49.5.1). MUST be ignored on receipt.
TYPEFLAG_FDISPATCHABLE: MUST be set if the type derives from IDispatch, either directly or indirectly. MUST be set if the type is a dispinterface or dual interface <3> (see section 2.2.49.4.2).
TYPEFLAG_FPROXY: MUST be set if the type was declared with the [proxy] attribute (see section 2.2.49.4). MUST be ignored on receipt.