Tableaux fixes

Si votre interface spécifie un tableau avec un nombre spécifique d’éléments en tant que paramètre, elle utilise un tableau fixe. Lorsque vous utilisez MIDL, vous définissez des tableaux fixes de la même façon que vous les définissez en C. Vous spécifiez le type, le nom et la taille du tableau.

L’exemple suivant montre comment définir un tableau fixe.

[
    /*Attributes are defined here. */
]
interface MyInterface
{
    const long ARRAY_SIZE = 1000;

    MyRemoteProc(char achArray[ARRAY_SIZE]);

    /* Other interface procedures are defined here. */
}

Lorsqu’un programme client transmet un tableau fixe à un programme serveur, le stub client envoie l’intégralité du tableau au stub du serveur. Le stub du serveur alloue de la mémoire pour le tableau et stocke les données de tableau qu’il reçoit sur le réseau dans la mémoire allouée. Il transmet ensuite le tableau à la procédure distante sur le serveur. Le serveur peut modifier les données du tableau.

Lorsque la procédure distante s’arrête, le stub du serveur renvoie le contenu du tableau au client. Le stub client copie les données qu’il a reçues du stub serveur dans le tableau d’origine. Le programme client peut ensuite utiliser les données comme il le ferait s’il a reçu les données d’un appel de procédure locale.