From 51e3c2397ca752f5f095a61344a52886a10187c8 Mon Sep 17 00:00:00 2001 From: Jacek Caban Date: Thu, 9 Jan 2014 11:11:45 +0100 Subject: [PATCH] devenum: Added more strict CLSID_VideoCompressorCategory test. --- dlls/devenum/tests/devenum.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/dlls/devenum/tests/devenum.c b/dlls/devenum/tests/devenum.c index c7f765b1bde..b6158d65128 100644 --- a/dlls/devenum/tests/devenum.c +++ b/dlls/devenum/tests/devenum.c @@ -29,6 +29,8 @@ #include "uuids.h" static const WCHAR friendly_name[] = {'F','r','i','e','n','d','l','y','N','a','m','e',0}; +static const WCHAR fcc_handlerW[] = {'F','c','c','H','a','n','d','l','e','r',0}; +static const WCHAR mrleW[] = {'m','r','l','e',0}; struct category { @@ -52,6 +54,7 @@ static void test_devenum(IBindCtx *bind_ctx) HRESULT res; ICreateDevEnum* create_devenum; IEnumMoniker* enum_moniker = NULL; + BOOL have_mrle = FALSE; int i; res = CoCreateInstance(&CLSID_SystemDeviceEnum, NULL, CLSCTX_INPROC, @@ -96,6 +99,17 @@ static void test_devenum(IBindCtx *bind_ctx) { trace(" ???\n"); } + + if (IsEqualGUID(&CLSID_VideoCompressorCategory, am_categories[i].clsid)) { + /* Test well known compressor to ensure that we really enumerate codecs */ + hr = IPropertyBag_Read(prop_bag, fcc_handlerW, &var, NULL); + if (SUCCEEDED(hr)) { + ok(V_VT(&var) == VT_BSTR, "V_VT(var) = %d\n", V_VT(&var)); + if(!lstrcmpW(V_BSTR(&var), mrleW)) + have_mrle = TRUE; + VariantClear(&var); + } + } } if (prop_bag) @@ -107,6 +121,10 @@ static void test_devenum(IBindCtx *bind_ctx) } ICreateDevEnum_Release(create_devenum); + + /* 64-bit windows are missing mrle codec */ + if(sizeof(void*) == 4) + ok(have_mrle, "mrle codec not found\n"); } /* CLSID_CDeviceMoniker */