Matrici fisse
Se l'interfaccia specifica una matrice con un numero specifico di elementi come parametro, usa una matrice fissa. Quando si usa MIDL, si definiscono matrici fisse nello stesso modo in cui vengono definite in C. Specificare il tipo, il nome e le dimensioni della matrice.
Nell'esempio seguente viene illustrato come definire una matrice fissa.
[
/*Attributes are defined here. */
]
interface MyInterface
{
const long ARRAY_SIZE = 1000;
MyRemoteProc(char achArray[ARRAY_SIZE]);
/* Other interface procedures are defined here. */
}
Quando un programma client passa una matrice fissa a un programma server, lo stub client invia l'intera matrice allo stub del server. Lo stub del server alloca memoria per la matrice e archivia i dati della matrice ricevuti in rete nella memoria allocata. Passa quindi la matrice alla routine remota nel server. Il server può modificare i dati nella matrice.
Quando la procedura remota termina, lo stub del server invia di nuovo il contenuto della matrice al client. Lo stub client copia i dati ricevuti dallo stub del server nella matrice originale. Il programma client può quindi usare i dati come se ricevesse i dati da una chiamata di procedura locale.