Matrizes Fixas
Se a interface especificar uma matriz com um número específico de elementos como parâmetro, ela usará uma matriz fixa. Ao usar MIDL, você define matrizes fixas da mesma maneira que as define em C. Especifique o tipo, o nome e o tamanho da matriz.
O exemplo a seguir demonstra como definir uma matriz fixa.
[
/*Attributes are defined here. */
]
interface MyInterface
{
const long ARRAY_SIZE = 1000;
MyRemoteProc(char achArray[ARRAY_SIZE]);
/* Other interface procedures are defined here. */
}
Quando um programa cliente passa uma matriz fixa para um programa de servidor, o stub do cliente envia toda a matriz para o stub do servidor. O stub do servidor aloca memória para a matriz e armazena os dados de matriz recebidos pela rede na memória alocada. Em seguida, ele passa a matriz para o procedimento remoto no servidor. O servidor pode modificar os dados na matriz.
Quando o procedimento remoto é encerrado, o stub do servidor envia o conteúdo da matriz de volta para o cliente. O stub do cliente copia os dados recebidos do stub do servidor para a matriz original. O programa cliente poderá usar os dados como fariam se recebesse os dados de uma chamada de procedimento local.