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ů.