Juan Lang : ole32/tests: Test creating an IPropertySetStorage with an unknown format id.

Alexandre Julliard julliard at winehq.org
Tue May 25 12:06:08 CDT 2010


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

Author: Juan Lang <juan.lang at gmail.com>
Date:   Mon May 24 12:10:40 2010 -0700

ole32/tests: Test creating an IPropertySetStorage with an unknown format id.

---

 dlls/ole32/tests/stg_prop.c |   56 +++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 56 insertions(+), 0 deletions(-)

diff --git a/dlls/ole32/tests/stg_prop.c b/dlls/ole32/tests/stg_prop.c
index 37e8e10..4e5fde7 100644
--- a/dlls/ole32/tests/stg_prop.c
+++ b/dlls/ole32/tests/stg_prop.c
@@ -59,6 +59,8 @@ static void testProps(void)
     PROPVARIANT var;
     CLIPDATA clipdata;
     unsigned char clipcontent[] = "foobar";
+    GUID anyOldGuid = { 0x12345678,0xdead,0xbeef, {
+     0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07 } };
 
     if(!GetTempFileNameW(szDot, szPrefix, 0, filename))
         return;
@@ -290,6 +292,60 @@ static void testProps(void)
     IStorage_Release(storage);
 
     DeleteFileW(filename);
+
+    /* Test creating a property set storage with a random GUID */
+    hr = StgCreateDocfile(filename,
+     STGM_READWRITE | STGM_SHARE_EXCLUSIVE | STGM_CREATE, 0, &storage);
+    ok(hr == S_OK, "StgCreateDocfile failed: 0x%08x\n", hr);
+
+    if(!pStgCreatePropSetStg)
+    {
+        IStorage_Release(storage);
+        DeleteFileW(filename);
+        return;
+    }
+    hr = pStgCreatePropSetStg(storage, 0, &propSetStorage);
+    ok(hr == S_OK, "StgCreatePropSetStg failed: 0x%08x\n", hr);
+
+    hr = IPropertySetStorage_Create(propSetStorage,
+     &anyOldGuid, NULL, PROPSETFLAG_ANSI,
+     STGM_READWRITE | STGM_CREATE | STGM_SHARE_EXCLUSIVE,
+     &propertyStorage);
+    ok(hr == S_OK, "IPropertySetStorage_Create failed: 0x%08x\n", hr);
+
+    spec.ulKind = PRSPEC_PROPID;
+    U(spec).propid = PID_FIRST_USABLE;
+    U(var).lVal = 1;
+    hr = IPropertyStorage_WriteMultiple(propertyStorage, 1, &spec, &var, 0);
+    ok(hr == S_OK, "WriteMultiple failed: 0x%08x\n", hr);
+
+    IPropertyStorage_Release(propertyStorage);
+    IPropertySetStorage_Release(propSetStorage);
+    IStorage_Release(storage);
+
+    /* now open it again */
+    hr = StgOpenStorage(filename, NULL, STGM_READWRITE | STGM_SHARE_EXCLUSIVE,
+     NULL, 0, &storage);
+    ok(hr == S_OK, "StgOpenStorage failed: 0x%08x\n", hr);
+
+    hr = pStgCreatePropSetStg(storage, 0, &propSetStorage);
+    ok(hr == S_OK, "StgCreatePropSetStg failed: 0x%08x\n", hr);
+
+    hr = IPropertySetStorage_Open(propSetStorage, &anyOldGuid,
+     STGM_READWRITE | STGM_SHARE_EXCLUSIVE, &propertyStorage);
+    todo_wine
+    ok(hr == S_OK, "IPropertySetStorage_Open failed: 0x%08x\n", hr);
+
+    spec.ulKind = PRSPEC_PROPID;
+    U(spec).propid = PID_FIRST_USABLE;
+    hr = IPropertyStorage_ReadMultiple(propertyStorage, 1, &spec, &var);
+    ok(hr == S_FALSE, "ReadMultiple failed: 0x%08x\n", hr);
+
+    IPropertyStorage_Release(propertyStorage);
+    IPropertySetStorage_Release(propSetStorage);
+    IStorage_Release(storage);
+
+    DeleteFileW(filename);
 }
 
 static void testCodepage(void)




More information about the wine-cvs mailing list