Mike McCormack : ole32: Only print a FIXME if necessary in StgOpenStorageEx .

Alexandre Julliard julliard at wine.codeweavers.com
Tue Jul 11 06:10:55 CDT 2006


Module: wine
Branch: refs/heads/master
Commit: 55ab8098547087d249747cbba4608111efa1b3eb
URL:    http://source.winehq.org/git/?p=wine.git;a=commit;h=55ab8098547087d249747cbba4608111efa1b3eb

Author: Mike McCormack <mike at codeweavers.com>
Date:   Tue Jul 11 11:38:24 2006 +0900

ole32: Only print a FIXME if necessary in StgOpenStorageEx.

---

 dlls/ole32/storage32.c |   35 ++++++++++++++++++++---------------
 1 files changed, 20 insertions(+), 15 deletions(-)

diff --git a/dlls/ole32/storage32.c b/dlls/ole32/storage32.c
index acebb98..8c7fc61 100644
--- a/dlls/ole32/storage32.c
+++ b/dlls/ole32/storage32.c
@@ -5829,28 +5829,33 @@ HRESULT WINAPI StgOpenStorageEx(const WC
         return STG_E_INVALIDPARAMETER;  
     }
 
-    if (stgfmt == STGFMT_DOCFILE && grfAttrs != 0 && grfAttrs != FILE_FLAG_NO_BUFFERING)
-    {
-        ERR("grfAttrs must be 0 or FILE_FLAG_NO_BUFFERING if stgfmt == STGFMT_DOCFILE\n");
-        return STG_E_INVALIDPARAMETER;  
-    }
-
-    if (stgfmt == STGFMT_FILE)
+    switch (stgfmt)
     {
+    case STGFMT_FILE:
         ERR("Cannot use STGFMT_FILE - this is NTFS only\n");  
         return STG_E_INVALIDPARAMETER;
-    }
+        
+    case STGFMT_STORAGE:
+        break;
 
-    if (stgfmt == STGFMT_STORAGE || stgfmt == STGFMT_DOCFILE || stgfmt == STGFMT_ANY)
-    {
-        if (stgfmt == STGFMT_ANY) 
-            WARN("STGFMT_ANY assuming storage\n");
+    case STGFMT_DOCFILE:
+        if (grfAttrs && grfAttrs != FILE_FLAG_NO_BUFFERING)
+        {
+            ERR("grfAttrs must be 0 or FILE_FLAG_NO_BUFFERING if stgfmt == STGFMT_DOCFILE\n");
+            return STG_E_INVALIDPARAMETER;  
+        }
         FIXME("Stub: calling StgOpenStorage, but ignoring pStgOptions and grfAttrs\n");
-        return StgOpenStorage(pwcsName, NULL, grfMode, (SNB)NULL, 0, (IStorage **)ppObjectOpen); 
+        break;
+
+    case STGFMT_ANY:
+        WARN("STGFMT_ANY assuming storage\n");
+        break;
+
+    default:
+        return STG_E_INVALIDPARAMETER;
     }
 
-    ERR("Invalid stgfmt argument\n");
-    return STG_E_INVALIDPARAMETER;
+    return StgOpenStorage(pwcsName, NULL, grfMode, (SNB)NULL, 0, (IStorage **)ppObjectOpen); 
 }
 
 




More information about the wine-cvs mailing list