wbemprox: WQL string comparisons are case insensitive.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=53832
This commit is contained in:
Hans Leidekker 2022-10-25 11:21:28 +02:00 committed by Alexandre Julliard
parent dd5ce0295b
commit 7bfa058a0b
2 changed files with 28 additions and 6 deletions

View file

@ -118,22 +118,22 @@ static HRESULT eval_strcmp( UINT op, const WCHAR *lstr, const WCHAR *rstr, LONGL
switch (op)
{
case OP_EQ:
*val = !wcscmp( lstr, rstr );
*val = !wcsicmp( lstr, rstr );
break;
case OP_GT:
*val = wcscmp( lstr, rstr ) > 0;
*val = wcsicmp( lstr, rstr ) > 0;
break;
case OP_LT:
*val = wcscmp( lstr, rstr ) < 0;
*val = wcsicmp( lstr, rstr ) < 0;
break;
case OP_LE:
*val = wcscmp( lstr, rstr ) <= 0;
*val = wcsicmp( lstr, rstr ) <= 0;
break;
case OP_GE:
*val = wcscmp( lstr, rstr ) >= 0;
*val = wcsicmp( lstr, rstr ) >= 0;
break;
case OP_NE:
*val = wcscmp( lstr, rstr );
*val = wcsicmp( lstr, rstr );
break;
case OP_LIKE:
*val = eval_like( lstr, rstr );

View file

@ -2141,6 +2141,28 @@ static void test_Win32_LogicalDisk( IWbemServices *services )
IWbemClassObject_Release( obj );
}
IEnumWbemClassObject_Release( result );
SysFreeString( query );
query = SysAllocString( L"SELECT * FROM Win32_LogicalDisk WHERE DeviceID > 'b:' AND DeviceID < 'd:'" );
hr = IWbemServices_ExecQuery( services, wql, query, 0, NULL, &result );
ok( hr == S_OK, "got %#lx\n", hr );
count = 0;
hr = IEnumWbemClassObject_Next( result, 10000, 1, &obj, &count );
ok( hr == S_OK, "got %#lx\n", hr );
ok( count == 1, "got %lu\n", count );
IWbemClassObject_Release( obj );
SysFreeString( query );
query = SysAllocString( L"SELECT * FROM Win32_LogicalDisk WHERE DeviceID = 'C:'" );
hr = IWbemServices_ExecQuery( services, wql, query, 0, NULL, &result );
ok( hr == S_OK, "got %#lx\n", hr );
count = 0;
hr = IEnumWbemClassObject_Next( result, 10000, 1, &obj, &count );
ok( hr == S_OK, "got %#lx\n", hr );
ok( count == 1, "got %lu\n", count );
IWbemClassObject_Release( obj );
SysFreeString( query );
IEnumWbemClassObject_Release( result );
SysFreeString( query );
SysFreeString( wql );