WS_CHANNEL_ENCODER-Struktur (webservices.h)
Eine Struktur, die verwendet wird, um eine Reihe von Rückrufen anzugeben, die den Inhaltstyp und die codierten Bytes einer gesendeten Nachricht transformieren können.
Syntax
typedef struct _WS_CHANNEL_ENCODER {
void *createContext;
WS_CREATE_ENCODER_CALLBACK createEncoderCallback;
WS_ENCODER_GET_CONTENT_TYPE_CALLBACK encoderGetContentTypeCallback;
WS_ENCODER_START_CALLBACK encoderStartCallback;
WS_ENCODER_ENCODE_CALLBACK encoderEncodeCallback;
WS_ENCODER_END_CALLBACK encoderEndCallback;
WS_FREE_ENCODER_CALLBACK freeEncoderCallback;
} WS_CHANNEL_ENCODER;
Member
createContext
Ein Kontext, der an den WS_CREATE_ENCODER_CALLBACK übergeben wird.
createEncoderCallback
Ein WS_CREATE_ENCODER_CALLBACK Rückruf, der eine instance eines Encoders erstellt.
encoderGetContentTypeCallback
Ein WS_ENCODER_GET_CONTENT_TYPE_CALLBACK Rückruf, der aufgerufen wird, wenn eine Nachricht codiert werden soll.
encoderStartCallback
Ein WS_ENCODER_START_CALLBACK Rückruf, der aufgerufen wird, um mit der Codierung einer Nachricht zu beginnen.
encoderEncodeCallback
Ein WS_ENCODER_ENCODE_CALLBACK Rückruf, der zum Codieren einer Nachricht aufgerufen wird.
encoderEndCallback
Ein WS_ENCODER_END_CALLBACK Rückruf, der am Ende der Codierung einer Nachricht aufgerufen wird.
freeEncoderCallback
Ein WS_FREE_ENCODER_CALLBACK Rückruf, der eine instance eines Encoders freigibt.
Hinweise
Ein WS_CHANNEL möchte möglicherweise die codierten Bytes einer Nachricht vor dem Senden komprimieren, ändern oder anderweitig transformieren. Eine WS_CHANNEL_ENCODER stellt die erforderlichen Hooks bereit, um diese Änderungen abzufangen und durchzuführen.
Beim Erstellen des Kanals sollte die WS_CHANNEL_PROPERTY_ENCODER mit den entsprechenden Funktionen festgelegt werden.
Die Grammatik für die Encoderrückrufe lautet:
encodercalls := create encoderloop* free
encoderloop := getcontenttype
| getcontenttype encodestart
| getcontenttype encodestart (encode*)
| getcontenttype encodestart (encode*) encodeend
Der Encoder wird möglicherweise nicht die vollständige Codiersequenz für eine Nachricht angezeigt, wenn für den Kanal oder den Encoder beim Schreiben der Nachricht ein Fehler auftritt. Ein Encoder muss vorbereitet sein, um den Übergang in den entsprechenden Zustand basierend auf den aufgerufenen Rückrufen zu verarbeiten.
Wenn Sie WS_TCP_CHANNEL_BINDING mit WS_CHANNEL_TYPE_SESSION verwenden, wird der Inhaltstyp für den Kanal festgelegt. In diesem Fall muss der WS_ENCODER_GET_CONTENT_TYPE_CALLBACK genau denselben Wert für den Inhaltstyp jeder Nachricht zurückgeben.
Wenn der Kanal mit dem Encoder instance fertig ist, wird er über den WS_FREE_ENCODER_CALLBACK freigegeben.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows 7 [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2008 R2 [nur Desktop-Apps] |
Kopfzeile | webservices.h |