ecore_win32: don't fail if OleInitialize() had been called before.
authorAdrien Nader <adrien@notk.org>
Sat, 18 Apr 2015 15:24:53 +0000 (17:24 +0200)
committerCedric BAIL <cedric@osg.samsung.com>
Sat, 18 Apr 2015 15:24:53 +0000 (17:24 +0200)
src/lib/ecore_win32/ecore_win32_dnd.c

index 6c5253ae20c6b811d47efb67a5dfe435f0d7a492..a99d26c524322b86e7fa70e99a6abfea77006b44 100755 (executable)
@@ -61,14 +61,20 @@ static HANDLE DataToHandle(const char *data, int size)
 EAPI int
 ecore_win32_dnd_init()
 {
+   HRESULT res;
+
    if (_ecore_win32_dnd_init_count > 0)
      {
-       _ecore_win32_dnd_init_count++;
-       return _ecore_win32_dnd_init_count;
+        _ecore_win32_dnd_init_count++;
+        return _ecore_win32_dnd_init_count;
      }
 
-   if (OleInitialize(NULL) != S_OK)
-     return 0;
+   res = OleInitialize(NULL);
+   if ((res != S_OK) && (res != S_FALSE))
+     {
+        EINA_LOG_ERR("OleInitialize(NULL) returned %ld.", (long) res);
+        return 0;
+     }
 
    _ecore_win32_dnd_init_count++;