winemenubuilder: EnumResourceNamesW() returns false when we find the icon. So fix the corresponding misfiring trace.

Francois Gouget fgouget at codeweavers.com
Fri Jan 11 02:57:15 CST 2008


---

EnumResNameProc() returns false when it finds the icon we're looking for 
(i.e. when sEnumRes.nIndex==0). This causes EnumResourceNamesW() to stop 
its enumeration, as designed, and to return false. So complaining that 
it failed in that case is misleading.

 programs/winemenubuilder/winemenubuilder.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/programs/winemenubuilder/winemenubuilder.c b/programs/winemenubuilder/winemenubuilder.c
index 4feafbe..92660bb 100644
--- a/programs/winemenubuilder/winemenubuilder.c
+++ b/programs/winemenubuilder/winemenubuilder.c
@@ -296,7 +296,8 @@ static BOOL extract_icon32(LPCWSTR szFileName, int nIndex, const char *szXPMFile
         sEnumRes.pResInfo = &hResInfo;
         sEnumRes.nIndex = nIndex;
         if (!EnumResourceNamesW(hModule, (LPCWSTR)RT_GROUP_ICON,
-                                EnumResNameProc, (LONG_PTR)&sEnumRes))
+                                EnumResNameProc, (LONG_PTR)&sEnumRes) &&
+            sEnumRes.nIndex != 0)
         {
             WINE_TRACE("EnumResourceNamesW failed, error %d\n", GetLastError());
         }
-- 
1.5.3.7



More information about the wine-patches mailing list