widl: Write out the pre- and postamble for RPC interfaces with no methods.
diff --git a/tools/widl/header.c b/tools/widl/header.c
index 0347ead..ba241f6 100644
--- a/tools/widl/header.c
+++ b/tools/widl/header.c
@@ -917,18 +917,19 @@
   unsigned long ver = get_attrv(iface->attrs, ATTR_VERSION);
   const char *var = get_attrp(iface->attrs, ATTR_IMPLICIT_HANDLE);
 
-  if (!iface->funcs) return;
-
   fprintf(header, "/*****************************************************************************\n");
   fprintf(header, " * %s interface (v%d.%d)\n", iface->name, LOWORD(ver), HIWORD(ver));
   fprintf(header, " */\n");
   fprintf(header,"#ifndef __%s_INTERFACE_DEFINED__\n", iface->name);
   fprintf(header,"#define __%s_INTERFACE_DEFINED__\n\n", iface->name);
-  write_iface_guid(iface);
-  if (var) fprintf(header, "extern handle_t %s;\n", var);
-  fprintf(header, "extern RPC_IF_HANDLE %s_v%d_%d_c_ifspec;\n", iface->name, LOWORD(ver), HIWORD(ver));
-  fprintf(header, "extern RPC_IF_HANDLE %s_v%d_%d_s_ifspec;\n", iface->name, LOWORD(ver), HIWORD(ver));
-  write_function_proto(iface);
+  if (iface->funcs)
+  {
+    write_iface_guid(iface);
+    if (var) fprintf(header, "extern handle_t %s;\n", var);
+    fprintf(header, "extern RPC_IF_HANDLE %s_v%d_%d_c_ifspec;\n", iface->name, LOWORD(ver), HIWORD(ver));
+    fprintf(header, "extern RPC_IF_HANDLE %s_v%d_%d_s_ifspec;\n", iface->name, LOWORD(ver), HIWORD(ver));
+    write_function_proto(iface);
+  }
   fprintf(header,"\n#endif  /* __%s_INTERFACE_DEFINED__ */\n\n", iface->name);
 
   /* FIXME: server/client code */