Pole shodná
Velikost vyhovujícího pole se může lišit nebo shodovat pokaždé, když ho klient předá vzdálenému postupu na serveru. Definice rozhraní v souboru MIDL aplikace umožňuje klientovi určit velikost pole při každém vyvolání vzdálené procedury. Pomocí prázdných hranatých závorek ([ ]) nebo hvězdičky v hranatých závorkách ([*]) v definici pole označte odpovídající matici.
Následující ukázka obsahuje definici vzdálené procedury v rozhraní v souboru MIDL. Klient určuje velikost pole, které předává serveru parametrem arraySize.
[
/*Attributes are defined here. */
]
interface MyInterface
{
MyRemoteProc(
long lArraySize,
[size_is(lArraySize)] char achArray[*]
);
/* Other interface procedures are defined here. */
}
Definice rozhraní používá atribut MIDL [size_is] k určení velikosti pole, které klient předává na server. Pokud byste raději označili maximální hodnotu čísel indexu pole, použijte místo toho atribut [max_is]. Další informace o těchto atributech MIDL naleznete v tématu atributy pole.
Následující fragment kódu ukazuje, jak může klient vyvolat vzdálenou proceduru definovanou v předchozím souboru MIDL.
long lArrayLength = 20;
char achCharArray[20], achAnotherCharArray[200];
// Code to store 20 chars in achCharArray goes here.
MyRemoteProc(
lArrayLength ,
achCharArray);
lArrayLength = 200;
// Code to store 200 chars in achAnotherCharArray goes here.
MyRemoteProc(
lArrayLength ,
achAnotherCharArray);
Tento fragment volá vzdálenou proceduru MyRemoteProc dvakrát. Při prvním vyvolání předává pole 20 prvků. Při druhém volání klient předává pole 200 prvků.