Enumerazione TYPEFLAGS (oaidl.h)

Flag di tipo.

Sintassi

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;

Costanti

 
TYPEFLAG_FAPPOBJECT
Valore: 0x1
Descrizione di un tipo relativa a un oggetto Application.
TYPEFLAG_FCANCREATE
Valore: 0x2
Le istanze del tipo possono essere create da ITypeInfo::CreateInstance.
TYPEFLAG_FLICENSED
Valore: 0x4
Il tipo è concesso in licenza.
TYPEFLAG_FPREDECLID
Valore: 0x8
Tipo già definito. È necessario che nell'applicazione client venga creata automaticamente una singola istanza dell'oggetto che contiene questo attributo. Il nome della variabile che punta all'oggetto corrisponde a quello della classe dell'oggetto.
TYPEFLAG_FHIDDEN
Valore: 0x10
Il tipo non deve essere visibile ai visualizzatori.
TYPEFLAG_FCONTROL
Valore: 0x20
Il tipo è un controllo da cui saranno derivati altri tipi e non deve essere visibile agli utenti.
TYPEFLAG_FDUAL
Valore: 0x40
L'interfaccia fornisce l'associazione IDispatch e VTBL.
TYPEFLAG_FNONEXTENSIBLE
Valore: 0x80
L'interfaccia non può aggiungere membri in fase di esecuzione.
TYPEFLAG_FOLEAUTOMATION
Valore: 0x100
I tipi utilizzati nell'interfaccia sono completamente compatibili con l'automazione, compreso il supporto per l'associazione VTBL. L'impostazione doppia su un'interfaccia imposta questo flag oltre a TYPEFLAG_FDUAL. Non consentito su interfacce dispatch.
TYPEFLAG_FRESTRICTED
Valore: 0x200
Non deve essere accessibile dai linguaggi macro. Il flag viene utilizzato per i tipi a livello di sistema o che non devono essere visualizzati dai visualizzatori dei tipi.
TYPEFLAG_FAGGREGATABLE
Valore: 0x400
La classe supporta l'aggregazione.
TYPEFLAG_FREPLACEABLE
Valore: 0x800
Il tipo è sostituibile.
TYPEFLAG_FDISPATCHABLE
Valore: 0x1000
Indica che l'interfaccia deriva da IDispatch, direttamente o indirettamente. Questo flag viene calcolato. Non esiste alcuna lingua di descrizione oggetto per il flag.
TYPEFLAG_FREVERSEBIND
Valore: 0x2000
Il tipo ha un'associazione inversa.
TYPEFLAG_FPROXY
Valore: 0x4000
Le interfacce possono essere contrassegnate con questo flag per indicare che utilizzano una libreria di collegamento dinamica proxy/stub. Questo flag specifica che il proxy typelib non deve essere registrato quando il typelib è non registrato.

Commenti

TYPEFLAG_FAPPOBJECT può essere usato nelle descrizioni dei tipi con TypeKind = TKIND_COCLASS e indica che la descrizione del tipo specifica un oggetto Application.

I membri dell'oggetto Application sono accessibili a livello globale. Il metodo Bind dell'istanza ITypeComp associata alla libreria associa ai membri di un oggetto Application, così come per le descrizioni dei tipi con TypeKind = TKIND_MODULE.

La descrizione del tipo definisce in modo implicito una variabile globale con lo stesso nome e tipo descritto dalla descrizione del tipo. Questa variabile è anche accessibile a livello globale. Quando Bind viene passato il nome di un oggetto Application, viene restituito un VARDESC che descrive la variabile implicita. L'ID della variabile creata in modo implicito è sempre ID_DEFAULTINST.

La funzione ITypeInfo::CreateInstance di una descrizione del tipo di oggetto Application viene chiamata e quindi usa GetActiveObject per recuperare l'oggetto Application. Se GetActiveObject non riesce perché l'applicazione non è in esecuzione, CreateInstance chiama CoCreateInstance, che deve avviare l'applicazione.

Quando TYPEFLAG_FCANCREATE è impostato, CreateInstance può creare un'istanza di questo tipo. Questo valore è true solo per le classi di oggetti componente per cui è stato specificato un identificatore univoco globale (GUID).

Requisiti

Requisito Valore
Intestazione oaidl.h