Author: akhaldi Date: Sun Feb 26 20:10:35 2017 New Revision: 73978
URL: http://svn.reactos.org/svn/reactos?rev=73978&view=rev Log: [WBEMDISP] Sync with Wine Staging 2.2. CORE-12823
11ebda0 wbemdisp: Add ISWbemSecurity stub interface. 61f0bda wbemdisp: Implement ISWbemObjectSet::ItemIndex. b47462d wbemdisp: Return interface pointers from QI, not object pointers.
Modified: trunk/reactos/dll/win32/wbemdisp/locator.c trunk/reactos/media/doc/README.WINE
Modified: trunk/reactos/dll/win32/wbemdisp/locator.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/wbemdisp/locator.... ============================================================================== --- trunk/reactos/dll/win32/wbemdisp/locator.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/wbemdisp/locator.c [iso-8859-1] Sun Feb 26 20:10:35 2017 @@ -142,7 +142,7 @@ IsEqualGUID( riid, &IID_IDispatch ) || IsEqualGUID( riid, &IID_IUnknown )) { - *ppvObject = object; + *ppvObject = iface; } else { @@ -386,7 +386,7 @@ IsEqualGUID( riid, &IID_IDispatch ) || IsEqualGUID( riid, &IID_IUnknown )) { - *ppvObject = objectset; + *ppvObject = iface; } else { @@ -525,8 +525,39 @@ 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 = @@ -617,7 +648,7 @@ if (IsEqualGUID( riid, &IID_IEnumVARIANT ) || IsEqualGUID( riid, &IID_IUnknown )) { - *ppvObject = enumvar; + *ppvObject = iface; } else { @@ -750,7 +781,7 @@ IsEqualGUID( riid, &IID_IDispatch ) || IsEqualGUID( riid, &IID_IUnknown )) { - *ppvObject = services; + *ppvObject = iface; } else {
Modified: trunk/reactos/media/doc/README.WINE URL: http://svn.reactos.org/svn/reactos/trunk/reactos/media/doc/README.WINE?rev=7... ============================================================================== --- trunk/reactos/media/doc/README.WINE [iso-8859-1] (original) +++ trunk/reactos/media/doc/README.WINE [iso-8859-1] Sun Feb 26 20:10:35 2017 @@ -194,7 +194,7 @@ reactos/dll/win32/vbscript # Synced to WineStaging-1.9.23 reactos/dll/win32/version # Synced to WineStaging-1.9.11 reactos/dll/win32/vssapi # Synced to WineStaging-1.9.11 -reactos/dll/win32/wbemdisp # Synced to WineStaging-1.9.16 +reactos/dll/win32/wbemdisp # Synced to WineStaging-2.2 reactos/dll/win32/wbemprox # Synced to WineStaging-1.9.23 reactos/dll/win32/windowscodecs # Synced to WineStaging-1.9.23 reactos/dll/win32/windowscodecsext # Synced to WineStaging-1.9.11