Deklarieren von asynchronen Funktionen
Um eine RPC-Funktion als asynchron zu deklarieren, deklarieren Sie zuerst die Funktion als Teil einer Schnittstellendefinition in einer IDL-Datei (Interface Definition Language). Die Verwendung asynchroner RPC-Funktionen erfordert keine besonderen Änderungen an Ihrer IDL-Datei. Das folgende Beispiel zeigt eine IDL-Datei für eine Anwendung, die eine asynchrone Funktion verwendet.
[
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);
}
Für alle asynchronen RPC-Funktionen, die ihre Anwendung verwendet, müssen Sie die Deklaration der asynchronen Funktionen in der ACF-Datei Ihrer Anwendung ändern. Wenden Sie das Attribut [async] auf jeden asynchronen Funktionsnamen an, wie im folgenden Beispiel gezeigt:
interface AsyncRPC
{
[async] AsyncFunc();
}
Wenn Sie das Attribut [async] in der ACF-Datei anwenden, generiert der MIDL-Compiler automatisch einen zusätzlichen asynchronen Handle-Parameter im Stubcode.