Rémi Bernon : widl: Only register activatable WinRT runtimeclass.

Alexandre Julliard julliard at winehq.org
Wed Mar 17 16:23:15 CDT 2021


Module: wine
Branch: master
Commit: 7f9143143ffd2f2a52dcfe39bbe3e6c4ae200bb5
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=7f9143143ffd2f2a52dcfe39bbe3e6c4ae200bb5

Author: Rémi Bernon <rbernon at codeweavers.com>
Date:   Wed Mar 17 13:07:02 2021 +0100

widl: Only register activatable WinRT runtimeclass.

Or with a static factory, as Windows.Input.Gamepad for instance.

Signed-off-by: Rémi Bernon <rbernon at codeweavers.com>
Signed-off-by: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/windows.media.speech/tests/statics.c | 3 +--
 tools/widl/register.c                     | 1 +
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/dlls/windows.media.speech/tests/statics.c b/dlls/windows.media.speech/tests/statics.c
index 8454729f9c3..9faa49dfc5d 100644
--- a/dlls/windows.media.speech/tests/statics.c
+++ b/dlls/windows.media.speech/tests/statics.c
@@ -136,8 +136,7 @@ static void test_VoiceInformation(void)
     ok(SUCCEEDED(hr), "WindowsCreateString failed, hr %#x\n", hr);
 
     hr = pRoGetActivationFactory(str, &IID_IActivationFactory, (void **)&factory);
-    todo_wine ok(hr == REGDB_E_CLASSNOTREG, "RoGetActivationFactory returned unexpected hr %#x\n", hr);
-    if (SUCCEEDED(hr)) IActivationFactory_Release(factory);
+    ok(hr == REGDB_E_CLASSNOTREG, "RoGetActivationFactory returned unexpected hr %#x\n", hr);
 
     pWindowsDeleteString(str);
 
diff --git a/tools/widl/register.c b/tools/widl/register.c
index 76bfc3c715c..e13d8451f9e 100644
--- a/tools/widl/register.c
+++ b/tools/widl/register.c
@@ -194,6 +194,7 @@ static void write_runtimeclasses_registry( const statement_list_t *stmts )
     {
         if (stmt->type != STMT_TYPE) continue;
         if (type_get_type((type = stmt->u.type)) != TYPE_RUNTIMECLASS) continue;
+        if (!get_attrp(type->attrs, ATTR_ACTIVATABLE) && !get_attrp(type->attrs, ATTR_STATIC)) continue;
         put_str( indent, "ForceRemove %s\n", format_namespace( type->namespace, "", ".", type->name, NULL ) );
         put_str( indent++, "{\n" );
         put_str( indent, "val 'DllPath' = s '%%MODULE%%'\n" );




More information about the wine-cvs mailing list