mshtml: Implement IDispatch for IHTMLDocument4.
[wine/hacks.git] / dlls / mshtml / htmldoc3.c
blob8c6029038130607aead80fe1be255ff188079925
1 /*
2 * Copyright 2005 Jacek Caban for CodeWeavers
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.
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.
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
19 #include "config.h"
21 #include <stdarg.h>
22 #include <stdio.h>
24 #define COBJMACROS
26 #include "windef.h"
27 #include "winbase.h"
28 #include "winuser.h"
29 #include "ole2.h"
31 #include "wine/debug.h"
33 #include "mshtml_private.h"
35 WINE_DEFAULT_DEBUG_CHANNEL(mshtml);
37 #define HTMLDOC3_THIS(iface) DEFINE_THIS(HTMLDocument, HTMLDocument3, iface)
39 static HRESULT WINAPI HTMLDocument3_QueryInterface(IHTMLDocument3 *iface,
40 REFIID riid, void **ppv)
42 HTMLDocument *This = HTMLDOC3_THIS(iface);
43 return IHTMLDocument2_QueryInterface(HTMLDOC(This), riid, ppv);
46 static ULONG WINAPI HTMLDocument3_AddRef(IHTMLDocument3 *iface)
48 HTMLDocument *This = HTMLDOC3_THIS(iface);
49 return IHTMLDocument2_AddRef(HTMLDOC(This));
52 static ULONG WINAPI HTMLDocument3_Release(IHTMLDocument3 *iface)
54 HTMLDocument *This = HTMLDOC3_THIS(iface);
55 return IHTMLDocument2_Release(HTMLDOC(This));
58 static HRESULT WINAPI HTMLDocument3_GetTypeInfoCount(IHTMLDocument3 *iface, UINT *pctinfo)
60 HTMLDocument *This = HTMLDOC3_THIS(iface);
61 return IDispatchEx_GetTypeInfoCount(DISPATCHEX(This), pctinfo);
64 static HRESULT WINAPI HTMLDocument3_GetTypeInfo(IHTMLDocument3 *iface, UINT iTInfo,
65 LCID lcid, ITypeInfo **ppTInfo)
67 HTMLDocument *This = HTMLDOC3_THIS(iface);
68 return IDispatchEx_GetTypeInfo(DISPATCHEX(This), iTInfo, lcid, ppTInfo);
71 static HRESULT WINAPI HTMLDocument3_GetIDsOfNames(IHTMLDocument3 *iface, REFIID riid,
72 LPOLESTR *rgszNames, UINT cNames,
73 LCID lcid, DISPID *rgDispId)
75 HTMLDocument *This = HTMLDOC3_THIS(iface);
76 return IDispatchEx_GetIDsOfNames(DISPATCHEX(This), riid, rgszNames, cNames, lcid, rgDispId);
79 static HRESULT WINAPI HTMLDocument3_Invoke(IHTMLDocument3 *iface, DISPID dispIdMember,
80 REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams,
81 VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
83 HTMLDocument *This = HTMLDOC3_THIS(iface);
84 return IDispatchEx_Invoke(DISPATCHEX(This), dispIdMember, riid, lcid, wFlags, pDispParams,
85 pVarResult, pExcepInfo, puArgErr);
88 static HRESULT WINAPI HTMLDocument3_releaseCapture(IHTMLDocument3 *iface)
90 HTMLDocument *This = HTMLDOC3_THIS(iface);
91 FIXME("(%p)\n", This);
92 return E_NOTIMPL;
95 static HRESULT WINAPI HTMLDocument3_recalc(IHTMLDocument3 *iface, VARIANT_BOOL fForce)
97 HTMLDocument *This = HTMLDOC3_THIS(iface);
98 FIXME("(%p)->(%x)\n", This, fForce);
99 return E_NOTIMPL;
102 static HRESULT WINAPI HTMLDocument3_createTextNode(IHTMLDocument3 *iface, BSTR text,
103 IHTMLDOMNode **newTextNode)
105 HTMLDocument *This = HTMLDOC3_THIS(iface);
106 nsIDOMDocument *nsdoc;
107 nsIDOMText *nstext;
108 HTMLDOMNode *node;
109 nsAString text_str;
110 nsresult nsres;
112 TRACE("(%p)->(%s %p)\n", This, debugstr_w(text), newTextNode);
114 nsIWebNavigation_GetDocument(This->nscontainer->navigation, &nsdoc);
116 nsAString_Init(&text_str, text);
117 nsres = nsIDOMDocument_CreateTextNode(nsdoc, &text_str, &nstext);
118 nsAString_Finish(&text_str);
119 nsIDOMDocument_Release(nsdoc);
120 if(NS_FAILED(nsres)) {
121 ERR("CreateTextNode failed: %08x\n", nsres);
122 return E_FAIL;
125 node = HTMLDOMTextNode_Create(This, (nsIDOMNode*)nstext);
126 nsIDOMElement_Release(nstext);
128 *newTextNode = HTMLDOMNODE(node);
129 IHTMLDOMNode_AddRef(HTMLDOMNODE(node));
130 return S_OK;
133 static HRESULT WINAPI HTMLDocument3_get_documentElement(IHTMLDocument3 *iface, IHTMLElement **p)
135 HTMLDocument *This = HTMLDOC3_THIS(iface);
136 nsIDOMDocument *nsdoc;
137 HTMLDOMNode *node;
138 nsIDOMElement *nselem = NULL;
139 nsresult nsres;
141 TRACE("(%p)->(%p)\n", This, p);
143 if(!This->nscontainer) {
144 *p = NULL;
145 return S_OK;
148 nsres = nsIWebNavigation_GetDocument(This->nscontainer->navigation, &nsdoc);
149 if(NS_FAILED(nsres))
150 ERR("GetDocument failed: %08x\n", nsres);
152 if(nsdoc) {
153 nsres = nsIDOMHTMLDocument_GetDocumentElement(nsdoc, &nselem);
154 if(NS_FAILED(nsres))
155 ERR("GetDocumentElement failed: %08x\n", nsres);
157 if(nselem) {
158 node = get_node(This, (nsIDOMNode *)nselem, TRUE);
159 nsIDOMDocument_Release(nsdoc);
161 IHTMLDOMNode_QueryInterface(HTMLDOMNODE(node), &IID_IHTMLElement, (void**)p);
162 }else {
163 *p = NULL;
166 return S_OK;
169 static HRESULT WINAPI HTMLDocument3_uniqueID(IHTMLDocument3 *iface, BSTR *p)
171 HTMLDocument *This = HTMLDOC3_THIS(iface);
172 FIXME("(%p)->(%p)\n", This, p);
173 return E_NOTIMPL;
176 static HRESULT WINAPI HTMLDocument3_attachEvent(IHTMLDocument3 *iface, BSTR event,
177 IDispatch* pDisp, VARIANT_BOOL *pfResult)
179 HTMLDocument *This = HTMLDOC3_THIS(iface);
180 FIXME("(%p)->(%s %p %p)\n", This, debugstr_w(event), pDisp, pfResult);
181 return E_NOTIMPL;
184 static HRESULT WINAPI HTMLDocument3_detachEvent(IHTMLDocument3 *iface, BSTR event,
185 IDispatch *pDisp)
187 HTMLDocument *This = HTMLDOC3_THIS(iface);
188 FIXME("(%p)->(%s %p)\n", This, debugstr_w(event), pDisp);
189 return E_NOTIMPL;
192 static HRESULT WINAPI HTMLDocument3_put_onrowsdelete(IHTMLDocument3 *iface, VARIANT v)
194 HTMLDocument *This = HTMLDOC3_THIS(iface);
195 FIXME("(%p)->()\n", This);
196 return E_NOTIMPL;
199 static HRESULT WINAPI HTMLDocument3_get_onrowsdelete(IHTMLDocument3 *iface, VARIANT *p)
201 HTMLDocument *This = HTMLDOC3_THIS(iface);
202 FIXME("(%p)->(%p)\n", This, p);
203 return E_NOTIMPL;
206 static HRESULT WINAPI HTMLDocument3_put_onrowsinserted(IHTMLDocument3 *iface, VARIANT v)
208 HTMLDocument *This = HTMLDOC3_THIS(iface);
209 FIXME("(%p)->()\n", This);
210 return E_NOTIMPL;
213 static HRESULT WINAPI HTMLDocument3_get_onrowsinserted(IHTMLDocument3 *iface, VARIANT *p)
215 HTMLDocument *This = HTMLDOC3_THIS(iface);
216 FIXME("(%p)->(%p)\n", This, p);
217 return E_NOTIMPL;
220 static HRESULT WINAPI HTMLDocument3_put_oncellchange(IHTMLDocument3 *iface, VARIANT v)
222 HTMLDocument *This = HTMLDOC3_THIS(iface);
223 FIXME("(%p)->()\n", This);
224 return E_NOTIMPL;
227 static HRESULT WINAPI HTMLDocument3_get_oncellchange(IHTMLDocument3 *iface, VARIANT *p)
229 HTMLDocument *This = HTMLDOC3_THIS(iface);
230 FIXME("(%p)->(%p)\n", This, p);
231 return E_NOTIMPL;
234 static HRESULT WINAPI HTMLDocument3_put_ondatasetchanged(IHTMLDocument3 *iface, VARIANT v)
236 HTMLDocument *This = HTMLDOC3_THIS(iface);
237 FIXME("(%p)->()\n", This);
238 return E_NOTIMPL;
241 static HRESULT WINAPI HTMLDocument3_get_ondatasetchanged(IHTMLDocument3 *iface, VARIANT *p)
243 HTMLDocument *This = HTMLDOC3_THIS(iface);
244 FIXME("(%p)->(%p)\n", This, p);
245 return E_NOTIMPL;
248 static HRESULT WINAPI HTMLDocument3_put_ondataavailable(IHTMLDocument3 *iface, VARIANT v)
250 HTMLDocument *This = HTMLDOC3_THIS(iface);
251 FIXME("(%p)->()\n", This);
252 return E_NOTIMPL;
255 static HRESULT WINAPI HTMLDocument3_get_ondataavailable(IHTMLDocument3 *iface, VARIANT *p)
257 HTMLDocument *This = HTMLDOC3_THIS(iface);
258 FIXME("(%p)->(%p)\n", This, p);
259 return E_NOTIMPL;
262 static HRESULT WINAPI HTMLDocument3_put_ondatasetcomplete(IHTMLDocument3 *iface, VARIANT v)
264 HTMLDocument *This = HTMLDOC3_THIS(iface);
265 FIXME("(%p)->()\n", This);
266 return E_NOTIMPL;
269 static HRESULT WINAPI HTMLDocument3_get_ondatasetcomplete(IHTMLDocument3 *iface, VARIANT *p)
271 HTMLDocument *This = HTMLDOC3_THIS(iface);
272 FIXME("(%p)->(%p)\n", This, p);
273 return E_NOTIMPL;
276 static HRESULT WINAPI HTMLDocument3_put_onpropertychange(IHTMLDocument3 *iface, VARIANT v)
278 HTMLDocument *This = HTMLDOC3_THIS(iface);
279 FIXME("(%p)->()\n", This);
280 return E_NOTIMPL;
283 static HRESULT WINAPI HTMLDocument3_get_onpropertychange(IHTMLDocument3 *iface, VARIANT *p)
285 HTMLDocument *This = HTMLDOC3_THIS(iface);
286 FIXME("(%p)->(%p)\n", This, p);
287 return E_NOTIMPL;
290 static HRESULT WINAPI HTMLDocument3_put_dir(IHTMLDocument3 *iface, BSTR v)
292 HTMLDocument *This = HTMLDOC3_THIS(iface);
293 FIXME("(%p)->(%s)\n", This, debugstr_w(v));
294 return E_NOTIMPL;
297 static HRESULT WINAPI HTMLDocument3_get_dir(IHTMLDocument3 *iface, BSTR *p)
299 HTMLDocument *This = HTMLDOC3_THIS(iface);
300 FIXME("(%p)->(%p)\n", This, p);
301 return E_NOTIMPL;
304 static HRESULT WINAPI HTMLDocument3_put_oncontextmenu(IHTMLDocument3 *iface, VARIANT v)
306 HTMLDocument *This = HTMLDOC3_THIS(iface);
307 FIXME("(%p)->()\n", This);
308 return E_NOTIMPL;
311 static HRESULT WINAPI HTMLDocument3_get_oncontextmenu(IHTMLDocument3 *iface, VARIANT *p)
313 HTMLDocument *This = HTMLDOC3_THIS(iface);
314 FIXME("(%p)->(%p)\n", This, p);
315 return E_NOTIMPL;
318 static HRESULT WINAPI HTMLDocument3_put_onstop(IHTMLDocument3 *iface, VARIANT v)
320 HTMLDocument *This = HTMLDOC3_THIS(iface);
321 FIXME("(%p)->()\n", This);
322 return E_NOTIMPL;
325 static HRESULT WINAPI HTMLDocument3_get_onstop(IHTMLDocument3 *iface, VARIANT *p)
327 HTMLDocument *This = HTMLDOC3_THIS(iface);
328 FIXME("(%p)->(%p)\n", This, p);
329 return E_NOTIMPL;
332 static HRESULT WINAPI HTMLDocument3_createDocumentFragment(IHTMLDocument3 *iface,
333 IHTMLDocument2 **ppNewDoc)
335 HTMLDocument *This = HTMLDOC3_THIS(iface);
336 FIXME("(%p)->(%p)\n", This, ppNewDoc);
337 return E_NOTIMPL;
340 static HRESULT WINAPI HTMLDocument3_get_parentDocument(IHTMLDocument3 *iface,
341 IHTMLDocument2 **p)
343 HTMLDocument *This = HTMLDOC3_THIS(iface);
344 FIXME("(%p)->(%p)\n", This, p);
345 return E_NOTIMPL;
348 static HRESULT WINAPI HTMLDocument3_put_enableDownload(IHTMLDocument3 *iface,
349 VARIANT_BOOL v)
351 HTMLDocument *This = HTMLDOC3_THIS(iface);
352 FIXME("(%p)->(%x)\n", This, v);
353 return E_NOTIMPL;
356 static HRESULT WINAPI HTMLDocument3_get_enableDownload(IHTMLDocument3 *iface,
357 VARIANT_BOOL *p)
359 HTMLDocument *This = HTMLDOC3_THIS(iface);
360 FIXME("(%p)->(%p)\n", This, p);
361 return E_NOTIMPL;
364 static HRESULT WINAPI HTMLDocument3_put_baseUrl(IHTMLDocument3 *iface, BSTR v)
366 HTMLDocument *This = HTMLDOC3_THIS(iface);
367 FIXME("(%p)->(%s)\n", This, debugstr_w(v));
368 return E_NOTIMPL;
371 static HRESULT WINAPI HTMLDocument3_get_baseUrl(IHTMLDocument3 *iface, BSTR *p)
373 HTMLDocument *This = HTMLDOC3_THIS(iface);
374 FIXME("(%p)->(%p)\n", This, p);
375 return E_NOTIMPL;
378 static HRESULT WINAPI HTMLDocument3_get_childNodes(IHTMLDocument3 *iface, IDispatch **p)
380 HTMLDocument *This = HTMLDOC3_THIS(iface);
381 FIXME("(%p)->(%p)\n", This, p);
382 return E_NOTIMPL;
385 static HRESULT WINAPI HTMLDocument3_put_inheritStyleSheets(IHTMLDocument3 *iface,
386 VARIANT_BOOL v)
388 HTMLDocument *This = HTMLDOC3_THIS(iface);
389 FIXME("(%p)->()\n", This);
390 return E_NOTIMPL;
393 static HRESULT WINAPI HTMLDocument3_get_inheritStyleSheets(IHTMLDocument3 *iface,
394 VARIANT_BOOL *p)
396 HTMLDocument *This = HTMLDOC3_THIS(iface);
397 FIXME("(%p)->(%p)\n", This, p);
398 return E_NOTIMPL;
401 static HRESULT WINAPI HTMLDocument3_put_onbeforeeditfocus(IHTMLDocument3 *iface, VARIANT v)
403 HTMLDocument *This = HTMLDOC3_THIS(iface);
404 FIXME("(%p)->()\n", This);
405 return E_NOTIMPL;
408 static HRESULT WINAPI HTMLDocument3_get_onbeforeeditfocus(IHTMLDocument3 *iface, VARIANT *p)
410 HTMLDocument *This = HTMLDOC3_THIS(iface);
411 FIXME("(%p)->(%p)\n", This, p);
412 return E_NOTIMPL;
415 static HRESULT WINAPI HTMLDocument3_getElementsByName(IHTMLDocument3 *iface, BSTR v,
416 IHTMLElementCollection **ppelColl)
418 HTMLDocument *This = HTMLDOC3_THIS(iface);
419 FIXME("(%p)->(%s %p)\n", This, debugstr_w(v), ppelColl);
420 return E_NOTIMPL;
424 static HRESULT WINAPI HTMLDocument3_getElementById(IHTMLDocument3 *iface, BSTR v,
425 IHTMLElement **pel)
427 HTMLDocument *This = HTMLDOC3_THIS(iface);
428 nsIDOMDocument *nsdoc = NULL;
429 nsIDOMElement *nselem = NULL;
430 HTMLDOMNode *node;
431 nsAString id_str;
432 nsresult nsres;
434 TRACE("(%p)->(%s %p)\n", This, debugstr_w(v), pel);
436 *pel = NULL;
438 if(!This->nscontainer)
439 return S_OK;
441 nsres = nsIWebNavigation_GetDocument(This->nscontainer->navigation, &nsdoc);
442 if(NS_FAILED(nsres) || !nsdoc)
443 return S_OK;
445 nsAString_Init(&id_str, v);
446 nsIDOMDocument_GetElementById(nsdoc, &id_str, &nselem);
447 nsIDOMDocument_Release(nsdoc);
448 nsAString_Finish(&id_str);
450 if(!nselem) {
451 *pel = NULL;
452 return S_OK;
455 node = get_node(This, (nsIDOMNode*)nselem, TRUE);
456 nsIDOMElement_Release(nselem);
458 return IHTMLDOMNode_QueryInterface(HTMLDOMNODE(node), &IID_IHTMLElement, (void**)pel);
462 static HRESULT WINAPI HTMLDocument3_getElementsByTagName(IHTMLDocument3 *iface, BSTR v,
463 IHTMLElementCollection **pelColl)
465 HTMLDocument *This = HTMLDOC3_THIS(iface);
466 FIXME("(%p)->(%s %p)\n", This, debugstr_w(v), pelColl);
467 return E_NOTIMPL;
470 #undef HTMLDOC3_THIS
472 static const IHTMLDocument3Vtbl HTMLDocument3Vtbl = {
473 HTMLDocument3_QueryInterface,
474 HTMLDocument3_AddRef,
475 HTMLDocument3_Release,
476 HTMLDocument3_GetTypeInfoCount,
477 HTMLDocument3_GetTypeInfo,
478 HTMLDocument3_GetIDsOfNames,
479 HTMLDocument3_Invoke,
480 HTMLDocument3_releaseCapture,
481 HTMLDocument3_recalc,
482 HTMLDocument3_createTextNode,
483 HTMLDocument3_get_documentElement,
484 HTMLDocument3_uniqueID,
485 HTMLDocument3_attachEvent,
486 HTMLDocument3_detachEvent,
487 HTMLDocument3_put_onrowsdelete,
488 HTMLDocument3_get_onrowsdelete,
489 HTMLDocument3_put_onrowsinserted,
490 HTMLDocument3_get_onrowsinserted,
491 HTMLDocument3_put_oncellchange,
492 HTMLDocument3_get_oncellchange,
493 HTMLDocument3_put_ondatasetchanged,
494 HTMLDocument3_get_ondatasetchanged,
495 HTMLDocument3_put_ondataavailable,
496 HTMLDocument3_get_ondataavailable,
497 HTMLDocument3_put_ondatasetcomplete,
498 HTMLDocument3_get_ondatasetcomplete,
499 HTMLDocument3_put_onpropertychange,
500 HTMLDocument3_get_onpropertychange,
501 HTMLDocument3_put_dir,
502 HTMLDocument3_get_dir,
503 HTMLDocument3_put_oncontextmenu,
504 HTMLDocument3_get_oncontextmenu,
505 HTMLDocument3_put_onstop,
506 HTMLDocument3_get_onstop,
507 HTMLDocument3_createDocumentFragment,
508 HTMLDocument3_get_parentDocument,
509 HTMLDocument3_put_enableDownload,
510 HTMLDocument3_get_enableDownload,
511 HTMLDocument3_put_baseUrl,
512 HTMLDocument3_get_baseUrl,
513 HTMLDocument3_get_childNodes,
514 HTMLDocument3_put_inheritStyleSheets,
515 HTMLDocument3_get_inheritStyleSheets,
516 HTMLDocument3_put_onbeforeeditfocus,
517 HTMLDocument3_get_onbeforeeditfocus,
518 HTMLDocument3_getElementsByName,
519 HTMLDocument3_getElementById,
520 HTMLDocument3_getElementsByTagName
523 #define HTMLDOC4_THIS(iface) DEFINE_THIS(HTMLDocument, HTMLDocument4, iface)
525 static HRESULT WINAPI HTMLDocument4_QueryInterface(IHTMLDocument4 *iface,
526 REFIID riid, void **ppv)
528 HTMLDocument *This = HTMLDOC4_THIS(iface);
529 return IHTMLDocument2_QueryInterface(HTMLDOC(This), riid, ppv);
532 static ULONG WINAPI HTMLDocument4_AddRef(IHTMLDocument4 *iface)
534 HTMLDocument *This = HTMLDOC4_THIS(iface);
535 return IHTMLDocument2_AddRef(HTMLDOC(This));
538 static ULONG WINAPI HTMLDocument4_Release(IHTMLDocument4 *iface)
540 HTMLDocument *This = HTMLDOC4_THIS(iface);
541 return IHTMLDocument2_Release(HTMLDOC(This));
544 static HRESULT WINAPI HTMLDocument4_GetTypeInfoCount(IHTMLDocument4 *iface, UINT *pctinfo)
546 HTMLDocument *This = HTMLDOC4_THIS(iface);
547 return IDispatchEx_GetTypeInfoCount(DISPATCHEX(This), pctinfo);
550 static HRESULT WINAPI HTMLDocument4_GetTypeInfo(IHTMLDocument4 *iface, UINT iTInfo,
551 LCID lcid, ITypeInfo **ppTInfo)
553 HTMLDocument *This = HTMLDOC4_THIS(iface);
554 return IDispatchEx_GetTypeInfo(DISPATCHEX(This), iTInfo, lcid, ppTInfo);
557 static HRESULT WINAPI HTMLDocument4_GetIDsOfNames(IHTMLDocument4 *iface, REFIID riid,
558 LPOLESTR *rgszNames, UINT cNames,
559 LCID lcid, DISPID *rgDispId)
561 HTMLDocument *This = HTMLDOC4_THIS(iface);
562 return IDispatchEx_GetIDsOfNames(DISPATCHEX(This), riid, rgszNames, cNames, lcid, rgDispId);
565 static HRESULT WINAPI HTMLDocument4_Invoke(IHTMLDocument4 *iface, DISPID dispIdMember,
566 REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams,
567 VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
569 HTMLDocument *This = HTMLDOC4_THIS(iface);
570 return IDispatchEx_Invoke(DISPATCHEX(This), dispIdMember, riid, lcid, wFlags, pDispParams,
571 pVarResult, pExcepInfo, puArgErr);
574 static HRESULT WINAPI HTMLDocument4_focus(IHTMLDocument4 *iface)
576 HTMLDocument *This = HTMLDOC4_THIS(iface);
577 FIXME("(%p)->()\n", This);
578 return E_NOTIMPL;
581 static HRESULT WINAPI HTMLDocument4_hasFocus(IHTMLDocument4 *iface, VARIANT_BOOL *pfFocus)
583 HTMLDocument *This = HTMLDOC4_THIS(iface);
584 FIXME("(%p)->(%p)\n", This, pfFocus);
585 return E_NOTIMPL;
588 static HRESULT WINAPI HTMLDocument4_put_onselectionchange(IHTMLDocument4 *iface, VARIANT v)
590 HTMLDocument *This = HTMLDOC4_THIS(iface);
591 FIXME("(%p)->(v)\n", This);
592 return E_NOTIMPL;
595 static HRESULT WINAPI HTMLDocument4_get_onselectionchange(IHTMLDocument4 *iface, VARIANT *p)
597 HTMLDocument *This = HTMLDOC4_THIS(iface);
598 FIXME("(%p)->(%p)\n", This, p);
599 return E_NOTIMPL;
602 static HRESULT WINAPI HTMLDocument4_get_namespace(IHTMLDocument4 *iface, IDispatch **p)
604 HTMLDocument *This = HTMLDOC4_THIS(iface);
605 FIXME("(%p)->(%p)\n", This, p);
606 return E_NOTIMPL;
609 static HRESULT WINAPI HTMLDocument4_createDocumentFromUrl(IHTMLDocument4 *iface, BSTR bstrUrl,
610 BSTR bstrOptions, IHTMLDocument2 **newDoc)
612 HTMLDocument *This = HTMLDOC4_THIS(iface);
613 FIXME("(%p)->(%s %s %p)\n", This, debugstr_w(bstrUrl), debugstr_w(bstrOptions), newDoc);
614 return E_NOTIMPL;
617 static HRESULT WINAPI HTMLDocument4_put_media(IHTMLDocument4 *iface, BSTR v)
619 HTMLDocument *This = HTMLDOC4_THIS(iface);
620 FIXME("(%p)->(%s)\n", This, debugstr_w(v));
621 return E_NOTIMPL;
624 static HRESULT WINAPI HTMLDocument4_get_media(IHTMLDocument4 *iface, BSTR *p)
626 HTMLDocument *This = HTMLDOC4_THIS(iface);
627 FIXME("(%p)->(%p)\n", This, p);
628 return E_NOTIMPL;
631 static HRESULT WINAPI HTMLDocument4_createEventObject(IHTMLDocument4 *iface,
632 VARIANT *pvarEventObject, IHTMLEventObj **ppEventObj)
634 HTMLDocument *This = HTMLDOC4_THIS(iface);
635 FIXME("(%p)->(%p %p)\n", This, pvarEventObject, ppEventObj);
636 return E_NOTIMPL;
639 static HRESULT WINAPI HTMLDocument4_fireEvent(IHTMLDocument4 *iface, BSTR bstrEventName,
640 VARIANT *pvarEventObject, VARIANT_BOOL *pfCanceled)
642 HTMLDocument *This = HTMLDOC4_THIS(iface);
643 FIXME("(%p)->(%s %p %p)\n", This, debugstr_w(bstrEventName), pvarEventObject, pfCanceled);
644 return E_NOTIMPL;
647 static HRESULT WINAPI HTMLDocument4_createRenderStyle(IHTMLDocument4 *iface, BSTR v,
648 IHTMLRenderStyle **ppIHTMLRenderStyle)
650 HTMLDocument *This = HTMLDOC4_THIS(iface);
651 FIXME("(%p)->(%s %p)\n", This, debugstr_w(v), ppIHTMLRenderStyle);
652 return E_NOTIMPL;
655 static HRESULT WINAPI HTMLDocument4_put_oncontrolselect(IHTMLDocument4 *iface, VARIANT v)
657 HTMLDocument *This = HTMLDOC4_THIS(iface);
658 FIXME("(%p)->(v)\n", This);
659 return E_NOTIMPL;
662 static HRESULT WINAPI HTMLDocument4_get_oncontrolselect(IHTMLDocument4 *iface, VARIANT *p)
664 HTMLDocument *This = HTMLDOC4_THIS(iface);
665 FIXME("(%p)->(%p)\n", This, p);
666 return E_NOTIMPL;
669 static HRESULT WINAPI HTMLDocument4_get_URLEncoded(IHTMLDocument4 *iface, BSTR *p)
671 HTMLDocument *This = HTMLDOC4_THIS(iface);
672 FIXME("(%p)->(%p)\n", This, p);
673 return E_NOTIMPL;
676 #undef HTMLDOC4_THIS
678 static const IHTMLDocument4Vtbl HTMLDocument4Vtbl = {
679 HTMLDocument4_QueryInterface,
680 HTMLDocument4_AddRef,
681 HTMLDocument4_Release,
682 HTMLDocument4_GetTypeInfoCount,
683 HTMLDocument4_GetTypeInfo,
684 HTMLDocument4_GetIDsOfNames,
685 HTMLDocument4_Invoke,
686 HTMLDocument4_focus,
687 HTMLDocument4_hasFocus,
688 HTMLDocument4_put_onselectionchange,
689 HTMLDocument4_get_onselectionchange,
690 HTMLDocument4_get_namespace,
691 HTMLDocument4_createDocumentFromUrl,
692 HTMLDocument4_put_media,
693 HTMLDocument4_get_media,
694 HTMLDocument4_createEventObject,
695 HTMLDocument4_fireEvent,
696 HTMLDocument4_createRenderStyle,
697 HTMLDocument4_put_oncontrolselect,
698 HTMLDocument4_get_oncontrolselect,
699 HTMLDocument4_get_URLEncoded
702 void HTMLDocument_HTMLDocument3_Init(HTMLDocument *This)
704 This->lpHTMLDocument3Vtbl = &HTMLDocument3Vtbl;
705 This->lpHTMLDocument4Vtbl = &HTMLDocument4Vtbl;