atributo version

O atributo de interface [versão] identifica uma versão específica entre várias versões de uma interface RPC. Com o atributo de versão, você garante que apenas versões compatíveis do software cliente e do servidor possam ser associadas.

version ( major-value[[. minor-value]] )

Parâmetros

valor principal

Especifica um inteiro curto sem sinal entre zero e 65.535, inclusive, que representa o número de versão principal.

minor-value

Especifica um inteiro curto sem sinal entre zero e 65.535, inclusive, que representa o número de versão secundária. O valor da versão secundária é opcional. Se presente, o valor da versão secundária é separado do número de versão principal por um caractere de ponto (.). Se não for especificado, o valor da versão secundária será zero.

Comentários

O compilador MIDL não dá suporte a várias versões de uma interface COM. Como resultado, uma lista de atributos de interface que inclui o atributo [object] não pode incluir o atributo [version] . Para criar uma nova versão de uma interface COM existente, use a herança de interface. Uma interface COM derivada tem um UUID diferente, mas herda as funções membro da interface, status códigos e atributos de interface da interface base.

Em combinação com o valor [uuid] , o valor [versão] identifica exclusivamente a interface. A biblioteca em tempo de execução passa os valores [version] e [uuid] para o servidor quando o cliente chama uma função remota. Um cliente poderá se associar a um servidor para uma determinada interface se:

  • O valor [uuid] é o mesmo.
  • O número da versão principal é o mesmo.
  • O número de versão secundária do cliente é menor ou igual ao número de versão secundária do servidor.

É para seu benefício e para os usuários manter a compatibilidade ascendente entre as versõesÂ, ou seja, modificar a interface para que apenas o número de versão secundária seja alterado. Você pode manter a compatibilidade ascendente ao adicionar novos tipos de dados que não são usados por funções existentes e quando você adiciona novas funções sem alterar a especificação de interface para funções existentes.

Altere o número da versão principal se qualquer uma das seguintes condições se aplicar:

  • Se você alterar um tipo de dados usado por uma função existente.
  • Se você alterar a especificação da interface para uma função existente (como adicionar ou remover um parâmetro).
  • Se você adicionar retornos de chamada que são chamados por funções existentes.

Altere o número de versão secundária se todas as seguintes condições se aplicarem:

  • Se você adicionar definições de tipo ou constantes que não são usadas por funções ou retornos de chamada existentes.
  • Se você não alterar nenhuma função existente e adicionar novas funções à interface.
  • Se você adicionar retornos de chamada que não são chamados por nenhuma função existente e os novos retornos de chamada seguirem quaisquer funções existentes.

Se suas modificações se qualificarem como uma alteração compatível para cima na interface, use o procedimento a seguir.

Para modificar o arquivo IDL (interface)

  1. Adicione novas definições de constante e tipo ao arquivo de interface.
  2. Adicione funções de retorno de chamada ao final do arquivo de interface.
  3. Adicione novas funções ao final do arquivo de interface.

O atributo [versão] pode ocorrer no máximo uma vez no cabeçalho da interface.

Quando o atributo de versão não está presente, a interface tem uma versão padrão de 0.0.

O caractere de período entre os números principal e secundário é um delimitador e não representa um ponto decimal. O número menor é tratado como um inteiro. Zeros à esquerda não são significativos. Zeros à direita são significativos.

Por exemplo, a configuração de versão 1.11 representa um valor principal de um e um valor secundário de onze. A versão 1.11 não representa um valor entre 1.1 e 1.2.

Confira também

Arquivo IDL (definição de interface)

Interface

Objeto

uuid