Herança de tipo Pointer-Attribute

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 pelo [ pointer_default] palavra-chave. Algumas implementações de 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 [pointer_default] para que o atributo de ponteiro possa ser definido.

No modo padrão (Extensões da Microsoft), você pode especificar o atributo de um ponteiro no arquivo IDL que importa o arquivo IDL definidor. 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 a base nem os arquivos IDL importados especificarem um atributo de ponteiro ou [pointer_default], 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 é mais alto).

Prioridade Descrição
1 Atributos de ponteiro explícitos são aplicados ao ponteiro na definição ou no site de 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 de DCE ou [ exclusivo] no modo de extensões da Microsoft.