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]] )
-
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.
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)
- Adicione novas definições de constante e tipo ao arquivo de interface.
- Adicione funções de retorno de chamada ao final do arquivo de interface.
- 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.