WS_SERVICE_ACCEPT_CHANNEL_CALLBACK fonction de rappel (webservices.h)

Appelé lorsqu’un canal est accepté sur un écouteur de point de terminaison par l’hôte de service.

Pour le contrat de service basé sur une session, cette notification signifie l’initiation de la session. Ainsi, un état d’application délimité à la session peut être créé dans ce rappel.

Syntaxe

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
)
{...}

Paramètres

[in] context

Contexte d'opération.

channelState

Le rappel peut fournir l’état du canal via ce paramètre. Cet état de canal est mis à la disposition de l’opération de service dans le cadre de WS_OPERATION_CONTEXT via le WS_OPERATION_CONTEXT_PROPERTY_CHANNEL_USER_STATE.

[in, optional] asyncContext

Informations indiquant si la fonction est appelée de façon asynchrone.

[in, optional] error

Spécifie l’emplacement où des informations d’erreur supplémentaires doivent être stockées en cas d’échec de la fonction.

Valeur retournée

Cette fonction de rappel ne retourne pas de valeur.

Remarques

Consultez également WS_SERVICE_CLOSE_CHANNEL_CALLBACK qui peut être utilisée par l’application pour dissocier l’état et qui est appelée lors de la fermeture du canal.

Ce rappel est annulable.

Exemples

Pour obtenir un exemple d’implémentation sur l’utilisation de ce rappel pour associer l’état de session, consultez l’exemple de calculatrice basée sur la session.

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

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 7 [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2008 R2 [applications de bureau uniquement]
Plateforme cible Windows
En-tête webservices.h