Condividi tramite


The IDL File

Il file IDL è costituito da una o più definizioni di interfaccia, ognuna delle quali ha un'intestazione e un corpo. L'intestazione contiene informazioni applicabili all'intera interfaccia, ad esempio l'UUID. Queste informazioni sono racchiuse tra parentesi quadre e sono seguite dalla parola chiave interfaccia e dal nome dell'interfaccia. Il corpo contiene definizioni di tipi di dati in stile C e prototipi di funzione, incrementati con attributi che descrivono come i dati vengono trasmessi in rete.

In questo esempio l'intestazione dell'interfaccia contiene solo l'UUID e il numero di versione. Il numero di versione garantisce che, quando sono presenti più versioni di un'interfaccia RPC, verranno connesse solo le versioni compatibili del client e del server.

Il corpo dell'interfaccia contiene il prototipo di funzione per HelloProc. In questo prototipo il parametro della funzione pszString ha gli attributi [in] e [stringa]. L'attributo [in] indica alla libreria di runtime che il parametro viene passato solo dal client al server. L'attributo [stringa] specifica che lo stub deve considerare il parametro come stringa di caratteri in stile C.

L'applicazione client deve essere in grado di arrestare l'applicazione server, quindi l'interfaccia contiene un prototipo per un'altra funzione remota,Shutdown , che verrà implementata più avanti in questa esercitazione.

//file hello.idl
[
    uuid(7a98c250-6808-11cf-b73b-00aa00b677a7),
    version(1.0)
]
interface hello
{
    void HelloProc([in, string] unsigned char * pszString);
    void Shutdown(void);
}