État de l’utilisateur de l’hôte de service

L’hôte de service permet à une application d’associer des données d’état délimitées au niveau de l’hôte de service. Cet état est spécifié par une structure WS_SERVICE_PROPERTY transmise à la fonction WsCreateServiceHost lorsque l’application crée un hôte de service, comme illustré dans l’exemple suivant.

void* quotePtr = (void*) quotes;
WS_SERVICE_PROPERTY serviceProperties[1] = {0};
serviceProperties[0].id = WS_SERVICE_PROPERTY_HOST_USER_STATE;
serviceProperties[0].value = &quotePtr; // assume this is some state that you want to associate with the service host
serviceProperties[0].valueSize = sizeof(quotePtr);

Les données d’état sont disponibles pour tous les rappels et les opérations de service de l’hôte de service. Les opérations de rappel et de service récupèrent les informations en appelant la fonction WsGetOperationContextProperty et en spécifiant le contexte, référencé par la structure WS_OPERATION_CONTEXT et la propriété de contexte, comme l’une des valeurs de l’énumération WS_OPERATION_CONTEXT_PROPERTY_HOST_USER_STATE, comme illustré dans l’exemple suivant.

QuoteTable* table = NULL;
HRESULT hr = NOERROR;
if (FAILED (WsGetOperationContextProperty (context, WS_OPERATION_CONTEXT_PROPERTY_HOST_USER_STATE, &table, sizeof(table), NULL, error)))
    return hr;