/* loop and deallocate all the cached app infos in the list */
while (InfoListPosition)
{
- CAvailableApplicationInfo* Info = m_InfoList.GetAt(InfoListPosition);
- m_InfoList.RemoveHead();
+ CAvailableApplicationInfo* Info = m_InfoList.GetNext(InfoListPosition);
delete Info;
-
- InfoListPosition = m_InfoList.GetHeadPosition();
}
+
+ m_InfoList.RemoveAll();
}
VOID CAvailableApps::DeleteCurrentAppsDB()
BOOL CAvailableApps::EnumAvailableApplications(INT EnumType, AVAILENUMPROC lpEnumProc)
{
+
HANDLE hFind = INVALID_HANDLE_VALUE;
WIN32_FIND_DATAW FindFileData;
return TRUE;
}
- ItemInfo = (PINSTALLED_INFO) HeapAlloc(GetProcessHeap(), 0, sizeof(INSTALLED_INFO));
+ ItemInfo = new INSTALLED_INFO(*Info);
if (!ItemInfo)
{
RegCloseKey(Info->hSubKey);
return FALSE;
}
- RtlCopyMemory(ItemInfo, Info, sizeof(INSTALLED_INFO));
-
Index = ListViewAddItem(ItemIndex, 0, szName, (LPARAM) ItemInfo);
/* Get version info */
nSelectedApps = 0;
if (EnumType < 0) EnumType = SelectedEnumType;
- if (IS_INSTALLED_ENUM(EnumType))
+ if (IS_INSTALLED_ENUM(SelectedEnumType))
{
FreeInstalledAppList();
}
if (IS_INSTALLED_ENUM(EnumType))
{
+ HICON hIcon = (HICON) LoadIconW(hInst, MAKEINTRESOURCEW(IDI_MAIN));
+ ImageList_AddIcon(hImageListView, hIcon);
+ DestroyIcon(hIcon);
/* Enum installed applications and updates */
EnumInstalledApplications(EnumType, TRUE, s_EnumInstalledAppProc);
EnumInstalledApplications(EnumType, FALSE, s_EnumInstalledAppProc);