From b6f2e9b130da6ba1513f29e6ec271e2470749d17 Mon Sep 17 00:00:00 2001 From: Zebediah Figura Date: Wed, 13 May 2020 17:03:09 -0500 Subject: [PATCH] devenum: Use wide string literals. Signed-off-by: Zebediah Figura Signed-off-by: Alexandre Julliard --- 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;