Compartir a través de


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