From 4b2a0c3b6959c5691152af85b726b0f6a9398d3a Mon Sep 17 00:00:00 2001 From: MikalaiR Date: Tue, 1 Sep 2015 11:50:43 +0000 Subject: Toster: leaks fix git-svn-id: http://svn.miranda-ng.org/main/trunk@15133 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- plugins/Toaster/src/toast_notification.cpp | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) (limited to 'plugins/Toaster/src/toast_notification.cpp') diff --git a/plugins/Toaster/src/toast_notification.cpp b/plugins/Toaster/src/toast_notification.cpp index 941bacbefc..7128bce13b 100644 --- a/plugins/Toaster/src/toast_notification.cpp +++ b/plugins/Toaster/src/toast_notification.cpp @@ -22,23 +22,23 @@ HRESULT ToastNotification::CreateXml(_Outptr_ ABI::Windows::Data::Xml::Dom::IXml { ComPtr xmlDocument; CHECKHR(Windows::Foundation::ActivateInstance(StringReferenceWrapper(RuntimeClass_Windows_Data_Xml_Dom_XmlDocument).Get(), &xmlDocument)); - HXML xmlToast = xmlCreateNode(L"toast", NULL, 0); + HXML xmlAudioNode = xmlAddChild(xmlToast, L"audio", NULL); xmlAddAttr(xmlAudioNode, L"silent", L"true"); + HXML xmlVisualNode = xmlAddChild(xmlToast, L"visual", NULL); + HXML xmlBindingNode = xmlAddChild(xmlVisualNode, L"binding", NULL); + xmlAddAttr(xmlBindingNode, L"template", L"ToastGeneric"); if (_imagePath) { - xmlAddAttr(xmlBindingNode, L"template", L"ToastImageAndText02"); HXML xmlImageNode = xmlAddChild(xmlBindingNode, L"image", NULL); + xmlAddAttr(xmlImageNode, L"placement", L"appLogoOverride"); xmlAddAttr(xmlImageNode, L"id", L"1"); xmlAddAttr(xmlImageNode, L"src", CMStringW(FORMAT, L"file:///%s", _imagePath)); } - else - { - xmlAddAttr(xmlBindingNode, L"template", L"ToastText02"); - } + HXML xmlTitleNode = xmlAddChild(xmlBindingNode, L"text", _caption != NULL ? _caption : L"Miranda NG"); xmlAddAttr(xmlTitleNode, L"id", L"1"); if (_text) @@ -46,10 +46,12 @@ HRESULT ToastNotification::CreateXml(_Outptr_ ABI::Windows::Data::Xml::Dom::IXml HXML xmlTextNode = xmlAddChild(xmlBindingNode, L"text", _text); xmlAddAttr(xmlTextNode, L"id", L"2"); } - + TCHAR *xtmp = xmlToString(xmlToast, NULL); size_t xlen = mir_tstrlen(xtmp); + xmlDestroyNode(xmlToast); + CHECKHR(xmlDocument->LoadXml(StringReferenceWrapper(xtmp, xlen).Get())); return xmlDocument.CopyTo(xml); @@ -79,7 +81,6 @@ HRESULT ToastNotification::Show(_In_ ToastEventHandler* handler) notification->add_Activated(eventHandler.Get(), &activatedToken); notification->add_Dismissed(eventHandler.Get(), &dismissedToken); notification->add_Failed(eventHandler.Get(), &failedToken); - return notifier->Show(notification.Get()); } -- cgit v1.2.3