diff --git a/dlls/ole32/storage32.c b/dlls/ole32/storage32.c index 623516ef5f4..bda5bdc887a 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 ffad5503051..6892996c902 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; }; /****************************************************************************