Фиксированные массивы
Если интерфейс задает массив с определенным числом элементов в качестве параметра, он использует фиксированный массив. При использовании MIDL вы определяете фиксированные массивы таким же образом, как и в C. Вы указываете тип, имя и размер массива.
В следующем примере показано, как определить фиксированный массив.
[
/*Attributes are defined here. */
]
interface MyInterface
{
const long ARRAY_SIZE = 1000;
MyRemoteProc(char achArray[ARRAY_SIZE]);
/* Other interface procedures are defined here. */
}
Когда клиентская программа передает фиксированный массив в серверную программу, заглушка клиента отправляет весь массив на заглушку сервера. Заглушка сервера выделяет память для массива и сохраняет данные массива, которые он получает через сеть в выделенную память. Затем он передает массив удаленной процедуре на сервере. Сервер может изменить данные в массиве.
После завершения удаленной процедуры заглушка сервера отправляет содержимое массива клиенту. Заглушка клиента копирует данные, полученные из заглушки сервера, в исходный массив. Затем клиентская программа может использовать данные, как это было бы, если он получил данные из локального вызова процедуры.