WSDCreateDeviceProxyAdvanced 函式 (wsdclient.h)
建立裝置 Proxy,並傳回 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,則 Proxy 將會使用 SSL/TLS 通訊協定。
如果 pszDeviceId 或 pszLocalId 是 HTTPs 前置的 URL,則這兩個 URL 都必須相同。 如果這不是這種情況, WSDCreateDeviceProxyAdvanced 將會傳回E_INVALIDARG。
裝置位址可能前面加上 @ 字元。 當 pszDeviceId以 @開頭時,此函式不會在建立裝置 Proxy 時擷取裝置中繼資料。
pDeviceAddress
定義裝置傳輸位址的 IWSDAddress 介面。 指定 pDeviceAddress 時,可以建立裝置 Proxy,而不需要解析傳遞至 pszDeviceId的邏輯位址。 此參數可以是 Null。
[in] pszLocalId
用戶端的邏輯或實體位址,用來識別 Proxy 並做為事件接收端點。 邏輯位址的格式 urn:uuid:{guid}
為 。
如果用戶端使用安全通道來接收事件,則位址是 HTTPs 前置詞的 URI。 此 URI 應該指定埠 5358,因為此埠已保留給與 WSDAPI 的安全連線。 必須先使用 SSL 伺服器憑證設定埠,才能呼叫 WSDCreateDeviceProxyAdvanced。 如需埠設定的詳細資訊,請參閱 HttpSetServiceConfiguration。
[in] pContext
定義自訂訊息類型或命名空間的 IWSDXMLCoNtext 介面。
如果 為 Null,則會使用代表內建訊息類型和命名空間的預設內容。
[out] ppDeviceProxy
您用來代表用戶端應用程式和中介軟體之遠端 WSD 裝置的 IWSDDDProxy 介面指標。
傳回值
可能的傳回值包括,但不限於下列各項:
傳回碼 | 描述 |
---|---|
|
方法已順利完成。 |
|
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 參數以 @ 字元開頭,否則此函式也會擷取裝置中繼資料。 若要在建立裝置 Proxy 之後擷取裝置中繼資料,請在傳回的IWSDDeviceProxy 物件上呼叫 IWSDDeviceProxy::BeginGetMetadata和IWSDeviceProxy::EndGetMetadata。
如需針對 WSDCreateDeviceProxyAdvanced 函式呼叫進行疑難排解的詳細資訊,請參閱 針對 WSDAPI 應用程式進行疑難排解。
規格需求
最低支援的用戶端 | Windows Vista [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2008 [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | wsdclient.h (包含 Wsdapi.h) |
程式庫 | Wsdapi.lib |
Dll | Wsdapi.dll |