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