ereditarietà del tipo Pointer-Attribute
In base alla specifica DCE, ogni file IDL deve definire gli attributi per i puntatori. Se un attributo esplicito non viene assegnato a un puntatore, il puntatore usa il valore specificato dalla parola chiave [ pointer_default] . Alcune implementazioni del controller di dominio non consentono puntatori non con attributi. Se un puntatore non ha un attributo esplicito, il file IDL deve avere una specifica [pointer_default] in modo che l'attributo puntatore possa essere impostato.
Nella modalità predefinita (Estensioni Microsoft) è possibile specificare l'attributo di un puntatore nel file IDL che importa il file IDL che definisce il file IDL. I puntatori definiti in un file IDL possono ereditare gli attributi specificati in altri file IDL. Inoltre, in modalità predefinita, i file IDL possono includere puntatori non attributi. Se né i file IDL importati specificano un attributo puntatore o [pointer_default], i puntatori non specificati vengono interpretati come puntatori univoci.
Il compilatore MIDL assegna attributi puntatori ai puntatori usando le regole di priorità seguenti (1 è più alto).
Priorità | Descrizione |
---|---|
1 | Gli attributi del puntatore esplicito vengono applicati al puntatore nella definizione o nel sito d'uso. |
2 | Il valore predefinito è l'attributo [pointer_default] nel file IDL che definisce il tipo. |
3 | Il valore predefinito è l'attributo [pointer_default] nel file IDL che importa il tipo. |
4 | Il valore predefinito è [ ptr] in modalità DCE-compatibility o [ unique] in modalità Microsoft-extensions. |