Dan Hipschman : widl: Write forward declarations for coclass definitions.

Alexandre Julliard julliard at wine.codeweavers.com
Thu Aug 3 15:58:36 CDT 2006


Module: wine
Branch: refs/heads/master
Commit: 99056d7e2ac56e11a4f6c101463c705abb611bf1
URL:    http://source.winehq.org/git/?p=wine.git;a=commit;h=99056d7e2ac56e11a4f6c101463c705abb611bf1

Author: Dan Hipschman <dsh at linux.ucla.edu>
Date:   Wed Aug  2 17:36:15 2006 -0700

widl: Write forward declarations for coclass definitions.

---

 dlls/mshtml/mshtml_private.h |    4 ++--
 dlls/shdocvw/shdocvw.h       |    8 ++++----
 tools/widl/parser.y          |    2 ++
 3 files changed, 8 insertions(+), 6 deletions(-)

diff --git a/dlls/mshtml/mshtml_private.h b/dlls/mshtml/mshtml_private.h
index e0c1c3c..e93658a 100644
--- a/dlls/mshtml/mshtml_private.h
+++ b/dlls/mshtml/mshtml_private.h
@@ -53,7 +53,7 @@ typedef enum {
     EDITMODE        
 } USERMODE;
 
-typedef struct {
+struct HTMLDocument {
     const IHTMLDocument2Vtbl              *lpHTMLDocument2Vtbl;
     const IHTMLDocument3Vtbl              *lpHTMLDocument3Vtbl;
     const IPersistMonikerVtbl             *lpPersistMonikerVtbl;
@@ -96,7 +96,7 @@ typedef struct {
     ConnectionPoint *cp_propnotif;
 
     HTMLDOMNode *nodes;
-} HTMLDocument;
+};
 
 struct NSContainer {
     const nsIWebBrowserChromeVtbl       *lpWebBrowserChromeVtbl;
diff --git a/dlls/shdocvw/shdocvw.h b/dlls/shdocvw/shdocvw.h
index 2f9f9cc..ee4bf8e 100644
--- a/dlls/shdocvw/shdocvw.h
+++ b/dlls/shdocvw/shdocvw.h
@@ -87,7 +87,7 @@ typedef struct {
     ConnectionPointContainer cps;
 } DocHost;
 
-typedef struct {
+struct WebBrowser {
     /* Interfaces available via WebBrowser object */
 
     const IWebBrowser2Vtbl              *lpWebBrowser2Vtbl;
@@ -130,9 +130,9 @@ typedef struct {
     VARIANT_BOOL tool_bar;
 
     DocHost doc_host;
-} WebBrowser;
+};
 
-typedef struct {
+struct InternetExplorer {
     const IWebBrowser2Vtbl *lpWebBrowser2Vtbl;
 
     LONG ref;
@@ -140,7 +140,7 @@ typedef struct {
     HWND frame_hwnd;
 
     DocHost doc_host;
-} InternetExplorer;
+};
 
 #define WEBBROWSER(x)   ((IWebBrowser*)                 &(x)->lpWebBrowser2Vtbl)
 #define WEBBROWSER2(x)  ((IWebBrowser2*)                &(x)->lpWebBrowser2Vtbl)
diff --git a/tools/widl/parser.y b/tools/widl/parser.y
index db78003..b9f858e 100644
--- a/tools/widl/parser.y
+++ b/tools/widl/parser.y
@@ -249,6 +249,7 @@ gbl_statements:					{ $$ = NULL; }
 	| gbl_statements coclassdef		{ $$ = $1;
 						  add_coclass($2);
 						  reg_type($2, $2->name, 0);
+						  if (!parse_only && do_header) write_coclass_forward($2);
 						}
 	| gbl_statements moduledef		{ $$ = $1; add_module($2); }
 	| gbl_statements librarydef		{ $$ = $1; }
@@ -261,6 +262,7 @@ imp_statements:					{}
 	| imp_statements coclass ';'		{ reg_type($2, $2->name, 0); if (!parse_only && do_header) write_coclass_forward($2); }
 	| imp_statements coclassdef		{ if (!parse_only) add_coclass($2);
 						  reg_type($2, $2->name, 0);
+						  if (!parse_only && do_header) write_coclass_forward($2);
 						}
 	| imp_statements moduledef		{ if (!parse_only) add_module($2); }
 	| imp_statements statement		{}




More information about the wine-cvs mailing list