From: Hans Leidekker hans@codeweavers.com
--- dlls/wbemprox/class.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/dlls/wbemprox/class.c b/dlls/wbemprox/class.c index 19f8d79d51b..63df0e42688 100644 --- a/dlls/wbemprox/class.c +++ b/dlls/wbemprox/class.c @@ -276,6 +276,7 @@ struct class_object LONG refs; WCHAR *name; IEnumWbemClassObject *iter; + LONG flags; UINT index; UINT index_method; UINT index_property; @@ -519,9 +520,10 @@ static HRESULT WINAPI class_object_BeginEnumeration(
TRACE( "%p, %#lx\n", iface, lEnumFlags );
- if (lEnumFlags) FIXME( "flags %#lx not supported\n", lEnumFlags ); + if (lEnumFlags & ~WBEM_FLAG_NONSYSTEM_ONLY) FIXME( "flags %#lx not supported\n", lEnumFlags );
co->index_property = 0; + co->flags = lEnumFlags; return S_OK; }
@@ -549,7 +551,9 @@ static HRESULT WINAPI class_object_Next( return WBEM_E_INVALID_PARAMETER; }
- view_idx_start = obj->record ? 0 : system_prop_count; + if (obj->record || (obj->flags & WBEM_FLAG_NONSYSTEM_ONLY)) view_idx_start = 0; + else view_idx_start = system_prop_count; + for (i = obj->index_property; i < table->num_cols + view_idx_start; i++) { if (i < view_idx_start)
From: Hans Leidekker hans@codeweavers.com
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=58710 --- programs/wmic/main.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/programs/wmic/main.c b/programs/wmic/main.c index 93dc3f9c7e0..f71c54e8071 100644 --- a/programs/wmic/main.c +++ b/programs/wmic/main.c @@ -291,7 +291,7 @@ static int query_prop( const WCHAR *class, int argc, WCHAR *argv[] ) IEnumWbemClassObject_Next( result, WBEM_INFINITE, 1, &obj, &count ); if (!count) break;
- IWbemClassObject_BeginEnumeration( obj, 0 ); + IWbemClassObject_BeginEnumeration( obj, WBEM_FLAG_NONSYSTEM_ONLY ); while (IWbemClassObject_Next( obj, 0, &name, &v, NULL, NULL ) == S_OK) { convert_to_bstr( &v ); @@ -309,7 +309,7 @@ static int query_prop( const WCHAR *class, int argc, WCHAR *argv[] ) IEnumWbemClassObject_Next( result, WBEM_INFINITE, 1, &obj, &count ); if (count) { - IWbemClassObject_BeginEnumeration( obj, 0 ); + IWbemClassObject_BeginEnumeration( obj, WBEM_FLAG_NONSYSTEM_ONLY ); while (IWbemClassObject_Next( obj, 0, &name, NULL, NULL, NULL ) == S_OK) { output_text( name, width ); @@ -325,7 +325,7 @@ static int query_prop( const WCHAR *class, int argc, WCHAR *argv[] ) { IEnumWbemClassObject_Next( result, WBEM_INFINITE, 1, &obj, &count ); if (!count) break; - IWbemClassObject_BeginEnumeration( obj, 0 ); + IWbemClassObject_BeginEnumeration( obj, WBEM_FLAG_NONSYSTEM_ONLY ); while (IWbemClassObject_Next( obj, 0, NULL, &v, NULL, NULL ) == S_OK) { convert_to_bstr( &v );