Windows Toast-уведомление не работает с примером кода MS CPP - PullRequest
0 голосов
/ 26 мая 2020

Я хочу интегрировать уведомление Toast в мое существующее настольное приложение на основе CPP / COM. Чтобы добавить это, я выполнил пошаговое руководство, приведенное на https://docs.microsoft.com/en-us/windows/uwp/design/shell/tiles-and-notifications/send-local-toast-desktop-cpp-wrl (добавил GUID и et c в product.wxs и также установил его). Но уведомление не отправляется, когда мое условие кода вызывает notifier-> Show (). Microsoft опубликовала пример проекта на https://github.com/WindowsNotifications/desktop-toasts. Но проект CPP / COM из этой ссылки git также не может публиковать всплывающие уведомления. Если я использую образец c# из этого git, всплывают уведомления Toast. Требуются ли для работы приложения на основе CPP / COM некоторые изменения, помимо шагов, упомянутых в ссылке MS (или представленных в образце Git)? Есть ли лучшее решение для интеграции всплывающих уведомлений в настольное приложение на основе COM?

Спасибо, Омкар

1 Ответ

1 голос
/ 27 мая 2020

Но проект CPP / COM из этой git ссылки также не может публиковать уведомления Toast.

Проверяя официальный образец, есть ошибка в этом. В файле DesktopToastsSample. cpp, AUMID , который он регистрирует в методе RegisterAumidAndComServer, равен "WindowsNotifications.DesktopToastsCpp", однако в файле Product.wxs SetupProject , AUMID вводится как "WindowsNotifications.DesktopToastsCppWrl". Эти два идентификатора AUMID не совпадают, поэтому уведомление не отображается. В этом случае можно изменить AUMID в файле Product.wxs с образца на «WindowsNotifications.DesktopToasts Cpp». Например:

Product.wxs:

<ShortcutProperty Key="System.AppUserModel.ID" Value="WindowsNotifications.DesktopToastsCpp"/>

Затем снова создайте SetupProject и установите сгенерированный MSI из папки bin / Debug. После этого запустите приложение Desktop Toasts из меню «Пуск», появится уведомление.

...