From 7f9143143ffd2f2a52dcfe39bbe3e6c4ae200bb5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Bernon?= Date: Wed, 17 Mar 2021 13:07:02 +0100 Subject: [PATCH] widl: Only register activatable WinRT runtimeclass. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Or with a static factory, as Windows.Input.Gamepad for instance. Signed-off-by: RĂ©mi Bernon Signed-off-by: Jacek Caban Signed-off-by: Alexandre Julliard --- 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" );