Atributos de campo
Os atributos de campo são os atributos que podem ser aplicados aos campos de uma matriz, estrutura, união ou matriz de caracteres:
- [ignore], [size_is]
- [max_is]
- [length_is]
- [first_is]
- [last_is]
- [switch_is]
- [cadeia decaracteres]
- atributos de ponteiro
Por exemplo, atributos de campo são usados em conjunto com declarações de matriz para especificar o tamanho da matriz ou a parte da matriz que contém dados válidos. Isso é feito associando outro parâmetro, campo de estrutura ou uma expressão constante à matriz.
O atributo [ignore] designa campos de ponteiro a serem ignorados durante o processo de marshaling. Esse campo ignorado é definido como NULL no lado do receptor.
O MIDL fornece matrizes em conformidade, variáveis e abertas . Uma matriz é chamada de conformante se seus limites forem determinados em tempo de execução. O atributo [size_is] designa o limite superior no tamanho da alocação da matriz e o atributo [max_is] designa o limite superior no valor de um índice de matriz válido. Para obter mais informações, consulte [matrizes].
Uma matriz é chamada variando se seus limites forem determinados em tempo de compilação, mas o intervalo de elementos transmitidos é determinado em tempo de execução. Uma matriz aberta (também chamada de matriz variável compatível) é uma matriz cujo limite superior e intervalo de elementos transmitidos são determinados em tempo de execução. Para determinar o intervalo de elementos transmitidos de uma matriz, a declaração de matriz deve incluir um atributo [length_is], [first_is]ou [last_is] .
O atributo [length_is] designa o número de elementos de matriz a serem transmitidos e o atributo [first_is] designa o índice do primeiro elemento de matriz a ser transmitido. O atributo [last_is] designa o índice do último elemento de matriz a ser transmitido.
O atributo de campo [switch_is] designa um discriminatório sindical. Quando a união é um parâmetro de procedimento, o discriminatório sindical deve ser outro parâmetro do mesmo procedimento. Quando a união é um campo de uma estrutura, o discriminador deve ser outro campo da estrutura no mesmo nível que o campo união. O discriminador deve ser um tipo booliano, char, int ou enum , ou um tipo que resolva para um desses tipos. Para obter mais informações, consulte Uniões NãoCapsuladas e [switch_is].
O atributo de campo [cadeiade caracteres] designa que um caractere unidimensional ou uma matriz de bytes, ou um ponteiro para um caractere ou fluxo de bytes com término zero, deve ser tratado como uma cadeia de caracteres. O atributo string aplica-se somente a matrizes unidimensionais e ponteiros. O tipo de elemento é limitado a char, byte, wchar_t ou um tipo nomeado que resolve para um desses tipos.
Para obter informações sobre o contexto no qual os atributos de campo aparecem, consulte Matrizes MIDL, Estruturas MIDL e Uniões MIDL.