Commit 2bfcfcc0 authored by Rémi Bernon's avatar Rémi Bernon Committed by Alexandre Julliard

widl: Support referencing qualified interface names.

And split the dispinterface case, which is not supported in WinRT mode. Signed-off-by: 's avatarRémi Bernon <rbernon@codeweavers.com> Signed-off-by: 's avatarJacek Caban <jacek@codeweavers.com> Signed-off-by: 's avatarAlexandre Julliard <julliard@winehq.org>
parent 509daf4d
......@@ -64,7 +64,7 @@ namespace Windows {
]
runtimeclass VoiceInformation
{
[default] interface IVoiceInformation;
[default] interface Windows.Media.SpeechSynthesis.IVoiceInformation;
}
}
}
......
......@@ -282,6 +282,7 @@ static typelib_t *current_typelib;
%type <declspec> decl_spec unqualified_decl_spec decl_spec_no_type m_decl_spec_no_type
%type <type> inherit interface interfacedef
%type <type> interfaceref
%type <type> dispinterfaceref
%type <type> dispinterface dispinterfacedef
%type <type> module moduledef
%type <str> 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); }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment