Фиксированные массивы

Если интерфейс задает массив с определенным количеством элементов в качестве параметра, он использует фиксированный массив. При использовании MIDL фиксированные массивы определяются так же, как и в C. Вы указываете тип, имя и размер массива.

В следующем примере показано, как определить фиксированный массив.

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

    MyRemoteProc(char achArray[ARRAY_SIZE]);

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

Когда клиентская программа передает фиксированный массив в серверную программу, клиентская заглушка отправляет весь массив в заглушку сервера. Заглушка сервера выделяет память для массива и сохраняет данные массива, полученные по сети, в выделенную память. Затем массив передается удаленной процедуре на сервере. Сервер может изменять данные в массиве.

После завершения удаленной процедуры заглушка сервера отправляет содержимое массива обратно клиенту. Клиентская заглушка копирует данные, полученные из заглушки сервера, в исходный массив. Затем клиентская программа может использовать данные так же, как и при получении данных из вызова локальной процедуры.