Partilhar via


Pointer-Attribute tipo de herança

De acordo com a especificação DCE, cada arquivo IDL deve definir atributos para seus ponteiros. Se um atributo explícito não for atribuído a um ponteiro, o ponteiro usará o valor especificado pela palavra-chave [ pointer_default]. Algumas implementações DCE não permitem ponteiros não atribuídos. Se um ponteiro não tiver um atributo explícito, o arquivo IDL deverá ter uma especificação de [pointer_default] para que o atributo de ponteiro possa ser definido.

No modo padrão (extensões da Microsoft), você pode especificar um atributo de ponteiro no arquivo IDL que importa o arquivo IDL definidor. Os ponteiros definidos em um arquivo IDL podem herdar atributos especificados em outros arquivos IDL. Além disso, no modo padrão, os arquivos IDL podem incluir ponteiros não atribuídos. Se nem os arquivos IDL básicos nem os importados especificarem um atributo de ponteiro ou [pointer_default], os ponteiros não atribuídos serão interpretados como ponteiros exclusivos.

O compilador MIDL atribui atributos de ponteiro a ponteiros usando as seguintes regras de prioridade (1 é o mais alto).

Prioridade Descrição
1 Atributos de ponteiro explícitos são aplicados ao ponteiro no site de definição ou uso.
2 O padrão é o atributo [pointer_default] no arquivo IDL que define o tipo.
3 O padrão é o atributo [pointer_default] no arquivo IDL que importa o tipo.
4 O padrão é [ ptr] no modo de compatibilidade DCE, ou [ exclusivo] no modo de extensões da Microsoft.