[2/4] wbemdisp: Implement ISWbemObjectSet::get__NewEnum.

Nikolay Sivov nsivov at codeweavers.com
Wed Jan 14 08:48:06 CST 2015


On 01/14/2015 05:36 PM, Hans Leidekker wrote:
> ---
>   dlls/wbemdisp/locator.c        | 156 +++++++++++++++++++++++++++++++++++++++--
>   dlls/wbemdisp/tests/wbemdisp.c |  69 ++++++++++++++++++
>   2 files changed, 221 insertions(+), 4 deletions(-)
>

> +static HRESULT EnumVARIANT_create( ISWbemObjectSet *objectset, IEnumVARIANT **obj )
> +{
> +    struct enumvar *enumvar;
> +
> +    if (!(enumvar = heap_alloc( sizeof(*enumvar) ))) return E_OUTOFMEMORY;
> +    enumvar->IEnumVARIANT_iface.lpVtbl = &enumvar_vtbl;
> +    enumvar->refs = 1;
> +    enumvar->objectset = objectset;
> +    ISWbemObjectSet_AddRef( enumvar->objectset );

That means that all IEnumVARIANT instances share same ISWbemObjectSet, 
so they all depend on its current state and Next/Skip on one 
IEnumVARIANT affects every instance. I don't think that's how 
IEnumVARIANT is supposed to behave.




More information about the wine-devel mailing list