Attributi di campo

Gli attributi del campo sono gli attributi che possono essere applicati ai campi di una matrice, una struttura, un'unione o una matrice di caratteri:

Ad esempio, gli attributi dei campi vengono usati insieme alle dichiarazioni di matrice per specificare le dimensioni della matrice o la parte della matrice che contiene dati validi. Questa operazione viene eseguita associando un altro parametro, un campo struttura o un'espressione costante alla matrice.

L'attributo [ignore] definisce i campi puntatore da ignorare durante il processo di marshalling. Tale campo ignorato è impostato su NULL sul lato ricevitore.

MIDL fornisce matrici conformi, variabili e aperte . Una matrice viene chiamata conforme se i relativi limiti vengono determinati in fase di esecuzione. L'attributo [size_is] designa il limite superiore per le dimensioni di allocazione della matrice e l'attributo [max_is] designa il limite superiore sul valore di un indice di matrice valido. Per altre informazioni, vedere [matrici].

Una matrice viene chiamata variabile se i relativi limiti vengono determinati in fase di compilazione, ma l'intervallo di elementi trasmessi viene determinato in fase di esecuzione. Una matrice aperta (detta anche matrice conforme) è una matrice il cui limite superiore e intervallo di elementi trasmessi vengono determinati in fase di esecuzione. Per determinare l'intervallo di elementi trasmessi di una matrice, la dichiarazione della matrice deve includere un attributo [length_is], [first_is]o [last_is].

L'attributo [length_is] designa il numero di elementi della matrice da trasmettere e l'attributo [first_is] designa l'indice del primo elemento della matrice da trasmettere. L'attributo [last_is] designa l'indice dell'ultimo elemento della matrice da trasmettere.

L'attributo di campo [switch_is] designa un discriminazione dell'unione. Quando l'unione è un parametro di procedura, il discriminazione dell'unione deve essere un altro parametro della stessa procedura. Quando l'unione è un campo di una struttura, il discriminazione deve essere un altro campo della struttura allo stesso livello del campo dell'unione. La discriminazione deve essere un tipo booleano, char, int o enumerazione o un tipo che si risolve in uno di questi tipi. Per altre informazioni, vedere Unioni non incapsulate e [switch_is].

L'attributo di campo [stringa] designa che un carattere o una matrice di byte uno-dimensionale o un puntatore a un carattere o un flusso di byte con terminazione zero, deve essere considerato come stringa. L'attributo stringa si applica solo a matrici e puntatori unidimensionali. Il tipo di elemento è limitato a caratteri, byte, wchar_t o a un tipo denominato che si risolve in uno di questi tipi.

Per informazioni sul contesto in cui vengono visualizzati gli attributi del campo, vedere Array MIDL, MIDL Structures e MIDL Unions.