Huw Davies : ole32: Store the creation flag - STGM_SIMPLE depends on this.

Alexandre Julliard julliard at winehq.org
Tue Jun 2 08:44:30 CDT 2009


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

Author: Huw Davies <huw at codeweavers.com>
Date:   Fri May 29 17:14:41 2009 +0100

ole32: Store the creation flag - STGM_SIMPLE depends on this.

---

 dlls/ole32/storage32.c |   14 +-------------
 dlls/ole32/storage32.h |    2 ++
 2 files changed, 3 insertions(+), 13 deletions(-)

diff --git a/dlls/ole32/storage32.c b/dlls/ole32/storage32.c
index 91f1f36..670d751 100644
--- a/dlls/ole32/storage32.c
+++ b/dlls/ole32/storage32.c
@@ -2407,19 +2407,13 @@ static HRESULT StorageImpl_Construct(
 
   memset(This, 0, sizeof(StorageImpl));
 
-  /*
-   * Initialize stream list
-   */
-
   list_init(&This->base.strmHead);
 
-  /*
-   * Initialize the virtual function table.
-   */
   This->base.lpVtbl = &Storage32Impl_Vtbl;
   This->base.pssVtbl = &IPropertySetStorage_Vtbl;
   This->base.v_destructor = StorageImpl_Destroy;
   This->base.openFlags = (openFlags & ~STGM_CREATE);
+  This->create = create;
 
   /*
    * This is the top-level storage so initialize the ancestor pointer
@@ -2427,14 +2421,8 @@ static HRESULT StorageImpl_Construct(
    */
   This->base.ancestorStorage = This;
 
-  /*
-   * Initialize the physical support of the storage.
-   */
   This->hFile = hFile;
 
-  /*
-   * Store copy of file path.
-   */
   if(pwcsName) {
       This->pwcsName = HeapAlloc(GetProcessHeap(), 0,
                                 (lstrlenW(pwcsName)+1)*sizeof(WCHAR));
diff --git a/dlls/ole32/storage32.h b/dlls/ole32/storage32.h
index 1e42afb..4be0631 100644
--- a/dlls/ole32/storage32.h
+++ b/dlls/ole32/storage32.h
@@ -255,6 +255,8 @@ struct StorageImpl
    */
   HANDLE           hFile;      /* Physical support for the Docfile */
   LPOLESTR         pwcsName;   /* Full path of the document file */
+  BOOL             create;     /* Was the storage created or opened.
+                                  The behaviour of STGM_SIMPLE depends on this */
 
   /* FIXME: should this be in Storage32BaseImpl ? */
   WCHAR            filename[PROPERTY_NAME_BUFFER_LEN];




More information about the wine-cvs mailing list