Поделиться через


наследование типов Pointer-Attribute

Согласно спецификации DCE, каждый IDL-файл должен определять атрибуты для его указателей. Если явный атрибут не назначен указателю, указатель использует значение, указанное ключевым словом [pointer_default]. Некоторые реализации DCE не допускают неуправляемые указатели. Если указатель не имеет явного атрибута, файл IDL должен иметь спецификации [pointer_default] спецификации, чтобы можно было задать атрибут указателя.

В режиме по умолчанию (расширения Майкрософт) можно указать атрибут указателя в файле IDL, который импортирует определяющий IDL-файл. Указатели, определенные в одном файле IDL, могут наследовать атрибуты, указанные в других файлах IDL. Кроме того, в режиме по умолчанию файлы IDL могут включать неуправляемые указатели. Если ни базовые, ни импортированные IDL-файлы не указывают атрибут указателя или [pointer_default], неуправляемые указатели интерпретируются как уникальные указатели.

Компилятор MIDL назначает атрибуты указателям, используя следующие правила приоритета (1 — самый высокий).

Приоритет Описание
1 Явные атрибуты указателя применяются к указателю на определении или использовании сайта.
2 По умолчанию используется атрибут [pointer_default], определяющий тип.
3 По умолчанию используется атрибут [pointer_default] в файле IDL, импортируемом типом.
4 Значение по умолчанию — [ ptr] в режиме совместимости DCE или [ уникальных] в режиме расширений Майкрософт.