devenum/tests: Use wide character string literals.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
bb222133a8
commit
208bc5d282
|
@ -37,15 +37,6 @@
|
||||||
|
|
||||||
DEFINE_GUID(GUID_NULL,0,0,0,0,0,0,0,0,0,0,0);
|
DEFINE_GUID(GUID_NULL,0,0,0,0,0,0,0,0,0,0,0);
|
||||||
|
|
||||||
static const WCHAR friendly_name[] = {'F','r','i','e','n','d','l','y','N','a','m','e',0};
|
|
||||||
static const WCHAR deviceW[] = {'@','d','e','v','i','c','e',':',0};
|
|
||||||
static const WCHAR clsidW[] = {'C','L','S','I','D',0};
|
|
||||||
static const WCHAR waveW[] = {'w','a','v','e',':',0};
|
|
||||||
static const WCHAR dmoW[] = {'d','m','o',':',0};
|
|
||||||
static const WCHAR swW[] = {'s','w',':',0};
|
|
||||||
static const WCHAR cmW[] = {'c','m',':',0};
|
|
||||||
static const WCHAR backslashW[] = {'\\',0};
|
|
||||||
|
|
||||||
static void test_devenum(IBindCtx *bind_ctx)
|
static void test_devenum(IBindCtx *bind_ctx)
|
||||||
{
|
{
|
||||||
IEnumMoniker *enum_cat, *enum_moniker;
|
IEnumMoniker *enum_cat, *enum_moniker;
|
||||||
|
@ -71,14 +62,14 @@ static void test_devenum(IBindCtx *bind_ctx)
|
||||||
ok(hr == S_OK, "IMoniker_BindToStorage failed: %#x\n", hr);
|
ok(hr == S_OK, "IMoniker_BindToStorage failed: %#x\n", hr);
|
||||||
|
|
||||||
VariantInit(&var);
|
VariantInit(&var);
|
||||||
hr = IPropertyBag_Read(prop_bag, clsidW, &var, NULL);
|
hr = IPropertyBag_Read(prop_bag, L"CLSID", &var, NULL);
|
||||||
ok(hr == S_OK, "Failed to read CLSID: %#x\n", hr);
|
ok(hr == S_OK, "Failed to read CLSID: %#x\n", hr);
|
||||||
|
|
||||||
hr = CLSIDFromString(V_BSTR(&var), &cat_guid);
|
hr = CLSIDFromString(V_BSTR(&var), &cat_guid);
|
||||||
ok(hr == S_OK, "got %#x\n", hr);
|
ok(hr == S_OK, "got %#x\n", hr);
|
||||||
|
|
||||||
VariantClear(&var);
|
VariantClear(&var);
|
||||||
hr = IPropertyBag_Read(prop_bag, friendly_name, &var, NULL);
|
hr = IPropertyBag_Read(prop_bag, L"FriendlyName", &var, NULL);
|
||||||
ok(hr == S_OK, "Failed to read FriendlyName: %#x\n", hr);
|
ok(hr == S_OK, "Failed to read FriendlyName: %#x\n", hr);
|
||||||
|
|
||||||
if (winetest_debug > 1)
|
if (winetest_debug > 1)
|
||||||
|
@ -112,7 +103,7 @@ static void test_devenum(IBindCtx *bind_ctx)
|
||||||
hr = IMoniker_BindToStorage(moniker, bind_ctx, NULL, &IID_IPropertyBag, (LPVOID*)&prop_bag);
|
hr = IMoniker_BindToStorage(moniker, bind_ctx, NULL, &IID_IPropertyBag, (LPVOID*)&prop_bag);
|
||||||
ok(hr == S_OK, "IMoniker_BindToStorage failed with error %x\n", hr);
|
ok(hr == S_OK, "IMoniker_BindToStorage failed with error %x\n", hr);
|
||||||
|
|
||||||
hr = IPropertyBag_Read(prop_bag, friendly_name, &var, NULL);
|
hr = IPropertyBag_Read(prop_bag, L"FriendlyName", &var, NULL);
|
||||||
ok((hr == S_OK) | (hr == ERROR_KEY_DOES_NOT_EXIST),
|
ok((hr == S_OK) | (hr == ERROR_KEY_DOES_NOT_EXIST),
|
||||||
"IPropertyBag_Read failed: %#x\n", hr);
|
"IPropertyBag_Read failed: %#x\n", hr);
|
||||||
|
|
||||||
|
@ -253,7 +244,6 @@ DEFINE_GUID(CLSID_TestFilter, 0xdeadbeef,0xcf51,0x43e6,0xb6,0xc5,0x29,0x9e,0xa8
|
||||||
|
|
||||||
static void test_register_filter(void)
|
static void test_register_filter(void)
|
||||||
{
|
{
|
||||||
static const WCHAR name[] = {'d','e','v','e','n','u','m',' ','t','e','s','t',0};
|
|
||||||
IFilterMapper2 *mapper2;
|
IFilterMapper2 *mapper2;
|
||||||
IMoniker *mon = NULL;
|
IMoniker *mon = NULL;
|
||||||
REGFILTER2 rgf2 = {0};
|
REGFILTER2 rgf2 = {0};
|
||||||
|
@ -266,7 +256,7 @@ static void test_register_filter(void)
|
||||||
rgf2.dwMerit = MERIT_UNLIKELY;
|
rgf2.dwMerit = MERIT_UNLIKELY;
|
||||||
S2(U(rgf2)).cPins2 = 0;
|
S2(U(rgf2)).cPins2 = 0;
|
||||||
|
|
||||||
hr = IFilterMapper2_RegisterFilter(mapper2, &CLSID_TestFilter, name, &mon, NULL, NULL, &rgf2);
|
hr = IFilterMapper2_RegisterFilter(mapper2, &CLSID_TestFilter, L"devenum test", &mon, NULL, NULL, &rgf2);
|
||||||
if (hr == E_ACCESSDENIED)
|
if (hr == E_ACCESSDENIED)
|
||||||
{
|
{
|
||||||
skip("Not enough permissions to register filters\n");
|
skip("Not enough permissions to register filters\n");
|
||||||
|
@ -284,7 +274,7 @@ static void test_register_filter(void)
|
||||||
IMoniker_Release(mon);
|
IMoniker_Release(mon);
|
||||||
|
|
||||||
mon = NULL;
|
mon = NULL;
|
||||||
hr = IFilterMapper2_RegisterFilter(mapper2, &CLSID_TestFilter, name, &mon, &CLSID_AudioRendererCategory, NULL, &rgf2);
|
hr = IFilterMapper2_RegisterFilter(mapper2, &CLSID_TestFilter, L"devenum test", &mon, &CLSID_AudioRendererCategory, NULL, &rgf2);
|
||||||
ok(hr == S_OK, "RegisterFilter failed: %#x\n", hr);
|
ok(hr == S_OK, "RegisterFilter failed: %#x\n", hr);
|
||||||
|
|
||||||
ok(find_moniker(&CLSID_AudioRendererCategory, mon), "filter should be registered\n");
|
ok(find_moniker(&CLSID_AudioRendererCategory, mon), "filter should be registered\n");
|
||||||
|
@ -310,7 +300,7 @@ static IMoniker *check_display_name_(int line, IParseDisplayName *parser, WCHAR
|
||||||
|
|
||||||
hr = IMoniker_GetDisplayName(mon, NULL, NULL, &str);
|
hr = IMoniker_GetDisplayName(mon, NULL, NULL, &str);
|
||||||
ok_(__FILE__, line)(hr == S_OK, "GetDisplayName failed: %#x\n", hr);
|
ok_(__FILE__, line)(hr == S_OK, "GetDisplayName failed: %#x\n", hr);
|
||||||
ok_(__FILE__, line)(!lstrcmpW(str, buffer), "got %s\n", wine_dbgstr_w(str));
|
ok_(__FILE__, line)(!wcscmp(str, buffer), "got %s\n", wine_dbgstr_w(str));
|
||||||
|
|
||||||
CoTaskMemFree(str);
|
CoTaskMemFree(str);
|
||||||
|
|
||||||
|
@ -320,9 +310,6 @@ static IMoniker *check_display_name_(int line, IParseDisplayName *parser, WCHAR
|
||||||
|
|
||||||
static void test_directshow_filter(void)
|
static void test_directshow_filter(void)
|
||||||
{
|
{
|
||||||
static const WCHAR instanceW[] = {'\\','I','n','s','t','a','n','c','e',0};
|
|
||||||
static const WCHAR clsidW[] = {'C','L','S','I','D','\\',0};
|
|
||||||
static WCHAR testW[] = {'\\','t','e','s','t',0};
|
|
||||||
IParseDisplayName *parser;
|
IParseDisplayName *parser;
|
||||||
IPropertyBag *prop_bag;
|
IPropertyBag *prop_bag;
|
||||||
IMoniker *mon;
|
IMoniker *mon;
|
||||||
|
@ -335,10 +322,9 @@ static void test_directshow_filter(void)
|
||||||
hr = CoCreateInstance(&CLSID_CDeviceMoniker, NULL, CLSCTX_INPROC, &IID_IParseDisplayName, (void **)&parser);
|
hr = CoCreateInstance(&CLSID_CDeviceMoniker, NULL, CLSCTX_INPROC, &IID_IParseDisplayName, (void **)&parser);
|
||||||
ok(hr == S_OK, "Failed to create ParseDisplayName: %#x\n", hr);
|
ok(hr == S_OK, "Failed to create ParseDisplayName: %#x\n", hr);
|
||||||
|
|
||||||
lstrcpyW(buffer, deviceW);
|
wcscpy(buffer, L"@device:sw:");
|
||||||
lstrcatW(buffer, swW);
|
StringFromGUID2(&CLSID_AudioRendererCategory, buffer + wcslen(buffer), CHARS_IN_GUID);
|
||||||
StringFromGUID2(&CLSID_AudioRendererCategory, buffer + lstrlenW(buffer), CHARS_IN_GUID);
|
wcscat(buffer, L"\\test");
|
||||||
lstrcatW(buffer, testW);
|
|
||||||
mon = check_display_name(parser, buffer);
|
mon = check_display_name(parser, buffer);
|
||||||
|
|
||||||
/* Test writing and reading from the property bag */
|
/* Test writing and reading from the property bag */
|
||||||
|
@ -348,13 +334,13 @@ static void test_directshow_filter(void)
|
||||||
ok(hr == S_OK, "BindToStorage failed: %#x\n", hr);
|
ok(hr == S_OK, "BindToStorage failed: %#x\n", hr);
|
||||||
|
|
||||||
VariantInit(&var);
|
VariantInit(&var);
|
||||||
hr = IPropertyBag_Read(prop_bag, friendly_name, &var, NULL);
|
hr = IPropertyBag_Read(prop_bag, L"FriendlyName", &var, NULL);
|
||||||
ok(hr == HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND), "got %#x\n", hr);
|
ok(hr == HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND), "got %#x\n", hr);
|
||||||
|
|
||||||
/* writing causes the key to be created */
|
/* writing causes the key to be created */
|
||||||
V_VT(&var) = VT_BSTR;
|
V_VT(&var) = VT_BSTR;
|
||||||
V_BSTR(&var) = SysAllocString(testW);
|
V_BSTR(&var) = SysAllocString(L"test");
|
||||||
hr = IPropertyBag_Write(prop_bag, friendly_name, &var);
|
hr = IPropertyBag_Write(prop_bag, L"FriendlyName", &var);
|
||||||
if (hr != E_ACCESSDENIED)
|
if (hr != E_ACCESSDENIED)
|
||||||
{
|
{
|
||||||
ok(hr == S_OK, "Write failed: %#x\n", hr);
|
ok(hr == S_OK, "Write failed: %#x\n", hr);
|
||||||
|
@ -362,17 +348,16 @@ static void test_directshow_filter(void)
|
||||||
ok(find_moniker(&CLSID_AudioRendererCategory, mon), "filter should be registered\n");
|
ok(find_moniker(&CLSID_AudioRendererCategory, mon), "filter should be registered\n");
|
||||||
|
|
||||||
VariantClear(&var);
|
VariantClear(&var);
|
||||||
hr = IPropertyBag_Read(prop_bag, friendly_name, &var, NULL);
|
hr = IPropertyBag_Read(prop_bag, L"FriendlyName", &var, NULL);
|
||||||
ok(hr == S_OK, "Read failed: %#x\n", hr);
|
ok(hr == S_OK, "Read failed: %#x\n", hr);
|
||||||
ok(!lstrcmpW(V_BSTR(&var), testW), "got %s\n", wine_dbgstr_w(V_BSTR(&var)));
|
ok(!wcscmp(V_BSTR(&var), L"test"), "got %s\n", wine_dbgstr_w(V_BSTR(&var)));
|
||||||
|
|
||||||
IMoniker_Release(mon);
|
IMoniker_Release(mon);
|
||||||
|
|
||||||
/* devenum doesn't give us a way to unregister—we have to do that manually */
|
/* devenum doesn't give us a way to unregister—we have to do that manually */
|
||||||
lstrcpyW(buffer, clsidW);
|
wcscpy(buffer, L"CLSID\\");
|
||||||
StringFromGUID2(&CLSID_AudioRendererCategory, buffer + lstrlenW(buffer), CHARS_IN_GUID);
|
StringFromGUID2(&CLSID_AudioRendererCategory, buffer + wcslen(buffer), CHARS_IN_GUID);
|
||||||
lstrcatW(buffer, instanceW);
|
wcscat(buffer, L"\\Instance\\test");
|
||||||
lstrcatW(buffer, testW);
|
|
||||||
res = RegDeleteKeyW(HKEY_CLASSES_ROOT, buffer);
|
res = RegDeleteKeyW(HKEY_CLASSES_ROOT, buffer);
|
||||||
ok(!res, "RegDeleteKey failed: %lu\n", res);
|
ok(!res, "RegDeleteKey failed: %lu\n", res);
|
||||||
}
|
}
|
||||||
|
@ -382,29 +367,27 @@ static void test_directshow_filter(void)
|
||||||
|
|
||||||
/* name can be anything */
|
/* name can be anything */
|
||||||
|
|
||||||
lstrcpyW(buffer, deviceW);
|
wcscpy(buffer, L"@device:sw:test");
|
||||||
lstrcatW(buffer, swW);
|
|
||||||
lstrcatW(buffer, testW+1);
|
|
||||||
mon = check_display_name(parser, buffer);
|
mon = check_display_name(parser, buffer);
|
||||||
|
|
||||||
hr = IMoniker_BindToStorage(mon, NULL, NULL, &IID_IPropertyBag, (void **)&prop_bag);
|
hr = IMoniker_BindToStorage(mon, NULL, NULL, &IID_IPropertyBag, (void **)&prop_bag);
|
||||||
ok(hr == S_OK, "BindToStorage failed: %#x\n", hr);
|
ok(hr == S_OK, "BindToStorage failed: %#x\n", hr);
|
||||||
|
|
||||||
VariantClear(&var);
|
VariantClear(&var);
|
||||||
hr = IPropertyBag_Read(prop_bag, friendly_name, &var, NULL);
|
hr = IPropertyBag_Read(prop_bag, L"FriendlyName", &var, NULL);
|
||||||
ok(hr == HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND), "got %#x\n", hr);
|
ok(hr == HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND), "got %#x\n", hr);
|
||||||
|
|
||||||
V_VT(&var) = VT_BSTR;
|
V_VT(&var) = VT_BSTR;
|
||||||
V_BSTR(&var) = SysAllocString(testW);
|
V_BSTR(&var) = SysAllocString(L"test");
|
||||||
hr = IPropertyBag_Write(prop_bag, friendly_name, &var);
|
hr = IPropertyBag_Write(prop_bag, L"FriendlyName", &var);
|
||||||
if (hr != E_ACCESSDENIED)
|
if (hr != E_ACCESSDENIED)
|
||||||
{
|
{
|
||||||
ok(hr == S_OK, "Write failed: %#x\n", hr);
|
ok(hr == S_OK, "Write failed: %#x\n", hr);
|
||||||
|
|
||||||
VariantClear(&var);
|
VariantClear(&var);
|
||||||
hr = IPropertyBag_Read(prop_bag, friendly_name, &var, NULL);
|
hr = IPropertyBag_Read(prop_bag, L"FriendlyName", &var, NULL);
|
||||||
ok(hr == S_OK, "Read failed: %#x\n", hr);
|
ok(hr == S_OK, "Read failed: %#x\n", hr);
|
||||||
ok(!lstrcmpW(V_BSTR(&var), testW), "got %s\n", wine_dbgstr_w(V_BSTR(&var)));
|
ok(!wcscmp(V_BSTR(&var), L"test"), "got %s\n", wine_dbgstr_w(V_BSTR(&var)));
|
||||||
|
|
||||||
IMoniker_Release(mon);
|
IMoniker_Release(mon);
|
||||||
|
|
||||||
|
@ -422,7 +405,6 @@ static void test_directshow_filter(void)
|
||||||
|
|
||||||
static void test_codec(void)
|
static void test_codec(void)
|
||||||
{
|
{
|
||||||
static WCHAR testW[] = {'\\','t','e','s','t',0};
|
|
||||||
IParseDisplayName *parser;
|
IParseDisplayName *parser;
|
||||||
IPropertyBag *prop_bag;
|
IPropertyBag *prop_bag;
|
||||||
IMoniker *mon;
|
IMoniker *mon;
|
||||||
|
@ -434,10 +416,9 @@ static void test_codec(void)
|
||||||
hr = CoCreateInstance(&CLSID_CDeviceMoniker, NULL, CLSCTX_INPROC, &IID_IParseDisplayName, (void **)&parser);
|
hr = CoCreateInstance(&CLSID_CDeviceMoniker, NULL, CLSCTX_INPROC, &IID_IParseDisplayName, (void **)&parser);
|
||||||
ok(hr == S_OK, "Failed to create ParseDisplayName: %#x\n", hr);
|
ok(hr == S_OK, "Failed to create ParseDisplayName: %#x\n", hr);
|
||||||
|
|
||||||
lstrcpyW(buffer, deviceW);
|
wcscpy(buffer, L"@device:cm:");
|
||||||
lstrcatW(buffer, cmW);
|
StringFromGUID2(&CLSID_AudioRendererCategory, buffer + wcslen(buffer), CHARS_IN_GUID);
|
||||||
StringFromGUID2(&CLSID_AudioRendererCategory, buffer + lstrlenW(buffer), CHARS_IN_GUID);
|
wcscat(buffer, L"\\test");
|
||||||
lstrcatW(buffer, testW);
|
|
||||||
mon = check_display_name(parser, buffer);
|
mon = check_display_name(parser, buffer);
|
||||||
|
|
||||||
/* Test writing and reading from the property bag */
|
/* Test writing and reading from the property bag */
|
||||||
|
@ -447,25 +428,25 @@ static void test_codec(void)
|
||||||
ok(hr == S_OK, "BindToStorage failed: %#x\n", hr);
|
ok(hr == S_OK, "BindToStorage failed: %#x\n", hr);
|
||||||
|
|
||||||
VariantInit(&var);
|
VariantInit(&var);
|
||||||
hr = IPropertyBag_Read(prop_bag, friendly_name, &var, NULL);
|
hr = IPropertyBag_Read(prop_bag, L"FriendlyName", &var, NULL);
|
||||||
ok(hr == HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND), "got %#x\n", hr);
|
ok(hr == HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND), "got %#x\n", hr);
|
||||||
|
|
||||||
V_VT(&var) = VT_BSTR;
|
V_VT(&var) = VT_BSTR;
|
||||||
V_BSTR(&var) = SysAllocString(testW);
|
V_BSTR(&var) = SysAllocString(L"test");
|
||||||
hr = IPropertyBag_Write(prop_bag, friendly_name, &var);
|
hr = IPropertyBag_Write(prop_bag, L"FriendlyName", &var);
|
||||||
ok(hr == S_OK, "Write failed: %#x\n", hr);
|
ok(hr == S_OK, "Write failed: %#x\n", hr);
|
||||||
|
|
||||||
VariantClear(&var);
|
VariantClear(&var);
|
||||||
hr = IPropertyBag_Read(prop_bag, friendly_name, &var, NULL);
|
hr = IPropertyBag_Read(prop_bag, L"FriendlyName", &var, NULL);
|
||||||
ok(hr == S_OK, "Read failed: %#x\n", hr);
|
ok(hr == S_OK, "Read failed: %#x\n", hr);
|
||||||
ok(!lstrcmpW(V_BSTR(&var), testW), "got %s\n", wine_dbgstr_w(V_BSTR(&var)));
|
ok(!wcscmp(V_BSTR(&var), L"test"), "got %s\n", wine_dbgstr_w(V_BSTR(&var)));
|
||||||
|
|
||||||
/* unlike DirectShow filters, these are automatically generated, so
|
/* unlike DirectShow filters, these are automatically generated, so
|
||||||
* enumerating them will destroy the key */
|
* enumerating them will destroy the key */
|
||||||
ok(!find_moniker(&CLSID_AudioRendererCategory, mon), "codec should not be registered\n");
|
ok(!find_moniker(&CLSID_AudioRendererCategory, mon), "codec should not be registered\n");
|
||||||
|
|
||||||
VariantClear(&var);
|
VariantClear(&var);
|
||||||
hr = IPropertyBag_Read(prop_bag, friendly_name, &var, NULL);
|
hr = IPropertyBag_Read(prop_bag, L"FriendlyName", &var, NULL);
|
||||||
ok(hr == HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND), "got %#x\n", hr);
|
ok(hr == HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND), "got %#x\n", hr);
|
||||||
|
|
||||||
IPropertyBag_Release(prop_bag);
|
IPropertyBag_Release(prop_bag);
|
||||||
|
@ -476,7 +457,6 @@ static void test_codec(void)
|
||||||
|
|
||||||
static void test_dmo(void)
|
static void test_dmo(void)
|
||||||
{
|
{
|
||||||
static const WCHAR name[] = {'d','e','v','e','n','u','m',' ','t','e','s','t',0};
|
|
||||||
IParseDisplayName *parser;
|
IParseDisplayName *parser;
|
||||||
IPropertyBag *prop_bag;
|
IPropertyBag *prop_bag;
|
||||||
WCHAR buffer[200];
|
WCHAR buffer[200];
|
||||||
|
@ -487,10 +467,9 @@ static void test_dmo(void)
|
||||||
hr = CoCreateInstance(&CLSID_CDeviceMoniker, NULL, CLSCTX_INPROC, &IID_IParseDisplayName, (void **)&parser);
|
hr = CoCreateInstance(&CLSID_CDeviceMoniker, NULL, CLSCTX_INPROC, &IID_IParseDisplayName, (void **)&parser);
|
||||||
ok(hr == S_OK, "Failed to create ParseDisplayName: %#x\n", hr);
|
ok(hr == S_OK, "Failed to create ParseDisplayName: %#x\n", hr);
|
||||||
|
|
||||||
lstrcpyW(buffer, deviceW);
|
wcscpy(buffer, L"@device:dmo:");
|
||||||
lstrcatW(buffer, dmoW);
|
StringFromGUID2(&CLSID_TestFilter, buffer + wcslen(buffer), CHARS_IN_GUID);
|
||||||
StringFromGUID2(&CLSID_TestFilter, buffer + lstrlenW(buffer), CHARS_IN_GUID);
|
StringFromGUID2(&CLSID_AudioRendererCategory, buffer + wcslen(buffer), CHARS_IN_GUID);
|
||||||
StringFromGUID2(&CLSID_AudioRendererCategory, buffer + lstrlenW(buffer), CHARS_IN_GUID);
|
|
||||||
mon = check_display_name(parser, buffer);
|
mon = check_display_name(parser, buffer);
|
||||||
|
|
||||||
ok(!find_moniker(&CLSID_AudioRendererCategory, mon), "DMO should not be registered\n");
|
ok(!find_moniker(&CLSID_AudioRendererCategory, mon), "DMO should not be registered\n");
|
||||||
|
@ -499,15 +478,15 @@ static void test_dmo(void)
|
||||||
ok(hr == S_OK, "got %#x\n", hr);
|
ok(hr == S_OK, "got %#x\n", hr);
|
||||||
|
|
||||||
VariantInit(&var);
|
VariantInit(&var);
|
||||||
hr = IPropertyBag_Read(prop_bag, friendly_name, &var, NULL);
|
hr = IPropertyBag_Read(prop_bag, L"FriendlyName", &var, NULL);
|
||||||
ok(hr == E_FAIL, "got %#x\n", hr);
|
ok(hr == E_FAIL, "got %#x\n", hr);
|
||||||
|
|
||||||
V_VT(&var) = VT_BSTR;
|
V_VT(&var) = VT_BSTR;
|
||||||
V_BSTR(&var) = SysAllocString(name);
|
V_BSTR(&var) = SysAllocString(L"devenum test");
|
||||||
hr = IPropertyBag_Write(prop_bag, friendly_name, &var);
|
hr = IPropertyBag_Write(prop_bag, L"FriendlyName", &var);
|
||||||
ok(hr == E_ACCESSDENIED, "Write failed: %#x\n", hr);
|
ok(hr == E_ACCESSDENIED, "Write failed: %#x\n", hr);
|
||||||
|
|
||||||
hr = DMORegister(name, &CLSID_TestFilter, &CLSID_AudioRendererCategory, 0, 0, NULL, 0, NULL);
|
hr = DMORegister(L"devenum test", &CLSID_TestFilter, &CLSID_AudioRendererCategory, 0, 0, NULL, 0, NULL);
|
||||||
if (hr != E_FAIL)
|
if (hr != E_FAIL)
|
||||||
{
|
{
|
||||||
ok(hr == S_OK, "got %#x\n", hr);
|
ok(hr == S_OK, "got %#x\n", hr);
|
||||||
|
@ -515,18 +494,18 @@ static void test_dmo(void)
|
||||||
ok(find_moniker(&CLSID_AudioRendererCategory, mon), "DMO should be registered\n");
|
ok(find_moniker(&CLSID_AudioRendererCategory, mon), "DMO should be registered\n");
|
||||||
|
|
||||||
VariantClear(&var);
|
VariantClear(&var);
|
||||||
hr = IPropertyBag_Read(prop_bag, friendly_name, &var, NULL);
|
hr = IPropertyBag_Read(prop_bag, L"FriendlyName", &var, NULL);
|
||||||
ok(hr == S_OK, "got %#x\n", hr);
|
ok(hr == S_OK, "got %#x\n", hr);
|
||||||
ok(!lstrcmpW(V_BSTR(&var), name), "got %s\n", wine_dbgstr_w(V_BSTR(&var)));
|
ok(!wcscmp(V_BSTR(&var), L"devenum test"), "got %s\n", wine_dbgstr_w(V_BSTR(&var)));
|
||||||
|
|
||||||
VariantClear(&var);
|
VariantClear(&var);
|
||||||
V_VT(&var) = VT_BSTR;
|
V_VT(&var) = VT_BSTR;
|
||||||
V_BSTR(&var) = SysAllocString(name);
|
V_BSTR(&var) = SysAllocString(L"devenum test");
|
||||||
hr = IPropertyBag_Write(prop_bag, friendly_name, &var);
|
hr = IPropertyBag_Write(prop_bag, L"FriendlyName", &var);
|
||||||
ok(hr == E_ACCESSDENIED, "Write failed: %#x\n", hr);
|
ok(hr == E_ACCESSDENIED, "Write failed: %#x\n", hr);
|
||||||
|
|
||||||
VariantClear(&var);
|
VariantClear(&var);
|
||||||
hr = IPropertyBag_Read(prop_bag, clsidW, &var, NULL);
|
hr = IPropertyBag_Read(prop_bag, L"CLSID", &var, NULL);
|
||||||
ok(hr == HRESULT_FROM_WIN32(ERROR_NOT_FOUND), "got %#x\n", hr);
|
ok(hr == HRESULT_FROM_WIN32(ERROR_NOT_FOUND), "got %#x\n", hr);
|
||||||
|
|
||||||
hr = DMOUnregister(&CLSID_TestFilter, &CLSID_AudioRendererCategory);
|
hr = DMOUnregister(&CLSID_TestFilter, &CLSID_AudioRendererCategory);
|
||||||
|
@ -539,7 +518,6 @@ static void test_dmo(void)
|
||||||
|
|
||||||
static void test_legacy_filter(void)
|
static void test_legacy_filter(void)
|
||||||
{
|
{
|
||||||
static const WCHAR nameW[] = {'t','e','s','t',0};
|
|
||||||
IParseDisplayName *parser;
|
IParseDisplayName *parser;
|
||||||
IPropertyBag *prop_bag;
|
IPropertyBag *prop_bag;
|
||||||
IFilterMapper *mapper;
|
IFilterMapper *mapper;
|
||||||
|
@ -554,7 +532,7 @@ static void test_legacy_filter(void)
|
||||||
hr = CoCreateInstance(&CLSID_FilterMapper2, NULL, CLSCTX_INPROC, &IID_IFilterMapper, (void **)&mapper);
|
hr = CoCreateInstance(&CLSID_FilterMapper2, NULL, CLSCTX_INPROC, &IID_IFilterMapper, (void **)&mapper);
|
||||||
ok(hr == S_OK, "Failed to create FilterMapper: %#x\n", hr);
|
ok(hr == S_OK, "Failed to create FilterMapper: %#x\n", hr);
|
||||||
|
|
||||||
hr = IFilterMapper_RegisterFilter(mapper, CLSID_TestFilter, nameW, 0xdeadbeef);
|
hr = IFilterMapper_RegisterFilter(mapper, CLSID_TestFilter, L"test", 0xdeadbeef);
|
||||||
if (hr == VFW_E_BAD_KEY)
|
if (hr == VFW_E_BAD_KEY)
|
||||||
{
|
{
|
||||||
win_skip("not enough permissions to register filters\n");
|
win_skip("not enough permissions to register filters\n");
|
||||||
|
@ -562,11 +540,10 @@ static void test_legacy_filter(void)
|
||||||
}
|
}
|
||||||
ok(hr == S_OK, "RegisterFilter failed: %#x\n", hr);
|
ok(hr == S_OK, "RegisterFilter failed: %#x\n", hr);
|
||||||
|
|
||||||
lstrcpyW(buffer, deviceW);
|
wcscpy(buffer, L"@device:cm:");
|
||||||
lstrcatW(buffer, cmW);
|
StringFromGUID2(&CLSID_LegacyAmFilterCategory, buffer + wcslen(buffer), CHARS_IN_GUID);
|
||||||
StringFromGUID2(&CLSID_LegacyAmFilterCategory, buffer + lstrlenW(buffer), CHARS_IN_GUID);
|
wcscat(buffer, L"\\");
|
||||||
lstrcatW(buffer, backslashW);
|
StringFromGUID2(&CLSID_TestFilter, buffer + wcslen(buffer), CHARS_IN_GUID);
|
||||||
StringFromGUID2(&CLSID_TestFilter, buffer + lstrlenW(buffer), CHARS_IN_GUID);
|
|
||||||
|
|
||||||
mon = check_display_name(parser, buffer);
|
mon = check_display_name(parser, buffer);
|
||||||
ok(find_moniker(&CLSID_LegacyAmFilterCategory, mon), "filter should be registered\n");
|
ok(find_moniker(&CLSID_LegacyAmFilterCategory, mon), "filter should be registered\n");
|
||||||
|
@ -575,17 +552,17 @@ static void test_legacy_filter(void)
|
||||||
ok(hr == S_OK, "BindToStorage failed: %#x\n", hr);
|
ok(hr == S_OK, "BindToStorage failed: %#x\n", hr);
|
||||||
|
|
||||||
VariantInit(&var);
|
VariantInit(&var);
|
||||||
hr = IPropertyBag_Read(prop_bag, friendly_name, &var, NULL);
|
hr = IPropertyBag_Read(prop_bag, L"FriendlyName", &var, NULL);
|
||||||
ok(hr == S_OK, "Read failed: %#x\n", hr);
|
ok(hr == S_OK, "Read failed: %#x\n", hr);
|
||||||
|
|
||||||
StringFromGUID2(&CLSID_TestFilter, buffer, CHARS_IN_GUID);
|
StringFromGUID2(&CLSID_TestFilter, buffer, CHARS_IN_GUID);
|
||||||
ok(!lstrcmpW(buffer, V_BSTR(&var)), "expected %s, got %s\n",
|
ok(!wcscmp(buffer, V_BSTR(&var)), "expected %s, got %s\n",
|
||||||
wine_dbgstr_w(buffer), wine_dbgstr_w(V_BSTR(&var)));
|
wine_dbgstr_w(buffer), wine_dbgstr_w(V_BSTR(&var)));
|
||||||
|
|
||||||
VariantClear(&var);
|
VariantClear(&var);
|
||||||
hr = IPropertyBag_Read(prop_bag, clsidW, &var, NULL);
|
hr = IPropertyBag_Read(prop_bag, L"CLSID", &var, NULL);
|
||||||
ok(hr == S_OK, "Read failed: %#x\n", hr);
|
ok(hr == S_OK, "Read failed: %#x\n", hr);
|
||||||
ok(!lstrcmpW(buffer, V_BSTR(&var)), "expected %s, got %s\n",
|
ok(!wcscmp(buffer, V_BSTR(&var)), "expected %s, got %s\n",
|
||||||
wine_dbgstr_w(buffer), wine_dbgstr_w(V_BSTR(&var)));
|
wine_dbgstr_w(buffer), wine_dbgstr_w(V_BSTR(&var)));
|
||||||
|
|
||||||
VariantClear(&var);
|
VariantClear(&var);
|
||||||
|
@ -604,9 +581,6 @@ end:
|
||||||
|
|
||||||
static BOOL CALLBACK test_dsound(GUID *guid, const WCHAR *desc, const WCHAR *module, void *context)
|
static BOOL CALLBACK test_dsound(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};
|
|
||||||
IParseDisplayName *parser;
|
IParseDisplayName *parser;
|
||||||
IPropertyBag *prop_bag;
|
IPropertyBag *prop_bag;
|
||||||
IMoniker *mon;
|
IMoniker *mon;
|
||||||
|
@ -617,23 +591,22 @@ static BOOL CALLBACK test_dsound(GUID *guid, const WCHAR *desc, const WCHAR *mod
|
||||||
|
|
||||||
if (guid)
|
if (guid)
|
||||||
{
|
{
|
||||||
lstrcpyW(name, directsoundW);
|
wcscpy(name, L"DirectSound: ");
|
||||||
lstrcatW(name, desc);
|
wcscat(name, desc);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
lstrcpyW(name, defaultW);
|
wcscpy(name, L"Default DirectSound Device");
|
||||||
guid = (GUID *)&GUID_NULL;
|
guid = (GUID *)&GUID_NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
hr = CoCreateInstance(&CLSID_CDeviceMoniker, NULL, CLSCTX_INPROC, &IID_IParseDisplayName, (void **)&parser);
|
hr = CoCreateInstance(&CLSID_CDeviceMoniker, NULL, CLSCTX_INPROC, &IID_IParseDisplayName, (void **)&parser);
|
||||||
ok(hr == S_OK, "Failed to create ParseDisplayName: %#x\n", hr);
|
ok(hr == S_OK, "Failed to create ParseDisplayName: %#x\n", hr);
|
||||||
|
|
||||||
lstrcpyW(buffer, deviceW);
|
wcscpy(buffer, L"@device:cm:");
|
||||||
lstrcatW(buffer, cmW);
|
StringFromGUID2(&CLSID_AudioRendererCategory, buffer + wcslen(buffer), CHARS_IN_GUID);
|
||||||
StringFromGUID2(&CLSID_AudioRendererCategory, buffer + lstrlenW(buffer), CHARS_IN_GUID);
|
wcscat(buffer, L"\\");
|
||||||
lstrcatW(buffer, backslashW);
|
wcscat(buffer, name);
|
||||||
lstrcatW(buffer, name);
|
|
||||||
|
|
||||||
mon = check_display_name(parser, buffer);
|
mon = check_display_name(parser, buffer);
|
||||||
|
|
||||||
|
@ -641,19 +614,17 @@ static BOOL CALLBACK test_dsound(GUID *guid, const WCHAR *desc, const WCHAR *mod
|
||||||
ok(hr == S_OK, "BindToStorage failed: %#x\n", hr);
|
ok(hr == S_OK, "BindToStorage failed: %#x\n", hr);
|
||||||
|
|
||||||
VariantInit(&var);
|
VariantInit(&var);
|
||||||
hr = IPropertyBag_Read(prop_bag, friendly_name, &var, NULL);
|
hr = IPropertyBag_Read(prop_bag, L"FriendlyName", &var, NULL);
|
||||||
if (hr == HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND))
|
if (hr == HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND))
|
||||||
{
|
{
|
||||||
/* Win8+ uses the GUID instead of the device name */
|
/* Win8+ uses the GUID instead of the device name */
|
||||||
IPropertyBag_Release(prop_bag);
|
IPropertyBag_Release(prop_bag);
|
||||||
IMoniker_Release(mon);
|
IMoniker_Release(mon);
|
||||||
|
|
||||||
lstrcpyW(buffer, deviceW);
|
wcscpy(buffer, L"@device:cm:");
|
||||||
lstrcatW(buffer, cmW);
|
StringFromGUID2(&CLSID_AudioRendererCategory, buffer + wcslen(buffer), CHARS_IN_GUID);
|
||||||
StringFromGUID2(&CLSID_AudioRendererCategory, buffer + lstrlenW(buffer), CHARS_IN_GUID);
|
wcscat(buffer, L"\\DirectSound: ");
|
||||||
lstrcatW(buffer, backslashW);
|
StringFromGUID2(guid, buffer + wcslen(buffer) - 1, CHARS_IN_GUID);
|
||||||
lstrcatW(buffer, directsoundW);
|
|
||||||
StringFromGUID2(guid, buffer + lstrlenW(buffer) - 1, CHARS_IN_GUID);
|
|
||||||
|
|
||||||
mon = check_display_name(parser, buffer);
|
mon = check_display_name(parser, buffer);
|
||||||
|
|
||||||
|
@ -661,27 +632,27 @@ static BOOL CALLBACK test_dsound(GUID *guid, const WCHAR *desc, const WCHAR *mod
|
||||||
ok(hr == S_OK, "BindToStorage failed: %#x\n", hr);
|
ok(hr == S_OK, "BindToStorage failed: %#x\n", hr);
|
||||||
|
|
||||||
VariantInit(&var);
|
VariantInit(&var);
|
||||||
hr = IPropertyBag_Read(prop_bag, friendly_name, &var, NULL);
|
hr = IPropertyBag_Read(prop_bag, L"FriendlyName", &var, NULL);
|
||||||
}
|
}
|
||||||
ok(hr == S_OK, "Read failed: %#x\n", hr);
|
ok(hr == S_OK, "Read failed: %#x\n", hr);
|
||||||
|
|
||||||
ok(!lstrcmpW(name, V_BSTR(&var)), "expected %s, got %s\n",
|
ok(!wcscmp(name, V_BSTR(&var)), "expected %s, got %s\n",
|
||||||
wine_dbgstr_w(name), wine_dbgstr_w(V_BSTR(&var)));
|
wine_dbgstr_w(name), wine_dbgstr_w(V_BSTR(&var)));
|
||||||
|
|
||||||
VariantClear(&var);
|
VariantClear(&var);
|
||||||
hr = IPropertyBag_Read(prop_bag, clsidW, &var, NULL);
|
hr = IPropertyBag_Read(prop_bag, L"CLSID", &var, NULL);
|
||||||
ok(hr == S_OK, "Read failed: %#x\n", hr);
|
ok(hr == S_OK, "Read failed: %#x\n", hr);
|
||||||
|
|
||||||
StringFromGUID2(&CLSID_DSoundRender, buffer, CHARS_IN_GUID);
|
StringFromGUID2(&CLSID_DSoundRender, buffer, CHARS_IN_GUID);
|
||||||
ok(!lstrcmpW(buffer, V_BSTR(&var)), "expected %s, got %s\n",
|
ok(!wcscmp(buffer, V_BSTR(&var)), "expected %s, got %s\n",
|
||||||
wine_dbgstr_w(buffer), wine_dbgstr_w(V_BSTR(&var)));
|
wine_dbgstr_w(buffer), wine_dbgstr_w(V_BSTR(&var)));
|
||||||
|
|
||||||
VariantClear(&var);
|
VariantClear(&var);
|
||||||
hr = IPropertyBag_Read(prop_bag, dsguidW, &var, NULL);
|
hr = IPropertyBag_Read(prop_bag, L"DSGuid", &var, NULL);
|
||||||
ok(hr == S_OK, "Read failed: %#x\n", hr);
|
ok(hr == S_OK, "Read failed: %#x\n", hr);
|
||||||
|
|
||||||
StringFromGUID2(guid, buffer, CHARS_IN_GUID);
|
StringFromGUID2(guid, buffer, CHARS_IN_GUID);
|
||||||
ok(!lstrcmpW(buffer, V_BSTR(&var)), "expected %s, got %s\n",
|
ok(!wcscmp(buffer, V_BSTR(&var)), "expected %s, got %s\n",
|
||||||
wine_dbgstr_w(buffer), wine_dbgstr_w(V_BSTR(&var)));
|
wine_dbgstr_w(buffer), wine_dbgstr_w(V_BSTR(&var)));
|
||||||
|
|
||||||
VariantClear(&var);
|
VariantClear(&var);
|
||||||
|
@ -693,8 +664,6 @@ static BOOL CALLBACK test_dsound(GUID *guid, const WCHAR *desc, const WCHAR *mod
|
||||||
|
|
||||||
static void test_waveout(void)
|
static void test_waveout(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};
|
|
||||||
IParseDisplayName *parser;
|
IParseDisplayName *parser;
|
||||||
IPropertyBag *prop_bag;
|
IPropertyBag *prop_bag;
|
||||||
IMoniker *mon;
|
IMoniker *mon;
|
||||||
|
@ -717,15 +686,14 @@ static void test_waveout(void)
|
||||||
waveOutGetDevCapsW(i, &caps, sizeof(caps));
|
waveOutGetDevCapsW(i, &caps, sizeof(caps));
|
||||||
|
|
||||||
if (i == -1) /* WAVE_MAPPER */
|
if (i == -1) /* WAVE_MAPPER */
|
||||||
name = defaultW;
|
name = L"Default WaveOut Device";
|
||||||
else
|
else
|
||||||
name = caps.szPname;
|
name = caps.szPname;
|
||||||
|
|
||||||
lstrcpyW(buffer, deviceW);
|
wcscpy(buffer, L"@device:cm:");
|
||||||
lstrcatW(buffer, cmW);
|
StringFromGUID2(&CLSID_AudioRendererCategory, buffer + wcslen(buffer), CHARS_IN_GUID);
|
||||||
StringFromGUID2(&CLSID_AudioRendererCategory, buffer + lstrlenW(buffer), CHARS_IN_GUID);
|
wcscat(buffer, L"\\");
|
||||||
lstrcatW(buffer, backslashW);
|
wcscat(buffer, name);
|
||||||
lstrcatW(buffer, name);
|
|
||||||
|
|
||||||
mon = check_display_name(parser, buffer);
|
mon = check_display_name(parser, buffer);
|
||||||
|
|
||||||
|
@ -733,7 +701,7 @@ static void test_waveout(void)
|
||||||
ok(hr == S_OK, "BindToStorage failed: %#x\n", hr);
|
ok(hr == S_OK, "BindToStorage failed: %#x\n", hr);
|
||||||
|
|
||||||
VariantInit(&var);
|
VariantInit(&var);
|
||||||
hr = IPropertyBag_Read(prop_bag, friendly_name, &var, NULL);
|
hr = IPropertyBag_Read(prop_bag, L"FriendlyName", &var, NULL);
|
||||||
if (hr == HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND))
|
if (hr == HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND))
|
||||||
{
|
{
|
||||||
IPropertyBag_Release(prop_bag);
|
IPropertyBag_Release(prop_bag);
|
||||||
|
@ -744,35 +712,33 @@ static void test_waveout(void)
|
||||||
(DWORD_PTR) endpoint, sizeof(endpoint));
|
(DWORD_PTR) endpoint, sizeof(endpoint));
|
||||||
ok(!mmr, "waveOutMessage failed: %u\n", mmr);
|
ok(!mmr, "waveOutMessage failed: %u\n", mmr);
|
||||||
|
|
||||||
lstrcpyW(buffer, deviceW);
|
wcscpy(buffer, L"@device:cm:");
|
||||||
lstrcatW(buffer, cmW);
|
StringFromGUID2(&CLSID_AudioRendererCategory, buffer + wcslen(buffer), CHARS_IN_GUID);
|
||||||
StringFromGUID2(&CLSID_AudioRendererCategory, buffer + lstrlenW(buffer), CHARS_IN_GUID);
|
wcscat(buffer, L"\\wave:");
|
||||||
lstrcatW(buffer, backslashW);
|
wcscat(buffer, wcschr(endpoint, '}') + 2);
|
||||||
lstrcatW(buffer, waveW);
|
|
||||||
lstrcatW(buffer, wcschr(endpoint, '}') + 2);
|
|
||||||
|
|
||||||
mon = check_display_name(parser, buffer);
|
mon = check_display_name(parser, buffer);
|
||||||
|
|
||||||
hr = IMoniker_BindToStorage(mon, NULL, NULL, &IID_IPropertyBag, (void **)&prop_bag);
|
hr = IMoniker_BindToStorage(mon, NULL, NULL, &IID_IPropertyBag, (void **)&prop_bag);
|
||||||
ok(hr == S_OK, "BindToStorage failed: %#x\n", hr);
|
ok(hr == S_OK, "BindToStorage failed: %#x\n", hr);
|
||||||
|
|
||||||
hr = IPropertyBag_Read(prop_bag, friendly_name, &var, NULL);
|
hr = IPropertyBag_Read(prop_bag, L"FriendlyName", &var, NULL);
|
||||||
}
|
}
|
||||||
ok(hr == S_OK, "Read failed: %#x\n", hr);
|
ok(hr == S_OK, "Read failed: %#x\n", hr);
|
||||||
|
|
||||||
ok(!wcsncmp(name, V_BSTR(&var), lstrlenW(name)), "expected %s, got %s\n",
|
ok(!wcsncmp(name, V_BSTR(&var), wcslen(name)), "expected %s, got %s\n",
|
||||||
wine_dbgstr_w(name), wine_dbgstr_w(V_BSTR(&var)));
|
wine_dbgstr_w(name), wine_dbgstr_w(V_BSTR(&var)));
|
||||||
|
|
||||||
VariantClear(&var);
|
VariantClear(&var);
|
||||||
hr = IPropertyBag_Read(prop_bag, clsidW, &var, NULL);
|
hr = IPropertyBag_Read(prop_bag, L"CLSID", &var, NULL);
|
||||||
ok(hr == S_OK, "Read failed: %#x\n", hr);
|
ok(hr == S_OK, "Read failed: %#x\n", hr);
|
||||||
|
|
||||||
StringFromGUID2(&CLSID_AudioRender, buffer, CHARS_IN_GUID);
|
StringFromGUID2(&CLSID_AudioRender, buffer, CHARS_IN_GUID);
|
||||||
ok(!lstrcmpW(buffer, V_BSTR(&var)), "expected %s, got %s\n",
|
ok(!wcscmp(buffer, V_BSTR(&var)), "expected %s, got %s\n",
|
||||||
wine_dbgstr_w(buffer), wine_dbgstr_w(V_BSTR(&var)));
|
wine_dbgstr_w(buffer), wine_dbgstr_w(V_BSTR(&var)));
|
||||||
|
|
||||||
VariantClear(&var);
|
VariantClear(&var);
|
||||||
hr = IPropertyBag_Read(prop_bag, waveoutidW, &var, NULL);
|
hr = IPropertyBag_Read(prop_bag, L"WaveOutId", &var, NULL);
|
||||||
ok(hr == S_OK, "Read failed: %#x\n", hr);
|
ok(hr == S_OK, "Read failed: %#x\n", hr);
|
||||||
|
|
||||||
ok(V_I4(&var) == i, "expected %d, got %d\n", i, V_I4(&var));
|
ok(V_I4(&var) == i, "expected %d, got %d\n", i, V_I4(&var));
|
||||||
|
@ -786,7 +752,6 @@ static void test_waveout(void)
|
||||||
|
|
||||||
static void test_wavein(void)
|
static void test_wavein(void)
|
||||||
{
|
{
|
||||||
static const WCHAR waveinidW[] = {'W','a','v','e','I','n','I','d',0};
|
|
||||||
IParseDisplayName *parser;
|
IParseDisplayName *parser;
|
||||||
IPropertyBag *prop_bag;
|
IPropertyBag *prop_bag;
|
||||||
IMoniker *mon;
|
IMoniker *mon;
|
||||||
|
@ -807,11 +772,10 @@ static void test_wavein(void)
|
||||||
{
|
{
|
||||||
waveInGetDevCapsW(i, &caps, sizeof(caps));
|
waveInGetDevCapsW(i, &caps, sizeof(caps));
|
||||||
|
|
||||||
lstrcpyW(buffer, deviceW);
|
wcscpy(buffer, L"@device:cm:");
|
||||||
lstrcatW(buffer, cmW);
|
StringFromGUID2(&CLSID_AudioInputDeviceCategory, buffer + wcslen(buffer), CHARS_IN_GUID);
|
||||||
StringFromGUID2(&CLSID_AudioInputDeviceCategory, buffer + lstrlenW(buffer), CHARS_IN_GUID);
|
wcscat(buffer, L"\\");
|
||||||
lstrcatW(buffer, backslashW);
|
wcscat(buffer, caps.szPname);
|
||||||
lstrcatW(buffer, caps.szPname);
|
|
||||||
|
|
||||||
mon = check_display_name(parser, buffer);
|
mon = check_display_name(parser, buffer);
|
||||||
|
|
||||||
|
@ -819,7 +783,7 @@ static void test_wavein(void)
|
||||||
ok(hr == S_OK, "BindToStorage failed: %#x\n", hr);
|
ok(hr == S_OK, "BindToStorage failed: %#x\n", hr);
|
||||||
|
|
||||||
VariantInit(&var);
|
VariantInit(&var);
|
||||||
hr = IPropertyBag_Read(prop_bag, friendly_name, &var, NULL);
|
hr = IPropertyBag_Read(prop_bag, L"FriendlyName", &var, NULL);
|
||||||
if (hr == HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND))
|
if (hr == HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND))
|
||||||
{
|
{
|
||||||
IPropertyBag_Release(prop_bag);
|
IPropertyBag_Release(prop_bag);
|
||||||
|
@ -830,35 +794,33 @@ static void test_wavein(void)
|
||||||
(DWORD_PTR) endpoint, sizeof(endpoint));
|
(DWORD_PTR) endpoint, sizeof(endpoint));
|
||||||
ok(!mmr, "waveInMessage failed: %u\n", mmr);
|
ok(!mmr, "waveInMessage failed: %u\n", mmr);
|
||||||
|
|
||||||
lstrcpyW(buffer, deviceW);
|
wcscpy(buffer, L"@device:cm:");
|
||||||
lstrcatW(buffer, cmW);
|
StringFromGUID2(&CLSID_AudioInputDeviceCategory, buffer + wcslen(buffer), CHARS_IN_GUID);
|
||||||
StringFromGUID2(&CLSID_AudioInputDeviceCategory, buffer + lstrlenW(buffer), CHARS_IN_GUID);
|
wcscat(buffer, L"\\wave:");
|
||||||
lstrcatW(buffer, backslashW);
|
wcscat(buffer, wcschr(endpoint, '}') + 2);
|
||||||
lstrcatW(buffer, waveW);
|
|
||||||
lstrcatW(buffer, wcschr(endpoint, '}') + 2);
|
|
||||||
|
|
||||||
mon = check_display_name(parser, buffer);
|
mon = check_display_name(parser, buffer);
|
||||||
|
|
||||||
hr = IMoniker_BindToStorage(mon, NULL, NULL, &IID_IPropertyBag, (void **)&prop_bag);
|
hr = IMoniker_BindToStorage(mon, NULL, NULL, &IID_IPropertyBag, (void **)&prop_bag);
|
||||||
ok(hr == S_OK, "BindToStorage failed: %#x\n", hr);
|
ok(hr == S_OK, "BindToStorage failed: %#x\n", hr);
|
||||||
|
|
||||||
hr = IPropertyBag_Read(prop_bag, friendly_name, &var, NULL);
|
hr = IPropertyBag_Read(prop_bag, L"FriendlyName", &var, NULL);
|
||||||
}
|
}
|
||||||
ok(hr == S_OK, "Read failed: %#x\n", hr);
|
ok(hr == S_OK, "Read failed: %#x\n", hr);
|
||||||
|
|
||||||
ok(!wcsncmp(caps.szPname, V_BSTR(&var), lstrlenW(caps.szPname)), "expected %s, got %s\n",
|
ok(!wcsncmp(caps.szPname, V_BSTR(&var), wcslen(caps.szPname)), "expected %s, got %s\n",
|
||||||
wine_dbgstr_w(caps.szPname), wine_dbgstr_w(V_BSTR(&var)));
|
wine_dbgstr_w(caps.szPname), wine_dbgstr_w(V_BSTR(&var)));
|
||||||
|
|
||||||
VariantClear(&var);
|
VariantClear(&var);
|
||||||
hr = IPropertyBag_Read(prop_bag, clsidW, &var, NULL);
|
hr = IPropertyBag_Read(prop_bag, L"CLSID", &var, NULL);
|
||||||
ok(hr == S_OK, "Read failed: %#x\n", hr);
|
ok(hr == S_OK, "Read failed: %#x\n", hr);
|
||||||
|
|
||||||
StringFromGUID2(&CLSID_AudioRecord, buffer, CHARS_IN_GUID);
|
StringFromGUID2(&CLSID_AudioRecord, buffer, CHARS_IN_GUID);
|
||||||
ok(!lstrcmpW(buffer, V_BSTR(&var)), "expected %s, got %s\n",
|
ok(!wcscmp(buffer, V_BSTR(&var)), "expected %s, got %s\n",
|
||||||
wine_dbgstr_w(buffer), wine_dbgstr_w(V_BSTR(&var)));
|
wine_dbgstr_w(buffer), wine_dbgstr_w(V_BSTR(&var)));
|
||||||
|
|
||||||
VariantClear(&var);
|
VariantClear(&var);
|
||||||
hr = IPropertyBag_Read(prop_bag, waveinidW, &var, NULL);
|
hr = IPropertyBag_Read(prop_bag, L"WaveInId", &var, NULL);
|
||||||
ok(hr == S_OK, "Read failed: %#x\n", hr);
|
ok(hr == S_OK, "Read failed: %#x\n", hr);
|
||||||
|
|
||||||
ok(V_I4(&var) == i, "expected %d, got %d\n", i, V_I4(&var));
|
ok(V_I4(&var) == i, "expected %d, got %d\n", i, V_I4(&var));
|
||||||
|
@ -872,8 +834,6 @@ static void test_wavein(void)
|
||||||
|
|
||||||
static void test_midiout(void)
|
static void test_midiout(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};
|
|
||||||
IParseDisplayName *parser;
|
IParseDisplayName *parser;
|
||||||
IPropertyBag *prop_bag;
|
IPropertyBag *prop_bag;
|
||||||
IMoniker *mon;
|
IMoniker *mon;
|
||||||
|
@ -894,15 +854,14 @@ static void test_midiout(void)
|
||||||
midiOutGetDevCapsW(i, &caps, sizeof(caps));
|
midiOutGetDevCapsW(i, &caps, sizeof(caps));
|
||||||
|
|
||||||
if (i == -1) /* MIDI_MAPPER */
|
if (i == -1) /* MIDI_MAPPER */
|
||||||
name = defaultW;
|
name = L"Default MidiOut Device";
|
||||||
else
|
else
|
||||||
name = caps.szPname;
|
name = caps.szPname;
|
||||||
|
|
||||||
lstrcpyW(buffer, deviceW);
|
wcscpy(buffer, L"@device:cm:");
|
||||||
lstrcatW(buffer, cmW);
|
StringFromGUID2(&CLSID_MidiRendererCategory, buffer + wcslen(buffer), CHARS_IN_GUID);
|
||||||
StringFromGUID2(&CLSID_MidiRendererCategory, buffer + lstrlenW(buffer), CHARS_IN_GUID);
|
wcscat(buffer, L"\\");
|
||||||
lstrcatW(buffer, backslashW);
|
wcscat(buffer, name);
|
||||||
lstrcatW(buffer, name);
|
|
||||||
|
|
||||||
mon = check_display_name(parser, buffer);
|
mon = check_display_name(parser, buffer);
|
||||||
|
|
||||||
|
@ -910,22 +869,22 @@ static void test_midiout(void)
|
||||||
ok(hr == S_OK, "BindToStorage failed: %#x\n", hr);
|
ok(hr == S_OK, "BindToStorage failed: %#x\n", hr);
|
||||||
|
|
||||||
VariantInit(&var);
|
VariantInit(&var);
|
||||||
hr = IPropertyBag_Read(prop_bag, friendly_name, &var, NULL);
|
hr = IPropertyBag_Read(prop_bag, L"FriendlyName", &var, NULL);
|
||||||
ok(hr == S_OK, "Read failed: %#x\n", hr);
|
ok(hr == S_OK, "Read failed: %#x\n", hr);
|
||||||
|
|
||||||
ok(!lstrcmpW(name, V_BSTR(&var)), "expected %s, got %s\n",
|
ok(!wcscmp(name, V_BSTR(&var)), "expected %s, got %s\n",
|
||||||
wine_dbgstr_w(name), wine_dbgstr_w(V_BSTR(&var)));
|
wine_dbgstr_w(name), wine_dbgstr_w(V_BSTR(&var)));
|
||||||
|
|
||||||
VariantClear(&var);
|
VariantClear(&var);
|
||||||
hr = IPropertyBag_Read(prop_bag, clsidW, &var, NULL);
|
hr = IPropertyBag_Read(prop_bag, L"CLSID", &var, NULL);
|
||||||
ok(hr == S_OK, "Read failed: %#x\n", hr);
|
ok(hr == S_OK, "Read failed: %#x\n", hr);
|
||||||
|
|
||||||
StringFromGUID2(&CLSID_AVIMIDIRender, buffer, CHARS_IN_GUID);
|
StringFromGUID2(&CLSID_AVIMIDIRender, buffer, CHARS_IN_GUID);
|
||||||
ok(!lstrcmpW(buffer, V_BSTR(&var)), "expected %s, got %s\n",
|
ok(!wcscmp(buffer, V_BSTR(&var)), "expected %s, got %s\n",
|
||||||
wine_dbgstr_w(buffer), wine_dbgstr_w(V_BSTR(&var)));
|
wine_dbgstr_w(buffer), wine_dbgstr_w(V_BSTR(&var)));
|
||||||
|
|
||||||
VariantClear(&var);
|
VariantClear(&var);
|
||||||
hr = IPropertyBag_Read(prop_bag, midioutidW, &var, NULL);
|
hr = IPropertyBag_Read(prop_bag, L"MidiOutId", &var, NULL);
|
||||||
ok(hr == S_OK, "Read failed: %#x\n", hr);
|
ok(hr == S_OK, "Read failed: %#x\n", hr);
|
||||||
|
|
||||||
ok(V_I4(&var) == i, "expected %d, got %d\n", i, V_I4(&var));
|
ok(V_I4(&var) == i, "expected %d, got %d\n", i, V_I4(&var));
|
||||||
|
@ -939,7 +898,6 @@ static void test_midiout(void)
|
||||||
|
|
||||||
static void test_vfw(void)
|
static void test_vfw(void)
|
||||||
{
|
{
|
||||||
static const WCHAR fcchandlerW[] = {'F','c','c','H','a','n','d','l','e','r',0};
|
|
||||||
IParseDisplayName *parser;
|
IParseDisplayName *parser;
|
||||||
IPropertyBag *prop_bag;
|
IPropertyBag *prop_bag;
|
||||||
IMoniker *mon;
|
IMoniker *mon;
|
||||||
|
@ -968,11 +926,10 @@ static void test_vfw(void)
|
||||||
ICGetInfo(hic, &info, sizeof(info));
|
ICGetInfo(hic, &info, sizeof(info));
|
||||||
ICClose(hic);
|
ICClose(hic);
|
||||||
|
|
||||||
lstrcpyW(buffer, deviceW);
|
wcscpy(buffer, L"@device:cm:");
|
||||||
lstrcatW(buffer, cmW);
|
StringFromGUID2(&CLSID_VideoCompressorCategory, buffer + wcslen(buffer), CHARS_IN_GUID);
|
||||||
StringFromGUID2(&CLSID_VideoCompressorCategory, buffer + lstrlenW(buffer), CHARS_IN_GUID);
|
wcscat(buffer, L"\\");
|
||||||
lstrcatW(buffer, backslashW);
|
wcscat(buffer, name);
|
||||||
lstrcatW(buffer, name);
|
|
||||||
|
|
||||||
mon = check_display_name(parser, buffer);
|
mon = check_display_name(parser, buffer);
|
||||||
|
|
||||||
|
@ -980,24 +937,24 @@ static void test_vfw(void)
|
||||||
ok(hr == S_OK, "BindToStorage failed: %#x\n", hr);
|
ok(hr == S_OK, "BindToStorage failed: %#x\n", hr);
|
||||||
|
|
||||||
VariantInit(&var);
|
VariantInit(&var);
|
||||||
hr = IPropertyBag_Read(prop_bag, friendly_name, &var, NULL);
|
hr = IPropertyBag_Read(prop_bag, L"FriendlyName", &var, NULL);
|
||||||
ok(hr == S_OK, "Read failed: %#x\n", hr);
|
ok(hr == S_OK, "Read failed: %#x\n", hr);
|
||||||
|
|
||||||
ok(!lstrcmpW(info.szDescription, V_BSTR(&var)), "expected %s, got %s\n",
|
ok(!wcscmp(info.szDescription, V_BSTR(&var)), "expected %s, got %s\n",
|
||||||
wine_dbgstr_w(info.szDescription), wine_dbgstr_w(V_BSTR(&var)));
|
wine_dbgstr_w(info.szDescription), wine_dbgstr_w(V_BSTR(&var)));
|
||||||
|
|
||||||
VariantClear(&var);
|
VariantClear(&var);
|
||||||
hr = IPropertyBag_Read(prop_bag, clsidW, &var, NULL);
|
hr = IPropertyBag_Read(prop_bag, L"CLSID", &var, NULL);
|
||||||
ok(hr == S_OK, "Read failed: %#x\n", hr);
|
ok(hr == S_OK, "Read failed: %#x\n", hr);
|
||||||
|
|
||||||
StringFromGUID2(&CLSID_AVICo, buffer, CHARS_IN_GUID);
|
StringFromGUID2(&CLSID_AVICo, buffer, CHARS_IN_GUID);
|
||||||
ok(!lstrcmpW(buffer, V_BSTR(&var)), "expected %s, got %s\n",
|
ok(!wcscmp(buffer, V_BSTR(&var)), "expected %s, got %s\n",
|
||||||
wine_dbgstr_w(buffer), wine_dbgstr_w(V_BSTR(&var)));
|
wine_dbgstr_w(buffer), wine_dbgstr_w(V_BSTR(&var)));
|
||||||
|
|
||||||
VariantClear(&var);
|
VariantClear(&var);
|
||||||
hr = IPropertyBag_Read(prop_bag, fcchandlerW, &var, NULL);
|
hr = IPropertyBag_Read(prop_bag, L"FccHandler", &var, NULL);
|
||||||
ok(hr == S_OK, "Read failed: %#x\n", hr);
|
ok(hr == S_OK, "Read failed: %#x\n", hr);
|
||||||
ok(!lstrcmpW(name, V_BSTR(&var)), "expected %s, got %s\n",
|
ok(!wcscmp(name, V_BSTR(&var)), "expected %s, got %s\n",
|
||||||
wine_dbgstr_w(name), wine_dbgstr_w(V_BSTR(&var)));
|
wine_dbgstr_w(name), wine_dbgstr_w(V_BSTR(&var)));
|
||||||
|
|
||||||
VariantClear(&var);
|
VariantClear(&var);
|
||||||
|
|
Loading…
Reference in New Issue