[PATCH 3/4] devenum: Use wide string literals.

Zebediah Figura z.figura12 at gmail.com
Wed May 13 17:03:09 CDT 2020


Signed-off-by: Zebediah Figura <z.figura12 at gmail.com>
---
 dlls/devenum/createdevenum.c    | 89 ++++++++++++---------------------
 dlls/devenum/devenum_main.c     | 28 ++++-------
 dlls/devenum/devenum_private.h  | 16 ------
 dlls/devenum/mediacatenum.c     | 38 +++++++-------
 dlls/devenum/parsedisplayname.c |  8 +--
 5 files changed, 62 insertions(+), 117 deletions(-)

diff --git a/dlls/devenum/createdevenum.c b/dlls/devenum/createdevenum.c
index 866b8d8a60d..a3b9447144a 100644
--- a/dlls/devenum/createdevenum.c
+++ b/dlls/devenum/createdevenum.c
@@ -40,17 +40,6 @@
 
 WINE_DEFAULT_DEBUG_CHANNEL(devenum);
 
-static const WCHAR wszFilterKeyName[] = {'F','i','l','t','e','r',0};
-static const WCHAR wszMeritName[] = {'M','e','r','i','t',0};
-static const WCHAR wszPins[] = {'P','i','n','s',0};
-static const WCHAR wszAllowedMany[] = {'A','l','l','o','w','e','d','M','a','n','y',0};
-static const WCHAR wszAllowedZero[] = {'A','l','l','o','w','e','d','Z','e','r','o',0};
-static const WCHAR wszDirection[] = {'D','i','r','e','c','t','i','o','n',0};
-static const WCHAR wszIsRendered[] = {'I','s','R','e','n','d','e','r','e','d',0};
-static const WCHAR wszTypes[] = {'T','y','p','e','s',0};
-static const WCHAR wszFriendlyName[] = {'F','r','i','e','n','d','l','y','N','a','m','e',0};
-static const WCHAR wszFilterData[] = {'F','i','l','t','e','r','D','a','t','a',0};
-
 static HRESULT WINAPI devenum_factory_QueryInterface(ICreateDevEnum *iface, REFIID riid, void **ppv)
 {
     TRACE("(%p)->(%s, %p)\n", iface, debugstr_guid(riid), ppv);
@@ -92,7 +81,6 @@ static ULONG WINAPI devenum_factory_Release(ICreateDevEnum *iface)
 static HRESULT register_codec(const GUID *class, const WCHAR *name,
         const GUID *clsid, const WCHAR *friendly_name, IPropertyBag **ret)
 {
-    static const WCHAR deviceW[] = {'@','d','e','v','i','c','e',':','c','m',':',0};
     WCHAR guidstr[CHARS_IN_GUID];
     IParseDisplayName *parser;
     IPropertyBag *propbag;
@@ -106,17 +94,16 @@ static HRESULT register_codec(const GUID *class, const WCHAR *name,
     if (FAILED(hr))
         return hr;
 
-    buffer = heap_alloc((lstrlenW(deviceW) + CHARS_IN_GUID + lstrlenW(name) + 1) * sizeof(WCHAR));
-    if (!buffer)
+    if (!(buffer = heap_alloc((wcslen(L"@device:cm:") + CHARS_IN_GUID + wcslen(name) + 1) * sizeof(WCHAR))))
     {
         IParseDisplayName_Release(parser);
         return E_OUTOFMEMORY;
     }
 
-    lstrcpyW(buffer, deviceW);
-    StringFromGUID2(class, buffer + lstrlenW(buffer), CHARS_IN_GUID);
-    lstrcatW(buffer, backslashW);
-    lstrcatW(buffer, name);
+    wcscpy(buffer, L"@device:cm:");
+    StringFromGUID2(class, buffer + wcslen(buffer), CHARS_IN_GUID);
+    wcscat(buffer, L"\\");
+    wcscat(buffer, name);
 
     IParseDisplayName_ParseDisplayName(parser, NULL, buffer, &eaten, &mon);
     IParseDisplayName_Release(parser);
@@ -127,7 +114,7 @@ static HRESULT register_codec(const GUID *class, const WCHAR *name,
 
     V_VT(&var) = VT_BSTR;
     V_BSTR(&var) = SysAllocString(friendly_name);
-    hr = IPropertyBag_Write(propbag, wszFriendlyName, &var);
+    hr = IPropertyBag_Write(propbag, L"FriendlyName", &var);
     VariantClear(&var);
     if (FAILED(hr))
     {
@@ -138,7 +125,7 @@ static HRESULT register_codec(const GUID *class, const WCHAR *name,
     V_VT(&var) = VT_BSTR;
     StringFromGUID2(clsid, guidstr, ARRAY_SIZE(guidstr));
     V_BSTR(&var) = SysAllocString(guidstr);
-    hr = IPropertyBag_Write(propbag, clsidW, &var);
+    hr = IPropertyBag_Write(propbag, L"CLSID", &var);
     VariantClear(&var);
     if (FAILED(hr))
     {
@@ -157,7 +144,7 @@ static void DEVENUM_ReadPinTypes(HKEY hkeyPinKey, REGFILTERPINS2 *rgPin)
     REGPINTYPES *lpMediaType = NULL;
     DWORD dwMediaTypeSize = 0;
 
-    if (RegOpenKeyExW(hkeyPinKey, wszTypes, 0, KEY_READ, &hkeyTypes) != ERROR_SUCCESS)
+    if (RegOpenKeyExW(hkeyPinKey, L"Types", 0, KEY_READ, &hkeyTypes) != ERROR_SUCCESS)
         return ;
 
     if (RegQueryInfoKeyW(hkeyTypes, NULL, NULL, NULL, &dwMajorTypes, NULL, NULL, NULL, NULL, NULL, NULL, NULL)
@@ -253,7 +240,7 @@ static void DEVENUM_ReadPins(HKEY hkeyFilterClass, REGFILTER2 *rgf2)
     rgf2->u.s2.cPins2 = 0;
     rgf2->u.s2.rgPins2 = NULL;
 
-    if (RegOpenKeyExW(hkeyFilterClass, wszPins, 0, KEY_READ, &hkeyPins) != ERROR_SUCCESS)
+    if (RegOpenKeyExW(hkeyFilterClass, L"Pins", 0, KEY_READ, &hkeyPins) != ERROR_SUCCESS)
         return ;
 
     if (RegQueryInfoKeyW(hkeyPins, NULL, NULL, NULL, &dwPinsSubkeys, NULL, NULL, NULL, NULL, NULL, NULL, NULL)
@@ -289,21 +276,21 @@ static void DEVENUM_ReadPins(HKEY hkeyFilterClass, REGFILTER2 *rgf2)
         if (RegOpenKeyExW(hkeyPins, wszPinName, 0, KEY_READ, &hkeyPinKey) != ERROR_SUCCESS) continue;
 
         size = sizeof(DWORD);
-        lRet = RegQueryValueExW(hkeyPinKey, wszAllowedMany, NULL, &Type, (BYTE *)&value, &size);
+        lRet = RegQueryValueExW(hkeyPinKey, L"AllowedMany", NULL, &Type, (BYTE *)&value, &size);
         if (lRet != ERROR_SUCCESS || Type != REG_DWORD)
             goto error_cleanup;
         if (value)
             rgPin->dwFlags |= REG_PINFLAG_B_MANY;
 
         size = sizeof(DWORD);
-        lRet = RegQueryValueExW(hkeyPinKey, wszAllowedZero, NULL, &Type, (BYTE *)&value, &size);
+        lRet = RegQueryValueExW(hkeyPinKey, L"AllowedZero", NULL, &Type, (BYTE *)&value, &size);
         if (lRet != ERROR_SUCCESS || Type != REG_DWORD)
             goto error_cleanup;
         if (value)
             rgPin->dwFlags |= REG_PINFLAG_B_ZERO;
 
         size = sizeof(DWORD);
-        lRet = RegQueryValueExW(hkeyPinKey, wszDirection, NULL, &Type, (BYTE *)&value, &size);
+        lRet = RegQueryValueExW(hkeyPinKey, L"Direction", NULL, &Type, (BYTE *)&value, &size);
         if (lRet != ERROR_SUCCESS || Type != REG_DWORD)
             goto error_cleanup;
         if (value)
@@ -311,7 +298,7 @@ static void DEVENUM_ReadPins(HKEY hkeyFilterClass, REGFILTER2 *rgf2)
 
 
         size = sizeof(DWORD);
-        lRet = RegQueryValueExW(hkeyPinKey, wszIsRendered, NULL, &Type, (BYTE *)&value, &size);
+        lRet = RegQueryValueExW(hkeyPinKey, L"IsRendered", NULL, &Type, (BYTE *)&value, &size);
         if (lRet != ERROR_SUCCESS || Type != REG_DWORD)
             goto error_cleanup;
         if (value)
@@ -391,7 +378,7 @@ static void write_filter_data(IPropertyBag *prop_bag, REGFILTER2 *rgf)
     hr = SafeArrayUnaccessData(V_ARRAY(&var));
     if (FAILED(hr)) goto cleanup;
 
-    hr = IPropertyBag_Write(prop_bag, wszFilterData, &var);
+    hr = IPropertyBag_Write(prop_bag, L"FilterData", &var);
     if (FAILED(hr)) goto cleanup;
 
 cleanup:
@@ -407,7 +394,7 @@ static void register_legacy_filters(void)
     LONG lRet;
     HRESULT hr;
 
-    lRet = RegOpenKeyExW(HKEY_CLASSES_ROOT, wszFilterKeyName, 0, KEY_READ, &hkeyFilter);
+    lRet = RegOpenKeyExW(HKEY_CLASSES_ROOT, L"Filter", 0, KEY_READ, &hkeyFilter);
     hr = HRESULT_FROM_WIN32(lRet);
 
     if (SUCCEEDED(hr))
@@ -437,10 +424,7 @@ static void register_legacy_filters(void)
             if (FAILED(hr))
                 continue;
 
-            lstrcpyW(wszRegKey, clsidW);
-            lstrcatW(wszRegKey, backslashW);
-            lstrcatW(wszRegKey, wszFilterSubkeyName);
-
+            swprintf(wszRegKey, ARRAY_SIZE(wszRegKey), L"CLSID\\%s", wszFilterSubkeyName);
             if (RegOpenKeyExW(HKEY_CLASSES_ROOT, wszRegKey, 0, KEY_READ, &classkey) != ERROR_SUCCESS)
                 continue;
 
@@ -473,7 +457,7 @@ static void register_legacy_filters(void)
             rgf2.dwMerit = MERIT_NORMAL;
 
             len = sizeof(rgf2.dwMerit);
-            RegQueryValueExW(classkey, wszMeritName, NULL, &Type, (BYTE *)&rgf2.dwMerit, &len);
+            RegQueryValueExW(classkey, L"Merit", NULL, &Type, (BYTE *)&rgf2.dwMerit, &len);
 
             DEVENUM_ReadPins(classkey, &rgf2);
 
@@ -490,9 +474,7 @@ static void register_legacy_filters(void)
 
 static BOOL CALLBACK register_dsound_devices(GUID *guid, const WCHAR *desc, const WCHAR *module, void *context)
 {
-    static const WCHAR defaultW[] = {'D','e','f','a','u','l','t',' ','D','i','r','e','c','t','S','o','u','n','d',' ','D','e','v','i','c','e',0};
-    static const WCHAR directsoundW[] = {'D','i','r','e','c','t','S','o','u','n','d',':',' ',0};
-    static const WCHAR dsguidW[] = {'D','S','G','u','i','d',0};
+    static const WCHAR defaultW[] = L"Default DirectSound Device";
     IPropertyBag *prop_bag = NULL;
     REGFILTERPINS2 rgpins = {0};
     REGPINTYPES rgtypes = {0};
@@ -503,11 +485,11 @@ static BOOL CALLBACK register_dsound_devices(GUID *guid, const WCHAR *desc, cons
 
     if (guid)
     {
-        WCHAR *name = heap_alloc(sizeof(defaultW) + lstrlenW(desc) * sizeof(WCHAR));
+        WCHAR *name = heap_alloc(sizeof(defaultW) + wcslen(desc) * sizeof(WCHAR));
         if (!name)
             return FALSE;
-        lstrcpyW(name, directsoundW);
-        lstrcatW(name, desc);
+        wcscpy(name, L"DirectSound: ");
+        wcscat(name, desc);
 
         hr = register_codec(&CLSID_AudioRendererCategory, name,
                 &CLSID_DSoundRender, name, &prop_bag);
@@ -537,7 +519,7 @@ static BOOL CALLBACK register_dsound_devices(GUID *guid, const WCHAR *desc, cons
     V_VT(&var) = VT_BSTR;
     StringFromGUID2(guid ? guid : &GUID_NULL, clsid, CHARS_IN_GUID);
     if ((V_BSTR(&var) = SysAllocString(clsid)))
-        hr = IPropertyBag_Write(prop_bag, dsguidW, &var);
+        hr = IPropertyBag_Write(prop_bag, L"DSGuid", &var);
 
     VariantClear(&var);
     IPropertyBag_Release(prop_bag);
@@ -546,8 +528,6 @@ static BOOL CALLBACK register_dsound_devices(GUID *guid, const WCHAR *desc, cons
 
 static void register_waveout_devices(void)
 {
-    static const WCHAR defaultW[] = {'D','e','f','a','u','l','t',' ','W','a','v','e','O','u','t',' ','D','e','v','i','c','e',0};
-    static const WCHAR waveoutidW[] = {'W','a','v','e','O','u','t','I','d',0};
     IPropertyBag *prop_bag = NULL;
     REGFILTERPINS2 rgpins = {0};
     REGPINTYPES rgtypes = {0};
@@ -564,7 +544,7 @@ static void register_waveout_devices(void)
     {
         waveOutGetDevCapsW(i, &caps, sizeof(caps));
 
-        name = (i == -1) ? defaultW : caps.szPname;
+        name = (i == -1) ? L"Default WaveOut Device" : caps.szPname;
 
         hr = register_codec(&CLSID_AudioRendererCategory, name,
                 &CLSID_AudioRender, name, &prop_bag);
@@ -587,7 +567,7 @@ static void register_waveout_devices(void)
         /* write WaveOutId */
         V_VT(&var) = VT_I4;
         V_I4(&var) = i;
-        IPropertyBag_Write(prop_bag, waveoutidW, &var);
+        IPropertyBag_Write(prop_bag, L"WaveOutId", &var);
 
         VariantClear(&var);
         if (prop_bag) IPropertyBag_Release(prop_bag);
@@ -596,7 +576,6 @@ static void register_waveout_devices(void)
 
 static void register_wavein_devices(void)
 {
-    static const WCHAR waveinidW[] = {'W','a','v','e','I','n','I','d',0};
     IPropertyBag *prop_bag = NULL;
     REGFILTER2 rgf = {0};
     WAVEINCAPSW caps;
@@ -624,7 +603,7 @@ static void register_wavein_devices(void)
         /* write WaveInId */
         V_VT(&var) = VT_I4;
         V_I4(&var) = i;
-        IPropertyBag_Write(prop_bag, waveinidW, &var);
+        IPropertyBag_Write(prop_bag, L"WaveInId", &var);
 
         VariantClear(&var);
         IPropertyBag_Release(prop_bag);
@@ -633,8 +612,6 @@ static void register_wavein_devices(void)
 
 static void register_midiout_devices(void)
 {
-    static const WCHAR defaultW[] = {'D','e','f','a','u','l','t',' ','M','i','d','i','O','u','t',' ','D','e','v','i','c','e',0};
-    static const WCHAR midioutidW[] = {'M','i','d','i','O','u','t','I','d',0};
     IPropertyBag *prop_bag = NULL;
     REGFILTERPINS2 rgpins = {0};
     REGPINTYPES rgtypes = {0};
@@ -651,7 +628,7 @@ static void register_midiout_devices(void)
     {
         midiOutGetDevCapsW(i, &caps, sizeof(caps));
 
-        name = (i == -1) ? defaultW : caps.szPname;
+        name = (i == -1) ? L"Default MidiOut Device" : caps.szPname;
 
         hr = register_codec(&CLSID_MidiRendererCategory, name,
                 &CLSID_AVIMIDIRender, name, &prop_bag);
@@ -674,7 +651,7 @@ static void register_midiout_devices(void)
         /* write MidiOutId */
         V_VT(&var) = VT_I4;
         V_I4(&var) = i;
-        IPropertyBag_Write(prop_bag, midioutidW, &var);
+        IPropertyBag_Write(prop_bag, L"MidiOutId", &var);
 
         VariantClear(&var);
         IPropertyBag_Release(prop_bag);
@@ -683,7 +660,6 @@ static void register_midiout_devices(void)
 
 static void register_vfw_codecs(void)
 {
-    static const WCHAR fcchandlerW[] = {'F','c','c','H','a','n','d','l','e','r',0};
     REGFILTERPINS2 rgpins[2] = {};
     IPropertyBag *prop_bag = NULL;
     REGPINTYPES rgtypes[2];
@@ -732,7 +708,7 @@ static void register_vfw_codecs(void)
         /* write WaveInId */
         V_VT(&var) = VT_BSTR;
         V_BSTR(&var) = SysAllocString(name);
-        IPropertyBag_Write(prop_bag, fcchandlerW, &var);
+        IPropertyBag_Write(prop_bag, L"FccHandler", &var);
 
         VariantClear(&var);
         IPropertyBag_Release(prop_bag);
@@ -741,13 +717,12 @@ static void register_vfw_codecs(void)
 
 static void register_avicap_devices(void)
 {
-    static const WCHAR vfwindexW[] = {'V','F','W','I','n','d','e','x',0};
-    WCHAR name[] = {'v','i','d','e','o','0',0};
     WCHAR friendlyname[32], version[32];
     IPropertyBag *prop_bag = NULL;
     REGFILTERPINS2 rgpins = {0};
     REGPINTYPES rgtypes;
     REGFILTER2 rgf;
+    WCHAR name[6];
     VARIANT var;
     HRESULT hr;
     int i = 0;
@@ -758,7 +733,7 @@ static void register_avicap_devices(void)
                 version, ARRAY_SIZE(version)))
             continue;
 
-        name[5] = '0' + i;
+        swprintf(name, ARRAY_SIZE(name), L"video%d", i);
 
         hr = register_codec(&CLSID_VideoInputDeviceCategory, name,
                 &CLSID_VfwCapture, friendlyname, &prop_bag);
@@ -780,7 +755,7 @@ static void register_avicap_devices(void)
         /* write VFWIndex */
         V_VT(&var) = VT_I4;
         V_I4(&var) = i;
-        IPropertyBag_Write(prop_bag, vfwindexW, &var);
+        IPropertyBag_Write(prop_bag, L"VFWIndex", &var);
 
         VariantClear(&var);
         IPropertyBag_Release(prop_bag);
@@ -801,7 +776,7 @@ static HRESULT WINAPI devenum_factory_CreateClassEnumerator(ICreateDevEnum *ifac
 
     *out = NULL;
 
-    if (!RegOpenKeyW(HKEY_CURRENT_USER, wszActiveMovieKey, &key))
+    if (!RegOpenKeyW(HKEY_CURRENT_USER, L"Software\\Microsoft\\ActiveMovie\\devenum", &key))
     {
         StringFromGUID2(class, guidstr, ARRAY_SIZE(guidstr));
         RegDeleteTreeW(key, guidstr);
diff --git a/dlls/devenum/devenum_main.c b/dlls/devenum/devenum_main.c
index d8b0f2cf692..01ddef4ef23 100644
--- a/dlls/devenum/devenum_main.c
+++ b/dlls/devenum/devenum_main.c
@@ -162,27 +162,17 @@ HRESULT WINAPI DllRegisterServer(void)
                            &IID_IFilterMapper2,  &mapvptr);
     if (SUCCEEDED(res))
     {
-        static const WCHAR friendlyvidcap[] = {'V','i','d','e','o',' ','C','a','p','t','u','r','e',' ','S','o','u','r','c','e','s',0};
-        static const WCHAR friendlydshow[] = {'D','i','r','e','c','t','S','h','o','w',' ','F','i','l','t','e','r','s',0};
-        static const WCHAR friendlyvidcomp[] = {'V','i','d','e','o',' ','C','o','m','p','r','e','s','s','o','r','s',0};
-        static const WCHAR friendlyaudcap[] = {'A','u','d','i','o',' ','C','a','p','t','u','r','e',' ','S','o','u','r','c','e','s',0};
-        static const WCHAR friendlyaudcomp[] = {'A','u','d','i','o',' ','C','o','m','p','r','e','s','s','o','r','s',0};
-        static const WCHAR friendlyaudrend[] = {'A','u','d','i','o',' ','R','e','n','d','e','r','e','r','s',0};
-        static const WCHAR friendlymidirend[] = {'M','i','d','i',' ','R','e','n','d','e','r','e','r','s',0};
-        static const WCHAR friendlyextrend[] = {'E','x','t','e','r','n','a','l',' ','R','e','n','d','e','r','e','r','s',0};
-        static const WCHAR friendlydevctrl[] = {'D','e','v','i','c','e',' ','C','o','n','t','r','o','l',' ','F','i','l','t','e','r','s',0};
-
         pMapper = mapvptr;
 
-        IFilterMapper2_CreateCategory(pMapper, &CLSID_VideoInputDeviceCategory, MERIT_DO_NOT_USE, friendlyvidcap);
-        IFilterMapper2_CreateCategory(pMapper, &CLSID_LegacyAmFilterCategory, MERIT_NORMAL, friendlydshow);
-        IFilterMapper2_CreateCategory(pMapper, &CLSID_VideoCompressorCategory, MERIT_DO_NOT_USE, friendlyvidcomp);
-        IFilterMapper2_CreateCategory(pMapper, &CLSID_AudioInputDeviceCategory, MERIT_DO_NOT_USE, friendlyaudcap);
-        IFilterMapper2_CreateCategory(pMapper, &CLSID_AudioCompressorCategory, MERIT_DO_NOT_USE, friendlyaudcomp);
-        IFilterMapper2_CreateCategory(pMapper, &CLSID_AudioRendererCategory, MERIT_NORMAL, friendlyaudrend);
-        IFilterMapper2_CreateCategory(pMapper, &CLSID_MidiRendererCategory, MERIT_NORMAL, friendlymidirend);
-        IFilterMapper2_CreateCategory(pMapper, &CLSID_TransmitCategory, MERIT_DO_NOT_USE, friendlyextrend);
-        IFilterMapper2_CreateCategory(pMapper, &CLSID_DeviceControlCategory, MERIT_DO_NOT_USE, friendlydevctrl);
+        IFilterMapper2_CreateCategory(pMapper, &CLSID_AudioCompressorCategory, MERIT_DO_NOT_USE, L"Audio Compressors");
+        IFilterMapper2_CreateCategory(pMapper, &CLSID_AudioInputDeviceCategory, MERIT_DO_NOT_USE, L"Audio Capture Sources");
+        IFilterMapper2_CreateCategory(pMapper, &CLSID_AudioRendererCategory, MERIT_NORMAL, L"Audio Renderers");
+        IFilterMapper2_CreateCategory(pMapper, &CLSID_DeviceControlCategory, MERIT_DO_NOT_USE, L"Device Control Filters");
+        IFilterMapper2_CreateCategory(pMapper, &CLSID_LegacyAmFilterCategory, MERIT_NORMAL, L"DirectShow Filters");
+        IFilterMapper2_CreateCategory(pMapper, &CLSID_MidiRendererCategory, MERIT_NORMAL, L"Midi Renderers");
+        IFilterMapper2_CreateCategory(pMapper, &CLSID_TransmitCategory, MERIT_DO_NOT_USE, L"External Renderers");
+        IFilterMapper2_CreateCategory(pMapper, &CLSID_VideoInputDeviceCategory, MERIT_DO_NOT_USE, L"Video Capture Sources");
+        IFilterMapper2_CreateCategory(pMapper, &CLSID_VideoCompressorCategory, MERIT_DO_NOT_USE, L"Video Compressors");
 
         IFilterMapper2_Release(pMapper);
     }
diff --git a/dlls/devenum/devenum_private.h b/dlls/devenum/devenum_private.h
index 6bd3c7cac4f..bd018a42a01 100644
--- a/dlls/devenum/devenum_private.h
+++ b/dlls/devenum/devenum_private.h
@@ -61,19 +61,3 @@ HRESULT enum_moniker_create(REFCLSID class, IEnumMoniker **enum_mon) DECLSPEC_HI
 
 extern ICreateDevEnum devenum_factory DECLSPEC_HIDDEN;
 extern IParseDisplayName devenum_parser DECLSPEC_HIDDEN;
-
-/**********************************************************************
- * Global string constant declarations
- */
-
-static const WCHAR backslashW[] = {'\\',0};
-static const WCHAR clsidW[] = {'C','L','S','I','D',0};
-static const WCHAR instanceW[] = {'\\','I','n','s','t','a','n','c','e',0};
-static const WCHAR wszActiveMovieKey[] = {'S','o','f','t','w','a','r','e','\\',
-                                          'M','i','c','r','o','s','o','f','t','\\',
-                                          'A','c','t','i','v','e','M','o','v','i','e','\\',
-                                          'd','e','v','e','n','u','m','\\',0};
-static const WCHAR deviceW[] = {'@','d','e','v','i','c','e',':',0};
-static const WCHAR dmoW[] = {'d','m','o',':',0};
-static const WCHAR swW[] = {'s','w',':',0};
-static const WCHAR cmW[] = {'c','m',':',0};
diff --git a/dlls/devenum/mediacatenum.c b/dlls/devenum/mediacatenum.c
index 6f0209f39b1..85634ead1ad 100644
--- a/dlls/devenum/mediacatenum.c
+++ b/dlls/devenum/mediacatenum.c
@@ -524,7 +524,7 @@ static HRESULT WINAPI moniker_IsEqual(IMoniker *iface, IMoniker *pmkOtherMoniker
     if (SUCCEEDED(IMoniker_GetDisplayName(iface, bind, NULL, &this_name)) &&
         SUCCEEDED(IMoniker_GetDisplayName(pmkOtherMoniker, bind, NULL, &other_name)))
     {
-        int result = lstrcmpiW(this_name, other_name);
+        int result = wcsicmp(this_name, other_name);
         CoTaskMemFree(this_name);
         CoTaskMemFree(other_name);
         if (!result)
@@ -603,33 +603,30 @@ static HRESULT WINAPI moniker_GetDisplayName(IMoniker *iface, IBindCtx *pbc,
 
     if (This->type == DEVICE_DMO)
     {
-        buffer = CoTaskMemAlloc((lstrlenW(deviceW) + lstrlenW(dmoW)
-                                 + 2 * CHARS_IN_GUID + 1) * sizeof(WCHAR));
+        buffer = CoTaskMemAlloc((12 + 2 * CHARS_IN_GUID + 1) * sizeof(WCHAR));
         if (!buffer) return E_OUTOFMEMORY;
 
-        lstrcpyW(buffer, deviceW);
-        lstrcatW(buffer, dmoW);
-        StringFromGUID2(&This->clsid, buffer + lstrlenW(buffer), CHARS_IN_GUID);
-        StringFromGUID2(&This->class, buffer + lstrlenW(buffer), CHARS_IN_GUID);
+        wcscpy(buffer, L"@device:dmo:");
+        StringFromGUID2(&This->clsid, buffer + wcslen(buffer), CHARS_IN_GUID);
+        StringFromGUID2(&This->class, buffer + wcslen(buffer), CHARS_IN_GUID);
     }
     else
     {
-        buffer = CoTaskMemAlloc((lstrlenW(deviceW) + 3 + (This->has_class ? CHARS_IN_GUID : 0)
-                                 + lstrlenW(This->name) + 1) * sizeof(WCHAR));
+        buffer = CoTaskMemAlloc((11 + (This->has_class ? CHARS_IN_GUID : 0)
+                + wcslen(This->name) + 1) * sizeof(WCHAR));
         if (!buffer) return E_OUTOFMEMORY;
 
-        lstrcpyW(buffer, deviceW);
         if (This->type == DEVICE_FILTER)
-            lstrcatW(buffer, swW);
+            wcscpy(buffer, L"@device:sw:");
         else if (This->type == DEVICE_CODEC)
-            lstrcatW(buffer, cmW);
+            wcscpy(buffer, L"@device:cm:");
 
         if (This->has_class)
         {
-            StringFromGUID2(&This->class, buffer + lstrlenW(buffer), CHARS_IN_GUID);
-            lstrcatW(buffer, backslashW);
+            StringFromGUID2(&This->class, buffer + wcslen(buffer), CHARS_IN_GUID);
+            wcscat(buffer, L"\\");
         }
-        lstrcatW(buffer, This->name);
+        wcscat(buffer, This->name);
     }
 
     *ppszDisplayName = buffer;
@@ -958,15 +955,14 @@ HRESULT enum_moniker_create(REFCLSID class, IEnumMoniker **out)
     object->ref = 1;
     object->class = *class;
 
-    lstrcpyW(buffer, clsidW);
-    lstrcatW(buffer, backslashW);
-    StringFromGUID2(class, buffer + lstrlenW(buffer), CHARS_IN_GUID);
-    lstrcatW(buffer, instanceW);
+    wcscpy(buffer, L"CLSID\\");
+    StringFromGUID2(class, buffer + wcslen(buffer), CHARS_IN_GUID);
+    wcscat(buffer, L"\\Instance");
     if (RegOpenKeyExW(HKEY_CLASSES_ROOT, buffer, 0, KEY_ENUMERATE_SUB_KEYS, &object->sw_key))
         object->sw_key = NULL;
 
-    lstrcpyW(buffer, wszActiveMovieKey);
-    StringFromGUID2(class, buffer + lstrlenW(buffer), CHARS_IN_GUID);
+    wcscpy(buffer, L"Software\\Microsoft\\ActiveMovie\\devenum\\");
+    StringFromGUID2(class, buffer + wcslen(buffer), CHARS_IN_GUID);
     if (RegOpenKeyExW(HKEY_CURRENT_USER, buffer, 0, KEY_ENUMERATE_SUB_KEYS, &object->cm_key))
         object->cm_key = NULL;
 
diff --git a/dlls/devenum/parsedisplayname.c b/dlls/devenum/parsedisplayname.c
index 45a89f69932..f24b4329c80 100644
--- a/dlls/devenum/parsedisplayname.c
+++ b/dlls/devenum/parsedisplayname.c
@@ -77,21 +77,21 @@ static HRESULT WINAPI devenum_parser_ParseDisplayName(IParseDisplayName *iface,
 
     *ret = NULL;
     if (eaten)
-        *eaten = lstrlenW(name);
+        *eaten = wcslen(name);
 
     name = wcschr(name, ':') + 1;
 
-    if (!wcsncmp(name, swW, 3))
+    if (!wcsncmp(name, L"sw:", 3))
     {
         type = DEVICE_FILTER;
         name += 3;
     }
-    else if (!wcsncmp(name, cmW, 3))
+    else if (!wcsncmp(name, L"cm:", 3))
     {
         type = DEVICE_CODEC;
         name += 3;
     }
-    else if (!wcsncmp(name, dmoW, 4))
+    else if (!wcsncmp(name, L"dmo:", 4))
     {
         type = DEVICE_DMO;
         name += 4;
-- 
2.26.2




More information about the wine-devel mailing list