Module: wine Branch: refs/heads/master Commit: 99056d7e2ac56e11a4f6c101463c705abb611bf1 URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=99056d7e2ac56e11a4f6c101...
Author: Dan Hipschman dsh@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 {}