push 7f8c39dca3a5819e8ef115eebf7abed537de3a22
[wine/hacks.git] / dlls / mshtml / htmldoc3.c
blob92ed1cc3247fb99dd7b8a0881638fbb88c97080e
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 FIXME("(%p)->(%p)\n", This, pctinfo);
62 return E_NOTIMPL;
65 static HRESULT WINAPI HTMLDocument3_GetTypeInfo(IHTMLDocument3 *iface, UINT iTInfo,
66 LCID lcid, ITypeInfo **ppTInfo)
68 HTMLDocument *This = HTMLDOC3_THIS(iface);
69 FIXME("(%p)->(%u %u %p)\n", This, iTInfo, lcid, ppTInfo);
70 return E_NOTIMPL;
73 static HRESULT WINAPI HTMLDocument3_GetIDsOfNames(IHTMLDocument3 *iface, REFIID riid,
74 LPOLESTR *rgszNames, UINT cNames,
75 LCID lcid, DISPID *rgDispId)
77 HTMLDocument *This = HTMLDOC3_THIS(iface);
78 FIXME("(%p)->(%s %p %u %u %p)\n", This, debugstr_guid(riid), rgszNames, cNames,
79 lcid, rgDispId);
80 return E_NOTIMPL;
83 static HRESULT WINAPI HTMLDocument3_Invoke(IHTMLDocument3 *iface, DISPID dispIdMember,
84 REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams,
85 VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
87 HTMLDocument *This = HTMLDOC3_THIS(iface);
88 FIXME("(%p)->(%d %s %d %d %p %p %p %p)\n", This, dispIdMember, debugstr_guid(riid),
89 lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr);
90 return E_NOTIMPL;
93 static HRESULT WINAPI HTMLDocument3_releaseCapture(IHTMLDocument3 *iface)
95 HTMLDocument *This = HTMLDOC3_THIS(iface);
96 FIXME("(%p)\n", This);
97 return E_NOTIMPL;
100 static HRESULT WINAPI HTMLDocument3_recalc(IHTMLDocument3 *iface, VARIANT_BOOL fForce)
102 HTMLDocument *This = HTMLDOC3_THIS(iface);
103 FIXME("(%p)->(%x)\n", This, fForce);
104 return E_NOTIMPL;
107 static HRESULT WINAPI HTMLDocument3_createTextNode(IHTMLDocument3 *iface, BSTR text,
108 IHTMLDOMNode **newTextNode)
110 HTMLDocument *This = HTMLDOC3_THIS(iface);
111 nsIDOMDocument *nsdoc;
112 nsIDOMText *nstext;
113 HTMLDOMNode *node;
114 nsAString text_str;
115 nsresult nsres;
117 TRACE("(%p)->(%s %p)\n", This, debugstr_w(text), newTextNode);
119 nsIWebNavigation_GetDocument(This->nscontainer->navigation, &nsdoc);
121 nsAString_Init(&text_str, text);
122 nsres = nsIDOMDocument_CreateTextNode(nsdoc, &text_str, &nstext);
123 nsAString_Finish(&text_str);
124 nsIDOMDocument_Release(nsdoc);
125 if(NS_FAILED(nsres)) {
126 ERR("CreateTextNode failed: %08x\n", nsres);
127 return E_FAIL;
130 node = HTMLDOMTextNode_Create(This, (nsIDOMNode*)nstext);
131 nsIDOMElement_Release(nstext);
133 *newTextNode = HTMLDOMNODE(node);
134 IHTMLDOMNode_AddRef(HTMLDOMNODE(node));
135 return S_OK;
138 static HRESULT WINAPI HTMLDocument3_get_documentElement(IHTMLDocument3 *iface, IHTMLElement **p)
140 HTMLDocument *This = HTMLDOC3_THIS(iface);
141 nsIDOMDocument *nsdoc;
142 HTMLDOMNode *node;
143 nsIDOMElement *nselem = NULL;
144 nsresult nsres;
146 TRACE("(%p)->(%p)\n", This, p);
148 if(!This->nscontainer) {
149 *p = NULL;
150 return S_OK;
153 nsres = nsIWebNavigation_GetDocument(This->nscontainer->navigation, &nsdoc);
154 if(NS_FAILED(nsres))
155 ERR("GetDocument failed: %08x\n", nsres);
157 if(nsdoc) {
158 nsres = nsIDOMHTMLDocument_GetDocumentElement(nsdoc, &nselem);
159 if(NS_FAILED(nsres))
160 ERR("GetDocumentElement failed: %08x\n", nsres);
162 if(nselem) {
163 node = get_node(This, (nsIDOMNode *)nselem, TRUE);
164 nsIDOMDocument_Release(nsdoc);
166 IHTMLDOMNode_QueryInterface(HTMLDOMNODE(node), &IID_IHTMLElement, (void**)p);
167 }else {
168 *p = NULL;
171 return S_OK;
174 static HRESULT WINAPI HTMLDocument3_uniqueID(IHTMLDocument3 *iface, BSTR *p)
176 HTMLDocument *This = HTMLDOC3_THIS(iface);
177 FIXME("(%p)->(%p)\n", This, p);
178 return E_NOTIMPL;
181 static HRESULT WINAPI HTMLDocument3_attachEvent(IHTMLDocument3 *iface, BSTR event,
182 IDispatch* pDisp, VARIANT_BOOL *pfResult)
184 HTMLDocument *This = HTMLDOC3_THIS(iface);
185 FIXME("(%p)->(%s %p %p)\n", This, debugstr_w(event), pDisp, pfResult);
186 return E_NOTIMPL;
189 static HRESULT WINAPI HTMLDocument3_detachEvent(IHTMLDocument3 *iface, BSTR event,
190 IDispatch *pDisp)
192 HTMLDocument *This = HTMLDOC3_THIS(iface);
193 FIXME("(%p)->(%s %p)\n", This, debugstr_w(event), pDisp);
194 return E_NOTIMPL;
197 static HRESULT WINAPI HTMLDocument3_put_onrowsdelete(IHTMLDocument3 *iface, VARIANT v)
199 HTMLDocument *This = HTMLDOC3_THIS(iface);
200 FIXME("(%p)->()\n", This);
201 return E_NOTIMPL;
204 static HRESULT WINAPI HTMLDocument3_get_onrowsdelete(IHTMLDocument3 *iface, VARIANT *p)
206 HTMLDocument *This = HTMLDOC3_THIS(iface);
207 FIXME("(%p)->(%p)\n", This, p);
208 return E_NOTIMPL;
211 static HRESULT WINAPI HTMLDocument3_put_onrowsinserted(IHTMLDocument3 *iface, VARIANT v)
213 HTMLDocument *This = HTMLDOC3_THIS(iface);
214 FIXME("(%p)->()\n", This);
215 return E_NOTIMPL;
218 static HRESULT WINAPI HTMLDocument3_get_onrowsinserted(IHTMLDocument3 *iface, VARIANT *p)
220 HTMLDocument *This = HTMLDOC3_THIS(iface);
221 FIXME("(%p)->(%p)\n", This, p);
222 return E_NOTIMPL;
225 static HRESULT WINAPI HTMLDocument3_put_oncellchange(IHTMLDocument3 *iface, VARIANT v)
227 HTMLDocument *This = HTMLDOC3_THIS(iface);
228 FIXME("(%p)->()\n", This);
229 return E_NOTIMPL;
232 static HRESULT WINAPI HTMLDocument3_get_oncellchange(IHTMLDocument3 *iface, VARIANT *p)
234 HTMLDocument *This = HTMLDOC3_THIS(iface);
235 FIXME("(%p)->(%p)\n", This, p);
236 return E_NOTIMPL;
239 static HRESULT WINAPI HTMLDocument3_put_ondatasetchanged(IHTMLDocument3 *iface, VARIANT v)
241 HTMLDocument *This = HTMLDOC3_THIS(iface);
242 FIXME("(%p)->()\n", This);
243 return E_NOTIMPL;
246 static HRESULT WINAPI HTMLDocument3_get_ondatasetchanged(IHTMLDocument3 *iface, VARIANT *p)
248 HTMLDocument *This = HTMLDOC3_THIS(iface);
249 FIXME("(%p)->(%p)\n", This, p);
250 return E_NOTIMPL;
253 static HRESULT WINAPI HTMLDocument3_put_ondataavailable(IHTMLDocument3 *iface, VARIANT v)
255 HTMLDocument *This = HTMLDOC3_THIS(iface);
256 FIXME("(%p)->()\n", This);
257 return E_NOTIMPL;
260 static HRESULT WINAPI HTMLDocument3_get_ondataavailable(IHTMLDocument3 *iface, VARIANT *p)
262 HTMLDocument *This = HTMLDOC3_THIS(iface);
263 FIXME("(%p)->(%p)\n", This, p);
264 return E_NOTIMPL;
267 static HRESULT WINAPI HTMLDocument3_put_ondatasetcomplete(IHTMLDocument3 *iface, VARIANT v)
269 HTMLDocument *This = HTMLDOC3_THIS(iface);
270 FIXME("(%p)->()\n", This);
271 return E_NOTIMPL;
274 static HRESULT WINAPI HTMLDocument3_get_ondatasetcomplete(IHTMLDocument3 *iface, VARIANT *p)
276 HTMLDocument *This = HTMLDOC3_THIS(iface);
277 FIXME("(%p)->(%p)\n", This, p);
278 return E_NOTIMPL;
281 static HRESULT WINAPI HTMLDocument3_put_onpropertychange(IHTMLDocument3 *iface, VARIANT v)
283 HTMLDocument *This = HTMLDOC3_THIS(iface);
284 FIXME("(%p)->()\n", This);
285 return E_NOTIMPL;
288 static HRESULT WINAPI HTMLDocument3_get_onpropertychange(IHTMLDocument3 *iface, VARIANT *p)
290 HTMLDocument *This = HTMLDOC3_THIS(iface);
291 FIXME("(%p)->(%p)\n", This, p);
292 return E_NOTIMPL;
295 static HRESULT WINAPI HTMLDocument3_put_dir(IHTMLDocument3 *iface, BSTR v)
297 HTMLDocument *This = HTMLDOC3_THIS(iface);
298 FIXME("(%p)->(%s)\n", This, debugstr_w(v));
299 return E_NOTIMPL;
302 static HRESULT WINAPI HTMLDocument3_get_dir(IHTMLDocument3 *iface, BSTR *p)
304 HTMLDocument *This = HTMLDOC3_THIS(iface);
305 FIXME("(%p)->(%p)\n", This, p);
306 return E_NOTIMPL;
309 static HRESULT WINAPI HTMLDocument3_put_oncontextmenu(IHTMLDocument3 *iface, VARIANT v)
311 HTMLDocument *This = HTMLDOC3_THIS(iface);
312 FIXME("(%p)->()\n", This);
313 return E_NOTIMPL;
316 static HRESULT WINAPI HTMLDocument3_get_oncontextmenu(IHTMLDocument3 *iface, VARIANT *p)
318 HTMLDocument *This = HTMLDOC3_THIS(iface);
319 FIXME("(%p)->(%p)\n", This, p);
320 return E_NOTIMPL;
323 static HRESULT WINAPI HTMLDocument3_put_onstop(IHTMLDocument3 *iface, VARIANT v)
325 HTMLDocument *This = HTMLDOC3_THIS(iface);
326 FIXME("(%p)->()\n", This);
327 return E_NOTIMPL;
330 static HRESULT WINAPI HTMLDocument3_get_onstop(IHTMLDocument3 *iface, VARIANT *p)
332 HTMLDocument *This = HTMLDOC3_THIS(iface);
333 FIXME("(%p)->(%p)\n", This, p);
334 return E_NOTIMPL;
337 static HRESULT WINAPI HTMLDocument3_createDocumentFragment(IHTMLDocument3 *iface,
338 IHTMLDocument2 **ppNewDoc)
340 HTMLDocument *This = HTMLDOC3_THIS(iface);
341 FIXME("(%p)->(%p)\n", This, ppNewDoc);
342 return E_NOTIMPL;
345 static HRESULT WINAPI HTMLDocument3_get_parentDocument(IHTMLDocument3 *iface,
346 IHTMLDocument2 **p)
348 HTMLDocument *This = HTMLDOC3_THIS(iface);
349 FIXME("(%p)->(%p)\n", This, p);
350 return E_NOTIMPL;
353 static HRESULT WINAPI HTMLDocument3_put_enableDownload(IHTMLDocument3 *iface,
354 VARIANT_BOOL v)
356 HTMLDocument *This = HTMLDOC3_THIS(iface);
357 FIXME("(%p)->(%x)\n", This, v);
358 return E_NOTIMPL;
361 static HRESULT WINAPI HTMLDocument3_get_enableDownload(IHTMLDocument3 *iface,
362 VARIANT_BOOL *p)
364 HTMLDocument *This = HTMLDOC3_THIS(iface);
365 FIXME("(%p)->(%p)\n", This, p);
366 return E_NOTIMPL;
369 static HRESULT WINAPI HTMLDocument3_put_baseUrl(IHTMLDocument3 *iface, BSTR v)
371 HTMLDocument *This = HTMLDOC3_THIS(iface);
372 FIXME("(%p)->(%s)\n", This, debugstr_w(v));
373 return E_NOTIMPL;
376 static HRESULT WINAPI HTMLDocument3_get_baseUrl(IHTMLDocument3 *iface, BSTR *p)
378 HTMLDocument *This = HTMLDOC3_THIS(iface);
379 FIXME("(%p)->(%p)\n", This, p);
380 return E_NOTIMPL;
383 static HRESULT WINAPI HTMLDocument3_get_childNodes(IHTMLDocument3 *iface, IDispatch **p)
385 HTMLDocument *This = HTMLDOC3_THIS(iface);
386 FIXME("(%p)->(%p)\n", This, p);
387 return E_NOTIMPL;
390 static HRESULT WINAPI HTMLDocument3_put_inheritStyleSheets(IHTMLDocument3 *iface,
391 VARIANT_BOOL v)
393 HTMLDocument *This = HTMLDOC3_THIS(iface);
394 FIXME("(%p)->()\n", This);
395 return E_NOTIMPL;
398 static HRESULT WINAPI HTMLDocument3_get_inheritStyleSheets(IHTMLDocument3 *iface,
399 VARIANT_BOOL *p)
401 HTMLDocument *This = HTMLDOC3_THIS(iface);
402 FIXME("(%p)->(%p)\n", This, p);
403 return E_NOTIMPL;
406 static HRESULT WINAPI HTMLDocument3_put_onbeforeeditfocus(IHTMLDocument3 *iface, VARIANT v)
408 HTMLDocument *This = HTMLDOC3_THIS(iface);
409 FIXME("(%p)->()\n", This);
410 return E_NOTIMPL;
413 static HRESULT WINAPI HTMLDocument3_get_onbeforeeditfocus(IHTMLDocument3 *iface, VARIANT *p)
415 HTMLDocument *This = HTMLDOC3_THIS(iface);
416 FIXME("(%p)->(%p)\n", This, p);
417 return E_NOTIMPL;
420 static HRESULT WINAPI HTMLDocument3_getElementsByName(IHTMLDocument3 *iface, BSTR v,
421 IHTMLElementCollection **ppelColl)
423 HTMLDocument *This = HTMLDOC3_THIS(iface);
424 FIXME("(%p)->(%s %p)\n", This, debugstr_w(v), ppelColl);
425 return E_NOTIMPL;
429 static HRESULT WINAPI HTMLDocument3_getElementById(IHTMLDocument3 *iface, BSTR v,
430 IHTMLElement **pel)
432 HTMLDocument *This = HTMLDOC3_THIS(iface);
433 nsIDOMDocument *nsdoc = NULL;
434 nsIDOMElement *nselem = NULL;
435 HTMLDOMNode *node;
436 nsAString id_str;
437 nsresult nsres;
439 TRACE("(%p)->(%s %p)\n", This, debugstr_w(v), pel);
441 *pel = NULL;
443 if(!This->nscontainer)
444 return S_OK;
446 nsres = nsIWebNavigation_GetDocument(This->nscontainer->navigation, &nsdoc);
447 if(NS_FAILED(nsres) || !nsdoc)
448 return S_OK;
450 nsAString_Init(&id_str, v);
451 nsIDOMDocument_GetElementById(nsdoc, &id_str, &nselem);
452 nsIDOMDocument_Release(nsdoc);
453 nsAString_Finish(&id_str);
455 if(!nselem) {
456 *pel = NULL;
457 return S_OK;
460 node = get_node(This, (nsIDOMNode*)nselem, TRUE);
461 nsIDOMElement_Release(nselem);
463 return IHTMLDOMNode_QueryInterface(HTMLDOMNODE(node), &IID_IHTMLElement, (void**)pel);
467 static HRESULT WINAPI HTMLDocument3_getElementsByTagName(IHTMLDocument3 *iface, BSTR v,
468 IHTMLElementCollection **pelColl)
470 HTMLDocument *This = HTMLDOC3_THIS(iface);
471 FIXME("(%p)->(%s %p)\n", This, debugstr_w(v), pelColl);
472 return E_NOTIMPL;
475 #undef HTMLDOC3_THIS
477 static const IHTMLDocument3Vtbl HTMLDocument3Vtbl = {
478 HTMLDocument3_QueryInterface,
479 HTMLDocument3_AddRef,
480 HTMLDocument3_Release,
481 HTMLDocument3_GetTypeInfoCount,
482 HTMLDocument3_GetTypeInfo,
483 HTMLDocument3_GetIDsOfNames,
484 HTMLDocument3_Invoke,
485 HTMLDocument3_releaseCapture,
486 HTMLDocument3_recalc,
487 HTMLDocument3_createTextNode,
488 HTMLDocument3_get_documentElement,
489 HTMLDocument3_uniqueID,
490 HTMLDocument3_attachEvent,
491 HTMLDocument3_detachEvent,
492 HTMLDocument3_put_onrowsdelete,
493 HTMLDocument3_get_onrowsdelete,
494 HTMLDocument3_put_onrowsinserted,
495 HTMLDocument3_get_onrowsinserted,
496 HTMLDocument3_put_oncellchange,
497 HTMLDocument3_get_oncellchange,
498 HTMLDocument3_put_ondatasetchanged,
499 HTMLDocument3_get_ondatasetchanged,
500 HTMLDocument3_put_ondataavailable,
501 HTMLDocument3_get_ondataavailable,
502 HTMLDocument3_put_ondatasetcomplete,
503 HTMLDocument3_get_ondatasetcomplete,
504 HTMLDocument3_put_onpropertychange,
505 HTMLDocument3_get_onpropertychange,
506 HTMLDocument3_put_dir,
507 HTMLDocument3_get_dir,
508 HTMLDocument3_put_oncontextmenu,
509 HTMLDocument3_get_oncontextmenu,
510 HTMLDocument3_put_onstop,
511 HTMLDocument3_get_onstop,
512 HTMLDocument3_createDocumentFragment,
513 HTMLDocument3_get_parentDocument,
514 HTMLDocument3_put_enableDownload,
515 HTMLDocument3_get_enableDownload,
516 HTMLDocument3_put_baseUrl,
517 HTMLDocument3_get_baseUrl,
518 HTMLDocument3_get_childNodes,
519 HTMLDocument3_put_inheritStyleSheets,
520 HTMLDocument3_get_inheritStyleSheets,
521 HTMLDocument3_put_onbeforeeditfocus,
522 HTMLDocument3_get_onbeforeeditfocus,
523 HTMLDocument3_getElementsByName,
524 HTMLDocument3_getElementById,
525 HTMLDocument3_getElementsByTagName
528 #define HTMLDOC4_THIS(iface) DEFINE_THIS(HTMLDocument, HTMLDocument4, iface)
530 static HRESULT WINAPI HTMLDocument4_QueryInterface(IHTMLDocument4 *iface,
531 REFIID riid, void **ppv)
533 HTMLDocument *This = HTMLDOC4_THIS(iface);
534 return IHTMLDocument2_QueryInterface(HTMLDOC(This), riid, ppv);
537 static ULONG WINAPI HTMLDocument4_AddRef(IHTMLDocument4 *iface)
539 HTMLDocument *This = HTMLDOC4_THIS(iface);
540 return IHTMLDocument2_AddRef(HTMLDOC(This));
543 static ULONG WINAPI HTMLDocument4_Release(IHTMLDocument4 *iface)
545 HTMLDocument *This = HTMLDOC4_THIS(iface);
546 return IHTMLDocument2_Release(HTMLDOC(This));
549 static HRESULT WINAPI HTMLDocument4_GetTypeInfoCount(IHTMLDocument4 *iface, UINT *pctinfo)
551 HTMLDocument *This = HTMLDOC4_THIS(iface);
552 FIXME("(%p)->(%p)\n", This, pctinfo);
553 return E_NOTIMPL;
556 static HRESULT WINAPI HTMLDocument4_GetTypeInfo(IHTMLDocument4 *iface, UINT iTInfo,
557 LCID lcid, ITypeInfo **ppTInfo)
559 HTMLDocument *This = HTMLDOC4_THIS(iface);
560 FIXME("(%p)->(%u %u %p)\n", This, iTInfo, lcid, ppTInfo);
561 return E_NOTIMPL;
564 static HRESULT WINAPI HTMLDocument4_GetIDsOfNames(IHTMLDocument4 *iface, REFIID riid,
565 LPOLESTR *rgszNames, UINT cNames,
566 LCID lcid, DISPID *rgDispId)
568 HTMLDocument *This = HTMLDOC4_THIS(iface);
569 FIXME("(%p)->(%s %p %u %u %p)\n", This, debugstr_guid(riid), rgszNames, cNames,
570 lcid, rgDispId);
571 return E_NOTIMPL;
574 static HRESULT WINAPI HTMLDocument4_Invoke(IHTMLDocument4 *iface, DISPID dispIdMember,
575 REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams,
576 VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
578 HTMLDocument *This = HTMLDOC4_THIS(iface);
579 FIXME("(%p)->(%d %s %d %d %p %p %p %p)\n", This, dispIdMember, debugstr_guid(riid),
580 lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr);
581 return E_NOTIMPL;
584 static HRESULT WINAPI HTMLDocument4_focus(IHTMLDocument4 *iface)
586 HTMLDocument *This = HTMLDOC4_THIS(iface);
587 FIXME("(%p)->()\n", This);
588 return E_NOTIMPL;
591 static HRESULT WINAPI HTMLDocument4_hasFocus(IHTMLDocument4 *iface, VARIANT_BOOL *pfFocus)
593 HTMLDocument *This = HTMLDOC4_THIS(iface);
594 FIXME("(%p)->(%p)\n", This, pfFocus);
595 return E_NOTIMPL;
598 static HRESULT WINAPI HTMLDocument4_put_onselectionchange(IHTMLDocument4 *iface, VARIANT v)
600 HTMLDocument *This = HTMLDOC4_THIS(iface);
601 FIXME("(%p)->(v)\n", This);
602 return E_NOTIMPL;
605 static HRESULT WINAPI HTMLDocument4_get_onselectionchange(IHTMLDocument4 *iface, VARIANT *p)
607 HTMLDocument *This = HTMLDOC4_THIS(iface);
608 FIXME("(%p)->(%p)\n", This, p);
609 return E_NOTIMPL;
612 static HRESULT WINAPI HTMLDocument4_get_namespace(IHTMLDocument4 *iface, IDispatch **p)
614 HTMLDocument *This = HTMLDOC4_THIS(iface);
615 FIXME("(%p)->(%p)\n", This, p);
616 return E_NOTIMPL;
619 static HRESULT WINAPI HTMLDocument4_createDocumentFromUrl(IHTMLDocument4 *iface, BSTR bstrUrl,
620 BSTR bstrOptions, IHTMLDocument2 **newDoc)
622 HTMLDocument *This = HTMLDOC4_THIS(iface);
623 FIXME("(%p)->(%s %s %p)\n", This, debugstr_w(bstrUrl), debugstr_w(bstrOptions), newDoc);
624 return E_NOTIMPL;
627 static HRESULT WINAPI HTMLDocument4_put_media(IHTMLDocument4 *iface, BSTR v)
629 HTMLDocument *This = HTMLDOC4_THIS(iface);
630 FIXME("(%p)->(%s)\n", This, debugstr_w(v));
631 return E_NOTIMPL;
634 static HRESULT WINAPI HTMLDocument4_get_media(IHTMLDocument4 *iface, BSTR *p)
636 HTMLDocument *This = HTMLDOC4_THIS(iface);
637 FIXME("(%p)->(%p)\n", This, p);
638 return E_NOTIMPL;
641 static HRESULT WINAPI HTMLDocument4_createEventObject(IHTMLDocument4 *iface,
642 VARIANT *pvarEventObject, IHTMLEventObj **ppEventObj)
644 HTMLDocument *This = HTMLDOC4_THIS(iface);
645 FIXME("(%p)->(%p %p)\n", This, pvarEventObject, ppEventObj);
646 return E_NOTIMPL;
649 static HRESULT WINAPI HTMLDocument4_fireEvent(IHTMLDocument4 *iface, BSTR bstrEventName,
650 VARIANT *pvarEventObject, VARIANT_BOOL *pfCanceled)
652 HTMLDocument *This = HTMLDOC4_THIS(iface);
653 FIXME("(%p)->(%s %p %p)\n", This, debugstr_w(bstrEventName), pvarEventObject, pfCanceled);
654 return E_NOTIMPL;
657 static HRESULT WINAPI HTMLDocument4_createRenderStyle(IHTMLDocument4 *iface, BSTR v,
658 IHTMLRenderStyle **ppIHTMLRenderStyle)
660 HTMLDocument *This = HTMLDOC4_THIS(iface);
661 FIXME("(%p)->(%s %p)\n", This, debugstr_w(v), ppIHTMLRenderStyle);
662 return E_NOTIMPL;
665 static HRESULT WINAPI HTMLDocument4_put_oncontrolselect(IHTMLDocument4 *iface, VARIANT v)
667 HTMLDocument *This = HTMLDOC4_THIS(iface);
668 FIXME("(%p)->(v)\n", This);
669 return E_NOTIMPL;
672 static HRESULT WINAPI HTMLDocument4_get_oncontrolselect(IHTMLDocument4 *iface, VARIANT *p)
674 HTMLDocument *This = HTMLDOC4_THIS(iface);
675 FIXME("(%p)->(%p)\n", This, p);
676 return E_NOTIMPL;
679 static HRESULT WINAPI HTMLDocument4_get_URLEncoded(IHTMLDocument4 *iface, BSTR *p)
681 HTMLDocument *This = HTMLDOC4_THIS(iface);
682 FIXME("(%p)->(%p)\n", This, p);
683 return E_NOTIMPL;
686 #undef HTMLDOC4_THIS
688 static const IHTMLDocument4Vtbl HTMLDocument4Vtbl = {
689 HTMLDocument4_QueryInterface,
690 HTMLDocument4_AddRef,
691 HTMLDocument4_Release,
692 HTMLDocument4_GetTypeInfoCount,
693 HTMLDocument4_GetTypeInfo,
694 HTMLDocument4_GetIDsOfNames,
695 HTMLDocument4_Invoke,
696 HTMLDocument4_focus,
697 HTMLDocument4_hasFocus,
698 HTMLDocument4_put_onselectionchange,
699 HTMLDocument4_get_onselectionchange,
700 HTMLDocument4_get_namespace,
701 HTMLDocument4_createDocumentFromUrl,
702 HTMLDocument4_put_media,
703 HTMLDocument4_get_media,
704 HTMLDocument4_createEventObject,
705 HTMLDocument4_fireEvent,
706 HTMLDocument4_createRenderStyle,
707 HTMLDocument4_put_oncontrolselect,
708 HTMLDocument4_get_oncontrolselect,
709 HTMLDocument4_get_URLEncoded
712 void HTMLDocument_HTMLDocument3_Init(HTMLDocument *This)
714 This->lpHTMLDocument3Vtbl = &HTMLDocument3Vtbl;
715 This->lpHTMLDocument4Vtbl = &HTMLDocument4Vtbl;