Partager via


WSDCreateDeviceProxyAdvanced, fonction (wsdclient.h)

Crée un proxy d’appareil et retourne un pointeur vers l’interface IWSDDeviceProxy .

Syntaxe

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

Paramètres

[in] pszDeviceId

Adresse logique ou physique de l’appareil. Une adresse logique est de la forme urn:uuid:{guid}. Une adresse physique est un URI préfixé par http ou https. Si cette adresse est un URI préfixé par https, le proxy utilise le protocole SSL/TLS.

Si pszDeviceId ou pszLocalId est une URL préfixée par https, les deux URL doivent être identiques. Si ce n’est pas le cas, WSDCreateDeviceProxyAdvanced retourne E_INVALIDARG.

L’adresse de l’appareil peut être précédée du caractère @ . Lorsque pszDeviceId commence par @, cette fonction ne récupère pas les métadonnées de l’appareil lors de la création du proxy d’appareil.

pDeviceAddress

Interface IWSDAddress qui définit l’adresse de transport de l’appareil. Lorsque pDeviceAddress est spécifié, un proxy d’appareil peut être créé sans nécessiter la résolution d’une adresse logique passée à pszDeviceId. Ce paramètre peut être NULL.

[in] pszLocalId

Adresse logique ou physique du client, qui est utilisée pour identifier le proxy et faire office de point de terminaison de récepteur d’événements. Une adresse logique est de la forme urn:uuid:{guid}.

Si le client utilise un canal sécurisé pour recevoir des événements, l’adresse est un URI préfixé par https. Cet URI doit spécifier le port 5358, car ce port est réservé aux connexions sécurisées avec WSDAPI. Le port doit être configuré avec un certificat de serveur SSL avant d’appeler WSDCreateDeviceProxyAdvanced. Pour plus d’informations sur la configuration des ports, consultez HttpSetServiceConfiguration.

[in] pContext

Interface IWSDXMLContext qui définit des types de messages ou des espaces de noms personnalisés.

Si la valeur est NULL, un contexte par défaut représentant les types de messages et espaces de noms intégrés est utilisé.

[out] ppDeviceProxy

Pointeur vers l’interface IWSDDeviceProxy que vous utilisez pour représenter un appareil WSD distant pour les applications clientes et les intergiciels.

Valeur retournée

Les valeurs de retour possibles incluent, sans s’y limiter, les éléments suivants :

Code de retour Description
S_OK
La méthode s’est terminée avec succès.
E_INVALIDARG
pszDeviceId est NULL, pszLocalId est NULL, la longueur en caractères de pszDeviceId dépasse WSD_MAX_TEXT_LENGTH (8192), la longueur en caractères de pszLocalId dépasse WSD_MAX_TEXT_LENGTH (8192) ou pszDeviceId pointe vers un URI préfixé par https et cette URL ne correspond pas à l’URI passé à pszLocalId.
E_POINTER
ppDeviceProxy a la valeur NULL.
E_OUTOFMEMORY
Mémoire insuffisante pour terminer l’opération.

Remarques

La fonction WSDCreateDeviceProxyAdvanced appelle la méthode IWSDDeviceProxy::Init, qui initialise un instance d’un objet IWSDDeviceProxy.

Cette fonction récupère également les métadonnées de l’appareil, sauf si le paramètre pszDeviceId commence par le caractère @ . Pour récupérer les métadonnées de l’appareil après la création du proxy d’appareil, appelez IWSDDeviceProxy::BeginGetMetadata et IWSDDeviceProxy::EndGetMetadata sur l’objet IWSDDeviceProxy retourné.

Pour plus d’informations sur la résolution des problèmes liés aux appels de fonction WSDCreateDeviceProxyAdvanced , consultez Résolution des problèmes liés aux applications WSDAPI.

Spécifications

   
Client minimal pris en charge Windows Vista [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2008 [applications de bureau uniquement]
Plateforme cible Windows
En-tête wsdclient.h (inclure Wsdapi.h)
Bibliothèque Wsdapi.lib
DLL Wsdapi.dll

Voir aussi

Résolution des problèmes liés aux applications WSDAPI