Enumeración TYPEFLAGS (oaidl.h)
Marcas de tipo.
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;
Constantes
TYPEFLAG_FAPPOBJECT Valor: 0x1 Descripción de tipo que describe un objeto Application. |
TYPEFLAG_FCANCREATE Valor: 0x2 Las instancias del tipo se pueden crear mediante ITypeInfo::CreateInstance. |
TYPEFLAG_FLICENSED Valor: 0x4 El tipo tiene licencia. |
TYPEFLAG_FPREDECLID Valor: 0x8 El tipo está predefinido. La aplicación cliente debe crear automáticamente una única instancia del objeto que tenga este atributo. El nombre de la variable que apunta al objeto es el mismo que el nombre de la clase del objeto. |
TYPEFLAG_FHIDDEN Valor: 0x10 El tipo no debe mostrarse a los exploradores. |
TYPEFLAG_FCONTROL Valor: 0x20 El tipo es un control a partir del cual se derivarán otros tipos, y no debe mostrarse a los usuarios. |
TYPEFLAG_FDUAL Valor: 0x40 La interfaz proporciona enlaces IDispatch y VTBL. |
TYPEFLAG_FNONEXTENSIBLE Valor: 0x80 La interfaz no puede agregar miembros en tiempo de ejecución. |
TYPEFLAG_FOLEAUTOMATION Valor: 0x100 Los tipos utilizados en la interfaz son totalmente compatibles con la automatización, incluida la compatibilidad con el enlace VTBL. Establecer dual en una interfaz establece esta marca además de TYPEFLAG_FDUAL. No se permite en interfaces Dispinterface. |
TYPEFLAG_FRESTRICTED Valor: 0x200 No se debe permitir el acceso desde lenguajes de macros. El marcador está destinado a tipos en el nivel del sistema o a tipos que los exploradores de tipos no deben mostrar. |
TYPEFLAG_FAGGREGATABLE Valor: 0x400 La clase admite agregación. |
TYPEFLAG_FREPLACEABLE Valor: 0x800 El tipo se puede reemplazar. |
TYPEFLAG_FDISPATCHABLE Valor: 0x1000 Indica que la interfaz se deriva de IDispatch, ya sea directa o indirectamente. Esta marca se calcula. No hay ningún lenguaje de descripción de objeto para la marca. |
TYPEFLAG_FREVERSEBIND Valor: 0x2000 El tipo tiene enlace inverso. |
TYPEFLAG_FPROXY Valor: 0x4000 Las interfaces se pueden marcar con esta marca para indicar que usarán una biblioteca de vínculos dinámicos proxy/código auxiliar. Esta marca especifica que el proxy de typelib no se debe anular el registro cuando la biblioteca de tipos no está registrada. |
Comentarios
TYPEFLAG_FAPPOBJECT se puede usar en descripciones de tipos con TypeKind = TKIND_COCLASS e indica que la descripción del tipo especifica un objeto Application.
Los miembros del objeto Application son accesibles globalmente. El método Bind de la instancia de ITypeComp asociada a la biblioteca enlaza a los miembros de un objeto Application, igual que para las descripciones de tipos que tienen TypeKind = TKIND_MODULE.
La descripción del tipo define implícitamente una variable global con el mismo nombre y tipo descrito por la descripción del tipo. Esta variable también es accesible globalmente. Cuando se pasa Bind el nombre de un objeto Application, se devuelve un VARDESC, que describe la variable implícita. El identificador de la variable creada implícitamente siempre se ID_DEFAULTINST.
Se llama a la función ITypeInfo::CreateInstance de una descripción del tipo de objeto Application y, a continuación, usa GetActiveObject para recuperar el objeto Application. Si Se produce un error en GetActiveObject porque la aplicación no se está ejecutando, CreateInstance llama a CoCreateInstance, que debería iniciar la aplicación.
Cuando se establece TYPEFLAG_FCANCREATE, CreateInstance puede crear una instancia de este tipo. Esto solo se aplica a las clases de objeto de componente para las que se ha especificado un identificador único global (GUID).
Requisitos
Requisito | Valor |
---|---|
Header | oaidl.h |