атрибут version
Атрибут интерфейса [версия] идентифицирует конкретную версию среди нескольких версий интерфейса RPC. С помощью атрибута version вы гарантируете, что привязка разрешена только для совместимых версий клиентского и серверного программного обеспечения.
version ( major-value[[. minor-value]] )
Параметры
-
основное значение
-
Задает короткое целое число без знака от нуля до 65 535 включительно, представляющее основной номер версии.
-
дополнительное значение
-
Задает короткое целое число без знака от нуля до 65 535 включительно, представляющее дополнительный номер версии. Дополнительное значение версии является необязательным. При наличии значение дополнительной версии отделяется от основного номера версии символом точки (.). Если значение не указано, значение дополнительной версии равно нулю.
Комментарии
Компилятор MIDL не поддерживает несколько версий COM-интерфейса. В результате список атрибутов интерфейса, включающий атрибут [object] , не может включать атрибут [version] . Чтобы создать новую версию существующего COM-интерфейса, используйте наследование интерфейса. Производный COM-интерфейс имеет другой UUID, но наследует функции-члены интерфейса, коды состояния и атрибуты интерфейса базового интерфейса.
В сочетании со значением [uuid] значение [версия] однозначно идентифицирует интерфейс. Библиотека времени выполнения передает значения [version] и [uuid] серверу, когда клиент вызывает удаленную функцию. Клиент может выполнить привязку к серверу для заданного интерфейса, если:
- Значение [uuid] совпадает.
- Основной номер версии совпадает.
- Номер дополнительной версии клиента меньше или равен номеру дополнительной версии сервера.
Это к вашим преимуществам и вашим пользователям, чтобы сохранить восходящую совместимость между версиями, то есть изменить интерфейс таким образом, чтобы изменялись только дополнительные номера версии. Вы можете сохранить совместимость вверх при добавлении новых типов данных, которые не используются существующими функциями, и при добавлении новых функций без изменения спецификации интерфейса для существующих функций.
Измените номер основной версии, если применяется одно из следующих условий:
- При изменении типа данных, используемого существующей функцией.
- При изменении спецификации интерфейса для существующей функции (например, при добавлении или удалении параметра).
- При добавлении обратных вызовов, которые вызываются существующими функциями.
Измените дополнительный номер версии, если применяются все следующие условия:
- При добавлении определений типов или констант, которые не используются какими-либо существующими функциями или обратными вызовами.
- Если вы не изменяете существующие функции и добавляете новые функции в интерфейс.
- Если вы добавляете обратные вызовы, которые не вызываются никакими существующими функциями, и новые обратные вызовы следуют за существующими функциями.
Если изменения квалифицируются как изменение интерфейса, совместимое с повышением, используйте следующую процедуру.
Изменение файла интерфейса (IDL)
- Добавьте новые определения констант и типов в файл интерфейса.
- Добавьте функции обратного вызова в конец файла интерфейса.
- Добавьте новые функции в конец файла интерфейса.
Атрибут [version] может встречаться не более одного раза в заголовке интерфейса.
Если атрибут version отсутствует, интерфейс имеет версию по умолчанию 0.0.
Символ точки между основным и дополнительным числами является разделителем и не представляет десятичную запятую. Незначительное число обрабатывается как целое число. Нули в начале не являются значимыми. Конечные нули являются значительными.
Например, параметр версии 1.11 представляет собой основное значение, равное 1, а дополнительное значение — одиннадцать. Версия 1.11 не представляет значение от 1.1 до 1.2.
См. также раздел