Aszinkron függvények deklarálása
Egy RPC-függvény aszinkron deklarálásához először deklarálja a függvényt egy interfészdefiníció részeként egy IDL-fájlban. Az aszinkron RPC-függvények használata nem igényel speciális módosításokat az IDL-fájlban. Az alábbi példa egy IDL-fájlt mutat be egy olyan alkalmazáshoz, amely egy aszinkron függvényt használ.
[
uuid (7f6c4340-eb67-11d1-b9d7-00c04fad9a3b),
version(1.0),
pointer_default(unique)
]
interface AsyncRPC
{
const long DEFAULT_ASYNC_DELAY = 10000;
const short APP_ERROR = -1;
const char* DEFAULT_PROTOCOL_SEQUENCE = "ncacn_ip_tcp";
const char* DEFAULT_ENDPOINT = "8765";
void NonAsyncFunc(handle_t hBinding,
[in, string] unsigned char * pszMessage);
void AsyncFunc(handle_t hBinding,
[in] unsigned long nAsychDelay);
void Shutdown(handle_t hBinding);
}
Az alkalmazás által használt összes aszinkron RPC-függvényhez módosítania kell az alkalmazás ACF-fájljában található aszinkron függvények deklarációját. Alkalmazza az [aszinkron] attribútumot az egyes aszinkron függvénynevekre az alábbi példában látható módon:
interface AsyncRPC
{
[async] AsyncFunc();
}
Az [async] attribútum az ACF-fájlban való alkalmazásakor a MIDL fordító automatikusan létrehoz egy további aszinkron leíróparamétert a csonkkódban.