Identificadores de Associação Automática

Identificadores de associação automática são úteis quando o aplicativo não requer um servidor específico e quando não precisa manter nenhuma informação de estado entre o cliente e o servidor. Ao usar um identificador de associação automática, você não precisa escrever nenhum código de aplicativo cliente para lidar com associação e identificadores, basta especificar o uso do identificador de associação automática no ACF (arquivo de configuração de aplicativo). Em seguida, o stub define o identificador e gerencia a associação.

Por exemplo, uma operação de carimbo de data/hora pode ser implementada usando um identificador automático. Ele não faz diferença para o aplicativo cliente que o servidor fornece o carimbo de data/hora, pois ele pode aceitar a hora de qualquer servidor disponível.

Observação

Identificadores automáticos não têm suporte para a plataforma Macintosh.

 

Especifique o uso de identificadores automáticos incluindo o atributo [auto_handle] no ACF. O exemplo de carimbo de data/hora usa o seguinte ACF:

/* ACF file */
[
  auto_handle
]
interface autoh
{
}

Quando o ACF não inclui nenhum outro atributo de identificador e quando os procedimentos remotos não usam identificadores explícitos, o compilador MIDL usa identificadores automáticos por padrão. Ele também usa identificadores automáticos como o padrão quando o ACF não está presente.

Os procedimentos remotos são especificados no arquivo IDL. O identificador automático não deve aparecer como um argumento para o procedimento remoto. Por exemplo:

/* IDL file */
[ 
  uuid (6B29FC40-CA47-1067-B31D-00DD010662DA),
  version(1.0),
  pointer_default(unique)
]
interface autoh
{
  void GetTime([out] long * time);
  void Shutdown(void);
}

O benefício do identificador automático é que o desenvolvedor não precisa escrever nenhum código para gerenciar o identificador; os stubs gerenciam a associação automaticamente. Isso é significativamente diferente do exemplo Hello, World, em que o cliente gerencia o identificador primitivo implícito definido no ACF e deve chamar várias funções de tempo de execução para estabelecer o identificador de associação.