* Sync up to trunk head (r64716).
[reactos.git] / base / applications / rapps / winmain.c
index f88eb94..f7b3dbd 100644 (file)
@@ -18,8 +18,6 @@ HIMAGELIST hImageTreeView = NULL;
 INT SelectedEnumType = ENUM_ALL_COMPONENTS;
 SETTINGS_INFO SettingsInfo;
 
-PCWSTR (WINAPI *pStrStrIW)(PCWSTR, PCWSTR);
-
 WCHAR szSearchPattern[MAX_STR_LEN] = L"";
 BOOL SearchEnabled = TRUE;
 
@@ -29,7 +27,7 @@ SearchPatternMatch(PCWSTR szHaystack, PCWSTR szNeedle)
     if (!*szNeedle)
         return TRUE;
     /* TODO: Improve pattern search beyond a simple case-insensitive substring search. */
-    return pStrStrIW(szHaystack, szNeedle) != NULL;
+    return StrStrIW(szHaystack, szNeedle) != NULL;
 }
 
 VOID
@@ -117,7 +115,7 @@ FreeInstalledAppList(VOID)
 
 BOOL
 CALLBACK
-EnumInstalledAppProc(INT ItemIndex, LPWSTR lpName, INSTALLED_INFO Info)
+EnumInstalledAppProc(INT ItemIndex, LPWSTR lpName, PINSTALLED_INFO Info)
 {
     PINSTALLED_INFO ItemInfo;
     WCHAR szText[MAX_PATH];
@@ -129,7 +127,7 @@ EnumInstalledAppProc(INT ItemIndex, LPWSTR lpName, INSTALLED_INFO Info)
     ItemInfo = HeapAlloc(GetProcessHeap(), 0, sizeof(INSTALLED_INFO));
     if (!ItemInfo) return FALSE;
 
-    *ItemInfo = Info;
+    RtlCopyMemory(ItemInfo, Info, sizeof(INSTALLED_INFO));
 
     Index = ListViewAddItem(ItemIndex, 0, lpName, (LPARAM)ItemInfo);
 
@@ -160,13 +158,13 @@ FreeAvailableAppList(VOID)
 
 BOOL
 CALLBACK
-EnumAvailableAppProc(APPLICATION_INFO Info)
+EnumAvailableAppProc(PAPPLICATION_INFO Info)
 {
     PAPPLICATION_INFO ItemInfo;
     INT Index;
 
-    if (!SearchPatternMatch(Info.szName, szSearchPattern) &&
-        !SearchPatternMatch(Info.szDesc, szSearchPattern))
+    if (!SearchPatternMatch(Info->szName, szSearchPattern) &&
+        !SearchPatternMatch(Info->szDesc, szSearchPattern))
     {
         return TRUE;
     }
@@ -175,16 +173,16 @@ EnumAvailableAppProc(APPLICATION_INFO Info)
          - no RegName was supplied (so we cannot determine whether the application is installed or not) or
          - a RegName was supplied and the application is not installed
     */
-    if (!*Info.szRegName || (!IsInstalledApplication(Info.szRegName, FALSE) && !IsInstalledApplication(Info.szRegName, TRUE)))
+    if (!*Info->szRegName || (!IsInstalledApplication(Info->szRegName, FALSE) && !IsInstalledApplication(Info->szRegName, TRUE)))
     {
         ItemInfo = HeapAlloc(GetProcessHeap(), 0, sizeof(APPLICATION_INFO));
         if (!ItemInfo) return FALSE;
 
-        *ItemInfo = Info;
+        RtlCopyMemory(ItemInfo, Info, sizeof(APPLICATION_INFO));
 
-        Index = ListViewAddItem(Info.Category, 0, Info.szName, (LPARAM)ItemInfo);
-        ListView_SetItemText(hListView, Index, 1, Info.szVersion);
-        ListView_SetItemText(hListView, Index, 2, Info.szDesc);
+        Index = ListViewAddItem(Info->Category, 0, Info->szName, (LPARAM)ItemInfo);
+        ListView_SetItemText(hListView, Index, 1, Info->szVersion);
+        ListView_SetItemText(hListView, Index, 2, Info->szDesc);
     }
 
     return TRUE;
@@ -907,10 +905,6 @@ wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmdLine, int nSh
     HANDLE hMutex = NULL;
     MSG Msg;
 
-    /* FIXME: CORE-7786 requires this to be loaded at runtime because we
-     *        would get comctl32's version otherwise */
-    pStrStrIW = (PVOID)GetProcAddress(GetModuleHandle(L"shlwapi"), "StrStrIW");
-
     switch (GetUserDefaultUILanguage())
     {
         case MAKELANGID(LANG_HEBREW, SUBLANG_DEFAULT):