WSDCreateDeviceProxyAdvanced 函数 (wsdclient.h)
创建设备代理并返回指向 IWSDDeviceProxy 接口的指针。
语法
HRESULT WSDCreateDeviceProxyAdvanced(
[in] LPCWSTR pszDeviceId,
IWSDAddress *pDeviceAddress,
[in] LPCWSTR pszLocalId,
[in] IWSDXMLContext *pContext,
[out] IWSDDeviceProxy **ppDeviceProxy
);
参数
[in] pszDeviceId
设备的逻辑或物理地址。 逻辑地址的形式 urn:uuid:{guid}
为 。 物理地址是前缀为 http 或 https 的 URI。 如果此地址是前缀为 https 的 URI,则代理将使用 SSL/TLS 协议。
如果 pszDeviceId 或 pszLocalId 是前缀为 https 的 URL,则两个 URL 必须相同。 如果不是这种情况, WSDCreateDeviceProxyAdvanced 将返回E_INVALIDARG。
设备地址可能以 @ 字符为前缀。 当 pszDeviceId 以 @开头时,此函数在创建设备代理时不会检索设备元数据。
pDeviceAddress
定义设备传输地址的 IWSDAddress 接口。 指定 pDeviceAddress 时,无需解析传递到 pszDeviceId 的逻辑地址即可创建设备代理。 此参数可以为 NULL。
[in] pszLocalId
客户端的逻辑或物理地址,用于标识代理并充当事件接收器终结点。 逻辑地址的形式 urn:uuid:{guid}
为 。
如果客户端使用安全通道来接收事件,则地址是前缀为 https 的 URI。 此 URI 应指定端口 5358,因为此端口是为使用 WSDAPI 进行安全连接而保留的。 在调用 WSDCreateDeviceProxyAdvanced 之前,必须使用 SSL 服务器证书配置端口。 有关端口配置的详细信息,请参阅 HttpSetServiceConfiguration。
[in] pContext
定义自定义消息类型或命名空间的 IWSDXMLContext 接口。
如果 为 NULL,则使用表示内置消息类型和命名空间的默认上下文。
[out] ppDeviceProxy
指向 IWSDDeviceProxy 接口的指针,该接口用于表示客户端应用程序和中间件的远程 WSD 设备。
返回值
可能的返回值包括但不限于以下内容:
返回代码 | 说明 |
---|---|
|
方法已成功完成。 |
|
pszDeviceId 为 NULL, pszLocalId 为 NULL, pszDeviceId 的字符长度超过 WSD_MAX_TEXT_LENGTH (8192) , pszLocalId 的字符长度超过 WSD_MAX_TEXT_LENGTH (8192) ,或 pszDeviceId 指向以 https 为前缀的 URI,且该 URL 与传递给 pszLocalId 的 URI 不匹配。 |
|
ppDeviceProxy 为 NULL。 |
|
内存不足,无法完成操作。 |
注解
WSDCreateDeviceProxyAdvanced 函数调用 IWSDDeviceProxy::Init 方法,该方法初始化 IWSDDeviceProxy 对象的实例。
除非 pszDeviceId 参数以 @ 字符开头,否则此函数还将检索设备元数据。 若要在创建设备代理后检索设备元数据,请在返回的 IWSDDeviceProxy 对象上调用 IWSDDeviceProxy::BeginGetMetadata 和 IWSDDeviceProxy::EndGetMetadata。
有关 对 WSDCreateDeviceProxyAdvanced 函数调用进行故障排除的信息,请参阅 WSDAPI 应用程序疑难解答。
要求
最低受支持的客户端 | Windows Vista [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2008 [仅限桌面应用] |
目标平台 | Windows |
标头 | wsdclient.h (包括 Wsdapi.h) |
Library | Wsdapi.lib |
DLL | Wsdapi.dll |