Поделиться через


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

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

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

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

    MyRemoteProc(char achArray[ARRAY_SIZE]);

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

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

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