From: Piotr Caban piotr@codeweavers.com
--- dlls/ole32/stg_prop.c | 10 ++++++---- dlls/ole32/tests/stg_prop.c | 1 - 2 files changed, 6 insertions(+), 5 deletions(-)
diff --git a/dlls/ole32/stg_prop.c b/dlls/ole32/stg_prop.c index ee28d6b6898..5c86de027b1 100644 --- a/dlls/ole32/stg_prop.c +++ b/dlls/ole32/stg_prop.c @@ -2660,8 +2660,8 @@ static HRESULT PropertyStorage_ConstructFromStream(IStream *stm, return hr; }
-static HRESULT PropertyStorage_ConstructEmpty(IStream *stm, - REFFMTID rfmtid, DWORD grfFlags, DWORD grfMode, IPropertyStorage** pps) +static HRESULT PropertyStorage_ConstructEmpty(IStream *stm, REFFMTID rfmtid, + const CLSID *clsid, DWORD grfFlags, DWORD grfMode, IPropertyStorage** pps) { PropertyStorage_impl *ps; HRESULT hr; @@ -2670,6 +2670,8 @@ static HRESULT PropertyStorage_ConstructEmpty(IStream *stm, hr = PropertyStorage_BaseConstruct(stm, rfmtid, grfMode, &ps); if (SUCCEEDED(hr)) { + if (clsid) + ps->clsid = *clsid; ps->format = 0; ps->grfFlags = grfFlags; if (ps->grfFlags & PROPSETFLAG_CASE_SENSITIVE) @@ -2976,7 +2978,7 @@ static HRESULT WINAPI IPropertySetStorage_fnCreate( if (FAILED(r)) goto end;
- r = PropertyStorage_ConstructEmpty(stm, rfmtid, grfFlags, grfMode, ppprstg); + r = PropertyStorage_ConstructEmpty(stm, rfmtid, pclsid, grfFlags, grfMode, ppprstg);
IStream_Release( stm );
@@ -3162,7 +3164,7 @@ HRESULT WINAPI StgCreatePropStg(IUnknown *unk, REFFMTID fmt, const CLSID *clsid, if (FAILED(r)) goto end;
- r = PropertyStorage_ConstructEmpty(stm, fmt, flags, + r = PropertyStorage_ConstructEmpty(stm, fmt, clsid, flags, STGM_CREATE|STGM_READWRITE|STGM_SHARE_EXCLUSIVE, prop_stg);
IStream_Release( stm ); diff --git a/dlls/ole32/tests/stg_prop.c b/dlls/ole32/tests/stg_prop.c index 17f361d57ef..1b08833adbe 100644 --- a/dlls/ole32/tests/stg_prop.c +++ b/dlls/ole32/tests/stg_prop.c @@ -755,7 +755,6 @@ static void test_propertyset_storage_enum(void)
hr = IPropertyStorage_Stat(prop_storage, &psstg); ok(hr == S_OK, "Failed to get prop storage stats, hr %#lx.\n", hr); - todo_wine ok(IsEqualCLSID(&psstg.clsid, &IID_IUnknown), "Unexpected storage clsid %s.\n", wine_dbgstr_guid(&psstg.clsid));
hr = IPropertySetStorage_Enum(ps_storage, NULL);