Pointer-Attribute Typvererbung
Gemäß der DCE-Spezifikation muss jede IDL-Datei Attribute für ihre Zeiger definieren. Wenn einem Zeiger kein explizites Attribut zugewiesen ist, verwendet der Zeiger den Wert, der durch das [ _ Default-Schlüsselwort des Zeigers angegeben ] wird. Einige DCE-Implementierungen lassen keine attributierten Zeiger zu. Wenn ein Zeiger nicht über ein explizites Attribut verfügt, muss die IDL-Datei über eine [ _ Zeigerstandardspezifikation ] verfügen, damit das Zeigerattribut festgelegt werden kann.
Im Standardmodus (Microsoft-Extensions) können Sie das Attribut eines Zeigers in der IDL-Datei angeben, die die definierende IDL-Datei importiert. Zeiger, die in einer IDL-Datei definiert sind, können Attribute erben, die in anderen IDL-Dateien angegeben sind. Im Standardmodus können IDL-Dateien auch nicht attributierte Zeiger enthalten. Wenn weder die Basis- noch die importierten IDL-Dateien ein Zeigerattribut oder einen [ _ Zeigerstandard ] angeben, werden nicht attributierte Zeiger als eindeutige Zeiger interpretiert.
Der MIDL-Compiler weist Zeigerattribute mithilfe der folgenden Prioritätsregeln Zeigerattribute zu (1 ist die höchste).
| Priorität | Beschreibung |
|---|---|
| 1 | Explizite Zeigerattribute werden auf den Zeiger in der Definition angewendet oder verwenden die -Website. |
| 2 | Der Standardwert ist das [ _ ] Zeigerstandardattribut in der IDL-Datei, die den Typ definiert. |
| 3 | Der Standardwert ist das [ _ ] Zeigerstandardattribut in der IDL-Datei, die den Typ importiert. |
| 4 | Der Standardwert ist [ ptr ] im DCE-Kompatibilitätsmodus oder [ eindeutig ] im Microsoft-Erweiterungsmodus. |