* Sync up to trunk head (r64921).
[reactos.git] / dll / win32 / ieframe / iehtmlwnd.c
1 /*
2 * Copyright 2012 Jacek Caban for CodeWeavers
3 *
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
8 *
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
13 *
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
17 */
18
19 #include "ieframe.h"
20
21 static inline IEHTMLWindow *impl_from_IHTMLWindow2(IHTMLWindow2 *iface)
22 {
23 return CONTAINING_RECORD(iface, IEHTMLWindow, IHTMLWindow2_iface);
24 }
25
26 static HRESULT WINAPI IEHTMLWindow2_QueryInterface(IHTMLWindow2 *iface, REFIID riid, void **ppv)
27 {
28 IEHTMLWindow *This = impl_from_IHTMLWindow2(iface);
29
30 if(IsEqualGUID(&IID_IUnknown, riid)) {
31 TRACE("(%p)->(IID_IUnknown %p)\n", This, ppv);
32 *ppv = &This->IHTMLWindow2_iface;
33 }else if(IsEqualGUID(&IID_IDispatch, riid)) {
34 TRACE("(%p)->(IID_IDispatch %p)\n", This, ppv);
35 *ppv = &This->IHTMLWindow2_iface;
36 }else if(IsEqualGUID(&IID_IHTMLFramesCollection2, riid)) {
37 TRACE("(%p)->(IID_IHTMLFramesCollection2 %p)\n", This, ppv);
38 *ppv = &This->IHTMLWindow2_iface;
39 }else if(IsEqualGUID(&IID_IHTMLWindow2, riid)) {
40 TRACE("(%p)->(IID_IHTMLWindow2 %p)\n", This, ppv);
41 *ppv = &This->IHTMLWindow2_iface;
42 }else {
43 WARN("(%p)->(%s %p)\n", This, debugstr_guid(riid), ppv);
44 *ppv = NULL;
45 return E_NOINTERFACE;
46 }
47
48 IUnknown_AddRef((IUnknown*)*ppv);
49 return S_OK;
50 }
51
52 static ULONG WINAPI IEHTMLWindow2_AddRef(IHTMLWindow2 *iface)
53 {
54 IEHTMLWindow *This = impl_from_IHTMLWindow2(iface);
55
56 TRACE("(%p)\n", This);
57
58 return IOleClientSite_AddRef(&This->doc_host->IOleClientSite_iface);
59 }
60
61 static ULONG WINAPI IEHTMLWindow2_Release(IHTMLWindow2 *iface)
62 {
63 IEHTMLWindow *This = impl_from_IHTMLWindow2(iface);
64
65 TRACE("(%p)\n", This);
66
67 return IOleClientSite_Release(&This->doc_host->IOleClientSite_iface);
68 }
69
70 static HRESULT WINAPI IEHTMLWindow2_GetTypeInfoCount(IHTMLWindow2 *iface, UINT *pctinfo)
71 {
72 IEHTMLWindow *This = impl_from_IHTMLWindow2(iface);
73 FIXME("(%p)->()\n", This);
74 return E_NOTIMPL;
75 }
76
77 static HRESULT WINAPI IEHTMLWindow2_GetTypeInfo(IHTMLWindow2 *iface, UINT iTInfo,
78 LCID lcid, ITypeInfo **ppTInfo)
79 {
80 IEHTMLWindow *This = impl_from_IHTMLWindow2(iface);
81 FIXME("(%p)->()\n", This);
82 return E_NOTIMPL;
83 }
84
85 static HRESULT WINAPI IEHTMLWindow2_GetIDsOfNames(IHTMLWindow2 *iface, REFIID riid,
86 LPOLESTR *rgszNames, UINT cNames,
87 LCID lcid, DISPID *rgDispId)
88 {
89 IEHTMLWindow *This = impl_from_IHTMLWindow2(iface);
90 FIXME("(%p)->()\n", This);
91 return E_NOTIMPL;
92 }
93
94 static HRESULT WINAPI IEHTMLWindow2_Invoke(IHTMLWindow2 *iface, DISPID dispIdMember,
95 REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams,
96 VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
97 {
98 IEHTMLWindow *This = impl_from_IHTMLWindow2(iface);
99 FIXME("(%p)->()\n", This);
100 return E_NOTIMPL;
101 }
102
103 static HRESULT WINAPI IEHTMLWindow2_item(IHTMLWindow2 *iface, VARIANT *pvarIndex, VARIANT *pvarResult)
104 {
105 IEHTMLWindow *This = impl_from_IHTMLWindow2(iface);
106 FIXME("(%p)->(%p %p)\n", This, pvarIndex, pvarResult);
107 return E_NOTIMPL;
108 }
109
110 static HRESULT WINAPI IEHTMLWindow2_get_length(IHTMLWindow2 *iface, LONG *p)
111 {
112 IEHTMLWindow *This = impl_from_IHTMLWindow2(iface);
113 FIXME("(%p)->(%p)\n", This, p);
114 return E_NOTIMPL;
115 }
116
117 static HRESULT WINAPI IEHTMLWindow2_get_frames(IHTMLWindow2 *iface, IHTMLFramesCollection2 **p)
118 {
119 IEHTMLWindow *This = impl_from_IHTMLWindow2(iface);
120 FIXME("(%p)->(%p)\n", This, p);
121 return E_NOTIMPL;
122 }
123
124 static HRESULT WINAPI IEHTMLWindow2_put_defaultStatus(IHTMLWindow2 *iface, BSTR v)
125 {
126 IEHTMLWindow *This = impl_from_IHTMLWindow2(iface);
127 FIXME("(%p)->(%s)\n", This, debugstr_w(v));
128 return E_NOTIMPL;
129 }
130
131 static HRESULT WINAPI IEHTMLWindow2_get_defaultStatus(IHTMLWindow2 *iface, BSTR *p)
132 {
133 IEHTMLWindow *This = impl_from_IHTMLWindow2(iface);
134 FIXME("(%p)->(%p)\n", This, p);
135 return E_NOTIMPL;
136 }
137
138 static HRESULT WINAPI IEHTMLWindow2_put_status(IHTMLWindow2 *iface, BSTR v)
139 {
140 IEHTMLWindow *This = impl_from_IHTMLWindow2(iface);
141 FIXME("(%p)->(%s)\n", This, debugstr_w(v));
142 return E_NOTIMPL;
143 }
144
145 static HRESULT WINAPI IEHTMLWindow2_get_status(IHTMLWindow2 *iface, BSTR *p)
146 {
147 IEHTMLWindow *This = impl_from_IHTMLWindow2(iface);
148 FIXME("(%p)->(%p)\n", This, p);
149 return E_NOTIMPL;
150 }
151
152 static HRESULT WINAPI IEHTMLWindow2_setTimeout(IHTMLWindow2 *iface, BSTR expression,
153 LONG msec, VARIANT *language, LONG *timerID)
154 {
155 IEHTMLWindow *This = impl_from_IHTMLWindow2(iface);
156 FIXME("(%p)->(%s %d %p %p)\n", This, debugstr_w(expression), msec, language, timerID);
157 return E_NOTIMPL;
158 }
159
160 static HRESULT WINAPI IEHTMLWindow2_clearTimeout(IHTMLWindow2 *iface, LONG timerID)
161 {
162 IEHTMLWindow *This = impl_from_IHTMLWindow2(iface);
163 FIXME("(%p)->(%d)\n", This, timerID);
164 return E_NOTIMPL;
165 }
166
167 static HRESULT WINAPI IEHTMLWindow2_alert(IHTMLWindow2 *iface, BSTR message)
168 {
169 IEHTMLWindow *This = impl_from_IHTMLWindow2(iface);
170 FIXME("(%p)->(%s)\n", This, debugstr_w(message));
171 return E_NOTIMPL;
172 }
173
174 static HRESULT WINAPI IEHTMLWindow2_confirm(IHTMLWindow2 *iface, BSTR message,
175 VARIANT_BOOL *confirmed)
176 {
177 IEHTMLWindow *This = impl_from_IHTMLWindow2(iface);
178 FIXME("(%p)->(%s %p)\n", This, debugstr_w(message), confirmed);
179 return E_NOTIMPL;
180 }
181
182 static HRESULT WINAPI IEHTMLWindow2_prompt(IHTMLWindow2 *iface, BSTR message,
183 BSTR dststr, VARIANT *textdata)
184 {
185 IEHTMLWindow *This = impl_from_IHTMLWindow2(iface);
186 FIXME("(%p)->(%s %s %p)\n", This, debugstr_w(message), debugstr_w(dststr), textdata);
187 return E_NOTIMPL;
188 }
189
190 static HRESULT WINAPI IEHTMLWindow2_get_Image(IHTMLWindow2 *iface, IHTMLImageElementFactory **p)
191 {
192 IEHTMLWindow *This = impl_from_IHTMLWindow2(iface);
193 FIXME("(%p)->(%p)\n", This, p);
194 return E_NOTIMPL;
195 }
196
197 static HRESULT WINAPI IEHTMLWindow2_get_location(IHTMLWindow2 *iface, IHTMLLocation **p)
198 {
199 IEHTMLWindow *This = impl_from_IHTMLWindow2(iface);
200 FIXME("(%p)->(%p)\n", This, p);
201 return E_NOTIMPL;
202 }
203
204 static HRESULT WINAPI IEHTMLWindow2_get_history(IHTMLWindow2 *iface, IOmHistory **p)
205 {
206 IEHTMLWindow *This = impl_from_IHTMLWindow2(iface);
207 FIXME("(%p)->(%p)\n", This, p);
208 return E_NOTIMPL;
209 }
210
211 static HRESULT WINAPI IEHTMLWindow2_close(IHTMLWindow2 *iface)
212 {
213 IEHTMLWindow *This = impl_from_IHTMLWindow2(iface);
214
215 FIXME("(%p) semi-stub\n", This);
216
217 if(!This->doc_host->wb)
218 return E_UNEXPECTED;
219
220 return IWebBrowser2_put_Visible(This->doc_host->wb, VARIANT_FALSE);
221 }
222
223 static HRESULT WINAPI IEHTMLWindow2_put_opener(IHTMLWindow2 *iface, VARIANT v)
224 {
225 IEHTMLWindow *This = impl_from_IHTMLWindow2(iface);
226 FIXME("(%p)->(v(%d))\n", This, V_VT(&v));
227 return E_NOTIMPL;
228 }
229
230 static HRESULT WINAPI IEHTMLWindow2_get_opener(IHTMLWindow2 *iface, VARIANT *p)
231 {
232 IEHTMLWindow *This = impl_from_IHTMLWindow2(iface);
233 FIXME("(%p)->(%p)\n", This, p);
234 return E_NOTIMPL;
235 }
236
237 static HRESULT WINAPI IEHTMLWindow2_get_navigator(IHTMLWindow2 *iface, IOmNavigator **p)
238 {
239 IEHTMLWindow *This = impl_from_IHTMLWindow2(iface);
240 FIXME("(%p)->(%p)\n", This, p);
241 return E_NOTIMPL;
242 }
243
244 static HRESULT WINAPI IEHTMLWindow2_put_name(IHTMLWindow2 *iface, BSTR v)
245 {
246 IEHTMLWindow *This = impl_from_IHTMLWindow2(iface);
247 FIXME("(%p)->(%s)\n", This, debugstr_w(v));
248 return E_NOTIMPL;
249 }
250
251 static HRESULT WINAPI IEHTMLWindow2_get_name(IHTMLWindow2 *iface, BSTR *p)
252 {
253 IEHTMLWindow *This = impl_from_IHTMLWindow2(iface);
254 FIXME("(%p)->(%p)\n", This, p);
255 return E_NOTIMPL;
256 }
257
258 static HRESULT WINAPI IEHTMLWindow2_get_parent(IHTMLWindow2 *iface, IHTMLWindow2 **p)
259 {
260 IEHTMLWindow *This = impl_from_IHTMLWindow2(iface);
261 FIXME("(%p)->(%p)\n", This, p);
262 return E_NOTIMPL;
263 }
264
265 static HRESULT WINAPI IEHTMLWindow2_open(IHTMLWindow2 *iface, BSTR url, BSTR name,
266 BSTR features, VARIANT_BOOL replace, IHTMLWindow2 **pomWindowResult)
267 {
268 IEHTMLWindow *This = impl_from_IHTMLWindow2(iface);
269 FIXME("(%p)->(%s %s %s %x %p)\n", This, debugstr_w(url), debugstr_w(name),
270 debugstr_w(features), replace, pomWindowResult);
271 return E_NOTIMPL;
272 }
273
274 static HRESULT WINAPI IEHTMLWindow2_get_self(IHTMLWindow2 *iface, IHTMLWindow2 **p)
275 {
276 IEHTMLWindow *This = impl_from_IHTMLWindow2(iface);
277 FIXME("(%p)->(%p)\n", This, p);
278 return E_NOTIMPL;
279 }
280
281 static HRESULT WINAPI IEHTMLWindow2_get_top(IHTMLWindow2 *iface, IHTMLWindow2 **p)
282 {
283 IEHTMLWindow *This = impl_from_IHTMLWindow2(iface);
284 FIXME("(%p)->(%p)\n", This, p);
285 return E_NOTIMPL;
286 }
287
288 static HRESULT WINAPI IEHTMLWindow2_get_window(IHTMLWindow2 *iface, IHTMLWindow2 **p)
289 {
290 IEHTMLWindow *This = impl_from_IHTMLWindow2(iface);
291 FIXME("(%p)->(%p)\n", This, p);
292 return E_NOTIMPL;
293 }
294
295 static HRESULT WINAPI IEHTMLWindow2_navigate(IHTMLWindow2 *iface, BSTR url)
296 {
297 IEHTMLWindow *This = impl_from_IHTMLWindow2(iface);
298 FIXME("(%p)->(%s)\n", This, debugstr_w(url));
299 return E_NOTIMPL;
300 }
301
302 static HRESULT WINAPI IEHTMLWindow2_put_onfocus(IHTMLWindow2 *iface, VARIANT v)
303 {
304 IEHTMLWindow *This = impl_from_IHTMLWindow2(iface);
305 FIXME("(%p)->(v(%d))\n", This, V_VT(&v));
306 return E_NOTIMPL;
307 }
308
309 static HRESULT WINAPI IEHTMLWindow2_get_onfocus(IHTMLWindow2 *iface, VARIANT *p)
310 {
311 IEHTMLWindow *This = impl_from_IHTMLWindow2(iface);
312 FIXME("(%p)->(%p)\n", This, p);
313 return E_NOTIMPL;
314 }
315
316 static HRESULT WINAPI IEHTMLWindow2_put_onblur(IHTMLWindow2 *iface, VARIANT v)
317 {
318 IEHTMLWindow *This = impl_from_IHTMLWindow2(iface);
319 FIXME("(%p)->(v(%d))\n", This, V_VT(&v));
320 return E_NOTIMPL;
321 }
322
323 static HRESULT WINAPI IEHTMLWindow2_get_onblur(IHTMLWindow2 *iface, VARIANT *p)
324 {
325 IEHTMLWindow *This = impl_from_IHTMLWindow2(iface);
326 FIXME("(%p)->(%p)\n", This, p);
327 return E_NOTIMPL;
328 }
329
330 static HRESULT WINAPI IEHTMLWindow2_put_onload(IHTMLWindow2 *iface, VARIANT v)
331 {
332 IEHTMLWindow *This = impl_from_IHTMLWindow2(iface);
333 FIXME("(%p)->(%s)\n", This, debugstr_variant(&v));
334 return E_NOTIMPL;
335 }
336
337 static HRESULT WINAPI IEHTMLWindow2_get_onload(IHTMLWindow2 *iface, VARIANT *p)
338 {
339 IEHTMLWindow *This = impl_from_IHTMLWindow2(iface);
340 FIXME("(%p)->(%p)\n", This, p);
341 return E_NOTIMPL;
342 }
343
344 static HRESULT WINAPI IEHTMLWindow2_put_onbeforeunload(IHTMLWindow2 *iface, VARIANT v)
345 {
346 IEHTMLWindow *This = impl_from_IHTMLWindow2(iface);
347 FIXME("(%p)->(v(%d))\n", This, V_VT(&v));
348 return E_NOTIMPL;
349 }
350
351 static HRESULT WINAPI IEHTMLWindow2_get_onbeforeunload(IHTMLWindow2 *iface, VARIANT *p)
352 {
353 IEHTMLWindow *This = impl_from_IHTMLWindow2(iface);
354 FIXME("(%p)->(%p)\n", This, p);
355 return E_NOTIMPL;
356 }
357
358 static HRESULT WINAPI IEHTMLWindow2_put_onunload(IHTMLWindow2 *iface, VARIANT v)
359 {
360 IEHTMLWindow *This = impl_from_IHTMLWindow2(iface);
361 FIXME("(%p)->(v(%d))\n", This, V_VT(&v));
362 return E_NOTIMPL;
363 }
364
365 static HRESULT WINAPI IEHTMLWindow2_get_onunload(IHTMLWindow2 *iface, VARIANT *p)
366 {
367 IEHTMLWindow *This = impl_from_IHTMLWindow2(iface);
368 FIXME("(%p)->(%p)\n", This, p);
369 return E_NOTIMPL;
370 }
371
372 static HRESULT WINAPI IEHTMLWindow2_put_onhelp(IHTMLWindow2 *iface, VARIANT v)
373 {
374 IEHTMLWindow *This = impl_from_IHTMLWindow2(iface);
375 FIXME("(%p)->(v(%d))\n", This, V_VT(&v));
376 return E_NOTIMPL;
377 }
378
379 static HRESULT WINAPI IEHTMLWindow2_get_onhelp(IHTMLWindow2 *iface, VARIANT *p)
380 {
381 IEHTMLWindow *This = impl_from_IHTMLWindow2(iface);
382 FIXME("(%p)->(%p)\n", This, p);
383 return E_NOTIMPL;
384 }
385
386 static HRESULT WINAPI IEHTMLWindow2_put_onerror(IHTMLWindow2 *iface, VARIANT v)
387 {
388 IEHTMLWindow *This = impl_from_IHTMLWindow2(iface);
389 FIXME("(%p)->(v(%d))\n", This, V_VT(&v));
390 return E_NOTIMPL;
391 }
392
393 static HRESULT WINAPI IEHTMLWindow2_get_onerror(IHTMLWindow2 *iface, VARIANT *p)
394 {
395 IEHTMLWindow *This = impl_from_IHTMLWindow2(iface);
396 FIXME("(%p)->(%p)\n", This, p);
397 return E_NOTIMPL;
398 }
399
400 static HRESULT WINAPI IEHTMLWindow2_put_onresize(IHTMLWindow2 *iface, VARIANT v)
401 {
402 IEHTMLWindow *This = impl_from_IHTMLWindow2(iface);
403 FIXME("(%p)->(%s)\n", This, debugstr_variant(&v));
404 return E_NOTIMPL;
405 }
406
407 static HRESULT WINAPI IEHTMLWindow2_get_onresize(IHTMLWindow2 *iface, VARIANT *p)
408 {
409 IEHTMLWindow *This = impl_from_IHTMLWindow2(iface);
410 FIXME("(%p)->(%p)\n", This, p);
411 return E_NOTIMPL;
412 }
413
414 static HRESULT WINAPI IEHTMLWindow2_put_onscroll(IHTMLWindow2 *iface, VARIANT v)
415 {
416 IEHTMLWindow *This = impl_from_IHTMLWindow2(iface);
417 FIXME("(%p)->(v(%d))\n", This, V_VT(&v));
418 return E_NOTIMPL;
419 }
420
421 static HRESULT WINAPI IEHTMLWindow2_get_onscroll(IHTMLWindow2 *iface, VARIANT *p)
422 {
423 IEHTMLWindow *This = impl_from_IHTMLWindow2(iface);
424 FIXME("(%p)->(%p)\n", This, p);
425 return E_NOTIMPL;
426 }
427
428 static HRESULT WINAPI IEHTMLWindow2_get_document(IHTMLWindow2 *iface, IHTMLDocument2 **p)
429 {
430 IEHTMLWindow *This = impl_from_IHTMLWindow2(iface);
431 FIXME("(%p)->(%p)\n", This, p);
432 return E_NOTIMPL;
433 }
434
435 static HRESULT WINAPI IEHTMLWindow2_get_event(IHTMLWindow2 *iface, IHTMLEventObj **p)
436 {
437 IEHTMLWindow *This = impl_from_IHTMLWindow2(iface);
438 FIXME("(%p)->(%p)\n", This, p);
439 return E_NOTIMPL;
440 }
441
442 static HRESULT WINAPI IEHTMLWindow2_get__newEnum(IHTMLWindow2 *iface, IUnknown **p)
443 {
444 IEHTMLWindow *This = impl_from_IHTMLWindow2(iface);
445 FIXME("(%p)->(%p)\n", This, p);
446 return E_NOTIMPL;
447 }
448
449 static HRESULT WINAPI IEHTMLWindow2_showModalDialog(IHTMLWindow2 *iface, BSTR dialog,
450 VARIANT *varArgIn, VARIANT *varOptions, VARIANT *varArgOut)
451 {
452 IEHTMLWindow *This = impl_from_IHTMLWindow2(iface);
453 FIXME("(%p)->(%s %p %p %p)\n", This, debugstr_w(dialog), varArgIn, varOptions, varArgOut);
454 return E_NOTIMPL;
455 }
456
457 static HRESULT WINAPI IEHTMLWindow2_showHelp(IHTMLWindow2 *iface, BSTR helpURL, VARIANT helpArg,
458 BSTR features)
459 {
460 IEHTMLWindow *This = impl_from_IHTMLWindow2(iface);
461 FIXME("(%p)->(%s v(%d) %s)\n", This, debugstr_w(helpURL), V_VT(&helpArg), debugstr_w(features));
462 return E_NOTIMPL;
463 }
464
465 static HRESULT WINAPI IEHTMLWindow2_get_screen(IHTMLWindow2 *iface, IHTMLScreen **p)
466 {
467 IEHTMLWindow *This = impl_from_IHTMLWindow2(iface);
468 FIXME("(%p)->(%p)\n", This, p);
469 return E_NOTIMPL;
470 }
471
472 static HRESULT WINAPI IEHTMLWindow2_get_Option(IHTMLWindow2 *iface, IHTMLOptionElementFactory **p)
473 {
474 IEHTMLWindow *This = impl_from_IHTMLWindow2(iface);
475 FIXME("(%p)->(%p)\n", This, p);
476 return E_NOTIMPL;
477 }
478
479 static HRESULT WINAPI IEHTMLWindow2_focus(IHTMLWindow2 *iface)
480 {
481 IEHTMLWindow *This = impl_from_IHTMLWindow2(iface);
482 FIXME("(%p)->()\n", This);
483 return E_NOTIMPL;
484 }
485
486 static HRESULT WINAPI IEHTMLWindow2_get_closed(IHTMLWindow2 *iface, VARIANT_BOOL *p)
487 {
488 IEHTMLWindow *This = impl_from_IHTMLWindow2(iface);
489 FIXME("(%p)->(%p)\n", This, p);
490 return E_NOTIMPL;
491 }
492
493 static HRESULT WINAPI IEHTMLWindow2_blur(IHTMLWindow2 *iface)
494 {
495 IEHTMLWindow *This = impl_from_IHTMLWindow2(iface);
496 FIXME("(%p)->()\n", This);
497 return E_NOTIMPL;
498 }
499
500 static HRESULT WINAPI IEHTMLWindow2_scroll(IHTMLWindow2 *iface, LONG x, LONG y)
501 {
502 IEHTMLWindow *This = impl_from_IHTMLWindow2(iface);
503 FIXME("(%p)->(%d %d)\n", This, x, y);
504 return E_NOTIMPL;
505 }
506
507 static HRESULT WINAPI IEHTMLWindow2_get_clientInformation(IHTMLWindow2 *iface, IOmNavigator **p)
508 {
509 IEHTMLWindow *This = impl_from_IHTMLWindow2(iface);
510 FIXME("(%p)->(%p)\n", This, p);
511 return E_NOTIMPL;
512 }
513
514 static HRESULT WINAPI IEHTMLWindow2_setInterval(IHTMLWindow2 *iface, BSTR expression,
515 LONG msec, VARIANT *language, LONG *timerID)
516 {
517 IEHTMLWindow *This = impl_from_IHTMLWindow2(iface);
518 FIXME("(%p)->(%s %d %p %p)\n", This, debugstr_w(expression), msec, language, timerID);
519 return E_NOTIMPL;
520 }
521
522 static HRESULT WINAPI IEHTMLWindow2_clearInterval(IHTMLWindow2 *iface, LONG timerID)
523 {
524 IEHTMLWindow *This = impl_from_IHTMLWindow2(iface);
525 FIXME("(%p)->(%d)\n", This, timerID);
526 return E_NOTIMPL;
527 }
528
529 static HRESULT WINAPI IEHTMLWindow2_put_offscreenBuffering(IHTMLWindow2 *iface, VARIANT v)
530 {
531 IEHTMLWindow *This = impl_from_IHTMLWindow2(iface);
532 FIXME("(%p)->(v(%d))\n", This, V_VT(&v));
533 return E_NOTIMPL;
534 }
535
536 static HRESULT WINAPI IEHTMLWindow2_get_offscreenBuffering(IHTMLWindow2 *iface, VARIANT *p)
537 {
538 IEHTMLWindow *This = impl_from_IHTMLWindow2(iface);
539 FIXME("(%p)->(%p)\n", This, p);
540 return E_NOTIMPL;
541 }
542
543 static HRESULT WINAPI IEHTMLWindow2_execScript(IHTMLWindow2 *iface, BSTR scode, BSTR language,
544 VARIANT *pvarRet)
545 {
546 IEHTMLWindow *This = impl_from_IHTMLWindow2(iface);
547 FIXME("(%p)->(%s %s %p)\n", This, debugstr_w(scode), debugstr_w(language), pvarRet);
548 return E_NOTIMPL;
549 }
550
551 static HRESULT WINAPI IEHTMLWindow2_toString(IHTMLWindow2 *iface, BSTR *String)
552 {
553 IEHTMLWindow *This = impl_from_IHTMLWindow2(iface);
554 FIXME("(%p)->(%p)\n", This, String);
555 return E_NOTIMPL;
556 }
557
558 static HRESULT WINAPI IEHTMLWindow2_scrollBy(IHTMLWindow2 *iface, LONG x, LONG y)
559 {
560 IEHTMLWindow *This = impl_from_IHTMLWindow2(iface);
561 FIXME("(%p)->(%d %d)\n", This, x, y);
562 return E_NOTIMPL;
563 }
564
565 static HRESULT WINAPI IEHTMLWindow2_scrollTo(IHTMLWindow2 *iface, LONG x, LONG y)
566 {
567 IEHTMLWindow *This = impl_from_IHTMLWindow2(iface);
568 FIXME("(%p)->(%d %d)\n", This, x, y);
569 return E_NOTIMPL;
570 }
571
572 static HRESULT WINAPI IEHTMLWindow2_moveTo(IHTMLWindow2 *iface, LONG x, LONG y)
573 {
574 IEHTMLWindow *This = impl_from_IHTMLWindow2(iface);
575 FIXME("(%p)->(%d %d)\n", This, x, y);
576 return E_NOTIMPL;
577 }
578
579 static HRESULT WINAPI IEHTMLWindow2_moveBy(IHTMLWindow2 *iface, LONG x, LONG y)
580 {
581 IEHTMLWindow *This = impl_from_IHTMLWindow2(iface);
582 FIXME("(%p)->(%d %d)\n", This, x, y);
583 return E_NOTIMPL;
584 }
585
586 static HRESULT WINAPI IEHTMLWindow2_resizeTo(IHTMLWindow2 *iface, LONG x, LONG y)
587 {
588 IEHTMLWindow *This = impl_from_IHTMLWindow2(iface);
589 FIXME("(%p)->(%d %d)\n", This, x, y);
590 return E_NOTIMPL;
591 }
592
593 static HRESULT WINAPI IEHTMLWindow2_resizeBy(IHTMLWindow2 *iface, LONG x, LONG y)
594 {
595 IEHTMLWindow *This = impl_from_IHTMLWindow2(iface);
596 FIXME("(%p)->(%d %d)\n", This, x, y);
597 return E_NOTIMPL;
598 }
599
600 static HRESULT WINAPI IEHTMLWindow2_get_external(IHTMLWindow2 *iface, IDispatch **p)
601 {
602 IEHTMLWindow *This = impl_from_IHTMLWindow2(iface);
603 FIXME("(%p)->(%p)\n", This, p);
604 return E_NOTIMPL;
605 }
606
607 static const IHTMLWindow2Vtbl IEHTMLWindow2Vtbl = {
608 IEHTMLWindow2_QueryInterface,
609 IEHTMLWindow2_AddRef,
610 IEHTMLWindow2_Release,
611 IEHTMLWindow2_GetTypeInfoCount,
612 IEHTMLWindow2_GetTypeInfo,
613 IEHTMLWindow2_GetIDsOfNames,
614 IEHTMLWindow2_Invoke,
615 IEHTMLWindow2_item,
616 IEHTMLWindow2_get_length,
617 IEHTMLWindow2_get_frames,
618 IEHTMLWindow2_put_defaultStatus,
619 IEHTMLWindow2_get_defaultStatus,
620 IEHTMLWindow2_put_status,
621 IEHTMLWindow2_get_status,
622 IEHTMLWindow2_setTimeout,
623 IEHTMLWindow2_clearTimeout,
624 IEHTMLWindow2_alert,
625 IEHTMLWindow2_confirm,
626 IEHTMLWindow2_prompt,
627 IEHTMLWindow2_get_Image,
628 IEHTMLWindow2_get_location,
629 IEHTMLWindow2_get_history,
630 IEHTMLWindow2_close,
631 IEHTMLWindow2_put_opener,
632 IEHTMLWindow2_get_opener,
633 IEHTMLWindow2_get_navigator,
634 IEHTMLWindow2_put_name,
635 IEHTMLWindow2_get_name,
636 IEHTMLWindow2_get_parent,
637 IEHTMLWindow2_open,
638 IEHTMLWindow2_get_self,
639 IEHTMLWindow2_get_top,
640 IEHTMLWindow2_get_window,
641 IEHTMLWindow2_navigate,
642 IEHTMLWindow2_put_onfocus,
643 IEHTMLWindow2_get_onfocus,
644 IEHTMLWindow2_put_onblur,
645 IEHTMLWindow2_get_onblur,
646 IEHTMLWindow2_put_onload,
647 IEHTMLWindow2_get_onload,
648 IEHTMLWindow2_put_onbeforeunload,
649 IEHTMLWindow2_get_onbeforeunload,
650 IEHTMLWindow2_put_onunload,
651 IEHTMLWindow2_get_onunload,
652 IEHTMLWindow2_put_onhelp,
653 IEHTMLWindow2_get_onhelp,
654 IEHTMLWindow2_put_onerror,
655 IEHTMLWindow2_get_onerror,
656 IEHTMLWindow2_put_onresize,
657 IEHTMLWindow2_get_onresize,
658 IEHTMLWindow2_put_onscroll,
659 IEHTMLWindow2_get_onscroll,
660 IEHTMLWindow2_get_document,
661 IEHTMLWindow2_get_event,
662 IEHTMLWindow2_get__newEnum,
663 IEHTMLWindow2_showModalDialog,
664 IEHTMLWindow2_showHelp,
665 IEHTMLWindow2_get_screen,
666 IEHTMLWindow2_get_Option,
667 IEHTMLWindow2_focus,
668 IEHTMLWindow2_get_closed,
669 IEHTMLWindow2_blur,
670 IEHTMLWindow2_scroll,
671 IEHTMLWindow2_get_clientInformation,
672 IEHTMLWindow2_setInterval,
673 IEHTMLWindow2_clearInterval,
674 IEHTMLWindow2_put_offscreenBuffering,
675 IEHTMLWindow2_get_offscreenBuffering,
676 IEHTMLWindow2_execScript,
677 IEHTMLWindow2_toString,
678 IEHTMLWindow2_scrollBy,
679 IEHTMLWindow2_scrollTo,
680 IEHTMLWindow2_moveTo,
681 IEHTMLWindow2_moveBy,
682 IEHTMLWindow2_resizeTo,
683 IEHTMLWindow2_resizeBy,
684 IEHTMLWindow2_get_external
685 };
686
687 void IEHTMLWindow_Init(DocHost *doc_host)
688 {
689 doc_host->html_window.IHTMLWindow2_iface.lpVtbl = &IEHTMLWindow2Vtbl;
690 doc_host->html_window.doc_host = doc_host;
691 }