From: Piotr Caban <piotr(a)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); -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/7192