From 15267ea2d489606fb4b99d011bc3ea7c2a644a9f Mon Sep 17 00:00:00 2001 From: George Hazan Date: Sun, 17 Mar 2013 14:22:17 +0000 Subject: fix for popup-related memory leaks git-svn-id: http://svn.miranda-ng.org/main/trunk@4077 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- include/delphi/m_popup.inc | 1 + include/m_popup.h | 17 ++++++++++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) (limited to 'include') diff --git a/include/delphi/m_popup.inc b/include/delphi/m_popup.inc index 0a47fccba4..4e870963f4 100644 --- a/include/delphi/m_popup.inc +++ b/include/delphi/m_popup.inc @@ -336,6 +336,7 @@ const // wParam = 0 // lParam = (POPUPCLASS *)&pc MS_POPUP_REGISTERCLASS = 'PopUp/RegisterClass'; + MS_POPUP_UNREGISTERCLASS = 'PopUp/UnregisterClass'; type TPOPUPDATACLASS = record diff --git a/include/m_popup.h b/include/m_popup.h index b715345c40..1a633ac14b 100644 --- a/include/m_popup.h +++ b/include/m_popup.h @@ -332,7 +332,22 @@ typedef struct { // wParam = 0 // lParam = (POPUPCLASS *)&pc -#define MS_POPUP_REGISTERCLASS "PopUp/RegisterClass" +#define MS_POPUP_REGISTERCLASS "PopUp/RegisterClass" + +HANDLE __forceinline Popup_RegisterClass(POPUPCLASS *pc) +{ + if ( !ServiceExists(MS_POPUP_REGISTERCLASS)) + return NULL; + return (HANDLE)CallService(MS_POPUP_REGISTERCLASS, 0, LPARAM(pc)); +} + +#define MS_POPUP_UNREGISTERCLASS "PopUp/UnregisterClass" + +void __forceinline Popup_UnregisterClass(HANDLE ppc) +{ + if (ppc) + CallService(MS_POPUP_UNREGISTERCLASS, 0, LPARAM(ppc)); +} typedef struct { int cbSize; -- cgit v1.2.3