Handle di associazione automatica

Gli handle di associazione automatici sono utili quando l'applicazione non richiede un server specifico e quando non è necessario mantenere informazioni sullo stato tra il client e il server. Quando si usa un handle di associazione automatico, non è necessario scrivere codice applicazione client per gestire l'associazione e gli handle, è sufficiente specificare l'uso dell'handle di associazione automatica nel file di configurazione dell'applicazione (ACF). Lo stub definisce quindi l'handle e gestisce l'associazione.

Ad esempio, un'operazione timestamp può essere implementata usando un handle automatico. Non fa differenza con l'applicazione client che lo fornisce con il timestamp perché può accettare il tempo da qualsiasi server disponibile.

Nota

Gli handle automatici non sono supportati per la piattaforma Macintosh.

 

Specificare l'uso degli handle automatici includendo l'attributo [auto_handle] nell'ACF. L'esempio di timestamp usa il codice ACF seguente:

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

Quando ACF non include alcun altro attributo di handle e quando le procedure remote non usano handle espliciti, il compilatore MIDL usa gli handle automatici per impostazione predefinita. Usa anche handle automatici come impostazione predefinita quando il servizio ACF non è presente.

Le procedure remote vengono specificate nel file IDL. L'handle automatico non deve essere visualizzato come argomento per la procedura remota. Ad esempio:

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

Il vantaggio dell'handle automatico è che lo sviluppatore non deve scrivere codice per gestire l'handle; gli stub gestiscono automaticamente l'associazione. Questo è significativamente diverso dall'esempio Hello, World, in cui il client gestisce l'handle primitivo implicito definito nell'ACF e deve chiamare diverse funzioni di runtime per stabilire l'handle di associazione.