Мы используем ссылку ниже, чтобы обработать тост-уведомление от win 10 action center.
«https://blogs.msdn.microsoft.com/tiles_and_toasts/2015/10/16/quickstart-handling-toast-activations-from-win32-apps-in-windows-10/«Мы реализовали« Activate »API INotificationActivationCallback для обработки уведомления о тосте.
А вот к центру действий можно отнести несколько уведомлений. Как однозначно идентифицировать уведомление. мы должны выполнить разные операции для разных уведомлений. Параметр API invokedArgs всегда имеет значение NULL.
Да, проблема решена. Для обработки аргументов вызова в центре действий вам нужно передать аргумент запуска при создании XML-уведомления о тосте.
например
Как и в предыдущем примере, мы передали запуск аргумента invoke со значением «invoke arguments» в заголовке toast. Теперь API-интерфейс «Активировать» вызывается всякий раз, когда пользователь нажимает всплывающее уведомление из центра действий. вы получите тот же параметр в «Активировать функцию вызывать аргументы». Теперь вы можете сравнить значение invoke arg и выполнить действие. Ниже приведен справочный пример и ссылка.
HRESULT NotificationActivator::Activate(PCWSTR /*appUserModelId*/, PCWSTR invokedArgs,
const NOTIFICATION_USER_INPUT_DATA* data, ULONG count)
{
if (invokedArgs == nullptr)
{
// Start my app or just do nothing because COM started the app already.
}
else if (::wcscmp(invokedArgs, L"replyToComment") == 0)
{
ASSERT(count == 1);
ASSERT(::wcscmp(data[0].Key, L"replyToComment") == 0);
DoWorkToReply(data[0].Data);
}
return S_OK;
}
Других решений пока нет …