ole32: Make IEnumSTATSTG functions fail when the parent is invalid.
This commit is contained in:
parent
2010e0fb28
commit
4492850200
|
@ -4513,6 +4513,9 @@ static HRESULT WINAPI IEnumSTATSTGImpl_Next(
|
|||
if ( (rgelt==0) || ( (celt!=1) && (pceltFetched==0) ) )
|
||||
return E_INVALIDARG;
|
||||
|
||||
if (This->parentStorage->reverted)
|
||||
return STG_E_REVERTED;
|
||||
|
||||
/*
|
||||
* To avoid the special case, get another pointer to a ULONG value if
|
||||
* the caller didn't supply one.
|
||||
|
@ -4588,6 +4591,9 @@ static HRESULT WINAPI IEnumSTATSTGImpl_Skip(
|
|||
ULONG objectFetched = 0;
|
||||
DirRef currentSearchNode;
|
||||
|
||||
if (This->parentStorage->reverted)
|
||||
return STG_E_REVERTED;
|
||||
|
||||
/*
|
||||
* Start with the node at the top of the stack.
|
||||
*/
|
||||
|
@ -4638,6 +4644,9 @@ static HRESULT WINAPI IEnumSTATSTGImpl_Reset(
|
|||
DirEntry storageEntry;
|
||||
HRESULT hr;
|
||||
|
||||
if (This->parentStorage->reverted)
|
||||
return STG_E_REVERTED;
|
||||
|
||||
/*
|
||||
* Re-initialize the search stack to an empty stack
|
||||
*/
|
||||
|
@ -4672,6 +4681,9 @@ static HRESULT WINAPI IEnumSTATSTGImpl_Clone(
|
|||
|
||||
IEnumSTATSTGImpl* newClone;
|
||||
|
||||
if (This->parentStorage->reverted)
|
||||
return STG_E_REVERTED;
|
||||
|
||||
/*
|
||||
* Perform a sanity check on the parameters.
|
||||
*/
|
||||
|
|
|
@ -2694,10 +2694,8 @@ static void test_substorage_enum(void)
|
|||
r = IStorage_DestroyElement(stg, stgname);
|
||||
ok(r==S_OK, "IStorage->CreateStorage failed, hr=%08x\n", r);
|
||||
|
||||
if (0) { /* crashes on wine */
|
||||
r = IEnumSTATSTG_Reset(ee);
|
||||
ok(r==STG_E_REVERTED, "IEnumSTATSTG->Reset failed, hr=%08x\n", r);
|
||||
}
|
||||
|
||||
IEnumSTATSTG_Release(ee);
|
||||
|
||||
|
|
Loading…
Reference in New Issue