WS_GET_CHANNEL_PROPERTY_CALLBACK Rückruffunktion (webservices.h)

Behandelt den WsGetChannelProperty-Aufruf für einen WS_CUSTOM_CHANNEL_BINDING.

Syntax

WS_GET_CHANNEL_PROPERTY_CALLBACK WsGetChannelPropertyCallback;

HRESULT WsGetChannelPropertyCallback(
  [in]           void *channelInstance,
  [in]           WS_CHANNEL_PROPERTY_ID id,
                 void *value,
  [in]           ULONG valueSize,
  [in, optional] WS_ERROR *error
)
{...}

Parameter

[in] channelInstance

Der Zeiger auf den für diesen Kanal spezifischen Zustand instance, wie er vom WS_CREATE_CHANNEL_CALLBACK erstellt wird.

[in] id

Die ID der abzurufenden Eigenschaft.

value

Der Speicherort, an dem die abgerufene Eigenschaft gespeichert werden soll. Der Zeiger muss über eine Ausrichtung verfügen, die mit dem Typ der Eigenschaft kompatibel ist.

[in] valueSize

Die Anzahl der Bytes, die vom Aufrufer zum Speichern der abgerufenen Eigenschaft zugewiesen werden.

[in, optional] error

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

Rückgabewert

Rückgabecode Beschreibung
E_INVALIDARG
Die Eigenschafts-ID wurde für dieses Objekt nicht unterstützt, oder der angegebene Puffer war nicht groß genug für den Wert.
E_OUTOFMEMORY
Der Arbeitsspeicher ist nicht mehr vorhanden.
Andere Fehler
Diese Funktion gibt möglicherweise andere Fehler zurück, die oben nicht aufgeführt sind.

Hinweise

Informationen zum Vertrag dieser API finden Sie unter WsGetChannelProperty .

Jede benutzerdefinierte Kanalimplementierung muss das Zurückgeben eines Werts für mindestens die folgenden Eigenschaften unterstützen:

Die Dienstmodellebene stellt eine eigene Logik von Aufruftimeouts bereit, da sie die Deaktivierung von Timeouts im zugrunde liegenden Kanal erfordert. Damit ein benutzerdefinierter Kanal von der Dienstmodellebene verwendet werden kann, sollte er das Deaktivieren aller timeouts unterstützen und diesen Rückruf für WS_CHANNEL_PROPERTY_ENABLE_TIMEOUTS implementieren. Ein benutzerdefinierter Kanal kann nicht über das Dienstmodell verwendet werden, es sei denn, die Abfrage für WS_CHANNEL_PROPERTY_ENABLE_TIMEOUTS gibt FALSE zurück.

Es liegt an der implementierung des benutzerdefinierten Kanals, alle zusätzlichen Eigenschaften zu bestimmen, die unterstützt werden sollen.

Wenn eine Eigenschaft nicht unterstützt wird, sollte die E_INVALIDARG zurückgegeben werden. (Siehe Rückgabewerte für Windows-Webdienste.)

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