/* * Copyright 2008 Jacek Caban for CodeWeavers * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ #include #define COBJMACROS #include "windef.h" #include "winbase.h" #include "winuser.h" #include "ole2.h" #include "mshtml_private.h" #include "htmlstyle.h" #include "wine/debug.h" #include "wine/unicode.h" WINE_DEFAULT_DEBUG_CHANNEL(mshtml); #define HTMLSTYLE2_THIS(iface) DEFINE_THIS(HTMLStyle, HTMLStyle2, iface) static HRESULT WINAPI HTMLStyle2_QueryInterface(IHTMLStyle2 *iface, REFIID riid, void **ppv) { HTMLStyle *This = HTMLSTYLE2_THIS(iface); return IHTMLStyle_QueryInterface(HTMLSTYLE(This), riid, ppv); } static ULONG WINAPI HTMLStyle2_AddRef(IHTMLStyle2 *iface) { HTMLStyle *This = HTMLSTYLE2_THIS(iface); return IHTMLStyle_AddRef(HTMLSTYLE(This)); } static ULONG WINAPI HTMLStyle2_Release(IHTMLStyle2 *iface) { HTMLStyle *This = HTMLSTYLE2_THIS(iface); return IHTMLStyle_Release(HTMLSTYLE(This)); } static HRESULT WINAPI HTMLStyle2_GetTypeInfoCount(IHTMLStyle2 *iface, UINT *pctinfo) { HTMLStyle *This = HTMLSTYLE2_THIS(iface); return IDispatchEx_GetTypeInfoCount(DISPATCHEX(&This->dispex), pctinfo); } static HRESULT WINAPI HTMLStyle2_GetTypeInfo(IHTMLStyle2 *iface, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo) { HTMLStyle *This = HTMLSTYLE2_THIS(iface); return IDispatchEx_GetTypeInfo(DISPATCHEX(&This->dispex), iTInfo, lcid, ppTInfo); } static HRESULT WINAPI HTMLStyle2_GetIDsOfNames(IHTMLStyle2 *iface, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId) { HTMLStyle *This = HTMLSTYLE2_THIS(iface); return IDispatchEx_GetIDsOfNames(DISPATCHEX(&This->dispex), riid, rgszNames, cNames, lcid, rgDispId); } static HRESULT WINAPI HTMLStyle2_Invoke(IHTMLStyle2 *iface, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr) { HTMLStyle *This = HTMLSTYLE2_THIS(iface); return IDispatchEx_Invoke(DISPATCHEX(&This->dispex), dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr); } static HRESULT WINAPI HTMLStyle2_put_tableLayout(IHTMLStyle2 *iface, BSTR v) { HTMLStyle *This = HTMLSTYLE2_THIS(iface); FIXME("(%p)->(%s)\n", This, debugstr_w(v)); return E_NOTIMPL; } static HRESULT WINAPI HTMLStyle2_get_tableLayout(IHTMLStyle2 *iface, BSTR *p) { HTMLStyle *This = HTMLSTYLE2_THIS(iface); FIXME("(%p)->(%p)\n", This, p); return E_NOTIMPL; } static HRESULT WINAPI HTMLStyle2_put_borderCollapse(IHTMLStyle2 *iface, BSTR v) { HTMLStyle *This = HTMLSTYLE2_THIS(iface); FIXME("(%p)->(%s)\n", This, debugstr_w(v)); return E_NOTIMPL; } static HRESULT WINAPI HTMLStyle2_get_borderCollapse(IHTMLStyle2 *iface, BSTR *p) { HTMLStyle *This = HTMLSTYLE2_THIS(iface); FIXME("(%p)->(%p)\n", This, p); return E_NOTIMPL; } static HRESULT WINAPI HTMLStyle2_put_direction(IHTMLStyle2 *iface, BSTR v) { HTMLStyle *This = HTMLSTYLE2_THIS(iface); FIXME("(%p)->(%s)\n", This, debugstr_w(v)); return E_NOTIMPL; } static HRESULT WINAPI HTMLStyle2_get_direction(IHTMLStyle2 *iface, BSTR *p) { HTMLStyle *This = HTMLSTYLE2_THIS(iface); FIXME("(%p)->(%p)\n", This, p); return E_NOTIMPL; } static HRESULT WINAPI HTMLStyle2_put_behavior(IHTMLStyle2 *iface, BSTR v) { HTMLStyle *This = HTMLSTYLE2_THIS(iface); FIXME("(%p)->(%s)\n", This, debugstr_w(v)); return E_NOTIMPL; } static HRESULT WINAPI HTMLStyle2_get_behavior(IHTMLStyle2 *iface, BSTR *p) { HTMLStyle *This = HTMLSTYLE2_THIS(iface); FIXME("(%p)->(%p)\n", This, p); return E_NOTIMPL; } static HRESULT WINAPI HTMLStyle2_setExpression(IHTMLStyle2 *iface, BSTR propname, BSTR expression, BSTR language) { HTMLStyle *This = HTMLSTYLE2_THIS(iface); FIXME("(%p)->(%s %s %s)\n", This, debugstr_w(propname), debugstr_w(expression), debugstr_w(language)); return E_NOTIMPL; } static HRESULT WINAPI HTMLStyle2_getExpression(IHTMLStyle2 *iface, BSTR propname, VARIANT *expression) { HTMLStyle *This = HTMLSTYLE2_THIS(iface); FIXME("(%p)->(%s %p)\n", This, debugstr_w(propname), expression); return E_NOTIMPL; } static HRESULT WINAPI HTMLStyle2_removeExpression(IHTMLStyle2 *iface, BSTR propname, VARIANT_BOOL *pfSuccess) { HTMLStyle *This = HTMLSTYLE2_THIS(iface); FIXME("(%p)->(%s %p)\n", This, debugstr_w(propname), pfSuccess); return E_NOTIMPL; } static HRESULT WINAPI HTMLStyle2_put_position(IHTMLStyle2 *iface, BSTR v) { HTMLStyle *This = HTMLSTYLE2_THIS(iface); TRACE("(%p)->(%s)\n", This, debugstr_w(v)); return set_nsstyle_attr(This->nsstyle, STYLEID_POSITION, v, 0); } static HRESULT WINAPI HTMLStyle2_get_position(IHTMLStyle2 *iface, BSTR *p) { HTMLStyle *This = HTMLSTYLE2_THIS(iface); TRACE("(%p)->(%p)\n", This, p); return get_nsstyle_attr(This->nsstyle, STYLEID_POSITION, p); } static HRESULT WINAPI HTMLStyle2_put_unicodeBidi(IHTMLStyle2 *iface, BSTR v) { HTMLStyle *This = HTMLSTYLE2_THIS(iface); FIXME("(%p)->(%s)\n", This, debugstr_w(v)); return E_NOTIMPL; } static HRESULT WINAPI HTMLStyle2_get_unicodeBidi(IHTMLStyle2 *iface, BSTR *p) { HTMLStyle *This = HTMLSTYLE2_THIS(iface); FIXME("(%p)->(%p)\n", This, p); return E_NOTIMPL; } static HRESULT WINAPI HTMLStyle2_put_bottom(IHTMLStyle2 *iface, VARIANT v) { HTMLStyle *This = HTMLSTYLE2_THIS(iface); FIXME("(%p)->(%s)\n", This, debugstr_variant(&v)); return E_NOTIMPL; } static HRESULT WINAPI HTMLStyle2_get_bottom(IHTMLStyle2 *iface, VARIANT *p) { HTMLStyle *This = HTMLSTYLE2_THIS(iface); FIXME("(%p)->(%p)\n", This, p); return E_NOTIMPL; } static HRESULT WINAPI HTMLStyle2_put_right(IHTMLStyle2 *iface, VARIANT v) { HTMLStyle *This = HTMLSTYLE2_THIS(iface); TRACE("(%p)->(%s)\n", This, debugstr_variant(&v)); return set_nsstyle_attr_var(This->nsstyle, STYLEID_RIGHT, &v, 0); } static HRESULT WINAPI HTMLStyle2_get_right(IHTMLStyle2 *iface, VARIANT *p) { HTMLStyle *This = HTMLSTYLE2_THIS(iface); TRACE("(%p)->(%p)\n", This, p); return get_nsstyle_attr_var(This->nsstyle, STYLEID_RIGHT, p, 0); } static HRESULT WINAPI HTMLStyle2_put_pixelBottom(IHTMLStyle2 *iface, LONG v) { HTMLStyle *This = HTMLSTYLE2_THIS(iface); FIXME("(%p)->(%d)\n", This, v); return E_NOTIMPL; } static HRESULT WINAPI HTMLStyle2_get_pixelBottom(IHTMLStyle2 *iface, LONG *p) { HTMLStyle *This = HTMLSTYLE2_THIS(iface); FIXME("(%p)->(%p)\n", This, p); return E_NOTIMPL; } static HRESULT WINAPI HTMLStyle2_put_pixelRight(IHTMLStyle2 *iface, LONG v) { HTMLStyle *This = HTMLSTYLE2_THIS(iface); FIXME("(%p)->(%d)\n", This, v); return E_NOTIMPL; } static HRESULT WINAPI HTMLStyle2_get_pixelRight(IHTMLStyle2 *iface, LONG *p) { HTMLStyle *This = HTMLSTYLE2_THIS(iface); FIXME("(%p)->(%p)\n", This, p); return E_NOTIMPL; } static HRESULT WINAPI HTMLStyle2_put_posBottom(IHTMLStyle2 *iface, float v) { HTMLStyle *This = HTMLSTYLE2_THIS(iface); FIXME("(%p)->(%f)\n", This, v); return E_NOTIMPL; } static HRESULT WINAPI HTMLStyle2_get_posBottom(IHTMLStyle2 *iface, float *p) { HTMLStyle *This = HTMLSTYLE2_THIS(iface); FIXME("(%p)->(%p)\n", This, p); return E_NOTIMPL; } static HRESULT WINAPI HTMLStyle2_put_posRight(IHTMLStyle2 *iface, float v) { HTMLStyle *This = HTMLSTYLE2_THIS(iface); FIXME("(%p)->(%f)\n", This, v); return E_NOTIMPL; } static HRESULT WINAPI HTMLStyle2_get_posRight(IHTMLStyle2 *iface, float *p) { HTMLStyle *This = HTMLSTYLE2_THIS(iface); FIXME("(%p)->(%p)\n", This, p); return E_NOTIMPL; } static HRESULT WINAPI HTMLStyle2_put_imeMode(IHTMLStyle2 *iface, BSTR v) { HTMLStyle *This = HTMLSTYLE2_THIS(iface); FIXME("(%p)->(%s)\n", This, debugstr_w(v)); return E_NOTIMPL; } static HRESULT WINAPI HTMLStyle2_get_imeMode(IHTMLStyle2 *iface, BSTR *p) { HTMLStyle *This = HTMLSTYLE2_THIS(iface); FIXME("(%p)->(%p)\n", This, p); return E_NOTIMPL; } static HRESULT WINAPI HTMLStyle2_put_rubyAlign(IHTMLStyle2 *iface, BSTR v) { HTMLStyle *This = HTMLSTYLE2_THIS(iface); FIXME("(%p)->(%s)\n", This, debugstr_w(v)); return E_NOTIMPL; } static HRESULT WINAPI HTMLStyle2_get_rubyAlign(IHTMLStyle2 *iface, BSTR *p) { HTMLStyle *This = HTMLSTYLE2_THIS(iface); FIXME("(%p)->(%p)\n", This, p); return E_NOTIMPL; } static HRESULT WINAPI HTMLStyle2_put_rubyPosition(IHTMLStyle2 *iface, BSTR v) { HTMLStyle *This = HTMLSTYLE2_THIS(iface); FIXME("(%p)->(%s)\n", This, debugstr_w(v)); return E_NOTIMPL; } static HRESULT WINAPI HTMLStyle2_get_rubyPosition(IHTMLStyle2 *iface, BSTR *p) { HTMLStyle *This = HTMLSTYLE2_THIS(iface); FIXME("(%p)->(%p)\n", This, p); return E_NOTIMPL; } static HRESULT WINAPI HTMLStyle2_put_rubyOverhang(IHTMLStyle2 *iface, BSTR v) { HTMLStyle *This = HTMLSTYLE2_THIS(iface); FIXME("(%p)->(%s)\n", This, debugstr_w(v)); return E_NOTIMPL; } static HRESULT WINAPI HTMLStyle2_get_rubyOverhang(IHTMLStyle2 *iface, BSTR *p) { HTMLStyle *This = HTMLSTYLE2_THIS(iface); FIXME("(%p)->(%p)\n", This, p); return E_NOTIMPL; } static HRESULT WINAPI HTMLStyle2_put_layoutGridChar(IHTMLStyle2 *iface, VARIANT v) { HTMLStyle *This = HTMLSTYLE2_THIS(iface); FIXME("(%p)->(%s)\n", This, debugstr_variant(&v)); return E_NOTIMPL; } static HRESULT WINAPI HTMLStyle2_get_layoutGridChar(IHTMLStyle2 *iface, VARIANT *p) { HTMLStyle *This = HTMLSTYLE2_THIS(iface); FIXME("(%p)->(%p)\n", This, p); return E_NOTIMPL; } static HRESULT WINAPI HTMLStyle2_put_layoutGridLine(IHTMLStyle2 *iface, VARIANT v) { HTMLStyle *This = HTMLSTYLE2_THIS(iface); FIXME("(%p)->(%s)\n", This, debugstr_variant(&v)); return E_NOTIMPL; } static HRESULT WINAPI HTMLStyle2_get_layoutGridLine(IHTMLStyle2 *iface, VARIANT *p) { HTMLStyle *This = HTMLSTYLE2_THIS(iface); FIXME("(%p)->(%p)\n", This, p); return E_NOTIMPL; } static HRESULT WINAPI HTMLStyle2_put_layoutGridMode(IHTMLStyle2 *iface, BSTR v) { HTMLStyle *This = HTMLSTYLE2_THIS(iface); FIXME("(%p)->(%s)\n", This, debugstr_w(v)); return E_NOTIMPL; } static HRESULT WINAPI HTMLStyle2_get_layoutGridMode(IHTMLStyle2 *iface, BSTR *p) { HTMLStyle *This = HTMLSTYLE2_THIS(iface); FIXME("(%p)->(%p)\n", This, p); return E_NOTIMPL; } static HRESULT WINAPI HTMLStyle2_put_layoutGridType(IHTMLStyle2 *iface, BSTR v) { HTMLStyle *This = HTMLSTYLE2_THIS(iface); FIXME("(%p)->(%s)\n", This, debugstr_w(v)); return E_NOTIMPL; } static HRESULT WINAPI HTMLStyle2_get_layoutGridType(IHTMLStyle2 *iface, BSTR *p) { HTMLStyle *This = HTMLSTYLE2_THIS(iface); FIXME("(%p)->(%p)\n", This, p); return E_NOTIMPL; } static HRESULT WINAPI HTMLStyle2_put_layoutGrid(IHTMLStyle2 *iface, BSTR v) { HTMLStyle *This = HTMLSTYLE2_THIS(iface); FIXME("(%p)->(%s)\n", This, debugstr_w(v)); return E_NOTIMPL; } static HRESULT WINAPI HTMLStyle2_get_layoutGrid(IHTMLStyle2 *iface, BSTR *p) { HTMLStyle *This = HTMLSTYLE2_THIS(iface); FIXME("(%p)->(%p)\n", This, p); return E_NOTIMPL; } static HRESULT WINAPI HTMLStyle2_put_wordBreak(IHTMLStyle2 *iface, BSTR v) { HTMLStyle *This = HTMLSTYLE2_THIS(iface); FIXME("(%p)->(%s)\n", This, debugstr_w(v)); return E_NOTIMPL; } static HRESULT WINAPI HTMLStyle2_get_wordBreak(IHTMLStyle2 *iface, BSTR *p) { HTMLStyle *This = HTMLSTYLE2_THIS(iface); FIXME("(%p)->(%p)\n", This, p); return E_NOTIMPL; } static HRESULT WINAPI HTMLStyle2_put_lineBreak(IHTMLStyle2 *iface, BSTR v) { HTMLStyle *This = HTMLSTYLE2_THIS(iface); FIXME("(%p)->(%s)\n", This, debugstr_w(v)); return E_NOTIMPL; } static HRESULT WINAPI HTMLStyle2_get_lineBreak(IHTMLStyle2 *iface, BSTR *p) { HTMLStyle *This = HTMLSTYLE2_THIS(iface); FIXME("(%p)->(%p)\n", This, p); return E_NOTIMPL; } static HRESULT WINAPI HTMLStyle2_put_textJustify(IHTMLStyle2 *iface, BSTR v) { HTMLStyle *This = HTMLSTYLE2_THIS(iface); FIXME("(%p)->(%s)\n", This, debugstr_w(v)); return E_NOTIMPL; } static HRESULT WINAPI HTMLStyle2_get_textJustify(IHTMLStyle2 *iface, BSTR *p) { HTMLStyle *This = HTMLSTYLE2_THIS(iface); FIXME("(%p)->(%p)\n", This, p); return E_NOTIMPL; } static HRESULT WINAPI HTMLStyle2_put_textJustifyTrim(IHTMLStyle2 *iface, BSTR v) { HTMLStyle *This = HTMLSTYLE2_THIS(iface); FIXME("(%p)->(%s)\n", This, debugstr_w(v)); return E_NOTIMPL; } static HRESULT WINAPI HTMLStyle2_get_textJustifyTrim(IHTMLStyle2 *iface, BSTR *p) { HTMLStyle *This = HTMLSTYLE2_THIS(iface); FIXME("(%p)->(%p)\n", This, p); return E_NOTIMPL; } static HRESULT WINAPI HTMLStyle2_put_textKashida(IHTMLStyle2 *iface, VARIANT v) { HTMLStyle *This = HTMLSTYLE2_THIS(iface); FIXME("(%p)->(%s)\n", This, debugstr_variant(&v)); return E_NOTIMPL; } static HRESULT WINAPI HTMLStyle2_get_textKashida(IHTMLStyle2 *iface, VARIANT *p) { HTMLStyle *This = HTMLSTYLE2_THIS(iface); FIXME("(%p)->(%p)\n", This, p); return E_NOTIMPL; } static HRESULT WINAPI HTMLStyle2_put_textAutospace(IHTMLStyle2 *iface, BSTR v) { HTMLStyle *This = HTMLSTYLE2_THIS(iface); FIXME("(%p)->(%s)\n", This, debugstr_w(v)); return E_NOTIMPL; } static HRESULT WINAPI HTMLStyle2_get_textAutospace(IHTMLStyle2 *iface, BSTR *p) { HTMLStyle *This = HTMLSTYLE2_THIS(iface); FIXME("(%p)->(%p)\n", This, p); return E_NOTIMPL; } static HRESULT WINAPI HTMLStyle2_put_overflowX(IHTMLStyle2 *iface, BSTR v) { HTMLStyle *This = HTMLSTYLE2_THIS(iface); FIXME("(%p)->(%s)\n", This, debugstr_w(v)); return E_NOTIMPL; } static HRESULT WINAPI HTMLStyle2_get_overflowX(IHTMLStyle2 *iface, BSTR *p) { HTMLStyle *This = HTMLSTYLE2_THIS(iface); FIXME("(%p)->(%p)\n", This, p); return E_NOTIMPL; } static HRESULT WINAPI HTMLStyle2_put_overflowY(IHTMLStyle2 *iface, BSTR v) { HTMLStyle *This = HTMLSTYLE2_THIS(iface); FIXME("(%p)->(%s)\n", This, debugstr_w(v)); return E_NOTIMPL; } static HRESULT WINAPI HTMLStyle2_get_overflowY(IHTMLStyle2 *iface, BSTR *p) { HTMLStyle *This = HTMLSTYLE2_THIS(iface); FIXME("(%p)->(%p)\n", This, p); return E_NOTIMPL; } static HRESULT WINAPI HTMLStyle2_put_accelerator(IHTMLStyle2 *iface, BSTR v) { HTMLStyle *This = HTMLSTYLE2_THIS(iface); FIXME("(%p)->(%s)\n", This, debugstr_w(v)); return E_NOTIMPL; } static HRESULT WINAPI HTMLStyle2_get_accelerator(IHTMLStyle2 *iface, BSTR *p) { HTMLStyle *This = HTMLSTYLE2_THIS(iface); FIXME("(%p)->(%p)\n", This, p); return E_NOTIMPL; } static const IHTMLStyle2Vtbl HTMLStyle2Vtbl = { HTMLStyle2_QueryInterface, HTMLStyle2_AddRef, HTMLStyle2_Release, HTMLStyle2_GetTypeInfoCount, HTMLStyle2_GetTypeInfo, HTMLStyle2_GetIDsOfNames, HTMLStyle2_Invoke, HTMLStyle2_put_tableLayout, HTMLStyle2_get_tableLayout, HTMLStyle2_put_borderCollapse, HTMLStyle2_get_borderCollapse, HTMLStyle2_put_direction, HTMLStyle2_get_direction, HTMLStyle2_put_behavior, HTMLStyle2_get_behavior, HTMLStyle2_setExpression, HTMLStyle2_getExpression, HTMLStyle2_removeExpression, HTMLStyle2_put_position, HTMLStyle2_get_position, HTMLStyle2_put_unicodeBidi, HTMLStyle2_get_unicodeBidi, HTMLStyle2_put_bottom, HTMLStyle2_get_bottom, HTMLStyle2_put_right, HTMLStyle2_get_right, HTMLStyle2_put_pixelBottom, HTMLStyle2_get_pixelBottom, HTMLStyle2_put_pixelRight, HTMLStyle2_get_pixelRight, HTMLStyle2_put_posBottom, HTMLStyle2_get_posBottom, HTMLStyle2_put_posRight, HTMLStyle2_get_posRight, HTMLStyle2_put_imeMode, HTMLStyle2_get_imeMode, HTMLStyle2_put_rubyAlign, HTMLStyle2_get_rubyAlign, HTMLStyle2_put_rubyPosition, HTMLStyle2_get_rubyPosition, HTMLStyle2_put_rubyOverhang, HTMLStyle2_get_rubyOverhang, HTMLStyle2_put_layoutGridChar, HTMLStyle2_get_layoutGridChar, HTMLStyle2_put_layoutGridLine, HTMLStyle2_get_layoutGridLine, HTMLStyle2_put_layoutGridMode, HTMLStyle2_get_layoutGridMode, HTMLStyle2_put_layoutGridType, HTMLStyle2_get_layoutGridType, HTMLStyle2_put_layoutGrid, HTMLStyle2_get_layoutGrid, HTMLStyle2_put_wordBreak, HTMLStyle2_get_wordBreak, HTMLStyle2_put_lineBreak, HTMLStyle2_get_lineBreak, HTMLStyle2_put_textJustify, HTMLStyle2_get_textJustify, HTMLStyle2_put_textJustifyTrim, HTMLStyle2_get_textJustifyTrim, HTMLStyle2_put_textKashida, HTMLStyle2_get_textKashida, HTMLStyle2_put_textAutospace, HTMLStyle2_get_textAutospace, HTMLStyle2_put_overflowX, HTMLStyle2_get_overflowX, HTMLStyle2_put_overflowY, HTMLStyle2_get_overflowY, HTMLStyle2_put_accelerator, HTMLStyle2_get_accelerator }; void HTMLStyle2_Init(HTMLStyle *This) { This->lpHTMLStyle2Vtbl = &HTMLStyle2Vtbl; }