WS_SERVICE_ACCEPT_CHANNEL_CALLBACK Rückruffunktion (webservices.h)

Wird aufgerufen, wenn ein Kanal auf einem Endpunktlistener vom Diensthost akzeptiert wird.

Bei sitzungsbasierten Dienstverträgen bedeutet diese Benachrichtigung die Sitzungsinitiierung. Daher kann innerhalb dieses Rückrufs ein anwendungsbezogener Zustand für die Sitzung erstellt werden.

Syntax

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

Parameter

[in] context

Der Vorgangskontext.

channelState

Der Rückruf kann den Kanalstatus über diesen Parameter bereitstellen. Dieser Kanalzustand wird dem Dienstvorgang im Rahmen von WS_OPERATION_CONTEXT über die WS_OPERATION_CONTEXT_PROPERTY_CHANNEL_USER_STATE zur Verfügung gestellt.

[in, optional] asyncContext

Informationen dazu, ob die Funktion asynchron aufgerufen wird.

[in, optional] error

Gibt an, wo zusätzliche Fehlerinformationen gespeichert werden sollen, wenn die Funktion fehlschlägt.

Rückgabewert

Diese Rückruffunktion gibt keinen Wert zurück.

Hinweise

Siehe auch WS_SERVICE_CLOSE_CHANNEL_CALLBACK , die von der Anwendung verwendet werden kann, um die Zuordnung des Zustands zu aufheben, und wird beim Kanalverschluss aufgerufen.

Dieser Rückruf kann abgebrochen werden.

Beispiele

Eine Beispielimplementierung zur Verwendung dieses Rückrufs zum Zuordnen des Sitzungszustands finden Sie im Beispiel für den sitzungsbasierten Rechner.

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

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 7 [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 R2 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile webservices.h