Handles de liaison explicite

Pour un contrôle maximal sur le processus de liaison, les applications clientes/serveurs peuvent utiliser des handles de liaison explicites. Comme les handles implicites, les handles de liaison explicites permettent à votre application cliente de sélectionner un serveur pour exécuter ses appels. En outre, les handles de liaison explicites permettent à votre application client/serveur de créer une session de communication RPC authentifiée. Avec des handles explicites, votre client peut se connecter à plusieurs serveurs et exécuter des procédures distantes sur plusieurs serveurs. Les applications clientes multithread et asynchrones peuvent même se connecter à plusieurs serveurs et exécuter plusieurs procédures distantes en même temps.

Votre application cliente doit passer le handle explicite en tant que paramètre à chaque appel de procédure distante. Pour être conforme à la norme OSF, le handle doit être spécifié comme premier paramètre de chaque procédure distante. Toutefois, les extensions Microsoft à RPC vous permettent de spécifier le handle de liaison dans d’autres positions. Pour plus d’informations, consultez Extensions microsoft RPC Binding-Handle.

Pour créer un handle explicite, déclarez le handle en tant que paramètre aux opérations distantes dans le fichier IDL. L’exemple Hello, World peut être redéfini pour utiliser un handle explicite comme indiqué :

/* IDL file for explicit handles */
 
[ 
  uuid(20B309B1-015C-101A-B308-02608C4C9B53),
  version(1.0) 
]
interface hello
{
  void HelloProc([in] handle_t h1,
                 [in, string] char *  pszString); 
}

Vous pouvez combiner des handles explicites et implicites dans une interface unique. Si une fonction a un handle explicite dans sa liste de paramètres, ce handle sera utilisé. Si une fonction dans une interface utilisant des handles implicites ne spécifie pas de handle explicite, le handle implicite par défaut est utilisé.