Partager via


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

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

Syntaxe

HRESULT PublishEx(
  [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,
  [in, optional] const WSDXML_ELEMENT *pHeaderAny,
  [in, optional] const WSDXML_ELEMENT *pReferenceParameterAny,
  [in, optional] const WSDXML_ELEMENT *pPolicyAny,
  [in, optional] const WSDXML_ELEMENT *pEndpointReferenceAny,
  [in, optional] const WSDXML_ELEMENT *pAny
);

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.

[in, optional] pHeaderAny

Pointeur vers une structure WSDXML_ELEMENT qui contient un élément XML à insérer dans la section « ANY » de l’en-tête.

[in, optional] pReferenceParameterAny

Pointeur vers une structure WSDXML_ELEMENT qui contient un élément XML à insérer dans la section « ANY » des propriétés du paramètre de référence.

[in, optional] pPolicyAny

Non utilisé.

[in, optional] pEndpointReferenceAny

Pointeur vers une structure WSDXML_ELEMENT qui contient un élément XML à insérer dans la section « ANY » du point de terminaison.

[in, optional] pAny

Pointeur vers une structure WSDXML_ELEMENT qui contient un élément XML à insérer dans la section « ANY » du corps du message.

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, PublishEx envoie un WS-Discovery message Hello au sous-réseau local avec les informations fournies.

Les paramètres faisant référence aux structures WSDXML_ELEMENT peuvent être utilisés pour étendre le contenu du message Hello envoyé avec des informations personnalisées.

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

Voir aussi

IWSDiscoveryPublisher