Pointer-Attribute Typvererbung
Gemäß der DCE-Spezifikation muss jede IDL-Datei Attribute für ihre Zeiger definieren. Wenn einem Zeiger kein explizites Attribut zugewiesen wird, verwendet der Zeiger den wert, der vom [pointer_default] Schlüsselwort (keyword) angegeben wird. Einige DCE-Implementierungen lassen keine nicht zugeordneten Zeiger zu. Wenn ein Zeiger kein explizites Attribut aufweist, muss die IDL-Datei über eine [pointer_default]- Spezifikation verfügen, damit das Zeigerattribute festgelegt werden kann.
Im Standardmodus (Microsoft-Erweiterungen) können Sie ein Zeiger-Attribut 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. Außerdem können IDL-Dateien im Standardmodus nicht zugeordnete Zeiger enthalten. Wenn weder die Basisdatei noch die importierten IDL-Dateien ein Zeigerattribut oder [pointer_default] angeben, werden nicht zugeordnete Zeiger als eindeutige Zeiger interpretiert.
Der MIDL-Compiler weist Zeigerattribute mithilfe der folgenden Prioritätsregeln zu (1 ist der höchste Wert).
Priority | BESCHREIBUNG |
---|---|
1 | Explizite Zeigerattribute werden auf den Zeiger an der Definitions- oder Verwendungswebsite angewendet. |
2 | Der Standardwert ist das [pointer_default]- Attribut in der IDL-Datei, die den Typ definiert. |
3 | Der Standardwert ist das [pointer_default]- Attribut in der IDL-Datei, die den Typ importiert. |
4 | Der Standardwert ist [ ptr] im DCE-Kompatibilitätsmodus oder [ eindeutig] im Microsoft-Erweiterungsmodus. |