diff --git a/Contrib/InstallOptions/InstallerOptions.cpp b/Contrib/InstallOptions/InstallerOptions.cpp index 7b038082..44766f3c 100644 --- a/Contrib/InstallOptions/InstallerOptions.cpp +++ b/Contrib/InstallOptions/InstallerOptions.cpp @@ -932,7 +932,7 @@ int createCfgDlg() } else if (nType == FIELD_BITMAP || nType == FIELD_ICON) { WPARAM nImageType = nType == FIELD_BITMAP ? IMAGE_BITMAP : IMAGE_ICON; LPARAM nImage = 0; - if (nImageType == IMAGE_BITMAP) { + if (pFields[nIdx].pszText) { pFields[nIdx].hImage = LoadImage( 0, pFields[nIdx].pszText, @@ -1019,7 +1019,12 @@ void showCfgDlg() FREE(pFields[nIdx].pszListItems); FREE(pFields[nIdx].pszFilter); FREE(pFields[nIdx].pszRoot); - DeleteObject(pFields[nIdx].hImage); + if (pFields[nIdx].nType == FIELD_BITMAP) { + DeleteObject(pFields[nIdx].hImage); + } + if (pFields[nIdx].nType == FIELD_ICON) { + DestroyIcon((HICON)pFields[nIdx].hImage); + } } FREE(pFields); diff --git a/Plugins/InstallOptions.dll b/Plugins/InstallOptions.dll index 0b9ab614..8602a0cd 100644 Binary files a/Plugins/InstallOptions.dll and b/Plugins/InstallOptions.dll differ