widl: Only register activatable WinRT runtimeclass.

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

Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Rémi Bernon 2021-03-17 13:07:02 +01:00 committed by Alexandre Julliard
parent c057c76893
commit 7f9143143f
2 changed files with 2 additions and 2 deletions

View File

@ -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);

View File

@ -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" );