Сериализация процедур
При использовании сериализации процедур процедура помечена атрибутом [кодировать] или [декодировать] . Вместо создания обычной удаленной заглушки компилятор создает заглушку сериализации для подпрограммы.
Так же, как удаленная процедура должна использовать дескриптор привязки для удаленного вызова, процедура сериализации должна использовать дескриптор сериализации для использования служб сериализации. Если дескриптор сериализации не указан, для направления вызова используется неявный дескриптор по умолчанию. С другой стороны, если указан дескриптор сериализации, в качестве явного handle_t аргумента подпрограммы или с помощью атрибута [explicit_handle] необходимо передать допустимый дескриптор в качестве аргумента вызова. Дополнительные сведения о создании допустимого дескриптора сериализации см. в разделе Обработчики сериализации, примеры фиксированной кодировки буфераи примеры добавочной кодировки.
Заметка
Microsoft RPC позволяет выполнять смешанные процедуры удаленной и сериализации в одном интерфейсе. Однако при этом используйте осторожность.
Для удаленных процедур с неявными дескрипторами привязки компилятор MIDL создает глобальную переменную дескриптора типа handle_t. Процедуры и типы с неявными дескрипторами сериализации используют ту же глобальную переменную дескриптора.
Для неявных дескрипторов глобальный неявный дескриптор должен быть задан допустимым дескриптором привязки перед удаленным вызовом. Неявный дескриптор должен иметь допустимый дескриптор сериализации перед вызовом сериализации. Поэтому процедура не может быть как удаленной, так и сериализуемой. Это должно быть одно или другое.