Commit 61f0bda1 authored by Huw Davies's avatar Huw Davies Committed by Alexandre Julliard

wbemdisp: Implement ISWbemObjectSet::ItemIndex.

parent 572aa0e0
......@@ -538,8 +538,39 @@ static HRESULT WINAPI objectset_ItemIndex(
LONG lIndex,
ISWbemObject **objWbemObject )
{
FIXME( "\n" );
return E_NOTIMPL;
struct objectset *objectset = impl_from_ISWbemObjectSet( iface );
LONG count;
HRESULT hr;
IEnumVARIANT *enum_var;
VARIANT var;
TRACE( "%p, %d, %p\n", objectset, lIndex, objWbemObject );
*objWbemObject = NULL;
hr = ISWbemObjectSet_get_Count( iface, &count );
if (FAILED(hr)) return hr;
if (lIndex >= count) return WBEM_E_NOT_FOUND;
hr = ISWbemObjectSet_get__NewEnum( iface, (IUnknown **)&enum_var );
if (FAILED(hr)) return hr;
IEnumVARIANT_Reset( enum_var );
hr = IEnumVARIANT_Skip( enum_var, lIndex );
if (SUCCEEDED(hr))
hr = IEnumVARIANT_Next( enum_var, 1, &var, NULL );
IEnumVARIANT_Release( enum_var );
if (SUCCEEDED(hr))
{
if (V_VT( &var ) == VT_DISPATCH)
hr = IDispatch_QueryInterface( V_DISPATCH( &var ), &IID_ISWbemObject, (void **)objWbemObject );
else
hr = WBEM_E_NOT_FOUND;
VariantClear( &var );
}
return hr;
}
static const ISWbemObjectSetVtbl objectset_vtbl =
......
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