IWSDDeviceHost::AddDynamicService-Methode (wsdhost.h)
Registriert ein Dienstobjekt für eingehende Anforderungen, fügt den Dienst jedoch nicht den Gerätehostmetadaten hinzu. Dies wird für vorübergehende (dynamische) Dienste verwendet.
Syntax
HRESULT AddDynamicService(
[in] LPCWSTR pszServiceId,
[in, optional] LPCWSTR pszEndpointAddress,
[in, optional] const WSD_PORT_TYPE *pPortType,
[in, optional] const WSDXML_NAME *pPortName,
[in, optional] const WSDXML_ELEMENT *pAny,
[in, optional] IUnknown *pService
);
Parameter
[in] pszServiceId
Die ID für den dynamischen Dienst. Die Dienst-ID muss sich von allen Dienst-IDs in den Diensthostmetadaten und von jedem anderen registrierten dynamischen Dienst unterscheiden. Die pszServiceId muss ein URI sein.
[in, optional] pszEndpointAddress
Ein optionaler URI, der als Endpunktadresse für diesen Dienst verwendet werden soll. Wenn keine angegeben ist, geht der Gerätehost davon aus, dass der Dienst für alle lokalen Transportadressen verfügbar sein sollte.
[in, optional] pPortType
Verweis auf eine WSD_PORT_TYPE-Struktur , die den Porttyp angibt. Kann NULL sein. Geben Sie nur einen von pPortType und pPortName an.
[in, optional] pPortName
Verweis auf eine WSDXML_NAME Struktur, die den Typ des Diensts angibt, wobei der Dienst einem angegebenen Port zugeordnet wird. Geben Sie nur einen von pPortType und pPortName an.
[in, optional] pAny
Optionaler Verweis auf einen erweiterbaren Abschnitt, der in die dynamischen Dienstmetadaten aufgenommen werden soll.
[in, optional] pService
Optionaler Verweis auf ein zu registrierende Hostdienstobjekt.
Rückgabewert
Mögliche Rückgabewerte sind unter anderem:
Rückgabecode | BESCHREIBUNG |
---|---|
|
Die Methode wurde erfolgreich abgeschlossen. |
|
pszServiceId ist NULL. |
|
Die Länge der Zeichen von pszServiceId oder pszEndpointAddress überschreitet WSD_MAX_TEXT_LENGTH (8192), oder es werden pPortType und pPortName angegeben. |
|
Fehler bei der Methode. Möglicherweise ist ein Fehler aufgetreten, weil der Host nicht initialisiert wurde oder der von pszServiceId angegebene Dienst nicht gefunden wurde. Rufen Sie Init auf, um einen Gerätehost zu initialisieren. |
|
Unzureichender Arbeitsspeicher, um den Vorgang abzuschließen. |
Hinweise
Wenn diese Methode aufgerufen wird, fügt das Gerät einen Verweis auf das Dienstobjekt hinzu und ruft seine Methoden als Reaktion auf Anforderungsmeldungen an den Dienst auf. Rufen Sie die RemoveDynamicService-Methode auf dem Gerätehost auf, um den Verweis auf den Dienst freizugeben und den Aufruf von Methoden für den Dienst zu beenden.
Anforderungen
Unterstützte Mindestversion (Client) | Windows Vista [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2008 [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | wsdhost.h (include Wsdapi.h) |
DLL | Wsdapi.dll |