[PATCH] wbemdisp: Use wide-char string literals.

Michael Stefaniuc mstefani at winehq.org
Sun Nov 29 16:30:32 CST 2020


Signed-off-by: Michael Stefaniuc <mstefani at winehq.org>
---
 dlls/wbemdisp/locator.c        | 16 ++++------
 dlls/wbemdisp/main.c           |  5 ++-
 dlls/wbemdisp/tests/wbemdisp.c | 58 ++++++++++------------------------
 3 files changed, 25 insertions(+), 54 deletions(-)

diff --git a/dlls/wbemdisp/locator.c b/dlls/wbemdisp/locator.c
index a9ef1618882..28c8e5b4120 100644
--- a/dlls/wbemdisp/locator.c
+++ b/dlls/wbemdisp/locator.c
@@ -436,14 +436,13 @@ static HRESULT WINAPI propertyset_Item( ISWbemPropertySet *iface, BSTR name,
 
 static HRESULT WINAPI propertyset_get_Count( ISWbemPropertySet *iface, LONG *count )
 {
-    static const WCHAR propcountW[] = {'_','_','P','R','O','P','E','R','T','Y','_','C','O','U','N','T',0};
     struct propertyset *propertyset = impl_from_ISWbemPropertySet( iface );
     HRESULT hr;
     VARIANT val;
 
     TRACE( "%p, %p\n", propertyset, count );
 
-    hr = IWbemClassObject_Get( propertyset->object, propcountW, 0, &val, NULL, NULL );
+    hr = IWbemClassObject_Get( propertyset->object, L"__PROPERTY_COUNT", 0, &val, NULL, NULL );
     if (SUCCEEDED(hr))
     {
         *count = V_I4( &val );
@@ -1701,12 +1700,11 @@ static HRESULT WINAPI services_DeleteAsync(
 
 static BSTR build_query_string( const WCHAR *class )
 {
-    static const WCHAR selectW[] = {'S','E','L','E','C','T',' ','*',' ','F','R','O','M',' ',0};
-    UINT len = lstrlenW(class) + ARRAY_SIZE(selectW);
+    UINT len = lstrlenW(class) + ARRAY_SIZE(L"SELECT * FROM ");
     BSTR ret;
 
     if (!(ret = SysAllocStringLen( NULL, len ))) return NULL;
-    lstrcpyW( ret, selectW );
+    lstrcpyW( ret, L"SELECT * FROM " );
     lstrcatW( ret, class );
     return ret;
 }
@@ -1718,8 +1716,7 @@ static HRESULT WINAPI services_InstancesOf(
     IDispatch *objWbemNamedValueSet,
     ISWbemObjectSet **objWbemObjectSet )
 {
-    static const WCHAR wqlW[] = {'W','Q','L',0};
-    BSTR query, wql = SysAllocString( wqlW );
+    BSTR query, wql = SysAllocString( L"WQL" );
     HRESULT hr;
 
     TRACE( "%p, %s, %x, %p, %p\n", iface, debugstr_w(strClass), iFlags, objWbemNamedValueSet,
@@ -2128,14 +2125,13 @@ static HRESULT WINAPI locator_Invoke(
 
 static BSTR build_resource_string( BSTR server, BSTR namespace )
 {
-    static const WCHAR defaultW[] = {'r','o','o','t','\\','d','e','f','a','u','l','t',0};
     ULONG len, len_server = 0, len_namespace = 0;
     BSTR ret;
 
     if (server && *server) len_server = lstrlenW( server );
     else len_server = 1;
     if (namespace && *namespace) len_namespace = lstrlenW( namespace );
-    else len_namespace = ARRAY_SIZE(defaultW) - 1;
+    else len_namespace = ARRAY_SIZE(L"root\\default") - 1;
 
     if (!(ret = SysAllocStringLen( NULL, 2 + len_server + 1 + len_namespace ))) return NULL;
 
@@ -2147,7 +2143,7 @@ static BSTR build_resource_string( BSTR server, BSTR namespace )
     ret[len++] = '\\';
 
     if (namespace && *namespace) lstrcpyW( ret + len, namespace );
-    else lstrcpyW( ret + len, defaultW );
+    else lstrcpyW( ret + len, L"root\\default" );
     return ret;
 }
 
diff --git a/dlls/wbemdisp/main.c b/dlls/wbemdisp/main.c
index b3ee4de30cc..cfaf7d787eb 100644
--- a/dlls/wbemdisp/main.c
+++ b/dlls/wbemdisp/main.c
@@ -129,8 +129,7 @@ done:
 static HRESULT WINAPI WinMGMTS_ParseDisplayName(IParseDisplayName *iface, IBindCtx *pbc, LPOLESTR pszDisplayName,
         ULONG *pchEaten, IMoniker **ppmkOut)
 {
-    static const WCHAR prefixW[] = {'w','i','n','m','g','m','t','s',':',0};
-    const DWORD prefix_len = ARRAY_SIZE(prefixW) - 1;
+    const DWORD prefix_len = ARRAY_SIZE(L"winmgmts:") - 1;
     ISWbemLocator *locator = NULL;
     ISWbemServices *services = NULL;
     ISWbemObject *obj = NULL;
@@ -140,7 +139,7 @@ static HRESULT WINAPI WinMGMTS_ParseDisplayName(IParseDisplayName *iface, IBindC
 
     TRACE( "%p, %p, %s, %p, %p\n", iface, pbc, debugstr_w(pszDisplayName), pchEaten, ppmkOut );
 
-    if (wcsnicmp( pszDisplayName, prefixW, prefix_len )) return MK_E_SYNTAX;
+    if (wcsnicmp( pszDisplayName, L"winmgmts:", prefix_len )) return MK_E_SYNTAX;
 
     p = pszDisplayName + prefix_len;
     if (*p == '{')
diff --git a/dlls/wbemdisp/tests/wbemdisp.c b/dlls/wbemdisp/tests/wbemdisp.c
index 2bca6f9da67..fa51ce6d756 100644
--- a/dlls/wbemdisp/tests/wbemdisp.c
+++ b/dlls/wbemdisp/tests/wbemdisp.c
@@ -34,26 +34,10 @@ static const LCID english = MAKELCID(MAKELANGID(LANG_ENGLISH,SUBLANG_ENGLISH_US)
 
 static void test_ParseDisplayName(void)
 {
-    static const WCHAR biosW[] = {'W','i','n','3','2','_','B','i','o','s',0};
-    static const WCHAR manufacturerW[] = {'M','a','n','u','f','a','c','t','u','r','e','r',0};
-    static const WCHAR versionW[] = {'v','e','r','s','i','o','n',0};
-    static const WCHAR nosuchW[] = {'N','o','S','u','c','h',0};
-    static const WCHAR name1[] =
-        {'w','i','n','m','g','m','t','s',':',0};
-    static const WCHAR name2[] =
-        {'w','i','n','m','g','m','t','s',':','\\','\\','.','\\','r','o','o','t','\\','c','i','m','v','2',0};
-    static const WCHAR name3[] =
-        {'w','i','n','m','g','m','t','s',':','\\','\\','.','\\','r','o','o','t','\\','c','i','m','v','2',':',
-         'W','i','n','3','2','_','L','o','g','i','c','a','l','D','i','s','k','.',
-         'D','e','v','i','c','e','I','D','=','\'','C',':','\'',0};
-    static const WCHAR name4[] =
-        {'w','i','n','m','g','m','t','s',':','\\','\\','.','\\','r','o','o','t','\\','c','i','m','v','2',':',
-         'W','i','n','3','2','_','S','e','r','v','i','c','e',0};
-    static const WCHAR stdregprovW[] =
-        {'w','i','n','m','g','m','t','s',':','\\','\\','.','\\','r','o','o','t','\\','d','e','f','a','u','l','t',':',
-         'S','t','d','R','e','g','P','r','o','v',0};
-    static const WCHAR getstringvalueW[] =
-        {'G','e','t','S','t','r','i','n','g','V','a','l','u','e',0};
+    static const WCHAR name1[] = L"winmgmts:";
+    static const WCHAR name2[] = L"winmgmts:\\\\.\\root\\cimv2";
+    static const WCHAR name3[] = L"winmgmts:\\\\.\\root\\cimv2:Win32_LogicalDisk.DeviceID='C:'";
+    static const WCHAR name4[] = L"winmgmts:\\\\.\\root\\cimv2:Win32_Service";
     static const struct
     {
         const WCHAR *name;
@@ -130,7 +114,7 @@ static void test_ParseDisplayName(void)
         {
             ISWbemObjectSet *objectset = NULL;
 
-            str = SysAllocString( biosW );
+            str = SysAllocString( L"Win32_Bios" );
             hr = ISWbemServices_InstancesOf( services, str, 0, NULL, &objectset );
             SysFreeString( str );
             ok( hr == S_OK, "got %x\n", hr );
@@ -174,28 +158,28 @@ static void test_ParseDisplayName(void)
                         ok( hr == S_OK, "got %x\n", hr );
                         ok( count == 1, "got %u\n", count );
 
-                        str = SysAllocString( manufacturerW );
+                        str = SysAllocString( L"Manufacturer" );
                         dispid = 0xdeadbeef;
                         hr = IDispatch_GetIDsOfNames( dispatch, &IID_NULL, &str, 1, english, &dispid );
                         SysFreeString( str );
                         ok( hr == S_OK, "got %x\n", hr );
                         ok( dispid == 0x1800001 || dispid == 0x10b /* win2k */, "got %x\n", dispid );
 
-                        str = SysAllocString( versionW );
+                        str = SysAllocString( L"version" );
                         dispid = 0xdeadbeef;
                         hr = IDispatch_GetIDsOfNames( dispatch, &IID_NULL, &str, 1, english, &dispid );
                         SysFreeString( str );
                         ok( hr == S_OK, "got %x\n", hr );
                         ok( dispid == 0x1800002 || dispid == 0x119 /* win2k */, "got %x\n", dispid );
 
-                        str = SysAllocString( nosuchW );
+                        str = SysAllocString( L"NoSuch" );
                         dispid = 0xdeadbeef;
                         hr = IDispatch_GetIDsOfNames( dispatch, &IID_NULL, &str, 1, english, &dispid );
                         SysFreeString( str );
                         ok( hr == DISP_E_UNKNOWNNAME, "got %x\n", hr );
                         ok( dispid == DISPID_UNKNOWN, "got %x\n", dispid );
 
-                        str = SysAllocString( manufacturerW );
+                        str = SysAllocString( L"Manufacturer" );
                         dispid = 0xdeadbeef;
                         hr = IDispatch_GetIDsOfNames( dispatch, &IID_NULL, &str, 1, english, &dispid );
                         SysFreeString( str );
@@ -261,7 +245,7 @@ static void test_ParseDisplayName(void)
     hr = CreateBindCtx( 0, &ctx );
     ok( hr == S_OK, "got %x\n", hr );
 
-    str = SysAllocString( stdregprovW );
+    str = SysAllocString( L"winmgmts:\\\\.\\root\\default:StdRegProv" );
     hr = IParseDisplayName_ParseDisplayName( displayname, NULL, str, &eaten, &moniker );
     ok( hr == S_OK, "got %x\n", hr );
     SysFreeString( str );
@@ -280,7 +264,7 @@ static void test_ParseDisplayName(void)
         {
             DISPID dispid = 0xdeadbeef;
 
-            str = SysAllocString( getstringvalueW );
+            str = SysAllocString( L"GetStringValue" );
             hr = ISWbemObject_GetIDsOfNames( sobj, &IID_NULL, &str, 1, english, &dispid );
             ok( hr == S_OK, "got %x\n", hr );
             ok( dispid == 0x1000001, "got %x\n", dispid );
@@ -295,14 +279,6 @@ static void test_ParseDisplayName(void)
     IParseDisplayName_Release( displayname );
 }
 
-static const WCHAR localhost[] = {'l','o','c','a','l','h','o','s','t',0};
-static const WCHAR root[] = {'r','o','o','t','\\','C','I','M','V','2',0};
-static const WCHAR query[] = {'S','e','l','e','c','t',' ','P','r','o','c','e','s','s','o','r','I','d',' ','f','r','o','m',
-                              ' ','W','i','n','3','2','_','P','r','o','c','e','s','s','o','r',0};
-static const WCHAR lang[] = {'W','Q','L',0};
-static const WCHAR props[] = {'P','r','o','p','e','r','t','i','e','s','_',0};
-static const WCHAR procid[] = {'P','r','o','c','e','s','s','o','r','I','d',0};
-
 static void test_locator(void)
 {
     HRESULT hr;
@@ -324,15 +300,15 @@ static void test_locator(void)
     hr = CoCreateInstance( &CLSID_SWbemLocator, NULL, CLSCTX_INPROC_SERVER, &IID_ISWbemLocator, (void **)&locator );
     ok( hr == S_OK, "got %x\n", hr );
 
-    host_bstr = SysAllocString(localhost);
-    root_bstr = SysAllocString(root);
+    host_bstr = SysAllocString( L"localhost" );
+    root_bstr = SysAllocString( L"root\\CIMV2" );
     hr = ISWbemLocator_ConnectServer( locator, host_bstr, root_bstr, NULL, NULL, NULL, NULL, 0, NULL, &services);
     ok( hr == S_OK, "got %x\n", hr );
     SysFreeString( root_bstr );
     SysFreeString( host_bstr );
 
-    query_bstr = SysAllocString(query);
-    lang_bstr = SysAllocString(lang);
+    query_bstr = SysAllocString( L"Select ProcessorId from Win32_Processor" );
+    lang_bstr = SysAllocString( L"WQL" );
     hr = ISWbemServices_ExecQuery( services, query_bstr, lang_bstr, wbemFlagForwardOnly, NULL, &object_set);
     ok( hr == S_OK, "got %x\n", hr );
     SysFreeString( lang_bstr );
@@ -374,7 +350,7 @@ static void test_locator(void)
     ok( hr == S_OK, "got %x\n", hr );
     ok( V_VT(&var) == VT_DISPATCH, "got %x\n", V_VT(&var));
 
-    props_bstr = SysAllocString( props );
+    props_bstr = SysAllocString( L"Properties_" );
     hr = IDispatch_GetIDsOfNames( V_DISPATCH(&var), &IID_NULL, &props_bstr, 1, english, &id );
     ok( hr == S_OK, "got %x\n", hr );
     ok( id == 21, "got %d\n", id );
@@ -390,7 +366,7 @@ static void test_locator(void)
     ok( hr == WBEM_E_NOT_FOUND, "got %x\n", hr );
     SysFreeString( props_bstr );
 
-    procid_bstr = SysAllocString( procid );
+    procid_bstr = SysAllocString( L"ProcessorId" );
     hr = ISWbemPropertySet_Item( prop_set, procid_bstr, 0, &prop );
     ok( hr == S_OK, "got %x\n", hr );
     SysFreeString( procid_bstr );
-- 
2.26.2




More information about the wine-devel mailing list