https://bugs.winehq.org/show_bug.cgi?id=44926
--- Comment #13 from Sagawa sagawa.aki+winebugs@gmail.com --- Though my MR was merged, the installer still fails. This is due to failure of IPersistFile::Save method.
In detail, Wix custom action code[1] keeps IPropertyStorage aka piStorage after Commit method, and then calls IPersistFile::Save method. With Wine's current implementation, IPersistFile::Save method internally opens property storage via IPropertySetStorage::Open method[2]. However, the property storage has been opened as piStorage and it's not closed by IPropertyStorage::Release method. Therefore, opening the property storage in IPersistFile::Save method fails at that point.
Compound File-based IPropertySetStorage::Open requires STGM_SHARE_EXCLUSIVE flag to open a property storage. So, to fix this issue, I guess we need our own IPropertyStorage implementation in ieframe.dll.
[1] https://github.com/wixtoolset/wix3/blob/63312bc3a663c22f8f78cfdf4af4281310fd... [2] https://gitlab.winehq.org/wine/wine/-/blob/120ca2ff52d145faa925a41d494035842...