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


Функция type_UserFree

Функция <type>_UserFree является вспомогательной для атрибутов [ wire_marshal] и [ user_marshal]. Заглушки вызывают эту функцию, чтобы освободить данные на стороне сервера. Функция определяется следующим образом:

void __RPC_USER  <type>_UserFree(
    unsigned long __RPC_FAR * pFlags,
    <type_name>  __RPC_FAR *  pMyObj );

Тип <> в имени функции означает тип пользователя, указанный в определении типа [wire_marshal] или [user_marshal].

Параметр pFlags является указателем на поле длинного флага без знака . В верхнем слове флага содержатся флаги представления данных NDR в соответствии с определением OSF DCE для представлений с плавающей запятой, порядка байтов и символьных представлений. Нижнее слово содержит флаг контекста маршалинга, определенный в канале COM. Точный макет флагов в поле описан в разделе Функция type_UserSize.

Параметр pMyObj является указателем на объект типа пользователя. Обработчик NDR освобождает объект верхнего уровня. Вы несете ответственность за освобождение всех объектов, на которые может указывать объект верхнего уровня.

Исключения должны перехватываться и обрабатываться локально, исключения не должны быть разрешены для распространения в стеке вызовов.

Правила маршалинга для user_marshal и wire_marshal

wire_marshal

user_marshal