Condividi tramite


WS_SERVICE_ACCEPT_CHANNEL_CALLBACK funzione di callback (webservices.h)

Richiamato quando un canale viene accettato in un listener di endpoint dall'host del servizio.

Per il contratto di servizio basato su sessione, questa notifica indica l'avvio della sessione. Pertanto, è possibile creare uno stato dell'applicazione con ambito per la sessione all'interno di questo callback.

Sintassi

WS_SERVICE_ACCEPT_CHANNEL_CALLBACK WsServiceAcceptChannelCallback;

HRESULT WsServiceAcceptChannelCallback(
  [in]           const WS_OPERATION_CONTEXT *context,
                 void **channelState,
  [in, optional] const WS_ASYNC_CONTEXT *asyncContext,
  [in, optional] WS_ERROR *error
)
{...}

Parametri

[in] context

Il contesto dell'operazione

channelState

Il callback può fornire lo stato del canale tramite questo parametro. Questo stato del canale viene reso disponibile per l'operazione del servizio come parte di WS_OPERATION_CONTEXT tramite il WS_OPERATION_CONTEXT_PROPERTY_CHANNEL_USER_STATE.

[in, optional] asyncContext

Informazioni su se la funzione viene richiamata in modo asincrono.

[in, optional] error

Specifica dove archiviare informazioni aggiuntive sull'errore se la funzione ha esito negativo.

Valore restituito

Questa funzione di callback non restituisce un valore.

Commenti

Vedere anche WS_SERVICE_CLOSE_CHANNEL_CALLBACK che può essere usato dall'applicazione per annullare l'associazione dello stato e viene chiamato alla chiusura del canale.

Questo callback è annullabile.

Esempio

Per un'implementazione di esempio su come usare questo callback per associare lo stato della sessione, vedere l'esempio di calcolatrice basata su sessione.

HRESULT CALLBACK CreateSessionCalculator (const WS_OPERATION_CONTEXT* context, void** userChannelState,
                                          const WS_ASYNC_CONTEXT* asyncContext, WS_ERROR* error)
{
    SessionfullCalculator* calculator = new SessionfullCalculator ();
    if (calculator != NULL)
        *userChannelState = (void*) calculator;
    else
        return E_OUTOFMEMORY;
    return NOERROR;
}

Requisiti

Requisito Valore
Client minimo supportato Windows 7 [solo app desktop]
Server minimo supportato Windows Server 2008 R2 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione webservices.h