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 |