Author: akhaldi
Date: Sun Jun 4 01:47:30 2017
New Revision: 74857
URL:
http://svn.reactos.org/svn/reactos?rev=74857&view=rev
Log:
[WBEMDISP] Sync with Wine Staging 2.9. CORE-13362
a392e14 wbemdisp: Implement ISWbemProperty::get_Value.
6721725 wbemdisp: Implement ISWbemPropertySet::Item.
cb2660b wbemdisp: Implement ISWbemObject::get_Properties_.
a11aed3 wbemdisp: Invoke the generic methods and properties as well as the dynamic ones.
66edb81 wbemdisp: Search for the generic methods and properties as well as the dynamic
ones.
c1242a2 wbemdisp: Add missing methods to the ISWbemObjectVtbl.
64be3a2 wbemdisp: Simplify and standardize the heap_xxx() declarations.
Modified:
trunk/reactos/dll/win32/wbemdisp/locator.c
trunk/reactos/dll/win32/wbemdisp/wbemdisp_private.h
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 Jun 4 01:47:30 2017
@@ -28,6 +28,8 @@
ISWbemLocator_tid,
ISWbemObject_tid,
ISWbemObjectSet_tid,
+ ISWbemProperty_tid,
+ ISWbemPropertySet_tid,
ISWbemServices_tid,
ISWbemSecurity_tid,
last_tid
@@ -41,6 +43,8 @@
&IID_ISWbemLocator,
&IID_ISWbemObject,
&IID_ISWbemObjectSet,
+ &IID_ISWbemProperty,
+ &IID_ISWbemPropertySet,
&IID_ISWbemServices,
&IID_ISWbemSecurity
};
@@ -80,6 +84,393 @@
return S_OK;
}
+struct property
+{
+ ISWbemProperty ISWbemProperty_iface;
+ LONG refs;
+ IWbemClassObject *object;
+ BSTR name;
+};
+
+static inline struct property *impl_from_ISWbemProperty( ISWbemProperty *iface )
+{
+ return CONTAINING_RECORD( iface, struct property, ISWbemProperty_iface );
+}
+
+static ULONG WINAPI property_AddRef( ISWbemProperty *iface )
+{
+ struct property *property = impl_from_ISWbemProperty( iface );
+ return InterlockedIncrement( &property->refs );
+}
+
+static ULONG WINAPI property_Release( ISWbemProperty *iface )
+{
+ struct property *property = impl_from_ISWbemProperty( iface );
+ LONG refs = InterlockedDecrement( &property->refs );
+ if (!refs)
+ {
+ TRACE( "destroying %p\n", property );
+ IWbemClassObject_Release( property->object );
+ SysFreeString( property->name );
+ heap_free( property );
+ }
+ return refs;
+}
+
+static HRESULT WINAPI property_QueryInterface( ISWbemProperty *iface, REFIID riid, void
**obj )
+{
+ struct property *property = impl_from_ISWbemProperty( iface );
+
+ TRACE( "%p %s %p\n", property, debugstr_guid(riid), obj );
+
+ if (IsEqualGUID( riid, &IID_ISWbemProperty ) ||
+ IsEqualGUID( riid, &IID_IDispatch ) ||
+ IsEqualGUID( riid, &IID_IUnknown ))
+ {
+ *obj = iface;
+ }
+ else
+ {
+ FIXME( "interface %s not implemented\n", debugstr_guid(riid) );
+ return E_NOINTERFACE;
+ }
+ ISWbemProperty_AddRef( iface );
+ return S_OK;
+}
+
+static HRESULT WINAPI property_GetTypeInfoCount( ISWbemProperty *iface, UINT *count )
+{
+ struct property *property = impl_from_ISWbemProperty( iface );
+ TRACE( "%p, %p\n", property, count );
+ *count = 1;
+ return S_OK;
+}
+
+static HRESULT WINAPI property_GetTypeInfo( ISWbemProperty *iface, UINT index,
+ LCID lcid, ITypeInfo **info )
+{
+ struct property *property = impl_from_ISWbemProperty( iface );
+ TRACE( "%p, %u, %u, %p\n", property, index, lcid, info );
+
+ return get_typeinfo( ISWbemProperty_tid, info );
+}
+
+static HRESULT WINAPI property_GetIDsOfNames( ISWbemProperty *iface, REFIID riid,
LPOLESTR *names,
+ UINT count, LCID lcid, DISPID *dispid )
+{
+ struct property *property = impl_from_ISWbemProperty( iface );
+ ITypeInfo *typeinfo;
+ HRESULT hr;
+
+ TRACE( "%p, %s, %p, %u, %u, %p\n", property, debugstr_guid(riid), names,
count, lcid, dispid );
+
+ if (!names || !count || !dispid) return E_INVALIDARG;
+
+ hr = get_typeinfo( ISWbemProperty_tid, &typeinfo );
+ if (SUCCEEDED(hr))
+ {
+ hr = ITypeInfo_GetIDsOfNames( typeinfo, names, count, dispid );
+ ITypeInfo_Release( typeinfo );
+ }
+ return hr;
+}
+
+static HRESULT WINAPI property_Invoke( ISWbemProperty *iface, DISPID member, REFIID
riid,
+ LCID lcid, WORD flags, DISPPARAMS *params,
+ VARIANT *result, EXCEPINFO *excep_info, UINT
*arg_err )
+{
+ struct property *property = impl_from_ISWbemProperty( iface );
+ ITypeInfo *typeinfo;
+ HRESULT hr;
+
+ TRACE( "%p, %d, %s, %d, %d, %p, %p, %p, %p\n", property, member,
debugstr_guid(riid),
+ lcid, flags, params, result, excep_info, arg_err );
+
+ hr = get_typeinfo( ISWbemProperty_tid, &typeinfo );
+ if (SUCCEEDED(hr))
+ {
+ hr = ITypeInfo_Invoke( typeinfo, &property->ISWbemProperty_iface, member,
flags,
+ params, result, excep_info, arg_err );
+ ITypeInfo_Release( typeinfo );
+ }
+ return hr;
+}
+
+static HRESULT WINAPI property_get_Value( ISWbemProperty *iface, VARIANT *value )
+{
+ struct property *property = impl_from_ISWbemProperty( iface );
+
+ TRACE( "%p %p\n", property, value );
+
+ return IWbemClassObject_Get( property->object, property->name, 0, value, NULL,
NULL );
+}
+
+static HRESULT WINAPI property_put_Value( ISWbemProperty *iface, VARIANT *varValue )
+{
+ FIXME( "\n" );
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI property_get_Name( ISWbemProperty *iface, BSTR *strName )
+{
+ FIXME( "\n" );
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI property_get_IsLocal( ISWbemProperty *iface, VARIANT_BOOL *bIsLocal
)
+{
+ FIXME( "\n" );
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI property_get_Origin( ISWbemProperty *iface, BSTR *strOrigin )
+{
+ FIXME( "\n" );
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI property_get_CIMType( ISWbemProperty *iface, WbemCimtypeEnum
*iCimType )
+{
+ FIXME( "\n" );
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI property_get_Qualifiers_( ISWbemProperty *iface, ISWbemQualifierSet
**objWbemQualifierSet )
+{
+ FIXME( "\n" );
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI property_get_IsArray( ISWbemProperty *iface, VARIANT_BOOL *bIsArray
)
+{
+ FIXME( "\n" );
+ return E_NOTIMPL;
+}
+
+static const ISWbemPropertyVtbl property_vtbl =
+{
+ property_QueryInterface,
+ property_AddRef,
+ property_Release,
+ property_GetTypeInfoCount,
+ property_GetTypeInfo,
+ property_GetIDsOfNames,
+ property_Invoke,
+ property_get_Value,
+ property_put_Value,
+ property_get_Name,
+ property_get_IsLocal,
+ property_get_Origin,
+ property_get_CIMType,
+ property_get_Qualifiers_,
+ property_get_IsArray
+};
+
+static HRESULT SWbemProperty_create( IWbemClassObject *wbem_object, BSTR name,
ISWbemProperty **obj )
+{
+ struct property *property;
+
+ TRACE( "%p, %p\n", obj, wbem_object );
+
+ if (!(property = heap_alloc( sizeof(*property) ))) return E_OUTOFMEMORY;
+ property->ISWbemProperty_iface.lpVtbl = &property_vtbl;
+ property->refs = 1;
+ property->object = wbem_object;
+ IWbemClassObject_AddRef( property->object );
+ property->name = SysAllocStringLen( name, SysStringLen( name ) );
+ *obj = &property->ISWbemProperty_iface;
+ TRACE( "returning iface %p\n", *obj );
+ return S_OK;
+}
+
+struct propertyset
+{
+ ISWbemPropertySet ISWbemPropertySet_iface;
+ LONG refs;
+ IWbemClassObject *object;
+};
+
+static inline struct propertyset *impl_from_ISWbemPropertySet(
+ ISWbemPropertySet *iface )
+{
+ return CONTAINING_RECORD( iface, struct propertyset, ISWbemPropertySet_iface );
+}
+
+static ULONG WINAPI propertyset_AddRef( ISWbemPropertySet *iface )
+{
+ struct propertyset *propertyset = impl_from_ISWbemPropertySet( iface );
+ return InterlockedIncrement( &propertyset->refs );
+}
+
+static ULONG WINAPI propertyset_Release( ISWbemPropertySet *iface )
+{
+ struct propertyset *propertyset = impl_from_ISWbemPropertySet( iface );
+ LONG refs = InterlockedDecrement( &propertyset->refs );
+ if (!refs)
+ {
+ TRACE( "destroying %p\n", propertyset );
+ IWbemClassObject_Release( propertyset->object );
+ heap_free( propertyset );
+ }
+ return refs;
+}
+
+static HRESULT WINAPI propertyset_QueryInterface( ISWbemPropertySet *iface,
+ REFIID riid, void **obj )
+{
+ struct propertyset *propertyset = impl_from_ISWbemPropertySet( iface );
+
+ TRACE( "%p %s %p\n", propertyset, debugstr_guid(riid), obj );
+
+ if (IsEqualGUID( riid, &IID_ISWbemPropertySet ) ||
+ IsEqualGUID( riid, &IID_IDispatch ) ||
+ IsEqualGUID( riid, &IID_IUnknown ))
+ {
+ *obj = iface;
+ }
+ else
+ {
+ FIXME( "interface %s not implemented\n", debugstr_guid(riid) );
+ return E_NOINTERFACE;
+ }
+ ISWbemPropertySet_AddRef( iface );
+ return S_OK;
+}
+
+static HRESULT WINAPI propertyset_GetTypeInfoCount( ISWbemPropertySet *iface, UINT *count
)
+{
+ struct propertyset *propertyset = impl_from_ISWbemPropertySet( iface );
+ TRACE( "%p, %p\n", propertyset, count );
+ *count = 1;
+ return S_OK;
+}
+
+static HRESULT WINAPI propertyset_GetTypeInfo( ISWbemPropertySet *iface,
+ UINT index, LCID lcid, ITypeInfo **info )
+{
+ struct propertyset *propertyset = impl_from_ISWbemPropertySet( iface );
+ TRACE( "%p, %u, %u, %p\n", propertyset, index, lcid, info );
+
+ return get_typeinfo( ISWbemPropertySet_tid, info );
+}
+
+static HRESULT WINAPI propertyset_GetIDsOfNames( ISWbemPropertySet *iface, REFIID riid,
LPOLESTR *names,
+ UINT count, LCID lcid, DISPID *dispid )
+{
+ struct propertyset *propertyset = impl_from_ISWbemPropertySet( iface );
+ ITypeInfo *typeinfo;
+ HRESULT hr;
+
+ TRACE( "%p, %s, %p, %u, %u, %p\n", propertyset, debugstr_guid(riid), names,
count, lcid, dispid );
+
+ if (!names || !count || !dispid) return E_INVALIDARG;
+
+ hr = get_typeinfo( ISWbemPropertySet_tid, &typeinfo );
+ if (SUCCEEDED(hr))
+ {
+ hr = ITypeInfo_GetIDsOfNames( typeinfo, names, count, dispid );
+ ITypeInfo_Release( typeinfo );
+ }
+ return hr;
+}
+
+static HRESULT WINAPI propertyset_Invoke( ISWbemPropertySet *iface, DISPID member, REFIID
riid,
+ LCID lcid, WORD flags, DISPPARAMS *params,
+ VARIANT *result, EXCEPINFO *excep_info, UINT
*arg_err )
+{
+ struct propertyset *propertyset = impl_from_ISWbemPropertySet( iface );
+ ITypeInfo *typeinfo;
+ HRESULT hr;
+
+ TRACE( "%p, %d, %s, %d, %d, %p, %p, %p, %p\n", propertyset, member,
debugstr_guid(riid),
+ lcid, flags, params, result, excep_info, arg_err );
+
+ hr = get_typeinfo( ISWbemPropertySet_tid, &typeinfo );
+ if (SUCCEEDED(hr))
+ {
+ hr = ITypeInfo_Invoke( typeinfo, &propertyset->ISWbemPropertySet_iface,
member, flags,
+ params, result, excep_info, arg_err );
+ ITypeInfo_Release( typeinfo );
+ }
+ return hr;
+}
+
+static HRESULT WINAPI propertyset_get__NewEnum( ISWbemPropertySet *iface, IUnknown **unk
)
+{
+ FIXME( "\n" );
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI propertyset_Item( ISWbemPropertySet *iface, BSTR name,
+ LONG flags, ISWbemProperty **prop )
+{
+ struct propertyset *propertyset = impl_from_ISWbemPropertySet( iface );
+ HRESULT hr;
+ VARIANT var;
+
+ TRACE( "%p, %s, %08x, %p", propertyset, debugstr_w(name), flags, prop );
+
+ hr = IWbemClassObject_Get( propertyset->object, name, 0, &var, NULL, NULL );
+ if (SUCCEEDED(hr))
+ {
+ hr = SWbemProperty_create( propertyset->object, name, prop );
+ VariantClear( &var );
+ }
+ return hr;
+}
+
+static HRESULT WINAPI propertyset_get_Count( ISWbemPropertySet *iface, LONG *count )
+{
+ FIXME( "\n" );
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI propertyset_Add( ISWbemPropertySet *iface, BSTR name,
WbemCimtypeEnum type,
+ VARIANT_BOOL is_array, LONG flags, ISWbemProperty
**prop )
+{
+ FIXME( "\n" );
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI propertyset_Remove( ISWbemPropertySet *iface, BSTR name, LONG flags
)
+{
+ FIXME( "\n" );
+ return E_NOTIMPL;
+}
+
+static const ISWbemPropertySetVtbl propertyset_vtbl =
+{
+ propertyset_QueryInterface,
+ propertyset_AddRef,
+ propertyset_Release,
+ propertyset_GetTypeInfoCount,
+ propertyset_GetTypeInfo,
+ propertyset_GetIDsOfNames,
+ propertyset_Invoke,
+ propertyset_get__NewEnum,
+ propertyset_Item,
+ propertyset_get_Count,
+ propertyset_Add,
+ propertyset_Remove
+};
+
+static HRESULT SWbemPropertySet_create( IWbemClassObject *wbem_object, ISWbemPropertySet
**obj )
+{
+ struct propertyset *propertyset;
+
+ TRACE( "%p, %p\n", obj, wbem_object );
+
+ if (!(propertyset = heap_alloc( sizeof(*propertyset) ))) return E_OUTOFMEMORY;
+ propertyset->ISWbemPropertySet_iface.lpVtbl = &propertyset_vtbl;
+ propertyset->refs = 1;
+ propertyset->object = wbem_object;
+ IWbemClassObject_AddRef( propertyset->object );
+ *obj = &propertyset->ISWbemPropertySet_iface;
+
+ TRACE( "returning iface %p\n", *obj );
+ return S_OK;
+}
+
#define DISPID_BASE 0x1800000
struct member
@@ -174,8 +565,6 @@
FIXME( "%p, %u, %u, %p\n", object, index, lcid, info );
return E_NOTIMPL;
}
-
-#define DISPID_BASE 0x1800000
static HRESULT init_members( struct object *object )
{
@@ -241,6 +630,7 @@
struct object *object = impl_from_ISWbemObject( iface );
HRESULT hr;
UINT i;
+ ITypeInfo *typeinfo;
TRACE( "%p, %s, %p, %u, %u, %p\n", object, debugstr_guid(riid), names,
count, lcid, dispid );
@@ -248,6 +638,14 @@
hr = init_members( object );
if (FAILED( hr )) return hr;
+
+ hr = get_typeinfo( ISWbemObject_tid, &typeinfo );
+ if (SUCCEEDED(hr))
+ {
+ hr = ITypeInfo_GetIDsOfNames( typeinfo, names, count, dispid );
+ ITypeInfo_Release( typeinfo );
+ }
+ if (SUCCEEDED(hr)) return hr;
for (i = 0; i < count; i++)
{
@@ -280,10 +678,24 @@
{
struct object *object = impl_from_ISWbemObject( iface );
BSTR name;
+ ITypeInfo *typeinfo;
+ HRESULT hr;
TRACE( "%p, %x, %s, %u, %x, %p, %p, %p, %p\n", object, member,
debugstr_guid(riid),
lcid, flags, params, result, excep_info, arg_err );
+ if (member <= DISPID_BASE)
+ {
+ hr = get_typeinfo( ISWbemObject_tid, &typeinfo );
+ if (SUCCEEDED(hr))
+ {
+ hr = ITypeInfo_Invoke( typeinfo, &object->ISWbemObject_iface, member,
flags,
+ params, result, excep_info, arg_err );
+ ITypeInfo_Release( typeinfo );
+ }
+ return hr;
+ }
+
if (flags != (DISPATCH_METHOD|DISPATCH_PROPERTYGET))
{
FIXME( "flags %x not supported\n", flags );
@@ -301,6 +713,265 @@
LONG iFlags,
IDispatch *objWbemNamedValueSet,
ISWbemObjectPath **objWbemObjectPath )
+{
+ FIXME( "\n" );
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI object_PutAsync_(
+ ISWbemObject *iface,
+ IDispatch *objWbemSink,
+ LONG iFlags,
+ IDispatch *objWbemNamedValueSet,
+ IDispatch *objWbemAsyncContext )
+{
+ FIXME( "\n" );
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI object_Delete_(
+ ISWbemObject *iface,
+ LONG iFlags,
+ IDispatch *objWbemNamedValueSet )
+{
+ FIXME( "\n" );
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI object_DeleteAsync_(
+ ISWbemObject *iface,
+ IDispatch *objWbemSink,
+ LONG iFlags,
+ IDispatch *objWbemNamedValueSet,
+ IDispatch *objWbemAsyncContext )
+{
+ FIXME( "\n" );
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI object_Instances_(
+ ISWbemObject *iface,
+ LONG iFlags,
+ IDispatch *objWbemNamedValueSet,
+ ISWbemObjectSet **objWbemObjectSet )
+{
+ FIXME( "\n" );
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI object_InstancesAsync_(
+ ISWbemObject *iface,
+ IDispatch *objWbemSink,
+ LONG iFlags,
+ IDispatch *objWbemNamedValueSet,
+ IDispatch *objWbemAsyncContext )
+{
+ FIXME( "\n" );
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI object_Subclasses_(
+ ISWbemObject *iface,
+ LONG iFlags,
+ IDispatch *objWbemNamedValueSet,
+ ISWbemObjectSet **objWbemObjectSet )
+{
+ FIXME( "\n" );
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI object_SubclassesAsync_(
+ ISWbemObject *iface,
+ IDispatch *objWbemSink,
+ LONG iFlags,
+ IDispatch *objWbemNamedValueSet,
+ IDispatch *objWbemAsyncContext )
+{
+ FIXME( "\n" );
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI object_Associators_(
+ ISWbemObject *iface,
+ BSTR strAssocClass,
+ BSTR strResultClass,
+ BSTR strResultRole,
+ BSTR strRole,
+ VARIANT_BOOL bClassesOnly,
+ VARIANT_BOOL bSchemaOnly,
+ BSTR strRequiredAssocQualifier,
+ BSTR strRequiredQualifier,
+ LONG iFlags,
+ IDispatch *objWbemNamedValueSet,
+ ISWbemObjectSet **objWbemObjectSet )
+{
+ FIXME( "\n" );
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI object_AssociatorsAsync_(
+ ISWbemObject *iface,
+ IDispatch *objWbemSink,
+ BSTR strAssocClass,
+ BSTR strResultClass,
+ BSTR strResultRole,
+ BSTR strRole,
+ VARIANT_BOOL bClassesOnly,
+ VARIANT_BOOL bSchemaOnly,
+ BSTR strRequiredAssocQualifier,
+ BSTR strRequiredQualifier,
+ LONG iFlags,
+ IDispatch *objWbemNamedValueSet,
+ IDispatch *objWbemAsyncContext )
+{
+ FIXME( "\n" );
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI object_References_(
+ ISWbemObject *iface,
+ BSTR strResultClass,
+ BSTR strRole,
+ VARIANT_BOOL bClassesOnly,
+ VARIANT_BOOL bSchemaOnly,
+ BSTR strRequiredQualifier,
+ LONG iFlags,
+ IDispatch *objWbemNamedValueSet,
+ ISWbemObjectSet **objWbemObjectSet )
+{
+ FIXME( "\n" );
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI object_ReferencesAsync_(
+ ISWbemObject *iface,
+ IDispatch *objWbemSink,
+ BSTR strResultClass,
+ BSTR strRole,
+ VARIANT_BOOL bClassesOnly,
+ VARIANT_BOOL bSchemaOnly,
+ BSTR strRequiredQualifier,
+ LONG iFlags,
+ IDispatch *objWbemNamedValueSet,
+ IDispatch *objWbemAsyncContext )
+{
+ FIXME( "\n" );
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI object_ExecMethod_(
+ ISWbemObject *iface,
+ BSTR strMethodName,
+ IDispatch *objWbemInParameters,
+ LONG iFlags,
+ IDispatch *objWbemNamedValueSet,
+ ISWbemObject **objWbemOutParameters )
+{
+ FIXME( "\n" );
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI object_ExecMethodAsync_(
+ ISWbemObject *iface,
+ IDispatch *objWbemSink,
+ BSTR strMethodName,
+ IDispatch *objWbemInParameters,
+ LONG iFlags,
+ IDispatch *objWbemNamedValueSet,
+ IDispatch *objWbemAsyncContext )
+{
+ FIXME( "\n" );
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI object_Clone_(
+ ISWbemObject *iface,
+ ISWbemObject **objWbemObject )
+{
+ FIXME( "\n" );
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI object_GetObjectText_(
+ ISWbemObject *iface,
+ LONG iFlags,
+ BSTR *strObjectText )
+{
+ FIXME( "\n" );
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI object_SpawnDerivedClass_(
+ ISWbemObject *iface,
+ LONG iFlags,
+ ISWbemObject **objWbemObject )
+{
+ FIXME( "\n" );
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI object_SpawnInstance_(
+ ISWbemObject *iface,
+ LONG iFlags,
+ ISWbemObject **objWbemObject )
+{
+ FIXME( "\n" );
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI object_CompareTo_(
+ ISWbemObject *iface,
+ IDispatch *objWbemObject,
+ LONG iFlags,
+ VARIANT_BOOL *bResult )
+{
+ FIXME( "\n" );
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI object_get_Qualifiers_(
+ ISWbemObject *iface,
+ ISWbemQualifierSet **objWbemQualifierSet )
+{
+ FIXME( "\n" );
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI object_get_Properties_( ISWbemObject *iface, ISWbemPropertySet
**prop_set )
+{
+ struct object *object = impl_from_ISWbemObject( iface );
+
+ TRACE( "%p, %p\n", object, prop_set );
+ return SWbemPropertySet_create( object->object, prop_set );
+}
+
+static HRESULT WINAPI object_get_Methods_(
+ ISWbemObject *iface,
+ ISWbemMethodSet **objWbemMethodSet )
+{
+ FIXME( "\n" );
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI object_get_Derivation_(
+ ISWbemObject *iface,
+ VARIANT *strClassNameArray )
+{
+ FIXME( "\n" );
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI object_get_Path_(
+ ISWbemObject *iface,
+ ISWbemObjectPath **objWbemObjectPath )
+{
+ FIXME( "\n" );
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI object_get_Security_(
+ ISWbemObject *iface,
+ ISWbemSecurity **objWbemSecurity )
{
FIXME( "\n" );
return E_NOTIMPL;
@@ -315,7 +986,31 @@
object_GetTypeInfo,
object_GetIDsOfNames,
object_Invoke,
- object_Put_
+ object_Put_,
+ object_PutAsync_,
+ object_Delete_,
+ object_DeleteAsync_,
+ object_Instances_,
+ object_InstancesAsync_,
+ object_Subclasses_,
+ object_SubclassesAsync_,
+ object_Associators_,
+ object_AssociatorsAsync_,
+ object_References_,
+ object_ReferencesAsync_,
+ object_ExecMethod_,
+ object_ExecMethodAsync_,
+ object_Clone_,
+ object_GetObjectText_,
+ object_SpawnDerivedClass_,
+ object_SpawnInstance_,
+ object_CompareTo_,
+ object_get_Qualifiers_,
+ object_get_Properties_,
+ object_get_Methods_,
+ object_get_Derivation_,
+ object_get_Path_,
+ object_get_Security_
};
static HRESULT SWbemObject_create( IWbemClassObject *wbem_object, ISWbemObject **obj )
Modified: trunk/reactos/dll/win32/wbemdisp/wbemdisp_private.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/wbemdisp/wbemdis…
==============================================================================
--- trunk/reactos/dll/win32/wbemdisp/wbemdisp_private.h [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/wbemdisp/wbemdisp_private.h [iso-8859-1] Sun Jun 4 01:47:30
2017
@@ -42,15 +42,14 @@
HRESULT SWbemLocator_create(LPVOID *) DECLSPEC_HIDDEN;
-static void *heap_alloc( size_t len ) __WINE_ALLOC_SIZE(1);
-static inline void *heap_alloc( size_t len )
+static inline void* __WINE_ALLOC_SIZE(1) heap_alloc(size_t size)
{
- return HeapAlloc( GetProcessHeap(), 0, len );
+ return HeapAlloc(GetProcessHeap(), 0, size);
}
-static inline BOOL heap_free( void *mem )
+static inline BOOL heap_free(void *mem)
{
- return HeapFree( GetProcessHeap(), 0, mem );
+ return HeapFree(GetProcessHeap(), 0, mem);
}
#endif /* _WBEMDISP_PRIVATE_H_ */
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 Jun 4 01:47:30 2017
@@ -194,7 +194,7 @@
reactos/dll/win32/vbscript # Synced to WineStaging-2.9
reactos/dll/win32/version # Synced to WineStaging-2.9
reactos/dll/win32/vssapi # Synced to WineStaging-1.9.11
-reactos/dll/win32/wbemdisp # Synced to WineStaging-2.2
+reactos/dll/win32/wbemdisp # Synced to WineStaging-2.9
reactos/dll/win32/wbemprox # Synced to WineStaging-2.2
reactos/dll/win32/windowscodecs # Synced to WineStaging-1.9.23
reactos/dll/win32/windowscodecsext # Synced to WineStaging-1.9.11