devenum: Added more strict CLSID_VideoCompressorCategory test.

This commit is contained in:
Jacek Caban 2014-01-09 11:11:45 +01:00 committed by Alexandre Julliard
parent e303f11628
commit 51e3c2397c

View file

@ -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 */