Fichier IDL
Le fichier IDL se compose d’une ou plusieurs définitions d’interface, chacune ayant un en-tête et un corps. L’en-tête contient des informations qui s’appliquent à l’ensemble de l’interface, telles que l’UUID. Ces informations sont placées entre crochets et sont suivies du mot clé interface et du nom de l’interface. Le corps contient des définitions de type de données de style C et des prototypes de fonction, augmentés avec des attributs qui décrivent la façon dont les données sont transmises sur le réseau.
Dans cet exemple, l’en-tête d’interface contient uniquement l’UUID et le numéro de version. Le numéro de version garantit qu’en présence de plusieurs versions d’une interface RPC, seules les versions compatibles du client et du serveur seront connectées.
Le corps de l’interface contient le prototype de fonction pour HelloProc. Dans ce prototype, le paramètre de fonction pszString a les attributs [dans] et [chaîne]. L’attribut [in] indique à la bibliothèque d’exécution que le paramètre est transmis uniquement du client au serveur. L’attribut [string] spécifie que le stub doit traiter le paramètre comme une chaîne de caractères de style C.
L’application cliente doit pouvoir arrêter l’application serveur, de sorte que l’interface contient un prototype pour une autre fonction distante,Arrêter , qui sera implémentée ultérieurement dans ce tutoriel.
//file hello.idl
[
uuid(7a98c250-6808-11cf-b73b-00aa00b677a7),
version(1.0)
]
interface hello
{
void HelloProc([in, string] unsigned char * pszString);
void Shutdown(void);
}