Sergey Guralnik : winemenubuilder: Try to wait for creating icon files.

Alexandre Julliard julliard at winehq.org
Wed Jan 30 13:43:23 CST 2013


Module: wine
Branch: master
Commit: 79808429c16c9bec8026cbd57158dcff26691334
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=79808429c16c9bec8026cbd57158dcff26691334

Author: Sergey Guralnik <serhio at etersoft.ru>
Date:   Wed Jan 23 15:07:44 2013 +0200

winemenubuilder: Try to wait for creating icon files.

---

 programs/winemenubuilder/winemenubuilder.c |   17 +++++++++++++----
 1 files changed, 13 insertions(+), 4 deletions(-)

diff --git a/programs/winemenubuilder/winemenubuilder.c b/programs/winemenubuilder/winemenubuilder.c
index 5a5789f..c931363 100644
--- a/programs/winemenubuilder/winemenubuilder.c
+++ b/programs/winemenubuilder/winemenubuilder.c
@@ -1055,10 +1055,19 @@ static HRESULT open_icon(LPCWSTR filename, int index, BOOL bWait, IStream **ppSt
     hr = open_module_icon(filename, index, ppStream);
     if (FAILED(hr))
     {
-        static const WCHAR dot_icoW[] = {'.','i','c','o',0};
-        int len = strlenW(filename);
-        if (len >= 4 && strcmpiW(&filename[len - 4], dot_icoW) == 0)
-            hr = SHCreateStreamOnFileW(filename, STGM_READ, ppStream);
+        if(bWait && hr == HRESULT_FROM_WIN32(ERROR_MOD_NOT_FOUND))
+        {
+            WINE_WARN("Can't find file: %s, give a chance to parent process to create it\n",
+                                    wine_dbgstr_w(filename));
+            return hr;
+        }
+        else
+        {
+            static const WCHAR dot_icoW[] = {'.','i','c','o',0};
+            int len = strlenW(filename);
+            if (len >= 4 && strcmpiW(&filename[len - 4], dot_icoW) == 0)
+                hr = SHCreateStreamOnFileW(filename, STGM_READ, ppStream);
+        }
     }
     if (FAILED(hr))
         hr = open_file_type_icon(filename, ppStream);




More information about the wine-cvs mailing list