1 // Licensed under the Apache License, Version 2.0
2 // <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
3 // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
4 // All files in the project carrying such notice may not be copied, modified, or distributed
5 // except according to those terms.
6 //! Mappings for the contents of ExDisp.h
7 use shared::basetsd::SHANDLE_PTR;
8 use shared::wtypes::{BSTR, VARIANT_BOOL};
9 use um::docobj::{OLECMDEXECOPT, OLECMDF, OLECMDID};
10 use um::oaidl::{IDispatch, IDispatchVtbl, VARIANT};
11 use um::ocidl::READYSTATE;
12 use um::winnt::{HRESULT, INT, LONG};
13 DEFINE_GUID!{IID_IWebBrowser2,
14     0xd30c1661, 0xcdaf, 0x11d0, 0x8a, 0x3e, 0x00, 0xc0, 0x4f, 0xc9, 0xe2, 0x6e}
15 RIDL!{#[uuid(0xeab22ac1, 0x30c1, 0x11cf, 0xa7, 0xeb, 0x00, 0x00, 0xc0, 0x5b, 0xae, 0x0b)]
16 interface 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 }}
85 RIDL!{#[uuid(0x0002df05, 0x0000, 0x0000, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46)]
86 interface 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 }}
149 RIDL!{#[uuid(0xd30c1661, 0xcdaf, 0x11d0, 0x8a, 0x3e, 0x00, 0xc0, 0x4f, 0xc9, 0xe2, 0x6e)]
150 interface 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 }}
219 DEFINE_GUID!{CLSID_InternetExplorer,
220     0x0002df01, 0x0000, 0x0000, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46}
221