Commit b1281f9c authored by Akihiro Sagawa's avatar Akihiro Sagawa Committed by Alexandre Julliard

ieframe: Allow STGM_WRITE in IPropertyStorage::Open.

parent e31ec426
...@@ -718,9 +718,14 @@ static HRESULT WINAPI PropertySetStorage_Open( ...@@ -718,9 +718,14 @@ static HRESULT WINAPI PropertySetStorage_Open(
DWORD grfMode, DWORD grfMode,
IPropertyStorage **ppprstg) IPropertyStorage **ppprstg)
{ {
const DWORD STGM_ACCESS_MASK = 0x0000000f;
InternetShortcut *This = impl_from_IPropertySetStorage(iface); InternetShortcut *This = impl_from_IPropertySetStorage(iface);
TRACE("(%s, 0x%lx, %p)\n", debugstr_guid(rfmtid), grfMode, ppprstg); TRACE("(%s, 0x%lx, %p)\n", debugstr_guid(rfmtid), grfMode, ppprstg);
/* ole32 doesn't like STGM_WRITE */
if ((grfMode & STGM_ACCESS_MASK) == STGM_WRITE)
grfMode = (grfMode & ~STGM_ACCESS_MASK) | STGM_READWRITE;
/* Note: The |STGM_SHARE_EXCLUSIVE is to cope with a bug in the implementation. Should be fixed in ole32. */ /* Note: The |STGM_SHARE_EXCLUSIVE is to cope with a bug in the implementation. Should be fixed in ole32. */
return IPropertySetStorage_Open(This->property_set_storage, return IPropertySetStorage_Open(This->property_set_storage,
rfmtid, rfmtid,
......
...@@ -236,7 +236,7 @@ static void test_ReadAndWriteProperties(void) ...@@ -236,7 +236,7 @@ static void test_ReadAndWriteProperties(void)
/* Test with STGM_WRITE */ /* Test with STGM_WRITE */
hr = IPropertySetStorage_Open(pPropSetStg, &FMTID_Intshcut, STGM_WRITE, &pPropStgWrite); hr = IPropertySetStorage_Open(pPropSetStg, &FMTID_Intshcut, STGM_WRITE, &pPropStgWrite);
todo_wine ok(hr == S_OK, "Unable to get an IPropertyStorage for writing, hr=0x%lx\n", hr); ok(hr == S_OK, "Unable to get an IPropertyStorage for writing, hr=0x%lx\n", hr);
if (hr == S_OK) if (hr == S_OK)
{ {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment