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


Атрибуты типов

Атрибуты типа — это атрибуты MIDL, которые можно применять к объявлениям типов:

Атрибут [switch_type] обозначает тип дискриминатора объединения. Этот атрибут применяется только к некапсулированному объединению.

Дескриптор контекста — это указатель с атрибутом [context_handle] . Атрибут [context_handle] позволяет создавать процедуры, которые сохраняют сведения о состоянии между удаленными вызовами процедур. Дескриптор контекста со значением, не равным NULL, представляет сохраненный контекст и служит двум целям:

  • На стороне клиента он содержит сведения, необходимые библиотеке времени выполнения RPC для направления вызова на сервер.
  • На стороне сервера он служит дескриптором в активном контексте.

Атрибут [handle] указывает, что тип может возникать как определяемый пользователем (универсальный) дескриптор. Эта функция позволяет создавать дескрипторы, значимые для приложения. Пользователь должен предоставить процедуры привязки и отмены привязки для преобразования между определяемым пользователем типом дескриптора и типом примитива RPC, handle_t. Примитивный дескриптор содержит сведения о назначении, значимые для библиотек времени выполнения RPC. Определяемый пользователем дескриптор может быть определен только в объявлении типа, но не в объявлении функции. Параметр с атрибутом [handle] имеет двойное назначение. Он используется для определения привязки для вызова и передается в вызываемую процедуру в качестве обычного параметра данных.