Identificadores de associação automática

Identificadores de associação automáticos são úteis quando o aplicativo não requer um servidor específico e quando ele não precisa manter nenhuma informação de estado entre o cliente e o servidor. Quando você usa um identificador de associação automática, não precisa escrever nenhum código de aplicativo cliente para lidar com a associação e os identificadores, basta especificar o uso do identificador de associação automática no arquivo de configuração do aplicativo (ACF). 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. Não faz diferença para o aplicativo cliente qual 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 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.