Программа модуля, содержащего функции для работы с треем.

'+-------------------------------------+
'|        Работа с Tray'ем             |
'|       универсальный модуль          |
'| Большой сенкс добрым ФИДОшникам за  |
'|    предоставление этого модуля      |
'+-------------------------------------+'всякие константыPublic Const NIF_MESSAGE = &H1
Public Const NIF_ICON = &H2
Public Const NIF_TIP = &H4
Public Const NIM_ADD = &H0
Public Const NIM_MODIFY = &H1
Public Const NIM_DELETE = &H2
Public Const WM_RBUTTONDOWN = &H204'структуркаType NOTIFYICONDATA
    cbSize           As Long
    hWnd             As Long
    uID              As Long
    uFlags           As Long
    uCallbackMessage As Long
    hIcon            As Long
    szTip            As String * 64
End Type
Private NID As NOTIFYICONDATA

Declare Function Shell_NotifyIcon Lib "shell32.dll" Alias _
 "Shell_NotifyIconA" (ByVal dwMessage As Long, lpData As NOTIFYICONDATA) _
 As Long'Добавление иконки в TrayPublic Sub AddTrayIcon(IDhWnd As Long, Icon As Long, Text As String)
    NID.szTip = Left$(Text, 63) & Chr$(0)
    NID.uFlags = NIF_TIP + NIF_MESSAGE + NIF_ICON
    NID.uID = IDhWnd
    NID.cbSize = Len(NID)
    NID.hWnd = IDhWnd
    NID.uCallbackMessage = WM_RBUTTONDOWN
    NID.hIcon = Icon
    Res& = Shell_NotifyIcon(NIM_ADD, NID)
End Sub'Удаление иконки из TrayPublic Sub DeleteTrayIcon()
    NID.cbSize = Len(NID)
    Res& = Shell_NotifyIcon(NIM_DELETE, NID)
End Sub'Изменение иконки и ToolTip в TrayPublic Sub ItemModify(Icon As Long, Text As String)
    NID.uFlags = NIF_TIP + NIF_ICON
    NID.cbSize = Len(NID)
    NID.szTip = Left$(Text, 63) & Chr$(0)
    NID.hIcon = Icon
    Res& = Shell_NotifyIcon(NIM_MODIFY, NID)
End Sub