Использование Borland C++ Builder.
Прежде чем использовать ITaskbarList3, я делаю так, как требует Windows:
https://msdn.microsoft.com/en-us/library/windows/desktop/dd391692.aspx
Ваше приложение должно вызывать RegisterWindowMessage(L"TaskbarButtonCreated") и обрабатывать это сообщение в своем файле wndproc. Это сообщение должно быть получено вашим приложением до того, как оно вызовет какой-либо метод ITaskbarList3.
Однако это не всегда работает для меня, сообщение, которое я жду, никогда не приходит, даже если RegisterWindowMessage() был успешным.
После некоторого копания я обнаружил, что проблема связана с тем, что мое приложение перезапускается с помощью «runas», сразу после запуска, когда на основе пользовательских настроек приложение должно запускаться с повышенными правами.
Второй (теперь повышенный) запуск, сообщение, которого я жду, так и не приходит.
Я предполагаю, это связано с тем, что Windows уже отправила это сообщение и не делает этого снова, несмотря на то, что создается новый экземпляр ??
Насколько безопасно предполагать, что сообщение должно быть отправлено уже при втором (с повышенными правами) запуске, и все равно продолжать использовать ITaskbarList3?