widl: Write forward declarations for coclass definitions.

This commit is contained in:
Dan Hipschman 2006-08-02 17:36:15 -07:00 committed by Alexandre Julliard
parent f07740b28b
commit 99056d7e2a
3 changed files with 8 additions and 6 deletions

View File

@ -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;

View File

@ -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)

View File

@ -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 {}