Damjan Jovanovic : winemenubuilder: Always initialize COM.

Alexandre Julliard julliard at winehq.org
Wed Jul 21 10:54:46 CDT 2010


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

Author: Damjan Jovanovic <damjan.jov at gmail.com>
Date:   Tue Jul 20 21:16:29 2010 +0200

winemenubuilder: Always initialize COM.

---

 programs/winemenubuilder/winemenubuilder.c |   27 +++++++++------------------
 1 files changed, 9 insertions(+), 18 deletions(-)

diff --git a/programs/winemenubuilder/winemenubuilder.c b/programs/winemenubuilder/winemenubuilder.c
index 8ee8387..7641b91 100644
--- a/programs/winemenubuilder/winemenubuilder.c
+++ b/programs/winemenubuilder/winemenubuilder.c
@@ -2775,13 +2775,6 @@ static BOOL Process_Link( LPCWSTR linkname, BOOL bWait )
         return 1;
     }
 
-    r = CoInitialize( NULL );
-    if( FAILED( r ) )
-    {
-        WINE_ERR("CoInitialize failed\n");
-        return 1;
-    }
-
     r = CoCreateInstance( &CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER,
                           &IID_IShellLinkW, (LPVOID *) &sl );
     if( FAILED( r ) )
@@ -2817,8 +2810,6 @@ static BOOL Process_Link( LPCWSTR linkname, BOOL bWait )
     IPersistFile_Release( pf );
     IShellLinkW_Release( sl );
 
-    CoUninitialize();
-
     return !r;
 }
 
@@ -2845,13 +2836,6 @@ static BOOL Process_URL( LPCWSTR urlname, BOOL bWait )
         return 1;
     }
 
-    r = CoInitialize( NULL );
-    if( FAILED( r ) )
-    {
-        WINE_ERR("CoInitialize failed\n");
-        return 1;
-    }
-
     r = CoCreateInstance( &CLSID_InternetShortcut, NULL, CLSCTX_INPROC_SERVER,
                           &IID_IUniformResourceLocatorW, (LPVOID *) &url );
     if( FAILED( r ) )
@@ -2882,8 +2866,6 @@ static BOOL Process_URL( LPCWSTR urlname, BOOL bWait )
     IPersistFile_Release( pf );
     url->lpVtbl->Release( url );
 
-    CoUninitialize();
-
     return !r;
 }
 
@@ -3116,11 +3098,19 @@ int PASCAL wWinMain (HINSTANCE hInstance, HINSTANCE prev, LPWSTR cmdline, int sh
     LPWSTR token = NULL, p;
     BOOL bWait = FALSE;
     BOOL bURL = FALSE;
+    HRESULT hr;
     int ret = 0;
 
     if (!init_xdg())
         return 1;
 
+    hr = CoInitialize(NULL);
+    if (FAILED(hr))
+    {
+        WINE_ERR("could not initialize COM, error 0x%08X\n", hr);
+        return 1;
+    }
+
     for( p = cmdline; p && *p; )
     {
         token = next_token( &p );
@@ -3160,5 +3150,6 @@ int PASCAL wWinMain (HINSTANCE hInstance, HINSTANCE prev, LPWSTR cmdline, int sh
         }
     }
 
+    CoUninitialize();
     return ret;
 }




More information about the wine-cvs mailing list