IWSDDeviceHost::AddDynamicService 方法 (wsdhost.h)
为传入请求注册服务对象,但不将该服务添加到设备主机元数据。 这用于暂时性 (动态) 服务。
语法
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
);
参数
[in] pszServiceId
动态服务的 ID。 服务 ID 必须与服务主机元数据中的所有服务 ID 以及任何其他已注册的动态服务不同。 pszServiceId 必须是 URI。
[in, optional] pszEndpointAddress
用作此服务的终结点地址的可选 URI。 如果未指定任何内容,则设备主机将假定该服务应在所有本地传输地址上可用。
[in, optional] pPortType
对指定端口类型的 WSD_PORT_TYPE 结构的引用。 可能为 NULL。 仅指定 pPortType 和 pPortName 中的一个。
[in, optional] pPortName
引用 WSDXML_NAME 结构,该结构指定服务的类型,并将服务与指定的端口相关联。 仅指定 pPortType 和 pPortName 中的一个。
[in, optional] pAny
对要包含在动态服务元数据中的可扩展节的可选引用。
[in, optional] pService
对要注册的主机服务对象的可选引用。
返回值
可能的返回值包括但不限于以下内容:
返回代码 | 说明 |
---|---|
|
方法已成功完成。 |
|
pszServiceId 为 NULL。 |
|
pszServiceId 或 pszEndpointAddress 的字符长度超过 WSD_MAX_TEXT_LENGTH (8192) ,或者同时指定 pPortType 和 pPortName。 |
|
方法失败。 它可能已失败,因为主机尚未初始化,或者找不到 pszServiceId 指定的服务。 调用 Init 以初始化设备主机。 |
|
内存不足,无法完成操作。 |
注解
调用此方法时,设备会添加对服务对象的引用,并调用其方法以响应发送到服务的请求消息。 在设备主机上调用 RemoveDynamicService 方法以释放其对服务的引用,并停止对服务调用方法。
要求
最低受支持的客户端 | Windows Vista [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2008 [仅限桌面应用] |
目标平台 | Windows |
标头 | wsdhost.h (包括 Wsdapi.h) |
DLL | Wsdapi.dll |