[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