Blog. Just Blog

Обработка изменения иконок в системном трее

19.06.2021 | Категория: Образ мышления: Assembler | Автор: ManHunter
С обновлением иконок в системном трее разобрались, теперь давайте разберем, как можно отслеживать изменения в трее. Причем изменения касаются не только добавления-удаления иконок, но также изменения всплывающих подсказок и изменения иконки с сохранением ее индекса.
  1. CLSCTX_LOCAL_SERVER = 0x04
  2. S_OK = 0
  3.  
  4. struct NOTIFYITEM
  5.     pszExeName   dd ?
  6.     pszTip       dd ?
  7.     hIcon        dd ?
  8.     hWnd         dd ?
  9.     dwPreference dd ?
  10.     uID          dd ?
  11.     guidItem     rd 4
  12. ends
  13.  
  14. ; GUID {D782CCBA-AFB0-43F1-94DB-FDA3779EACCB}
  15. IID_INotificationCB dd 0D782CCBAh
  16.                     dw 0AFB0h
  17.                     dw 043F1h
  18.                     db 094h, 0DBh, 0FDh, 0A3h, 077h, 09Eh, 0ACh, 0CBh
  19.  
  20. ; INotificationCB interface
  21. struct INotificationCB
  22.         QueryInterface dd ?
  23.         AddRef         dd ?
  24.         Release        dd ?
  25.         ; INotificationCB
  26.         Notify         dd ?
  27. ends
  28.  
  29. ; GUID {FB852B2C-6BAD-4605-9551-F15F87830935}
  30. IID_ITrayNotify dd 0FB852B2Ch
  31.                 dw 06BADh
  32.                 dw 04605h
  33.                 db 095h, 051h, 0F1h, 05Fh, 087h, 083h, 009h, 035h
  34.  
  35. ; ITrayNotify interface
  36. struct ITrayNotify
  37.         QueryInterface   dd ?
  38.         AddRef           dd ?
  39.         Release          dd ?
  40.         ; ITrayNotify
  41.         RegisterCallback dd ?
  42.         SetPreference    dd ?
  43.         EnableAutoTray   dd ?
  44. ends
  45.  
  46. ; GUID {25DEAD04-1EAC-4911-9E3A-AD0A4AB560FD}
  47. CLSID_TrayNotify dd 025DEAD04h
  48.                  dw 01EACh
  49.                  dw 04911h
  50.                  db 09Eh, 03Ah, 0ADh, 00Ah, 04Ah, 0B5h, 060h, 0FDh
  51.  
  52. ; GUID {00000000-0000-0000-C000-000000000046}
  53. IID_IUnknown dd 000000000h
  54.              dw 00000h
  55.              dw 00000h
  56.              db 0C0h, 000h, 000h, 000h, 000h, 000h, 000h, 046h
Практически все, что тут используется, относится к недокументированным функциям Windows, поэтому внимательно смотрите примеры и описания. И да, работает оно только на современных системах, начиная с Windows Vista.

Читать статью целиком »
Просмотров: 219 | Комментариев: 0

Наверх
Powered by PCL's Speckled Band Engine 0.2 RC3
© ManHunter / PCL, 2008-2021
При использовании материалов ссылка на сайт обязательна
Время генерации: 0.07 сек. / MySQL: 1 (0.0126 сек.) / Память: 4.75 Mb
Наверх