Partager via


fonction Shell_NotifyIconA (shellapi.h)

Envoie un message à la zone d’état de la barre des tâches.

Syntaxe

BOOL Shell_NotifyIconA(
  [in] DWORD            dwMessage,
  [in] PNOTIFYICONDATAA lpData
);

Paramètres

[in] dwMessage

Type : DWORD

Valeur qui spécifie l’action à entreprendre par cette fonction. Il peut avoir l’une des valeurs suivantes :

NIM_ADD (0x00000000)

0x00000000. Ajoute une icône à la zone d’état. L’icône reçoit un identificateur dans la structure NOTIFYICONDATA pointée par lpdata, via son uID ou membre guidItem. Cet identificateur est utilisé dans les appels suivants à Shell_NotifyIcon pour effectuer des actions ultérieures sur l’icône.

NIM_MODIFY (0x00000001)

0x00000001. Modifie une icône dans la zone d’état. notifyICONDATA structure pointée par lpdata utilise l’ID attribué à l’origine à l’icône lorsqu’elle a été ajoutée à la zone de notification (NIM_ADD) pour identifier l’icône à modifier.

NIM_DELETE (0x00000002)

0x00000002. Supprime une icône de la zone d’état. structure NOTIFYICONDATA pointée par lpdata utilise l’ID attribué à l’origine à l’icône lorsqu’elle a été ajoutée à la zone de notification (NIM_ADD) pour identifier l’icône à supprimer.

NIM_SETFOCUS (0x00000003)

0x00000003. Shell32.dll version 5.0 et ultérieure uniquement. Retourne le focus sur la zone de notification de la barre des tâches. Les icônes de zone de notification doivent utiliser ce message lorsqu’elles ont terminé leur opération d’interface utilisateur. Par exemple, si l’icône affiche un menu contextuel, mais que l’utilisateur appuie sur Échap pour l’annuler, utilisez NIM_SETFOCUS pour retourner le focus sur la zone de notification.

NIM_SETVERSION (0x00000004)

0x00000004. Shell32.dll version 5.0 et ultérieure uniquement. Indique à la zone de notification de se comporter en fonction du numéro de version spécifié dans le membre uVersion de la structure pointée par lpdata. Le numéro de version spécifie les membres reconnus.

NIM_SETVERSION devez être appelée chaque fois qu’une icône de zone de notification est ajoutée (NIM_ADD). Il n’est pas nécessaire d’appeler avec NIM_MODIFY. Le paramètre de version n’est pas conservé une fois qu’un utilisateur se déconnecte.

Pour plus d’informations, consultez la section Remarques.

[in] lpData

Type : PNOTIFYICONDATA

Pointeur vers une structure NOTIFYICONDATA . Le contenu de la structure dépend de la valeur de dwMessage. Il peut définir une icône à ajouter à la zone de notification, provoquer l’affichage d’une notification ou identifier une icône à modifier ou supprimer.

Valeur de retour

Type : BOOL

Retourne TRUE en cas de réussite ou FALSE sinon. Si dwMessage est défini sur NIM_SETVERSION, la fonction retourne TRUE si la version a été correctement modifiée ou FALSE si la version demandée n’est pas prise en charge.

Remarques

À compter de Windows 2000 (Shell32.dll version 5.0), si vous définissez le membre uVersion de la structure NOTIFYICONDATA pointée par lpdata sur NOTIFYICON_VERSION_4 ou une version ultérieure, Shell_NotifyIcon événements de souris et de clavier sont gérés différemment que dans les versions antérieures de Windows. Les différences sont les suivantes :

  • Si un utilisateur sélectionne le menu contextuel d’une icône de notification avec le clavier, l’interpréteur de commandes envoie maintenant à l’application associée un message WM_CONTEXTMENU. Les versions antérieures envoient des messages WM_RBUTTONDOWN et WM_RBUTTONUP.
  • Si un utilisateur sélectionne une icône d’notification avec le clavier et l’active avec la touche SPACEBAR ou ENTRÉE, l’interpréteur de commandes version 5.0 envoie à l’application associée une notification NIN_KEYSELECT. Les versions antérieures envoient des messages WM_RBUTTONDOWN et WM_RBUTTONUP.
  • Si un utilisateur sélectionne une icône d’notification avec la souris et l’active avec la touche Entrée, l’interpréteur de commandes envoie désormais à l’application associée une notification NIN_SELECT. Les versions antérieures envoient des messages WM_RBUTTONDOWN et WM_RBUTTONUP.
À compter de Windows XP (Shell32.dll version 6.0), si un utilisateur passe le pointeur de la souris sur une icône avec laquelle une notification de bulle est associée, l’interpréteur de commandes envoie les messages suivants :
  • NIN_BALLOONSHOW. Envoyé lorsque la bulle est affichée (les bulles sont mises en file d’attente).
  • NIN_BALLOONHIDE. Envoyé lorsque la bulle disparaît. Par exemple, lorsque l’icône est supprimée. Ce message n’est pas envoyé si la bulle est ignorée en raison d’un délai d’expiration ou si l’utilisateur clique sur la souris.

    À compter de Windows 7, NIN_BALLOONHIDE est également envoyé lorsqu’une notification avec le jeu d’indicateurs de NIIF_RESPECT_QUIET_TIME tente d’afficher pendant le temps silencieux (la première heure d’un utilisateur sur un nouvel ordinateur). Dans ce cas, le ballon n’est jamais affiché du tout.

  • NIN_BALLOONTIMEOUT. Envoyé lorsque la bulle est ignorée en raison d’un délai d’expiration.
  • NIN_BALLOONUSERCLICK. Envoyé lorsque la bulle est ignorée, car l’utilisateur a cliqué sur la souris.
En plus de ces messages, à partir de Windows Vista (Shell32.dll version 6.0.6), si un utilisateur passe le pointeur de la souris sur une icône avec laquelle une notification de bulle est associée, l’interpréteur de commandes Windows Vista ajoute également les messages suivants :
  • NIN_POPUPOPEN. Envoyé lorsque l’utilisateur pointe le curseur sur une icône pour indiquer que l’interface utilisateur contextuelle plus riche doit être utilisée à la place d’une info-bulle textuelle standard.
  • NIN_POPUPCLOSE. Envoyé lorsqu’un curseur ne pointe plus sur une icône pour indiquer que l’interface utilisateur contextuelle enrichie doit être fermée.
Quelle que soit la version du système d’exploitation, vous pouvez sélectionner la façon dont l’interpréteur de commandes doit se comporter en appelant Shell_NotifyIcon avec dwMessage défini sur NIM_SETVERSION. Définissez le membre uVersion de la structure NOTIFYICONDATA pointée par lpdata pour indiquer si vous souhaitez que Windows 2000, Windows Vista ou préversion 5.0 (Windows 95) se comportent.
Remarque Les messages décrits ci-dessus ne sont pas des messages Windows conventionnels. Ils sont envoyés en tant que valeur lParam du message défini par l’application spécifié dans le membre uCallbackMessage de la structure NOTIFYICONDATA pointée par lpdata, lorsque Shell_NotifyIcon est appelé avec l’indicateur NIM_ADD défini dans dwMessage.
 
À partir de Windows XP Service Pack 2 (SP2), une icône personnalisée peut être affichée dans la bulle de notification. Cela permet au processus appelant de personnaliser la notification au-delà des options d’informations, d’avertissement et d’erreur précédemment disponibles, et de la distinguer des autres types de notification pour l’utilisateur.

Note

L’en-tête shellapi.h définit Shell_NotifyIcon en tant qu’alias qui sélectionne automatiquement la version ANSI ou Unicode de cette fonction en fonction de la définition de la constante de préprocesseur UNICODE. Le mélange de l’utilisation de l’alias neutre en encodage avec du code qui n’est pas neutre en encodage peut entraîner des incompatibilités qui entraînent des erreurs de compilation ou d’exécution. Pour plus d’informations, consultez Conventions pour les prototypes de fonction.

Exigences

Exigence Valeur
client minimum pris en charge Windows XP [applications de bureau uniquement]
serveur minimum pris en charge Windows 2000 Server [applications de bureau uniquement]
plateforme cible Windows
d’en-tête shellapi.h
bibliothèque Shell32.lib
DLL Shell32.dll (version 4.0 ou ultérieure)
ensemble d’API ext-ms-win-shell-shell32-l1-2-1 (introduit dans Windows 10, version 10.0.10240)

Voir aussi

notifications et zone de notification