scrrun: It's not allowed to change compare mode when dictionary is not empty.
This commit is contained in:
parent
94e5353f0d
commit
778d4da2d9
|
@ -41,6 +41,7 @@ typedef struct
|
|||
LONG ref;
|
||||
|
||||
CompareMethod method;
|
||||
LONG count;
|
||||
} dictionary;
|
||||
|
||||
static inline dictionary *impl_from_IDictionary(IDictionary *iface)
|
||||
|
@ -200,14 +201,13 @@ static HRESULT WINAPI dictionary_Add(IDictionary *iface, VARIANT *Key, VARIANT *
|
|||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI dictionary_get_Count(IDictionary *iface, LONG *pCount)
|
||||
static HRESULT WINAPI dictionary_get_Count(IDictionary *iface, LONG *count)
|
||||
{
|
||||
dictionary *This = impl_from_IDictionary(iface);
|
||||
|
||||
FIXME("(%p)->(%p)\n", This, pCount);
|
||||
|
||||
*pCount = 0;
|
||||
TRACE("(%p)->(%p)\n", This, count);
|
||||
|
||||
*count = This->count;
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
|
@ -271,6 +271,9 @@ static HRESULT WINAPI dictionary_put_CompareMode(IDictionary *iface, CompareMeth
|
|||
|
||||
TRACE("(%p)->(%d)\n", This, method);
|
||||
|
||||
if (This->count)
|
||||
return CTL_E_ILLEGALFUNCTIONCALL;
|
||||
|
||||
This->method = method;
|
||||
return S_OK;
|
||||
}
|
||||
|
@ -411,6 +414,7 @@ HRESULT WINAPI Dictionary_CreateInstance(IClassFactory *factory,IUnknown *outer,
|
|||
This->IDictionary_iface.lpVtbl = &dictionary_vtbl;
|
||||
This->ref = 1;
|
||||
This->method = BinaryCompare;
|
||||
This->count = 0;
|
||||
|
||||
*obj = &This->IDictionary_iface;
|
||||
|
||||
|
|
Loading…
Reference in New Issue