diff --git a/include/windows.media.speechsynthesis.idl b/include/windows.media.speechsynthesis.idl index 71c51b74c0c..502261f79c6 100644 --- a/include/windows.media.speechsynthesis.idl +++ b/include/windows.media.speechsynthesis.idl @@ -64,7 +64,7 @@ namespace Windows { ] runtimeclass VoiceInformation { - [default] interface IVoiceInformation; + [default] interface Windows.Media.SpeechSynthesis.IVoiceInformation; } } } diff --git a/tools/widl/parser.y b/tools/widl/parser.y index bbf71a2e3ef..b43a1cdd5f2 100644 --- a/tools/widl/parser.y +++ b/tools/widl/parser.y @@ -282,6 +282,7 @@ static typelib_t *current_typelib; %type decl_spec unqualified_decl_spec decl_spec_no_type m_decl_spec_no_type %type inherit interface interfacedef %type interfaceref +%type dispinterfaceref %type dispinterface dispinterfacedef %type module moduledef %type namespacedef @@ -926,6 +927,7 @@ class_interfaces: { $$ = NULL; } class_interface: m_attributes interfaceref ';' { $$ = make_ifref($2); $$->attrs = $1; } + | m_attributes dispinterfaceref ';' { $$ = make_ifref($2); $$->attrs = $1; } ; dispinterface: tDISPINTERFACE typename { $$ = type_dispinterface_declare($2); } @@ -965,7 +967,11 @@ interfacedef: attributes interface inherit interfaceref: tINTERFACE typename { $$ = get_type(TYPE_INTERFACE, $2, current_namespace, 0); } - | tDISPINTERFACE typename { $$ = get_type(TYPE_INTERFACE, $2, current_namespace, 0); } + | tINTERFACE namespace_pfx typename { $$ = get_type(TYPE_INTERFACE, $3, $2, 0); } + ; + +dispinterfaceref: + tDISPINTERFACE typename { $$ = get_type(TYPE_INTERFACE, $2, current_namespace, 0); } ; module: tMODULE typename { $$ = type_module_declare($2); }