1use shared::basetsd::SHANDLE_PTR;
8use shared::wtypes::{BSTR, VARIANT_BOOL};
9use um::docobj::{OLECMDEXECOPT, OLECMDF, OLECMDID};
10use um::oaidl::{IDispatch, IDispatchVtbl, VARIANT};
11use um::ocidl::READYSTATE;
12use um::winnt::{HRESULT, INT, LONG};
13DEFINE_GUID!{IID_IWebBrowser2,
14 0xd30c1661, 0xcdaf, 0x11d0, 0x8a, 0x3e, 0x00, 0xc0, 0x4f, 0xc9, 0xe2, 0x6e}
15RIDL!{#[uuid(0xeab22ac1, 0x30c1, 0x11cf, 0xa7, 0xeb, 0x00, 0x00, 0xc0, 0x5b, 0xae, 0x0b)]
16interface IWebBrowser(IWebBrowserVtbl): IDispatch(IDispatchVtbl) {
17 fn GoBack() -> HRESULT,
18 fn GoForward() -> HRESULT,
19 fn GoHome() -> HRESULT,
20 fn GoSearch() -> HRESULT,
21 fn Navigate(
22 URL: BSTR,
23 Flags: *const VARIANT,
24 TargetFrameName: *const VARIANT,
25 PostData: *const VARIANT,
26 Headers: *const VARIANT,
27 ) -> HRESULT,
28 fn Refresh() -> HRESULT,
29 fn Refresh2(
30 Level: *const VARIANT,
31 ) -> HRESULT,
32 fn Stop() -> HRESULT,
33 fn get_Application(
34 ppDisp: *mut *mut IDispatch,
35 ) -> HRESULT,
36 fn get_Parent(
37 ppDisp: *mut *mut IDispatch,
38 ) -> HRESULT,
39 fn get_Container(
40 ppDisp: *mut *mut IDispatch,
41 ) -> HRESULT,
42 fn get_Document(
43 ppDisp: *mut *mut IDispatch,
44 ) -> HRESULT,
45 fn get_TopLevelContainer(
46 pBool: *mut VARIANT_BOOL,
47 ) -> HRESULT,
48 fn get_Type(
49 Type: *mut BSTR,
50 ) -> HRESULT,
51 fn get_Left(
52 pl: *mut LONG,
53 ) -> HRESULT,
54 fn put_Left(
55 Left: LONG,
56 ) -> HRESULT,
57 fn get_Top(
58 pl: *mut LONG,
59 ) -> HRESULT,
60 fn put_Top(
61 Top: LONG,
62 ) -> HRESULT,
63 fn get_Width(
64 pl: *mut LONG,
65 ) -> HRESULT,
66 fn put_Width(
67 Width: LONG,
68 ) -> HRESULT,
69 fn get_Height(
70 pl: *mut LONG,
71 ) -> HRESULT,
72 fn put_Height(
73 Height: LONG,
74 ) -> HRESULT,
75 fn get_LocationName(
76 LocationName: *mut BSTR,
77 ) -> HRESULT,
78 fn get_LocationURL(
79 LocationURL: *mut BSTR,
80 ) -> HRESULT,
81 fn get_Busy(
82 pBool: *mut VARIANT_BOOL,
83 ) -> HRESULT,
84}}
85RIDL!{#[uuid(0x0002df05, 0x0000, 0x0000, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46)]
86interface IWebBrowserApp(IWebBrowserAppVtbl): IWebBrowser(IWebBrowserVtbl) {
87 fn Quit() -> HRESULT,
88 fn ClientToWindow(
89 pcx: *mut INT,
90 pcy: *mut INT,
91 ) -> HRESULT,
92 fn PutProperty(
93 Property: BSTR,
94 vtValue: VARIANT,
95 ) -> HRESULT,
96 fn GetProperty(
97 Property: BSTR,
98 pvtValue: *mut VARIANT,
99 ) -> HRESULT,
100 fn get_Name(
101 Name: *mut BSTR,
102 ) -> HRESULT,
103 fn get_HWND(
104 pHWND: *mut SHANDLE_PTR,
105 ) -> HRESULT,
106 fn get_FullName(
107 FullName: *mut BSTR,
108 ) -> HRESULT,
109 fn get_Path(
110 Path: *mut BSTR,
111 ) -> HRESULT,
112 fn get_Visible(
113 pBool: *mut VARIANT_BOOL,
114 ) -> HRESULT,
115 fn put_Visible(
116 Value: VARIANT_BOOL,
117 ) -> HRESULT,
118 fn get_StatusBar(
119 pBool: *mut VARIANT_BOOL,
120 ) -> HRESULT,
121 fn put_StatusBar(
122 Value: VARIANT_BOOL,
123 ) -> HRESULT,
124 fn get_StatusText(
125 StatusText: *mut BSTR,
126 ) -> HRESULT,
127 fn put_StatusText(
128 StatusText: BSTR,
129 ) -> HRESULT,
130 fn get_ToolBar(
131 Value: *mut INT,
132 ) -> HRESULT,
133 fn put_ToolBar(
134 Value: INT,
135 ) -> HRESULT,
136 fn get_MenuBar(
137 Value: *mut VARIANT_BOOL,
138 ) -> HRESULT,
139 fn put_MenuBar(
140 Value: VARIANT_BOOL,
141 ) -> HRESULT,
142 fn get_FullScreen(
143 pbFullScreen: *mut VARIANT_BOOL,
144 ) -> HRESULT,
145 fn put_FullScreen(
146 bFullScreen: VARIANT_BOOL,
147 ) -> HRESULT,
148}}
149RIDL!{#[uuid(0xd30c1661, 0xcdaf, 0x11d0, 0x8a, 0x3e, 0x00, 0xc0, 0x4f, 0xc9, 0xe2, 0x6e)]
150interface IWebBrowser2(IWebBrowser2Vtbl): IWebBrowserApp(IWebBrowserAppVtbl) {
151 fn Navigate2(
152 URL: *const VARIANT,
153 Flags: *const VARIANT,
154 TargetFrameName: *const VARIANT,
155 PostData: *const VARIANT,
156 Headers: *const VARIANT,
157 ) -> HRESULT,
158 fn QueryStatusWB(
159 cmdID: OLECMDID,
160 pcmdf: *mut OLECMDF,
161 ) -> HRESULT,
162 fn ExecWB(
163 cmdID: OLECMDID,
164 cmdexecopt: OLECMDEXECOPT,
165 pvaIn: *const VARIANT,
166 pvaOut: *mut VARIANT,
167 ) -> HRESULT,
168 fn ShowBrowserBar(
169 pvaClsid: *const VARIANT,
170 pvarShow: *const VARIANT,
171 pvarSize: *const VARIANT,
172 ) -> HRESULT,
173 fn get_ReadyState(
174 plReadyState: *mut READYSTATE,
175 ) -> HRESULT,
176 fn get_Offline(
177 pbOffline: *mut VARIANT_BOOL,
178 ) -> HRESULT,
179 fn put_Offline(
180 bOffline: VARIANT_BOOL,
181 ) -> HRESULT,
182 fn get_Silent(
183 pbSilent: *mut VARIANT_BOOL,
184 ) -> HRESULT,
185 fn put_Silent(
186 bSilent: VARIANT_BOOL,
187 ) -> HRESULT,
188 fn get_RegisterAsBrowser(
189 pbRegister: *mut VARIANT_BOOL,
190 ) -> HRESULT,
191 fn put_RegisterAsBrowser(
192 bRegister: VARIANT_BOOL,
193 ) -> HRESULT,
194 fn get_RegisterAsDropTarget(
195 pbRegister: *mut VARIANT_BOOL,
196 ) -> HRESULT,
197 fn put_RegisterAsDropTarget(
198 bRegister: VARIANT_BOOL,
199 ) -> HRESULT,
200 fn get_TheaterMode(
201 pbRegister: *mut VARIANT_BOOL,
202 ) -> HRESULT,
203 fn put_TheaterMode(
204 bRegister: VARIANT_BOOL,
205 ) -> HRESULT,
206 fn get_AddressBar(
207 Value: *mut VARIANT_BOOL,
208 ) -> HRESULT,
209 fn put_AddressBar(
210 Value: VARIANT_BOOL,
211 ) -> HRESULT,
212 fn get_Resizable(
213 Value: *mut VARIANT_BOOL,
214 ) -> HRESULT,
215 fn put_Resizable(
216 Value: VARIANT_BOOL,
217 ) -> HRESULT,
218}}
219DEFINE_GUID!{CLSID_InternetExplorer,
220 0x0002df01, 0x0000, 0x0000, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46}