Windows Toast 通知不适用于 MS CPP 示例代码

Windows Toast notification is not working with MS CPP sample code

我想将 Toast 通知集成到我现有的基于 CPP/COM 的桌面应用程序中。要添加它,我已经按照 https://docs.microsoft.com/en-us/windows/uwp/design/shell/tiles-and-notifications/send-local-toast-desktop-cpp-wrl(added GUID 等在 product.wxs 中给出的分步指南进行了安装。 但是当我的代码条件调用 notifier->Show() 时,通知没有得到 posted。 Microsoft 在 https://github.com/WindowsNotifications/desktop-toasts 上 post 提供了一些示例项目。但是来自此 git link 的 CPP/COM 项目也无法 post Toast 通知。如果我使用此 git 中的 c# 示例,Toast 通知是 posted。 除了 MS link 中提到的步骤(或出现在 Git 示例中)之外,基于 CPP/COM 的应用程序是否需要一些更改才能工作?在基于 COM 的桌面应用程序中集成 toast 通知是否有更好的解决方案?

谢谢, 欧姆卡

But CPP/COM project from this git link is also not able to post the Toast notifications.

查看官方样本,有错误。在DesktopToastsSample.cpp文件中,它在RegisterAumidAndComServer方法中注册的AUMID"WindowsNotifications.DesktopToastsCpp",但是在[= SetupProject的20=]Product.wxs文件,它输入的AUMID"WindowsNotifications.DesktopToastsCppWrl"。这两个 AUMID 不匹配,因此无法显示通知。在这种情况下,您可以将 Product.wxs 文件中的 AUMID 从 sample 修改为 "WindowsNotifications.DesktopToastsCpp"。例如:

Product.wxs:

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

然后再次构建 SetupProject 并从 bin/Debug 文件夹安装生成的 MSI。之后,从“开始”菜单启动 Desktop Toasts 应用程序,将显示通知。