Andrew Bogott : winemenubuilder: In InvokeShellLinkerForURL, better replicate the deferral behavior in InvokeShellLinker.

Alexandre Julliard julliard at winehq.org
Mon Dec 13 10:43:19 CST 2010


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

Author: Andrew Bogott <Andrew at CodeWeavers.com>
Date:   Sat Dec 11 11:58:04 2010 -0600

winemenubuilder: In InvokeShellLinkerForURL, better replicate the deferral behavior in InvokeShellLinker.

This gives us a second chance, if the icon file doesn't exist yet
during the first call.

---

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

diff --git a/programs/winemenubuilder/winemenubuilder.c b/programs/winemenubuilder/winemenubuilder.c
index af1aa56..bb045a4 100644
--- a/programs/winemenubuilder/winemenubuilder.c
+++ b/programs/winemenubuilder/winemenubuilder.c
@@ -2700,6 +2700,19 @@ static BOOL InvokeShellLinkerForURL( IUniformResourceLocatorW *url, LPCWSTR link
         IPropertySetStorage_Release(pPropSetStg);
     }
 
+    /* fail - try once again after parent process exit */
+    if( !icon_name )
+    {
+        if (bWait)
+        {
+            WINE_WARN("Unable to extract icon, deferring.\n");
+            ret = FALSE;
+            goto cleanup;
+        }
+        WINE_ERR("failed to extract icon from %s\n",
+                 wine_dbgstr_w( pv[0].pwszVal ));
+    }
+
     hSem = CreateSemaphoreA( NULL, 1, 1, "winemenubuilder_semaphore");
     if( WAIT_OBJECT_0 != MsgWaitForMultipleObjects( 1, &hSem, FALSE, INFINITE, QS_ALLINPUT ) )
     {




More information about the wine-cvs mailing list