|
Документированных способов нет.
Можно сделать, например, только под Explorer. Для других оболочек работать не будет.
В explorer'е tray -- это обычный тулбар с кнопками, вся информация об иконках хранится в TBBUTTONINFO.lParam кнопки. Это указатель на структуру:
typedef struct _TNPRIVICON
{
HWND hWnd;
UINT uID;
UINT uCallbackMessage;
DWORD dwState;
UINT uVersion;
HICON hIcon;
} TNPRIVICON, *PTNPRIVICON;
Короче, создаёшь иконку, находишь tray notify window, посылаешь ему сообщение TB_GETBUTTONINFO последовательно для всех кнопок (TB_BUTTONCOUNT), при этом анализируешь по TNPRIVICON.hWnd, твоя иконка или нет, а потом при помощи TB_GETITEMRECT узнаёшь прямоугольник иконки.
Ещё не перехотелось заниматься этим делом?
p.s.: Указатель PTNPRIVICON -- в адресном пространстве explorer'а, так что мороки ещё больше.
|