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=…
==============================================================================
--- 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