Esme Povirk (@madewokherd) commented about dlls/ole32/storage32.c:
+ return STG_E_ACCESSDENIED; + + /* FIXME: Handle STGTY_STORAGE */ + hr = IStorage_OpenStream(iface, name, NULL, STGM_READ | STGM_SHARE_EXCLUSIVE, 0, &src); + if (hr == S_OK) + { + STATSTG stat; + + hr = IStream_Stat(src, &stat, STATFLAG_NONAME); + if (hr != S_OK) + { + IStream_Release(src); + return hr; + } + + hr = IStorage_CreateStream(dest, new_name, STGM_WRITE | STGM_SHARE_EXCLUSIVE | STGM_FAILIFTHERE, 0, 0, &dst); I would suggest leaving out STGM_FAILIFTHERE depending on the mode, and then we don't need the extra check or OpenStream call.
-- https://gitlab.winehq.org/wine/wine/-/merge_requests/11054#note_142025