diff --git a/src/modules/powerrename/dll/PowerRenameExt.cpp b/src/modules/powerrename/dll/PowerRenameExt.cpp index 7179fd458..36ead406e 100644 --- a/src/modules/powerrename/dll/PowerRenameExt.cpp +++ b/src/modules/powerrename/dll/PowerRenameExt.cpp @@ -24,6 +24,7 @@ CPowerRenameMenu::CPowerRenameMenu() CPowerRenameMenu::~CPowerRenameMenu() { m_spdo = nullptr; + DeleteObject(m_hbmpIcon); DllRelease(); } @@ -83,7 +84,11 @@ HRESULT CPowerRenameMenu::QueryContextMenu(HMENU hMenu, UINT index, UINT uIDFirs if (hIcon) { mii.fMask |= MIIM_BITMAP; - mii.hbmpItem = CreateBitmapFromIcon(hIcon); + if (m_hbmpIcon == NULL) + { + m_hbmpIcon = CreateBitmapFromIcon(hIcon); + } + mii.hbmpItem = m_hbmpIcon; DestroyIcon(hIcon); } } diff --git a/src/modules/powerrename/dll/PowerRenameExt.h b/src/modules/powerrename/dll/PowerRenameExt.h index cefbab545..59f7cd9ac 100644 --- a/src/modules/powerrename/dll/PowerRenameExt.h +++ b/src/modules/powerrename/dll/PowerRenameExt.h @@ -56,6 +56,7 @@ private: ~CPowerRenameMenu(); long m_refCount = 1; + HBITMAP m_hbmpIcon = NULL; CComPtr m_spdo; };