From 99034f294331209fbfa1d5efacf7fb25f88e227d Mon Sep 17 00:00:00 2001 From: MikalaiR Date: Tue, 29 Dec 2015 18:02:18 +0000 Subject: Toaster: forgotten cslocks git-svn-id: http://svn.miranda-ng.org/main/trunk@15966 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- plugins/Toaster/src/add_to_start_menu.h | 1 + plugins/Toaster/src/services.cpp | 1 + plugins/Toaster/src/stdafx.h | 2 -- plugins/Toaster/src/toast_notification.cpp | 5 ++++- plugins/Toaster/src/toast_notification.h | 15 +++++++++------ 5 files changed, 15 insertions(+), 9 deletions(-) (limited to 'plugins/Toaster') diff --git a/plugins/Toaster/src/add_to_start_menu.h b/plugins/Toaster/src/add_to_start_menu.h index 17d22ba6ad..45d866c0fd 100644 --- a/plugins/Toaster/src/add_to_start_menu.h +++ b/plugins/Toaster/src/add_to_start_menu.h @@ -1,6 +1,7 @@ #ifndef _ADD_TOSTART_MENU_H_ #define _ADD_TOSTART_MENU_H_ +DEFINE_PROPERTYKEY(PKEY_AppUserModel_ID, 0x9F4C2855, 0x9F79, 0x4B39, 0xA8, 0xD0, 0xE1, 0xD4, 0x2D, 0xE1, 0xD5, 0xF3, 5); HRESULT TryCreateShortcut(); #endif //_ADD_TOSTART_MENU_H_ \ No newline at end of file diff --git a/plugins/Toaster/src/services.cpp b/plugins/Toaster/src/services.cpp index 100a2387cf..9342af8672 100644 --- a/plugins/Toaster/src/services.cpp +++ b/plugins/Toaster/src/services.cpp @@ -243,6 +243,7 @@ static INT_PTR ShowMessage(WPARAM wParam, LPARAM lParam) static INT_PTR HideToast(WPARAM, LPARAM lParam) { ToastNotification* pNotification = reinterpret_cast(lParam); + mir_cslock lck(csNotifications); if (lstNotifications.getIndex(pNotification) != -1) lstNotifications.remove(pNotification); return 0; diff --git a/plugins/Toaster/src/stdafx.h b/plugins/Toaster/src/stdafx.h index 57c860a0f3..3faa59fec7 100644 --- a/plugins/Toaster/src/stdafx.h +++ b/plugins/Toaster/src/stdafx.h @@ -27,9 +27,7 @@ #include "version.h" #include "resource.h" -typedef void(__cdecl *pEventHandler)(void*); const wchar_t AppUserModelID[] = _T("MirandaNG"); -DEFINE_PROPERTYKEY(PKEY_AppUserModel_ID, 0x9F4C2855, 0x9F79, 0x4B39, 0xA8, 0xD0, 0xE1, 0xD4, 0x2D, 0xE1, 0xD5, 0xF3, 5); #define MODULE "Toaster" #define CHECKHR(x) if (FAILED(x)) return x; diff --git a/plugins/Toaster/src/toast_notification.cpp b/plugins/Toaster/src/toast_notification.cpp index 0b48c5c235..1d1c73aed4 100644 --- a/plugins/Toaster/src/toast_notification.cpp +++ b/plugins/Toaster/src/toast_notification.cpp @@ -11,7 +11,10 @@ ToastNotification::ToastNotification( void *pData ) : _text(text), _caption(caption), _imagePath(imagePath), _hContact(hContact), _pfnPopupProc(pWndProc), _pvPopupData(pData) { - lstNotifications.insert(this); + { + mir_cslock lck(csNotifications); + lstNotifications.insert(this); + } Windows::Foundation::GetActivationFactory(StringReferenceWrapper(RuntimeClass_Windows_UI_Notifications_ToastNotificationManager).Get(), ¬ificationManager); notificationManager->CreateToastNotifierWithId(StringReferenceWrapper(::AppUserModelID).Get(), ¬ifier); Create(¬ification); diff --git a/plugins/Toaster/src/toast_notification.h b/plugins/Toaster/src/toast_notification.h index b99e3036a3..757cf269d5 100644 --- a/plugins/Toaster/src/toast_notification.h +++ b/plugins/Toaster/src/toast_notification.h @@ -7,6 +7,11 @@ typedef __FITypedEventHandler_2_Windows__CUI__CNotifications__CToastNotification typedef __FITypedEventHandler_2_Windows__CUI__CNotifications__CToastNotification_Windows__CUI__CNotifications__CToastDismissedEventArgs ToastDismissHandler; typedef __FITypedEventHandler_2_Windows__CUI__CNotifications__CToastNotification_Windows__CUI__CNotifications__CToastFailedEventArgs ToastFailHandler; +class ToastNotification; + +extern OBJLIST lstNotifications; +extern mir_cs csNotifications; + class ToastNotification { private: @@ -34,15 +39,13 @@ private: public: ToastNotification(_In_ wchar_t* text, _In_ wchar_t* caption = nullptr, _In_ wchar_t* imagePath = nullptr, MCONTACT hContact = 0, WNDPROC pWndProc = nullptr, void *pData = nullptr); - ToastNotification::~ToastNotification(); + ~ToastNotification(); inline void Destroy() - { - extern OBJLIST lstNotifications; - lstNotifications.remove(this); + { mir_cslock lck(csNotifications); lstNotifications.remove(this); } - HRESULT OnActivate(_In_ ABI::Windows::UI::Notifications::IToastNotification*, IInspectable* aInspectable); + HRESULT OnActivate(_In_ ABI::Windows::UI::Notifications::IToastNotification*, IInspectable*); HRESULT OnDismiss(_In_ ABI::Windows::UI::Notifications::IToastNotification*, _In_ ABI::Windows::UI::Notifications::IToastDismissedEventArgs*); HRESULT OnFail(_In_ ABI::Windows::UI::Notifications::IToastNotification*, _In_ ABI::Windows::UI::Notifications::IToastFailedEventArgs*); @@ -53,7 +56,7 @@ public: { return _hContact; } - inline LRESULT ToastNotification::CallPopupProc(UINT uMsg) + inline LRESULT CallPopupProc(UINT uMsg) { return (_pfnPopupProc ? _pfnPopupProc((HWND)this, uMsg, 0, 0) : 0); } -- cgit v1.2.3