Ensure icon in context menu is not leaked (#709)

This commit is contained in:
Chris Davis 2019-11-13 14:13:14 -08:00 committed by GitHub
parent 3c0b479669
commit b490a72c1d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 7 additions and 1 deletions

View file

@ -24,6 +24,7 @@ CPowerRenameMenu::CPowerRenameMenu()
CPowerRenameMenu::~CPowerRenameMenu() CPowerRenameMenu::~CPowerRenameMenu()
{ {
m_spdo = nullptr; m_spdo = nullptr;
DeleteObject(m_hbmpIcon);
DllRelease(); DllRelease();
} }
@ -83,7 +84,11 @@ HRESULT CPowerRenameMenu::QueryContextMenu(HMENU hMenu, UINT index, UINT uIDFirs
if (hIcon) if (hIcon)
{ {
mii.fMask |= MIIM_BITMAP; mii.fMask |= MIIM_BITMAP;
mii.hbmpItem = CreateBitmapFromIcon(hIcon); if (m_hbmpIcon == NULL)
{
m_hbmpIcon = CreateBitmapFromIcon(hIcon);
}
mii.hbmpItem = m_hbmpIcon;
DestroyIcon(hIcon); DestroyIcon(hIcon);
} }
} }

View file

@ -56,6 +56,7 @@ private:
~CPowerRenameMenu(); ~CPowerRenameMenu();
long m_refCount = 1; long m_refCount = 1;
HBITMAP m_hbmpIcon = NULL;
CComPtr<IDataObject> m_spdo; CComPtr<IDataObject> m_spdo;
}; };