Status Pengguna Host Layanan

Host layanan memungkinkan aplikasi untuk mengaitkan data status yang tercakup di tingkat host layanan. Status ini ditentukan oleh struktur WS_SERVICE_PROPERTY yang diteruskan ke fungsi WsCreateServiceHost saat aplikasi membuat host layanan, seperti yang diilustrasikan dalam contoh berikut.

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

Data status tersedia untuk semua panggilan balik host layanan dan operasi layanan. Panggilan balik dan operasi layanan mengambil informasi dengan memanggil fungsi WsGetOperationContextProperty dan menentukan konteks, yang dirujuk oleh struktur WS_OPERATION_CONTEXT, dan properti konteks, sebagai salah satu nilai enumerasi WS_OPERATION_CONTEXT_PROPERTY_HOST_USER_STATE, seperti yang diilustrasikan dalam contoh berikut.

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