Aric Stewart : ole32: Implementation of state bits for IStorage.

Alexandre Julliard julliard at wine.codeweavers.com
Thu Jun 7 16:26:40 CDT 2007


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

Author: Aric Stewart <aric at codeweavers.com>
Date:   Thu Jun  7 13:17:56 2007 -0500

ole32: Implementation of state bits for IStorage.

---

 dlls/ole32/storage32.c |    6 ++++--
 dlls/ole32/storage32.h |    5 +++++
 2 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/dlls/ole32/storage32.c b/dlls/ole32/storage32.c
index 623516e..bda5bdc 100644
--- a/dlls/ole32/storage32.c
+++ b/dlls/ole32/storage32.c
@@ -753,6 +753,7 @@ static HRESULT WINAPI StorageBaseImpl_Stat(
       grfStatFlag);
 
     pstatstg->grfMode = This->openFlags;
+    pstatstg->grfStateBits = This->stateBits;
 
     res = S_OK;
     goto end;
@@ -2352,8 +2353,9 @@ static HRESULT WINAPI StorageImpl_SetStateBits(
   DWORD         grfStateBits,/* [in] */
   DWORD         grfMask)     /* [in] */
 {
-  FIXME("not implemented!\n");
-  return E_NOTIMPL;
+  StorageImpl* const This = (StorageImpl*)iface;
+  This->base.stateBits = (This->base.stateBits & ~grfMask) | (grfStateBits & grfMask);
+  return S_OK;
 }
 
 /*
diff --git a/dlls/ole32/storage32.h b/dlls/ole32/storage32.h
index ffad550..6892996 100644
--- a/dlls/ole32/storage32.h
+++ b/dlls/ole32/storage32.h
@@ -245,6 +245,11 @@ struct StorageBaseImpl
    * flags that this storage was opened or created with
    */
   DWORD openFlags;
+
+  /*
+   * State bits appear to only be preserved while running. No in the stream
+   */
+  DWORD stateBits;
 };
 
 /****************************************************************************




More information about the wine-cvs mailing list