2 * Copyright 2006 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
31 #include "wine/debug.h"
33 #include "mshtml_private.h"
35 WINE_DEFAULT_DEBUG_CHANNEL(mshtml
);
37 #define HTMLTEXTCONT_THIS(iface) DEFINE_THIS(HTMLTextContainer, HTMLTextContainer, iface)
39 static HRESULT WINAPI
HTMLTextContainer_QueryInterface(IHTMLTextContainer
*iface
,
40 REFIID riid
, void **ppv
)
42 HTMLTextContainer
*This
= HTMLTEXTCONT_THIS(iface
);
43 return IHTMLElement_QueryInterface(HTMLELEM(&This
->element
), riid
, ppv
);
46 static ULONG WINAPI
HTMLTextContainer_AddRef(IHTMLTextContainer
*iface
)
48 HTMLTextContainer
*This
= HTMLTEXTCONT_THIS(iface
);
49 return IHTMLElement_AddRef(HTMLELEM(&This
->element
));
52 static ULONG WINAPI
HTMLTextContainer_Release(IHTMLTextContainer
*iface
)
54 HTMLTextContainer
*This
= HTMLTEXTCONT_THIS(iface
);
55 return IHTMLElement_Release(HTMLELEM(&This
->element
));
58 static HRESULT WINAPI
HTMLTextContainer_GetTypeInfoCount(IHTMLTextContainer
*iface
, UINT
*pctinfo
)
60 HTMLTextContainer
*This
= HTMLTEXTCONT_THIS(iface
);
61 FIXME("(%p)->(%p)\n", This
, pctinfo
);
65 static HRESULT WINAPI
HTMLTextContainer_GetTypeInfo(IHTMLTextContainer
*iface
, UINT iTInfo
,
66 LCID lcid
, ITypeInfo
**ppTInfo
)
68 HTMLTextContainer
*This
= HTMLTEXTCONT_THIS(iface
);
69 FIXME("(%p)->(%u %u %p)\n", This
, iTInfo
, lcid
, ppTInfo
);
73 static HRESULT WINAPI
HTMLTextContainer_GetIDsOfNames(IHTMLTextContainer
*iface
, REFIID riid
,
74 LPOLESTR
*rgszNames
, UINT cNames
,
75 LCID lcid
, DISPID
*rgDispId
)
77 HTMLTextContainer
*This
= HTMLTEXTCONT_THIS(iface
);
78 FIXME("(%p)->(%s %p %u %u %p)\n", This
, debugstr_guid(riid
), rgszNames
, cNames
,
83 static HRESULT WINAPI
HTMLTextContainer_Invoke(IHTMLTextContainer
*iface
, DISPID dispIdMember
,
84 REFIID riid
, LCID lcid
, WORD wFlags
, DISPPARAMS
*pDispParams
,
85 VARIANT
*pVarResult
, EXCEPINFO
*pExcepInfo
, UINT
*puArgErr
)
87 HTMLTextContainer
*This
= HTMLTEXTCONT_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
);
93 static HRESULT WINAPI
HTMLTextContainer_createControlRange(IHTMLTextContainer
*iface
,
96 HTMLTextContainer
*This
= HTMLTEXTCONT_THIS(iface
);
97 FIXME("(%p)->(%p)\n", This
, range
);
101 static HRESULT WINAPI
HTMLTextContainer_get_scrollHeight(IHTMLTextContainer
*iface
, long *p
)
103 HTMLTextContainer
*This
= HTMLTEXTCONT_THIS(iface
);
104 nsIDOMNSHTMLElement
*nselem
;
108 TRACE("(%p)->(%p)\n", This
, p
);
110 nsres
= nsIDOMElement_QueryInterface(This
->element
.nselem
, &IID_nsIDOMNSHTMLElement
, (void**)&nselem
);
111 if(NS_SUCCEEDED(nsres
)) {
112 nsIDOMNSHTMLElement_GetScrollHeight(nselem
, &height
);
113 nsIDOMNSHTMLElement_Release(nselem
);
115 ERR("Could not get nsIDOMNSHTMLElement interface: %08x\n", nsres
);
119 TRACE("*p = %ld\n", *p
);
124 static HRESULT WINAPI
HTMLTextContainer_get_scrollWidth(IHTMLTextContainer
*iface
, long *p
)
126 HTMLTextContainer
*This
= HTMLTEXTCONT_THIS(iface
);
127 nsIDOMNSHTMLElement
*nselem
;
131 TRACE("(%p)->(%p)\n", This
, p
);
133 nsres
= nsIDOMElement_QueryInterface(This
->element
.nselem
, &IID_nsIDOMNSHTMLElement
, (void**)&nselem
);
134 if(NS_SUCCEEDED(nsres
)) {
135 nsIDOMNSHTMLElement_GetScrollWidth(nselem
, &width
);
136 nsIDOMNSHTMLElement_Release(nselem
);
138 ERR("Could not get nsIDOMNSHTMLElement interface: %08x\n", nsres
);
142 TRACE("*p = %ld\n", *p
);
147 static HRESULT WINAPI
HTMLTextContainer_put_scrollTop(IHTMLTextContainer
*iface
, long v
)
149 HTMLTextContainer
*This
= HTMLTEXTCONT_THIS(iface
);
150 nsIDOMNSHTMLElement
*nselem
;
153 TRACE("(%p)->(%ld)\n", This
, v
);
155 nsres
= nsIDOMHTMLElement_QueryInterface(This
->element
.nselem
, &IID_nsIDOMNSHTMLElement
,
157 if(NS_SUCCEEDED(nsres
)) {
158 nsIDOMNSHTMLElement_SetScrollTop(nselem
, v
);
159 nsIDOMNSHTMLElement_Release(nselem
);
161 ERR("Could not get nsIDOMNSHTMLElement interface: %08x\n", nsres
);
167 static HRESULT WINAPI
HTMLTextContainer_get_scrollTop(IHTMLTextContainer
*iface
, long *p
)
169 HTMLTextContainer
*This
= HTMLTEXTCONT_THIS(iface
);
170 FIXME("(%p)->(%p)\n", This
, p
);
174 static HRESULT WINAPI
HTMLTextContainer_put_scrollLeft(IHTMLTextContainer
*iface
, long v
)
176 HTMLTextContainer
*This
= HTMLTEXTCONT_THIS(iface
);
177 nsIDOMNSHTMLElement
*nselem
;
180 TRACE("(%p)->(%ld)\n", This
, v
);
182 nsres
= nsIDOMHTMLElement_QueryInterface(This
->element
.nselem
, &IID_nsIDOMNSHTMLElement
,
184 if(NS_SUCCEEDED(nsres
)) {
185 nsIDOMNSHTMLElement_SetScrollLeft(nselem
, v
);
186 nsIDOMNSHTMLElement_Release(nselem
);
188 ERR("Could not get nsIDOMNSHTMLElement interface: %08x\n", nsres
);
194 static HRESULT WINAPI
HTMLTextContainer_get_scrollLeft(IHTMLTextContainer
*iface
, long *p
)
196 HTMLTextContainer
*This
= HTMLTEXTCONT_THIS(iface
);
197 FIXME("(%p)->(%p)\n", This
, p
);
201 static HRESULT WINAPI
HTMLTextContainer_put_onscroll(IHTMLTextContainer
*iface
, VARIANT v
)
203 HTMLTextContainer
*This
= HTMLTEXTCONT_THIS(iface
);
204 FIXME("(%p)->()\n", This
);
208 static HRESULT WINAPI
HTMLTextContainer_get_onscroll(IHTMLTextContainer
*iface
, VARIANT
*p
)
210 HTMLTextContainer
*This
= HTMLTEXTCONT_THIS(iface
);
211 FIXME("(%p)->(%p)\n", This
, p
);
215 #undef HTMLTEXTCONT_THIS
217 static const IHTMLTextContainerVtbl HTMLTextContainerVtbl
= {
218 HTMLTextContainer_QueryInterface
,
219 HTMLTextContainer_AddRef
,
220 HTMLTextContainer_Release
,
221 HTMLTextContainer_GetTypeInfoCount
,
222 HTMLTextContainer_GetTypeInfo
,
223 HTMLTextContainer_GetIDsOfNames
,
224 HTMLTextContainer_Invoke
,
225 HTMLTextContainer_createControlRange
,
226 HTMLTextContainer_get_scrollHeight
,
227 HTMLTextContainer_get_scrollWidth
,
228 HTMLTextContainer_put_scrollTop
,
229 HTMLTextContainer_get_scrollTop
,
230 HTMLTextContainer_put_scrollLeft
,
231 HTMLTextContainer_get_scrollLeft
,
232 HTMLTextContainer_put_onscroll
,
233 HTMLTextContainer_get_onscroll
236 void HTMLTextContainer_Init(HTMLTextContainer
*This
)
238 This
->lpHTMLTextContainerVtbl
= &HTMLTextContainerVtbl
;