héritage de type Pointer-Attribute
Selon la spécification DCE, chaque fichier IDL doit définir des attributs pour ses pointeurs. Si un attribut explicite n’est pas attribué à un pointeur, le pointeur utilise la valeur spécifiée par l’mot clé [pointer_default]. Certaines implémentations DCE n’autorisent pas les pointeurs non alloués. Si un pointeur n’a pas d’attribut explicite, le fichier IDL doit avoir une spécification [pointer_default] afin que l’attribut de pointeur puisse être défini.
En mode par défaut (Microsoft-extensions), vous pouvez spécifier l’attribut d’un pointeur dans le fichier IDL qui importe le fichier IDL de définition. Les pointeurs définis dans un fichier IDL peuvent hériter des attributs spécifiés dans d’autres fichiers IDL. En outre, en mode par défaut, les fichiers IDL peuvent inclure des pointeurs non distribués. Si ni les fichiers IDL de base ni les fichiers IDL importés ne spécifient un attribut de pointeur ou [pointer_default], les pointeurs non attribués sont interprétés comme des pointeurs uniques.
Le compilateur MIDL affecte des attributs de pointeur aux pointeurs à l’aide des règles de priorité suivantes (1 est le plus élevé).
Priority | Description |
---|---|
1 | Des attributs de pointeur explicites sont appliqués au pointeur au niveau de la définition ou du site d’utilisation. |
2 | La valeur par défaut est l’attribut [pointer_default] dans le fichier IDL qui définit le type. |
3 | La valeur par défaut est l’attribut [pointer_default] dans le fichier IDL qui importe le type. |
4 | La valeur par défaut est [ ptr ] en mode de compatibilité DCE ou [ unique ] en mode Microsoft-extensions. |