Jacek Caban : devenum: Added more strict CLSID_VideoCompressorCategory test.

Alexandre Julliard julliard at winehq.org
Thu Jan 9 12:52:49 CST 2014


Module: wine
Branch: master
Commit: 51e3c2397ca752f5f095a61344a52886a10187c8
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=51e3c2397ca752f5f095a61344a52886a10187c8

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Thu Jan  9 11:11:45 2014 +0100

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 c7f765b..b6158d6 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 */




More information about the wine-cvs mailing list