Commit 5c982650 authored by Jacek Caban's avatar Jacek Caban Committed by Alexandre Julliard

Added writing forward declaration of dispinterface.

parent 0fb8f4a1
......@@ -682,7 +682,8 @@ void write_forward(type_t *iface)
* attributes - however, if we don't have a full definition at this point
* (i.e. this is an IDL forward), then we also assume that it is an object
* interface, since non-object interfaces shouldn't need forwards */
if ((!iface->defined || is_object(iface->attrs)) && !iface->written) {
if ((!iface->defined || is_object(iface->attrs) || is_attr(iface->attrs, ATTR_DISPINTERFACE))
&& !iface->written) {
fprintf(header,"#ifndef __%s_FWD_DEFINED__\n", iface->name);
fprintf(header,"#define __%s_FWD_DEFINED__\n", iface->name);
fprintf(header, "typedef struct %s %s;\n", iface->name, iface->name);
......
......@@ -595,7 +595,7 @@ dispinterface: tDISPINTERFACE aIDENTIFIER { $$ = get_type(0, $2, 0); }
dispinterfacehdr: attributes dispinterface { $$ = $2;
if ($$->defined) yyerror("multiple definition error\n");
$$->attrs = $1;
/* $$->attrs = make_attr(ATTR_DISPINTERFACE); */
$$->attrs = make_attr(ATTR_DISPINTERFACE);
/* LINK($$->attrs, $1); */
$$->ref = find_type("IDispatch", 0);
if (!$$->ref) yyerror("IDispatch is undefined\n");
......
......@@ -98,6 +98,7 @@ enum attr_type
ATTR_V1ENUM,
ATTR_VERSION,
ATTR_WIREMARSHAL,
ATTR_DISPINTERFACE
};
enum expr_type
......
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