Partager via


Méthode IWSDiscoveryPublisher ::P ublish (wsddisco.h)

Annonce la présence d’un hôte réseau en envoyant un message Hello .

Syntaxe

HRESULT Publish(
  [in]           LPCWSTR             pszId,
  [in]           ULONGLONG           ullMetadataVersion,
  [in]           ULONGLONG           ullInstanceId,
  [in]           ULONGLONG           ullMessageNumber,
  [in, optional] LPCWSTR             pszSessionId,
  [in, optional] const WSD_NAME_LIST *pTypesList,
  [in, optional] const WSD_URI_LIST  *pScopesList,
  [in, optional] const WSD_URI_LIST  *pXAddrsList
);

Paramètres

[in] pszId

Adresse logique ou physique de l’appareil, qui est utilisée comme adresse de point de terminaison de l’appareil. Une adresse logique est de la forme urn:uuid:{guid}. Une adresse physique peut être un URI préfixé par http ou https, ou simplement un URI préfixé par uri. Dans la mesure du possible, utilisez une adresse logique.

[in] ullMetadataVersion

Version actuelle des métadonnées.

Note Pour la compatibilité avec la spécification WS-Discovery, cette valeur doit être inférieure ou égale à UINT_MAX (4294967295).
 

[in] ullInstanceId

Identificateur de la instance actuelle de l’appareil en cours de publication. Cet identificateur doit être incrémenté chaque fois que le service est redémarré. Pour plus d’informations sur les identificateurs instance, consultez l’Annexe I de la spécification WS-Discovery.

Note Pour la compatibilité avec la spécification WS-Discovery, cette valeur doit être inférieure ou égale à UINT_MAX (4294967295).
 

[in] ullMessageNumber

Compteur dans l’étendue de l’identificateur de instance pour le message actuel. Le numéro de message doit être incrémenté pour chaque message.

Note Pour la compatibilité avec la spécification WS-Discovery, cette valeur doit être inférieure ou égale à UINT_MAX (4294967295).
 

[in, optional] pszSessionId

Identificateur unique dans l’étendue de l’identificateur instance pour la session active. Ce paramètre correspond à l’identificateur de séquence dans le bloc AppSequence dans le message Sonde. Pour plus d’informations sur les identificateurs de séquence, consultez l’Annexe I de la spécification WS-Discovery.

Ce paramètre peut avoir la valeur NULL.

[in, optional] pTypesList

Pointeur vers une structure WSD_NAME_LIST qui représente la liste des types pris en charge par l’hôte de publication. Peut être NULL.

[in, optional] pScopesList

Pointeur vers une structure WSD_URI_LIST qui représente la liste des étendues correspondantes prises en charge par l’hôte de publication. La liste contient des valeurs de hachage sous forme de chaîne. Peut être NULL.

[in, optional] pXAddrsList

Pointeur vers une structure WSD_URI_LIST qui représente la liste des adresses de transport prises en charge par l’hôte de publication. Chaque chaîne d’adresse de transport contient une adresse et un numéro de port qui peuvent être utilisés pour la connexion par un hôte distant. Peut être NULL.

Valeur retournée

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

Code de retour Description
S_OK
La commande s'est correctement terminée.
E_INVALIDARG
Une ou plusieurs des conditions suivantes sont remplies :
  • pszId a la valeur NULL.
  • La longueur en caractères de pszId dépasse WSD_MAX_TEXT_LENGTH (8192).
  • La longueur en caractères de pszSessionId dépasse WSD_MAX_TEXT_LENGTH (8192).
HRESULT_FROM_WIN32(ERROR_NO_CALLBACK_ACTIVE)
Il n’existe aucun récepteur de notification inscrit. Pour attacher un récepteur, appelez RegisterNotificationSink.
E_ABORT
L’éditeur n’a pas démarré. L’attachement d’un récepteur de notification démarre le serveur de publication. Pour attacher un récepteur, appelez RegisterNotificationSink.
E_OUTOFMEMORY
Mémoire insuffisante pour terminer l’opération.

Remarques

En cas de réussite, La publication envoie un WS-Discovery message Hello au sous-réseau local avec les informations fournies.

Configuration requise

Condition requise Valeur
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 wsddisco.h (inclure Wsdapi.h)
DLL Wsdapi.dll

Voir aussi

IWSDiscoveryPublisher