Herencia de tipos de Pointer-Attribute
Según la especificación DCE, cada archivo IDL debe definir atributos para sus punteros. Si no se asigna un atributo explícito a un puntero, el puntero usa el valor especificado por la palabra clave [ pointer_default]. Algunas implementaciones de DCE no permiten punteros no distribuidos. Si un puntero no tiene un atributo explícito, el archivo IDL debe tener una especificación [pointer_default] para que se pueda establecer el atributo de puntero.
En el modo predeterminado (Microsoft-extensions), puede especificar el atributo de un puntero en el archivo IDL que importa el archivo IDL que define IDL. Los punteros definidos en un archivo IDL pueden heredar atributos especificados en otros archivos IDL. Además, en el modo predeterminado, los archivos IDL pueden incluir punteros sin asignar. Si ni la base ni los archivos IDL importados especifican un atributo de puntero o [pointer_default], los punteros sin asignar se interpretan como punteros únicos.
El compilador MIDL asigna atributos de puntero a punteros mediante las siguientes reglas de prioridad (1 es mayor).
Prioridad | Descripción |
---|---|
1 | Los atributos de puntero explícitos se aplican al puntero en la definición o en el sitio de uso. |
2 | El valor predeterminado es el atributo [pointer_default] del archivo IDL que define el tipo. |
3 | El valor predeterminado es el atributo [pointer_default] del archivo IDL que importa el tipo. |
4 | El valor predeterminado es [ ptr] en el modo de compatibilidad de DCE o [ único] en el modo De extensiones de Microsoft. |