/* This file is part of Telegram Desktop, the official desktop application for the Telegram messaging service. For license and copyright information please follow this link: https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL */ #pragma once #include "windows_toastactivator_h.h" #include "base/platform/win/wrl/wrl_implements_h.h" // {F11932D3-6110-4BBC-9B02-B2EC07A1BD19} class DECLSPEC_UUID("F11932D3-6110-4BBC-9B02-B2EC07A1BD19") ToastActivator : public ::Microsoft::WRL::RuntimeClass< ::Microsoft::WRL::RuntimeClassFlags<::Microsoft::WRL::ClassicCom>, INotificationActivationCallback, ::Microsoft::WRL::FtmBase> { public: ToastActivator() = default; ~ToastActivator() = default; HRESULT STDMETHODCALLTYPE Activate( _In_ LPCWSTR appUserModelId, _In_ LPCWSTR invokedArgs, _In_reads_(dataCount) const NOTIFICATION_USER_INPUT_DATA *data, ULONG dataCount) override; HRESULT STDMETHODCALLTYPE QueryInterface( REFIID riid, void **ppObj); ULONG STDMETHODCALLTYPE AddRef(); ULONG STDMETHODCALLTYPE Release(); private: long _ref = 1; }; struct ToastActivation { struct UserInput { QString key; QString value; }; QString args; std::vector input; [[nodiscard]] static QString String(LPCWSTR value); }; [[nodiscard]] rpl::producer ToastActivations();