Delen via


Asynchrone functies declareren

Als u een RPC-functie als asynchroon wilt declareren, declareert u eerst de functie als onderdeel van een interfacedefinitie in een IDL-bestand (Interface Definition Language). Het gebruik van asynchrone RPC-functies vereist geen speciale wijzigingen in uw IDL-bestand. In het volgende voorbeeld ziet u een IDL-bestand voor een toepassing die gebruikmaakt van één asynchrone functie.

[ 
    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);
}

Voor alle asynchrone RPC-functies die door uw toepassing worden gebruikt, moet u de declaratie van de asynchrone functies in het ACF-bestand van uw toepassing wijzigen. Pas de [async] kenmerk toe op elke asynchrone functienaam, zoals wordt weergegeven in het volgende voorbeeld:

interface AsyncRPC
{
    [async] AsyncFunc();
}

Wanneer u de [async] kenmerk in het ACF-bestand toepast, genereert de MIDL-compiler automatisch een extra asynchrone handleparameter in de stub-code.