Fungsi WSDCreateDeviceProxyAdvanced (wsdclient.h)

Membuat proksi perangkat dan mengembalikan pointer ke antarmuka IWSDDeviceProxy .

Sintaks

HRESULT WSDCreateDeviceProxyAdvanced(
  [in]  LPCWSTR         pszDeviceId,
        IWSDAddress     *pDeviceAddress,
  [in]  LPCWSTR         pszLocalId,
  [in]  IWSDXMLContext  *pContext,
  [out] IWSDDeviceProxy **ppDeviceProxy
);

Parameter

[in] pszDeviceId

Alamat logis atau fisik perangkat. Alamat logis adalah dari formulir urn:uuid:{guid}. Alamat fisik adalah URI yang diawali oleh http atau https. Jika alamat ini adalah URI yang diawali oleh https, maka proksi akan menggunakan protokol SSL/TLS.

Jika pszDeviceId atau pszLocalId adalah URL yang diawali oleh https, kedua URL harus identik. Jika tidak demikian, WSDCreateDeviceProxyAdvanced akan mengembalikan E_INVALIDARG.

Alamat perangkat dapat diawali dengan karakter @. Ketika pszDeviceId dimulai dengan @, fungsi ini tidak mengambil metadata perangkat saat membuat proksi perangkat.

pDeviceAddress

Antarmuka IWSDAddress yang menentukan alamat transportasi perangkat. Ketika pDeviceAddress ditentukan, proksi perangkat dapat dibuat tanpa memerlukan resolusi alamat logis yang diteruskan ke pszDeviceId. Parameter ini mungkin NULL.

[in] pszLocalId

Alamat logis atau fisik klien, yang digunakan untuk mengidentifikasi proksi dan bertindak sebagai titik akhir sink peristiwa. Alamat logis adalah dari formulir urn:uuid:{guid}.

Jika klien menggunakan saluran aman untuk menerima peristiwa, maka alamatnya adalah URI yang diawali oleh https. URI ini harus menentukan port 5358, karena port ini dicadangkan untuk koneksi aman dengan WSDAPI. Port harus dikonfigurasi dengan sertifikat server SSL sebelum memanggil WSDCreateDeviceProxyAdvanced. Untuk informasi selengkapnya tentang konfigurasi port, lihat HttpSetServiceConfiguration.

[in] pContext

Antarmuka IWSDXMLContext yang menentukan jenis pesan kustom atau namespace layanan.

Jika NULL, konteks default yang mewakili jenis pesan bawaan dan namespace layanan digunakan.

[out] ppDeviceProxy

Arahkan ke antarmuka IWSDDeviceProxy yang Anda gunakan untuk mewakili perangkat WSD jarak jauh untuk aplikasi klien dan middleware.

Nilai kembali

Kemungkinan nilai yang dikembalikan termasuk, tetapi tidak terbatas pada, berikut ini:

Menampilkan kode Deskripsi
S_OK
Metode berhasil diselesaikan.
E_INVALIDARG
pszDeviceId adalah NULL, pszLocalId adalah NULL, panjang karakter pszDeviceId melebihi WSD_MAX_TEXT_LENGTH (8192), panjang karakter pszLocalId melebihi WSD_MAX_TEXT_LENGTH (8192), atau poin pszDeviceId ke URI yang diawali oleh https dan URL tersebut tidak cocok dengan URI yang diteruskan ke pszLocalId.
E_POINTER
ppDeviceProxy adalah NULL.
E_OUTOFMEMORY
Tidak cukup memori untuk menyelesaikan operasi.

Keterangan

Fungsi WSDCreateDeviceProxyAdvanced memanggil metode IWSDDeviceProxy::Init , yang menginisialisasi instans objek IWSDDeviceProxy .

Fungsi ini juga akan mengambil metadata perangkat, kecuali parameter pszDeviceId dimulai dengan karakter @. Untuk mengambil metadata perangkat setelah proksi perangkat dibuat, panggil IWSDDeviceProxy::BeginGetMetadata dan IWSDDeviceProxy::EndGetMetadata pada objek IWSDDeviceProxy yang dikembalikan.

Untuk informasi tentang pemecahan masalah panggilan fungsi WSDCreateDeviceProxyAdvanced , lihat Pemecahan Masalah Aplikasi WSDAPI.

Persyaratan

   
Klien minimum yang didukung Windows Vista [hanya aplikasi desktop]
Server minimum yang didukung Windows Server 2008 [hanya aplikasi desktop]
Target Platform Windows
Header wsdclient.h (termasuk Wsdapi.h)
Pustaka Wsdapi.lib
DLL Wsdapi.dll

Lihat juga

Pemecahan masalah Aplikasi WSDAPI