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