Condividi tramite


Attributi IDL

Tradizionalmente, la gestione di un file con estensione idl significava che era necessario:

  • Acquisire familiarità con la struttura e la sintassi di un file con estensione idl per poterlo modificare.

  • Fare affidamento su una procedura guidata, che consente di modificare alcuni aspetti del file con estensione idl.

È ora possibile modificare il file con estensione idl dall'interno di un file di codice sorgente usando gli attributi IDL di Visual C++. In molti casi, gli attributi IDL di Visual C++ hanno lo stesso nome degli attributi MIDL. Quando il nome di un attributo IDL di Visual C++ e un attributo MIDL sono gli stessi, significa che l'inserimento dell'attributo Visual C++ nel file di codice sorgente comporterà un file con estensione idl che contiene l'attributo MIDL denominato. Tuttavia, un attributo IDL di Visual C++ potrebbe non fornire tutte le funzionalità di un attributo MIDL.

Se non viene usato con gli attributi COM, gli attributi IDL consentono di definire le interfacce. Quando il codice sorgente viene compilato, gli attributi vengono usati per definire il file con estensione idl generato. Se usato con attributi COM in un progetto ATL, alcuni attributi IDL, ad esempio coclass, causano l'inserimento del codice nel progetto.

Si noti che idl_quote consente di usare costrutti MIDL non supportati nella versione corrente di Visual C++. Questo e altri attributi, ad esempio importlib e includelib, consentono di usare i file con estensione idl esistenti nel progetto C++ di Visual Studio corrente.

Attributo Descrizione
aggregatable Indica che un controllo può essere aggregato da un altro controllo.
appobject Identifica la coclasse come oggetto applicazione, associato a un'applicazione EXE completa, e indica che le funzioni e le proprietà della coclasse sono disponibili a livello globale in questa libreria dei tipi.
async_uuid Specifica l'UUID che indirizza il compilatore MIDL a definire versioni sincrone e asincrone di un'interfaccia COM.
bindable Indica che la proprietà supporta il data binding.
call_as Consente di eseguire il mapping di una funzione non rimovibile a una funzione remota.
case Utilizzato con l'attributo switch_type in un'unione.
coclass Inserisce la definizione della classe in un file con estensione idl come coclasse.
control Specifica che il tipo definito dall'utente è un controllo .
cpp_quote Genera la stringa specificata, senza i caratteri virgolette, nel file di intestazione generato.
defaultbind Indica la singola proprietà associabile che rappresenta meglio l'oggetto .
defaultcollelem Utilizzato per l'ottimizzazione del codice Visual Basic.
defaultvalue Consente di specificare un valore predefinito per un parametro facoltativo tipizzato.
default Indica che l'interfaccia personalizzata o dispatch definita in una coclasse rappresenta l'interfaccia di programmabilità predefinita.
defaultvtable Definisce un'interfaccia come interfaccia vtable predefinita per un controllo .
dispinterface Inserisce un'interfaccia nel file con estensione idl come interfaccia di dispatch.
displaybind Indica una proprietà che deve essere visualizzata all'utente come associabile.
dual Inserisce un'interfaccia nel file con estensione idl come interfaccia doppia.
entry Specifica una funzione o una costante esportata in un modulo identificando il punto di ingresso nella DLL.
first_is Specifica l'indice del primo elemento della matrice da trasmettere.
helpcontext Specifica un ID di contesto che consente all'utente di visualizzare informazioni su questo elemento nel file della Guida.
helpfile Imposta il nome del file della Guida per una libreria dei tipi.
helpstringcontext Specifica l'ID di un argomento della Guida in un file con estensione hlp o chm.
helpstringdll Specifica il nome della DLL da usare per eseguire la ricerca di stringhe del documento (localizzazione).
helpstring Specifica una stringa di caratteri usata per descrivere l'elemento a cui viene applicata.
hidden Indica che l'elemento esiste ma non deve essere visualizzato in un browser orientato all'utente.
idl_module Specifica un punto di ingresso in una DLL.
idl_quote Consente di usare attributi o costrutti IDL non supportati nella versione corrente di Visual C++.
id Specifica un DISPID per una funzione membro (una proprietà o un metodo, in un'interfaccia o in un'interfaccia o in un'interfaccia).
iid_is Specifica l'IID dell'interfaccia COM a cui punta un puntatore di interfaccia.
immediatebind Indica che il database riceverà una notifica immediata di tutte le modifiche apportate a una proprietà di un oggetto associato a dati.
importlib Rende i tipi già compilati in un'altra libreria dei tipi disponibili per la libreria dei tipi da creare.
import Specifica un altro file con estensione idl, odl o header contenente le definizioni a cui si desidera fare riferimento dal file con estensione idl principale.
include Specifica uno o più file di intestazione da includere nel file con estensione idl generato.
includelib Determina l'inserimento di un file con estensione idl o h nel file con estensione idl generato.
in Indica che un parametro deve essere passato dalla routine chiamante alla routine chiamata.
last_is Specifica l'indice dell'ultimo elemento della matrice da trasmettere.
lcid Consente di passare un identificatore delle impostazioni locali a una funzione.
length_is Specifica il numero di elementi della matrice da trasmettere.
licensed Indica che la coclasse a cui viene applicata la licenza e deve essere creata un'istanza usando IClassFactory2.
local Consente di usare il compilatore MIDL come generatore di intestazioni quando viene usato nell'intestazione dell'interfaccia. Se usato in una singola funzione, designa una routine locale per cui non vengono generati stub.
max_is Definisce il valore massimo per un indice di matrice valido.
module Definisce il blocco di libreria nel file IDL.
ms_union Controlla l'allineamento della rappresentazione dei dati di rete di unioni non incapsulate.
no_injected_text Impedisce al compilatore di inserire codice in seguito all'uso di attributi.
nonbrowsable Indica che un membro dell'interfaccia non deve essere visualizzato in un browser delle proprietà.
noncreatable Definisce un oggetto di cui non è possibile creare un'istanza da sola.
nonextensible Specifica che l'implementazione IDispatch include solo le proprietà e i metodi elencati nella descrizione dell'interfaccia e non può essere esteso con membri aggiuntivi in fase di esecuzione.
object Identifica un'interfaccia personalizzata; sinonimo di attributo personalizzato.
odl Identifica un'interfaccia come interfaccia ODL (Object Description Language).
oleautomation Indica che un'interfaccia è compatibile con Automazione.
facoltativo Specifica un parametro facoltativo per una funzione membro.
out Identifica i parametri dei puntatori restituiti dalla routine chiamata alla routine chiamante (dal server al client).
pointer_default Specifica l'attributo puntatore predefinito per tutti i puntatori, ad eccezione dei puntatori di primo livello visualizzati negli elenchi di parametri.
pragma Genera la stringa specificata, senza i caratteri virgolette, nel file con estensione idl generato.
progid Specifica il ProgID per un oggetto COM.
propget Specifica una funzione di accesso alle proprietà (get).
propputref Specifica una funzione di impostazione della proprietà che utilizza un riferimento anziché un valore.
propput Specifica un funzione di impostazione delle proprietà.
ptr Definisce un puntatore come puntatore completo.
public Assicura che un typedef venga inserito nella libreria dei tipi anche se non viene fatto riferimento all'interno del file con estensione idl.
range Specifica un intervallo di valori consentiti per argomenti o campi i cui valori vengono impostati in fase di esecuzione.
readonly Impedisce l'assegnazione a una variabile.
ref Identifica un puntatore di riferimento.
requestedit Indica che la proprietà supporta la notifica OnRequestEdit.
restricted Specifica che non è possibile chiamare arbitrariamente una libreria o un membro di un modulo, un'interfaccia o una dispinterface.
retval Definisce il parametro che riceve il valore restituito del membro.
size_is Specifica le dimensioni della memoria allocata per puntatori di dimensioni, puntatori ridimensionati a puntatori di dimensioni e matrici multidimensionali singole o multidimensionali.
source Indica che un membro di una classe, di una proprietà o di un metodo è un'origine di eventi.
string Indica che la matrice unidimensionale char, wchar_t, byteo equivalente o il puntatore a tale matrice deve essere considerata come una stringa.
switch_is Specifica l'espressione o l'identificatore che funge da discriminante dell'unione che seleziona il membro dell'unione.
switch_type Identifica il tipo della variabile utilizzata come discriminante dell'unione.
transmit_as Indica al compilatore di associare un tipo presentato, che le applicazioni client e server modificano, a un tipo trasmesso.
uidefault Indica che il membro informazioni sul tipo è il membro predefinito per la visualizzazione nell'interfaccia utente.
unique Specifica un puntatore univoco.
usesgetlasterror Indica al chiamante che, se si verifica un errore durante la chiamata a tale funzione, il chiamante può quindi chiamare GetLastError per recuperare il codice di errore.
uuid Specifica l'ID univoco per una classe o un'interfaccia.
v1_enum Indica che il tipo enumerato specificato deve essere trasmesso come entità a 32 bit, anziché come impostazione predefinita a 16 bit.
vararg Specifica che la funzione accetta un numero variabile di argomenti.
vi_progid Specifica una forma indipendente dalla versione del ProgID.
wire_marshal Specifica un tipo di dati che verrà utilizzato per la trasmissione anziché per un tipo di dati specifico dell'applicazione.

Vedi anche

Attributi per gruppo