Notifications

L'infrastructure de notification de Windows Home Server permet à une application d'alerter les utilisateurs ou d'autres applications installées sur le serveur domestique, afin de signaler des événements importants, comme une erreur d'application.

Windows Home Server utilise également l'infrastructure de notification pour alerter les utilisateurs et les applications en cas d'événement Windows Home Server important. Lorsqu'un événement notable se produit (tel qu'une panne de disque dur), les applications inscrites reçoivent une notification.

Certains types de notifications apparaissent également dans la boîte de dialogue Home Network Health (État du réseau domestique) de Windows Home Server, ainsi que sur la barre d'état système de chaque ordinateur client relié au réseau de Windows Home Server.

Windows Home Server vous permet d'écrire des applications qui ajoutent des notifications ou en reçoivent, ou les deux.

Création d'un exemple de notification

Étape 1. Créez une instance de WHSInfoClass.

Pour créer une notification, vous devez commencer par créer une instance de WHSInfoClass comme suit :

WHSInfoClass pInfo = new WHSInfoClass();

Étape 2. Invoquez la méthode Init(System.String).

Vous identifiez votre application auprès de l'infrastructure de notification Windows Home Server à l'aide de la méthode Init. Lorsque vous invoquez cette méthode, l'infrastructure de notification associe votre application à l'identifiant unique que vous avez transmis avec l'appel de méthode Init.

Important
Vous devez invoquer la méthode Init avant d'employer une autre méthode qui interagit avec l'infrastructure de notification, comme AddNotification ou RegisterForNotifications. Si vous ne respectez pas cette règle, votre application recevra une erreur et les appels de méthode invoquant l'infrastructure de notification échoueront.

Pour cet exemple, identifiez une application nommée MyWHSApp auprès de l'infrastructure de notification de Windows Home Server, comme suit :

                
pInfo.Init("MyWHSApp");

Étape 3. Invoquez la méthode AddNotification(System.String,Microsoft.HomeServer.SDK.Interop.v1.WHS_Notification_Severity,System.String,System.String).

Lorsqu'une condition nécessitant l'envoi d'une notification a lieu dans une application, ajoutez la notification dans l'infrastructure de notification de Windows Home Server. Pour ce faire, utilisez la méthode AddNotification.

Cette méthode accepte les paramètres suivants :

Paramètre Description

UniqueID

Chaîne contenant l'identifiant unique de la notification.

State

Énumération de type WHS_Notification_Severity. Selon la gravité, certaines notifications apparaissent dans la boîte de dialogue Home Network Health (État du réseau domestique) de Windows Home Server et se voient appliquer des couleurs distinctes :

  • Rouge : Notifications dont le type de WHS_Notification_Severity est WHS_ERROR.
  • Jaune : Notifications dont le type de WHS_Notification_Severity est WHS_WARNING.

textHeader

Chaîne contenant le titre de la notification.

textDescription

Chaîne contenant le texte descriptif de la notification.

Pour cet exemple, créez une notification en attribuant à WHS_Notification_Severity le type WHS_INFO et le titre "Hello, World!" :

                
pInfo.AddNotification("????????-92c0-43bb-b432-a519d120663a", 
  WHS_Notification_Severity.WHS_INFO, "Hello, World", "Hello World!");
Remarque
Dans la mesure où le type de WHS_Notification_Severity est WHS_INFO, la notification n'apparaît pas dans la boîte de dialogue Home Network Health (État du réseau domestique) de Windows Home Server, ni dans la barre d'état système des ordinateurs clients. Néanmoins, toutes les applications inscrites aux notifications la reçoivent.

Étape 4. Invoquez la méthode RemoveNotification(System.String).

Lorsque la condition ayant entraîné l'envoi d'une notification par l'application est résolue, ou si elle ne reflète plus l'état du système, invoquez la méthode RemoveNotification pour supprimer la notification. Celle-ci est alors supprimée de la liste des notifications, mais aussi de la boîte de dialogue Home Network Health (État du réseau domestique) et de la barre d'état système des ordinateurs clients.

Par exemple, si vous avez ajouté une notification décrivant un composant matériel qui n'est plus connecté à Windows Home Server, invoquez la méthode RemoveNotification pour la retirer du système.

Remarque

Lorsque votre application s'arrête, l'infrastructure de notification supprime toutes les notifications qui y sont associées. Par exemple, si l'application ajoute une notification dont le type de WHS_Notification_Severity est WHS_ERROR, puis qu'elle s'arrête, l'infrastructure de notification supprime WHS_ERROR de la liste des notifications existantes.

La méthode RemoveNotification n'accepte qu'un paramètre de type System.String, qui identifie de manière unique la notification à supprimer. Dans cet exemple, supprimez la notification que vous avez créée à l'étape 2 :

                
pInfo.RemoveNotification("????????-92c0-43bb-b432-a519d120663a");

Inscription aux notifications

Si vous créez une application qui doit utiliser les notifications de Windows Home Server, vous pouvez l'inscrire aux notifications à l'aide de l'API Windows Home Server.

Étape 1.   Implémentez l'interface Microsoft.HomeServer.SDK.Interop.v1.INotificationCallback.

Pour inscrire une application aux notifications sur Windows Home Server, créez une classe qui implémente l'interface INotificationCallback.

Par exemple, si votre application affiche les événements de notification de Windows Home Server sur un écran, vous pouvez créer une classe nommée pMyLCDDisplay, qui implémente INotificationCallback. Lorsque l'infrastructure de notification de Windows Home Server traite un événement de notification, elle invoque les méthodes INotificationCallback requises dans la classe pMyLCDDisplay :

class pMyLCDDisplay : Microsoft.HomeServer.SDK.Interop.v1.INotificationCallback
  {
     // Implement the Microsoft.HomeServer.SDK.Interop.v1.INotificationCallback methods here
  }

Étape 2. Invoquez la méthode Init(System.String).

Si ce n’est déjà fait, identifiez votre application auprès de l'infrastructure de notification de Windows Home Server au moyen de la méthode Init (reportez-vous à l'étape 2 de la section « Création d'un exemple de notification », plus haut dans ce document). Lorsque vous invoquez cette méthode, l'infrastructure de notification associe votre application avec l'identifiant unique que vous avez passé avec l'appel de méthode Init.

Important
Vous devez invoquer la méthode Init avant d'employer une autre méthode qui interagit avec l'infrastructure de notification, comme AddNotification ou RegisterForNotifications. Si vous ne respectez pas cette règle, l'application recevra une erreur et les appels de méthode invoquant l'infrastructure de notification échoueront.

Pour cet exemple, identifiez une application nommée MyWHSApp auprès de l'infrastructure de notification de Windows Home Server, comme suit :

                
pInfo.Init("MyWHSApp");

Étape 3.  Créez une instance de WHSInfoClass.

Après avoir créé la classe pMyLCDDisplay, destinée à implémenter INotificationCallback, créez une instance de WHSInfoClass afin d'invoquer la méthode RegisterForNotifications :

                
WHSInfoClass pInfo = new WHSInfoClass();

Étape 4. Invoquez la méthode WHSInfoClass.RegisterForNotifications(Microsoft.HomeServer.SDK.Interop.v1.INotificationCallback).

La méthode RegisterForNotifications accepte un paramètre de type INotificationCallback. La classe pMyLCDDisplay que vous avez créée est de type INotificationCallback, de sorte que vous pouvez la transmettre en tant que paramètre de l'appel de méthode RegisterForNotifications :

                
pInfo.RegisterForNotifications(pMyLCDDisplay);

Grâce à cet appel de méthode, votre application écran LCD est inscrite aux notifications auprès de l'infrastructure de notification de Windows Home Server. Dès qu'une notification est traitée, l'infrastructure invoque les méthodes adéquates depuis la classe pMyLCDDisplay que vous avez créée.

Étape 5. Facultatif : Invoquez la méthode WHSInfoClass.UnRegisterForNotifications()

Si vous souhaitez désinscrire votre application afin qu'elle ne reçoive plus les notifications de Windows Home Server, invoquez UnRegisterForNotifications :

                
pInfo.UnRegisterForNotifications();

L'infrastructure de notification retire alors l'application de la liste des applications inscrites aux notifications.

Voir aussi

Page view tracker