El archivo IDL
El archivo IDL consta de una o varias definiciones de interfaz, cada una de las cuales tiene un encabezado y un cuerpo. El encabezado contiene información que se aplica a toda la interfaz, como el UUID. Esta información se incluye entre corchetes y va seguida de la interfaz de palabra clave y el nombre de la interfaz. El cuerpo contiene definiciones de tipos de datos de estilo C y prototipos de función, aumentadas con atributos que describen cómo se transmiten los datos a través de la red.
En este ejemplo, el encabezado de interfaz solo contiene el UUID y el número de versión. El número de versión garantiza que, cuando haya varias versiones de una interfaz RPC, solo se conectarán las versiones compatibles del cliente y el servidor.
El cuerpo de la interfaz contiene el prototipo de función para HelloProc. En este prototipo, el parámetro de función pszString tiene los atributos [in] y [string]. El atributo [in] indica a la biblioteca en tiempo de ejecución que el parámetro se pasa solo del cliente al servidor. El atributo [string] especifica que el código auxiliar debe tratar el parámetro como una cadena de caracteres de estilo C.
La aplicación cliente debe poder apagar la aplicación de servidor, por lo que la interfaz contiene un prototipo para otra función remota, Shutdown , que se implementará más adelante en este tutorial.
//file hello.idl
[
uuid(7a98c250-6808-11cf-b73b-00aa00b677a7),
version(1.0)
]
interface hello
{
void HelloProc([in, string] unsigned char * pszString);
void Shutdown(void);
}