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