Handles de liaison automatique
Les handles de liaison automatique sont utiles lorsque l’application ne nécessite pas de serveur spécifique et lorsqu’elle n’a pas besoin de conserver des informations d’état entre le client et le serveur. Lorsque vous utilisez un handle de liaison automatique, vous n’avez pas besoin d’écrire de code d’application client pour gérer les liaisons et les handles. Vous spécifiez simplement l’utilisation du handle de liaison automatique dans le fichier de configuration d’application (ACF). Le stub définit ensuite le handle et gère la liaison.
Par exemple, une opération d’horodatage peut être implémentée à l’aide d’un handle automatique. Il ne fait aucune différence avec l’application cliente que le serveur fournit avec l’horodatage, car il peut accepter l’heure à partir de n’importe quel serveur disponible.
Note
Les handles automatiques ne sont pas pris en charge pour la plateforme Macintosh.
Vous spécifiez l’utilisation de handles automatiques en incluant l’attribut [auto_handle] dans l’ACF. L’exemple d’horodatage utilise l’ACF suivant :
/* ACF file */
[
auto_handle
]
interface autoh
{
}
Lorsque l’ACF n’inclut aucun autre attribut de handle et que les procédures distantes n’utilisent pas de handles explicites, le compilateur MIDL utilise des handles automatiques par défaut. Il utilise également des handles automatiques comme valeur par défaut lorsque l’ACF n’est pas présent.
Les procédures distantes sont spécifiées dans le fichier IDL. Le handle automatique ne doit pas apparaître en tant qu’argument de la procédure distante. Par exemple:
/* IDL file */
[
uuid (6B29FC40-CA47-1067-B31D-00DD010662DA),
version(1.0),
pointer_default(unique)
]
interface autoh
{
void GetTime([out] long * time);
void Shutdown(void);
}
L’avantage du handle automatique est que le développeur n’a pas à écrire de code pour gérer le handle ; les stubs gèrent automatiquement la liaison. Ceci est sensiblement différent de l’exemple Hello, World, où le client gère le handle primitif implicite défini dans l’ACF et doit appeler plusieurs fonctions d’exécution pour établir le handle de liaison.