Compartilhar via


atributo de versão

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 somente versões compatíveis do software do cliente e do servidor possam ser associadas.

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

Parâmetros

valor principal

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

minor-value

Especifica um inteiro sem sinal curto 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 será separado do número de versão principal por um caractere de período (.). Se não for especificado, o valor da versão secundária será zero.

Observações

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 da interface. Uma interface COM derivada tem uma UUID diferente, mas herda as funções de membro da interface, os códigos de status e os 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 [versão] e [uuid] para o servidor quando o cliente chama uma função remota. Um cliente pode 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 para cima 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 para cima 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 da 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 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 menor é 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 menor de onze. A versão 1.11 não representa um valor entre 1.1 e 1.2.

Consulte também

Arquivo IDL (Definição de Interface)

Interface

Objeto

Uuid