Я уж грешным делом было подумал что близок то момент, когда наконецто удастся почить на ларах! но винда снова вернула меня в суровую реальность....
Есть модальный диалог(главным окном оный не является) для отображение прогресса выполнения некого внутреннего скрипта приложения. Возникла необходимость при сворачивании этого диаложика на Taskbar-e создать кнопочку, на которой бы показывался текущий прогрес в процентах, а при розвертывании удалять.
На первый взгляд выглядит все очевидно. Получаем указатель на ITaskbarList:
CComPtr < ITaskbarList > tbl;
HRESULT hr = tbl.CoCreateInstance(CLSID_TaskbarList);
if (SUCCEEDED(hr))
hr = tbl->HrInit();
Добавляем кнопочку
tbl->AddTab(hDialog);
А когда она нам не нужна удаляем
tbl->DeleteTab(hDialog);
Проблему я заметил не сразу... Оказалось что при изменении тайтла диалога, текст кнопки не апдейтится!
Выручил Spy++. Сровняв стили окон где была рабочая кнопка и моего диалога - корень зла был успешно обнаружен. Как оказалось текст кнопки на Taskbar-e обновляется только в том случае если у окна с которым она связана установлен стиль WS_EX_APPWINDOW.
Вот такие вот делы....
Установил быстренько стиль своему диаложику и .... Ура все заработало! Кнопка начала апдейтиться вместе с тайтлом диалога.