From dd65b0b87be7ce5a915482a6c36d02a3b8afa3a0 Mon Sep 17 00:00:00 2001 From: Sergey Guralnik Date: Wed, 23 Jan 2013 15:07:44 +0200 Subject: winemenubuilder: Try to wait for creating icon files (try 2). --- 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); -- 1.7.0.4