Het IDL-bestand
Het IDL-bestand bestaat uit een of meer interfacedefinities, die elk een header en een hoofdtekst hebben. De header bevat informatie die van toepassing is op de gehele interface, zoals de UUID. Deze informatie staat tussen vierkante haken en wordt gevolgd door het trefwoord interface en de interfacenaam. De hoofdtekst bevat definities van het gegevenstype in C-stijl en functieprototypes, uitgebreid met kenmerken die beschrijven hoe de gegevens via het netwerk worden verzonden.
In dit voorbeeld bevat de interfaceheader alleen de UUID en het versienummer. Het versienummer zorgt ervoor dat wanneer er meerdere versies van een RPC-interface zijn, alleen compatibele versies van de client en server worden verbonden.
De hoofdtekst van de interface bevat het prototype van de functie voor HelloProc-. In dit prototype heeft de functieparameter pszString de kenmerken [in] en [tekenreeks]. De [in] kenmerk vertelt de runtimebibliotheek dat de parameter alleen van de client naar de server wordt doorgegeven. De [tekenreeks] kenmerk geeft aan dat de stub de parameter moet behandelen als een tekenreeks in C-stijl.
De clienttoepassing moet de servertoepassing kunnen afsluiten, dus de interface bevat een prototype voor een andere externe functie,Afsluiten, die verderop in deze zelfstudie wordt geïmplementeerd.
//file hello.idl
[
uuid(7a98c250-6808-11cf-b73b-00aa00b677a7),
version(1.0)
]
interface hello
{
void HelloProc([in, string] unsigned char * pszString);
void Shutdown(void);
}