reinitialize image list in ShellBrowser::invalidate_cache()
Modified: trunk/reactos/subsys/system/explorer/shell/shellbrowser.cpp

Modified: trunk/reactos/subsys/system/explorer/shell/shellbrowser.cpp
--- trunk/reactos/subsys/system/explorer/shell/shellbrowser.cpp	2005-12-28 22:45:04 UTC (rev 20406)
+++ trunk/reactos/subsys/system/explorer/shell/shellbrowser.cpp	2005-12-28 22:46:09 UTC (rev 20407)
@@ -190,8 +190,7 @@
 		_pDropTarget->Release(); // free TreeDropTarget
 		_pDropTarget = NULL;
 		return false;
-	}
-	else
+	} else
 		_pDropTarget->Release();
 
 	FORMATETC ftetc;
@@ -273,6 +272,12 @@
 
 void ShellBrowser::invalidate_cache()
 {
+	(void)TreeView_SetImageList(_left_hwnd, _himl_old, TVSIL_NORMAL);
+	ImageList_Destroy(_himl);
+
+	_himl_old = TreeView_SetImageList(_left_hwnd, _himl, TVSIL_NORMAL);
+	_himl = ImageList_Create(GetSystemMetrics(SM_CXSMICON), GetSystemMetrics(SM_CYSMICON), ILC_MASK|ILC_COLOR24, 2, 0);
+
 	for(map<int,int>::const_iterator it=_image_map.begin(); it!=_image_map.end(); ++it)
 		g_Globals._icon_cache.free_icon(it->first);