winemenubuilder: Try to wait for creating icon files.

oldstable
Sergey Guralnik 2013-01-23 15:07:44 +02:00 committed by Alexandre Julliard
parent 1dc3ef5188
commit 79808429c1
1 changed files with 13 additions and 4 deletions

View File

@ -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);