Condividi tramite


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 automatica, non è necessario scrivere codice dell'applicazione client per gestire l'associazione e gli handle. È sufficiente specificare l'uso dell'handle di associazione automatica nel file di configurazione dell'applicazione . 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 fornisce il timestamp perché può accettare l'ora da qualsiasi server disponibile.

Nota

Gli handle automatici non sono supportati per la piattaforma Macintosh.

 

È possibile specificare l'uso degli handle automatici includendo l'attributo [auto_handle] in ACF. L'esempio di timestamp usa il codice ACF seguente:

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

Quando ACF non include altri attributi handle e quando le procedure remote non usano handle espliciti, il compilatore MIDL usa handle automatici per impostazione predefinita. Usa anche handle automatici come impostazione predefinita quando ACF non è presente.

Le procedure remote vengono specificate nel file IDL. L'handle automatico non deve essere visualizzato come argomento per la routine remota. Per 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 è notevolmente diverso dall'esempio di Hello, World, in cui il client gestisce l'handle primitivo implicito definito in ACF e deve chiamare diverse funzioni di runtime per stabilire l'handle di associazione.