mshtml: Add ISVGSVGElement stub implementation.
Signed-off-by: Jacek Caban <jacek@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
55ea9b37c3
commit
07ee5cb341
|
@ -131,6 +131,7 @@ typedef struct EventTarget EventTarget;
|
|||
XDIID(DispHTMLW3CComputedStyle) \
|
||||
XDIID(DispHTMLWindow2) \
|
||||
XDIID(DispHTMLXMLHttpRequest) \
|
||||
XDIID(DispSVGSVGElement) \
|
||||
XDIID(HTMLDocumentEvents) \
|
||||
XDIID(HTMLElementEvents2) \
|
||||
XIID(IDOMCustomEvent) \
|
||||
|
@ -247,7 +248,8 @@ typedef struct EventTarget EventTarget;
|
|||
XIID(IHTMLXMLHttpRequestFactory) \
|
||||
XIID(IOmHistory) \
|
||||
XIID(IOmNavigator) \
|
||||
XIID(ISVGElement)
|
||||
XIID(ISVGElement) \
|
||||
XIID(ISVGSVGElement)
|
||||
|
||||
typedef enum {
|
||||
#define XIID(iface) iface ## _tid,
|
||||
|
|
|
@ -211,10 +211,568 @@ static void init_svg_element(SVGElement *svg_element, HTMLDocumentNode *doc, nsI
|
|||
HTMLElement_Init(&svg_element->element, doc, (nsIDOMElement*)nselem, NULL);
|
||||
}
|
||||
|
||||
struct SVGSVGElement {
|
||||
SVGElement svg_element;
|
||||
ISVGSVGElement ISVGSVGElement_iface;
|
||||
};
|
||||
|
||||
static inline SVGSVGElement *impl_from_ISVGSVGElement(ISVGSVGElement *iface)
|
||||
{
|
||||
return CONTAINING_RECORD(iface, SVGSVGElement, ISVGSVGElement_iface);
|
||||
}
|
||||
|
||||
static HRESULT WINAPI SVGSVGElement_QueryInterface(ISVGSVGElement *iface,
|
||||
REFIID riid, void **ppv)
|
||||
{
|
||||
SVGSVGElement *This = impl_from_ISVGSVGElement(iface);
|
||||
|
||||
return IHTMLDOMNode_QueryInterface(&This->svg_element.element.node.IHTMLDOMNode_iface, riid, ppv);
|
||||
}
|
||||
|
||||
static ULONG WINAPI SVGSVGElement_AddRef(ISVGSVGElement *iface)
|
||||
{
|
||||
SVGSVGElement *This = impl_from_ISVGSVGElement(iface);
|
||||
|
||||
return IHTMLDOMNode_AddRef(&This->svg_element.element.node.IHTMLDOMNode_iface);
|
||||
}
|
||||
|
||||
static ULONG WINAPI SVGSVGElement_Release(ISVGSVGElement *iface)
|
||||
{
|
||||
SVGSVGElement *This = impl_from_ISVGSVGElement(iface);
|
||||
|
||||
return IHTMLDOMNode_Release(&This->svg_element.element.node.IHTMLDOMNode_iface);
|
||||
}
|
||||
|
||||
static HRESULT WINAPI SVGSVGElement_GetTypeInfoCount(ISVGSVGElement *iface, UINT *pctinfo)
|
||||
{
|
||||
SVGSVGElement *This = impl_from_ISVGSVGElement(iface);
|
||||
return IDispatchEx_GetTypeInfoCount(&This->svg_element.element.node.event_target.dispex.IDispatchEx_iface, pctinfo);
|
||||
}
|
||||
|
||||
static HRESULT WINAPI SVGSVGElement_GetTypeInfo(ISVGSVGElement *iface, UINT iTInfo,
|
||||
LCID lcid, ITypeInfo **ppTInfo)
|
||||
{
|
||||
SVGSVGElement *This = impl_from_ISVGSVGElement(iface);
|
||||
return IDispatchEx_GetTypeInfo(&This->svg_element.element.node.event_target.dispex.IDispatchEx_iface, iTInfo, lcid,
|
||||
ppTInfo);
|
||||
}
|
||||
|
||||
static HRESULT WINAPI SVGSVGElement_GetIDsOfNames(ISVGSVGElement *iface, REFIID riid,
|
||||
LPOLESTR *rgszNames, UINT cNames,
|
||||
LCID lcid, DISPID *rgDispId)
|
||||
{
|
||||
SVGSVGElement *This = impl_from_ISVGSVGElement(iface);
|
||||
return IDispatchEx_GetIDsOfNames(&This->svg_element.element.node.event_target.dispex.IDispatchEx_iface, riid, rgszNames,
|
||||
cNames, lcid, rgDispId);
|
||||
}
|
||||
|
||||
static HRESULT WINAPI SVGSVGElement_Invoke(ISVGSVGElement *iface, DISPID dispIdMember,
|
||||
REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams,
|
||||
VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
|
||||
{
|
||||
SVGSVGElement *This = impl_from_ISVGSVGElement(iface);
|
||||
return IDispatchEx_Invoke(&This->svg_element.element.node.event_target.dispex.IDispatchEx_iface, dispIdMember, riid,
|
||||
lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr);
|
||||
}
|
||||
|
||||
static HRESULT WINAPI SVGSVGElement_putref_x(ISVGSVGElement *iface, ISVGAnimatedLength *v)
|
||||
{
|
||||
SVGSVGElement *This = impl_from_ISVGSVGElement(iface);
|
||||
FIXME("(%p)->(%p)\n", This, v);
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI SVGSVGElement_get_x(ISVGSVGElement *iface, ISVGAnimatedLength **p)
|
||||
{
|
||||
SVGSVGElement *This = impl_from_ISVGSVGElement(iface);
|
||||
FIXME("(%p)->(%p)\n", This, p);
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI SVGSVGElement_putref_y(ISVGSVGElement *iface, ISVGAnimatedLength *v)
|
||||
{
|
||||
SVGSVGElement *This = impl_from_ISVGSVGElement(iface);
|
||||
FIXME("(%p)->(%p)\n", This, v);
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI SVGSVGElement_get_y(ISVGSVGElement *iface, ISVGAnimatedLength **p)
|
||||
{
|
||||
SVGSVGElement *This = impl_from_ISVGSVGElement(iface);
|
||||
FIXME("(%p)->(%p)\n", This, p);
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI SVGSVGElement_putref_width(ISVGSVGElement *iface, ISVGAnimatedLength *v)
|
||||
{
|
||||
SVGSVGElement *This = impl_from_ISVGSVGElement(iface);
|
||||
FIXME("(%p)->(%p)\n", This, v);
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI SVGSVGElement_get_width(ISVGSVGElement *iface, ISVGAnimatedLength **p)
|
||||
{
|
||||
SVGSVGElement *This = impl_from_ISVGSVGElement(iface);
|
||||
FIXME("(%p)->(%p)\n", This, p);
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI SVGSVGElement_putref_height(ISVGSVGElement *iface, ISVGAnimatedLength *v)
|
||||
{
|
||||
SVGSVGElement *This = impl_from_ISVGSVGElement(iface);
|
||||
FIXME("(%p)->(%p)\n", This, v);
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI SVGSVGElement_get_height(ISVGSVGElement *iface, ISVGAnimatedLength **p)
|
||||
{
|
||||
SVGSVGElement *This = impl_from_ISVGSVGElement(iface);
|
||||
FIXME("(%p)->(%p)\n", This, p);
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI SVGSVGElement_put_contentScriptType(ISVGSVGElement *iface, BSTR v)
|
||||
{
|
||||
SVGSVGElement *This = impl_from_ISVGSVGElement(iface);
|
||||
FIXME("(%p)->(%s)\n", This, debugstr_w(v));
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI SVGSVGElement_get_contentScriptType(ISVGSVGElement *iface, BSTR *p)
|
||||
{
|
||||
SVGSVGElement *This = impl_from_ISVGSVGElement(iface);
|
||||
FIXME("(%p)->(%p)\n", This, p);
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI SVGSVGElement_put_contentStyleType(ISVGSVGElement *iface, BSTR v)
|
||||
{
|
||||
SVGSVGElement *This = impl_from_ISVGSVGElement(iface);
|
||||
FIXME("(%p)->(%p)\n", This, v);
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI SVGSVGElement_get_contentStyleType(ISVGSVGElement *iface, BSTR *p)
|
||||
{
|
||||
SVGSVGElement *This = impl_from_ISVGSVGElement(iface);
|
||||
FIXME("(%p)->(%p)\n", This, p);
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI SVGSVGElement_putref_viewport(ISVGSVGElement *iface, ISVGRect *v)
|
||||
{
|
||||
SVGSVGElement *This = impl_from_ISVGSVGElement(iface);
|
||||
FIXME("(%p)->(%p)\n", This, v);
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI SVGSVGElement_get_viewport(ISVGSVGElement *iface, ISVGRect **p)
|
||||
{
|
||||
SVGSVGElement *This = impl_from_ISVGSVGElement(iface);
|
||||
FIXME("(%p)->(%p)\n", This, p);
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI SVGSVGElement_put_pixelUnitToMillimeterX(ISVGSVGElement *iface, float v)
|
||||
{
|
||||
SVGSVGElement *This = impl_from_ISVGSVGElement(iface);
|
||||
FIXME("(%p)->(%f)\n", This, v);
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI SVGSVGElement_get_pixelUnitToMillimeterX(ISVGSVGElement *iface, float *p)
|
||||
{
|
||||
SVGSVGElement *This = impl_from_ISVGSVGElement(iface);
|
||||
FIXME("(%p)->(%p)\n", This, p);
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI SVGSVGElement_put_pixelUnitToMillimeterY(ISVGSVGElement *iface, float v)
|
||||
{
|
||||
SVGSVGElement *This = impl_from_ISVGSVGElement(iface);
|
||||
FIXME("(%p)->(%f)\n", This, v);
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI SVGSVGElement_get_pixelUnitToMillimeterY(ISVGSVGElement *iface, float *p)
|
||||
{
|
||||
SVGSVGElement *This = impl_from_ISVGSVGElement(iface);
|
||||
FIXME("(%p)->(%p)\n", This, p);
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI SVGSVGElement_put_screenPixelToMillimeterX(ISVGSVGElement *iface, float v)
|
||||
{
|
||||
SVGSVGElement *This = impl_from_ISVGSVGElement(iface);
|
||||
FIXME("(%p)->(%f)\n", This, v);
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI SVGSVGElement_get_screenPixelToMillimeterX(ISVGSVGElement *iface, float *p)
|
||||
{
|
||||
SVGSVGElement *This = impl_from_ISVGSVGElement(iface);
|
||||
FIXME("(%p)->(%p)\n", This, p);
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI SVGSVGElement_put_screenPixelToMillimeterY(ISVGSVGElement *iface, float v)
|
||||
{
|
||||
SVGSVGElement *This = impl_from_ISVGSVGElement(iface);
|
||||
FIXME("(%p)->(%f)\n", This, v);
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI SVGSVGElement_get_screenPixelToMillimeterY(ISVGSVGElement *iface, float *p)
|
||||
{
|
||||
SVGSVGElement *This = impl_from_ISVGSVGElement(iface);
|
||||
FIXME("(%p)->(%p)\n", This, p);
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI SVGSVGElement_put_useCurrentView(ISVGSVGElement *iface, VARIANT_BOOL v)
|
||||
{
|
||||
SVGSVGElement *This = impl_from_ISVGSVGElement(iface);
|
||||
FIXME("(%p)->(%x)\n", This, v);
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI SVGSVGElement_get_useCurrentView(ISVGSVGElement *iface, VARIANT_BOOL *p)
|
||||
{
|
||||
SVGSVGElement *This = impl_from_ISVGSVGElement(iface);
|
||||
FIXME("(%p)->(%p)\n", This, p);
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI SVGSVGElement_putref_currentView(ISVGSVGElement *iface, ISVGViewSpec *v)
|
||||
{
|
||||
SVGSVGElement *This = impl_from_ISVGSVGElement(iface);
|
||||
FIXME("(%p)->(%p)\n", This, v);
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI SVGSVGElement_get_currentView(ISVGSVGElement *iface, ISVGViewSpec **p)
|
||||
{
|
||||
SVGSVGElement *This = impl_from_ISVGSVGElement(iface);
|
||||
FIXME("(%p)->(%p)\n", This, p);
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI SVGSVGElement_put_currentScale(ISVGSVGElement *iface, float v)
|
||||
{
|
||||
SVGSVGElement *This = impl_from_ISVGSVGElement(iface);
|
||||
FIXME("(%p)->(%f)\n", This, v);
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI SVGSVGElement_get_currentScale(ISVGSVGElement *iface, float *p)
|
||||
{
|
||||
SVGSVGElement *This = impl_from_ISVGSVGElement(iface);
|
||||
FIXME("(%p)->(%p)\n", This, p);
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI SVGSVGElement_putref_currentTranslate(ISVGSVGElement *iface, ISVGPoint *v)
|
||||
{
|
||||
SVGSVGElement *This = impl_from_ISVGSVGElement(iface);
|
||||
FIXME("(%p)->(%p)\n", This, v);
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI SVGSVGElement_get_currentTranslate(ISVGSVGElement *iface, ISVGPoint **p)
|
||||
{
|
||||
SVGSVGElement *This = impl_from_ISVGSVGElement(iface);
|
||||
FIXME("(%p)->(%p)\n", This, p);
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI SVGSVGElement_suspendRedraw(ISVGSVGElement *iface, ULONG max_wait, ULONG *p)
|
||||
{
|
||||
SVGSVGElement *This = impl_from_ISVGSVGElement(iface);
|
||||
FIXME("(%p)->(%u %p)\n", This, max_wait, p);
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI SVGSVGElement_unsuspendRedraw(ISVGSVGElement *iface, ULONG id)
|
||||
{
|
||||
SVGSVGElement *This = impl_from_ISVGSVGElement(iface);
|
||||
FIXME("(%p)->(%u)\n", This, id);
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI SVGSVGElement_unsuspendRedrawAll(ISVGSVGElement *iface)
|
||||
{
|
||||
SVGSVGElement *This = impl_from_ISVGSVGElement(iface);
|
||||
FIXME("(%p)\n", This);
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI SVGSVGElement_forceRedraw(ISVGSVGElement *iface)
|
||||
{
|
||||
SVGSVGElement *This = impl_from_ISVGSVGElement(iface);
|
||||
FIXME("(%p)\n", This);
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI SVGSVGElement_pauseAnimations(ISVGSVGElement *iface)
|
||||
{
|
||||
SVGSVGElement *This = impl_from_ISVGSVGElement(iface);
|
||||
FIXME("(%p)\n", This);
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI SVGSVGElement_unpauseAnimations(ISVGSVGElement *iface)
|
||||
{
|
||||
SVGSVGElement *This = impl_from_ISVGSVGElement(iface);
|
||||
FIXME("(%p)\n", This);
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI SVGSVGElement_animationsPaused(ISVGSVGElement *iface, VARIANT_BOOL *p)
|
||||
{
|
||||
SVGSVGElement *This = impl_from_ISVGSVGElement(iface);
|
||||
FIXME("(%p)->(%p)\n", This, p);
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI SVGSVGElement_getCurrentTime(ISVGSVGElement *iface, float *p)
|
||||
{
|
||||
SVGSVGElement *This = impl_from_ISVGSVGElement(iface);
|
||||
FIXME("(%p)->(%p)\n", This, p);
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI SVGSVGElement_setCurrentTime(ISVGSVGElement *iface, float v)
|
||||
{
|
||||
SVGSVGElement *This = impl_from_ISVGSVGElement(iface);
|
||||
FIXME("(%p)->(%f)\n", This, v);
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI SVGSVGElement_getIntersectionList(ISVGSVGElement *iface, ISVGRect *rect,
|
||||
ISVGElement *reference_element, VARIANT *p)
|
||||
{
|
||||
SVGSVGElement *This = impl_from_ISVGSVGElement(iface);
|
||||
FIXME("(%p)->(%p %p %p)\n", This, rect, reference_element, p);
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI SVGSVGElement_getEnclosureList(ISVGSVGElement *iface, ISVGRect *rect,
|
||||
ISVGElement *reference_element, VARIANT *p)
|
||||
{
|
||||
SVGSVGElement *This = impl_from_ISVGSVGElement(iface);
|
||||
FIXME("(%p)->()\n", This);
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI SVGSVGElement_checkIntersection(ISVGSVGElement *iface, ISVGElement *element,
|
||||
ISVGRect *rect, VARIANT_BOOL *p)
|
||||
{
|
||||
SVGSVGElement *This = impl_from_ISVGSVGElement(iface);
|
||||
FIXME("(%p)->(%p %p %p)\n", This, element, rect, p);
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI SVGSVGElement_checkEnclosure(ISVGSVGElement *iface, ISVGElement *element,
|
||||
ISVGRect *rect, VARIANT_BOOL *p)
|
||||
{
|
||||
SVGSVGElement *This = impl_from_ISVGSVGElement(iface);
|
||||
FIXME("(%p)->(%p %p %p)\n", This, element, rect, p);
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI SVGSVGElement_deselectAll(ISVGSVGElement *iface)
|
||||
{
|
||||
SVGSVGElement *This = impl_from_ISVGSVGElement(iface);
|
||||
FIXME("(%p)\n", This);
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI SVGSVGElement_createSVGNumber(ISVGSVGElement *iface, ISVGNumber **p)
|
||||
{
|
||||
SVGSVGElement *This = impl_from_ISVGSVGElement(iface);
|
||||
FIXME("(%p)->(%p)\n", This, p);
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI SVGSVGElement_createSVGLength(ISVGSVGElement *iface, ISVGLength **p)
|
||||
{
|
||||
SVGSVGElement *This = impl_from_ISVGSVGElement(iface);
|
||||
FIXME("(%p)->(%p)\n", This, p);
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI SVGSVGElement_createSVGAngle(ISVGSVGElement *iface, ISVGAngle **p)
|
||||
{
|
||||
SVGSVGElement *This = impl_from_ISVGSVGElement(iface);
|
||||
FIXME("(%p)->(%p)\n", This, p);
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI SVGSVGElement_createSVGPoint(ISVGSVGElement *iface, ISVGPoint **p)
|
||||
{
|
||||
SVGSVGElement *This = impl_from_ISVGSVGElement(iface);
|
||||
FIXME("(%p)->(%p)\n", This, p);
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI SVGSVGElement_createSVGMatrix(ISVGSVGElement *iface, ISVGMatrix **p)
|
||||
{
|
||||
SVGSVGElement *This = impl_from_ISVGSVGElement(iface);
|
||||
FIXME("(%p)->(%p)\n", This, p);
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI SVGSVGElement_createSVGRect(ISVGSVGElement *iface, ISVGRect **p)
|
||||
{
|
||||
SVGSVGElement *This = impl_from_ISVGSVGElement(iface);
|
||||
FIXME("(%p)->(%p)\n", This, p);
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI SVGSVGElement_createSVGTransform(ISVGSVGElement *iface, ISVGTransform **p)
|
||||
{
|
||||
SVGSVGElement *This = impl_from_ISVGSVGElement(iface);
|
||||
FIXME("(%p)->(%p)\n", This, p);
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI SVGSVGElement_createSVGTransformFromMatrix(ISVGSVGElement *iface,
|
||||
ISVGMatrix *matrix, ISVGTransform **p)
|
||||
{
|
||||
SVGSVGElement *This = impl_from_ISVGSVGElement(iface);
|
||||
FIXME("(%p)->(%p %p)\n", This, matrix, p);
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI SVGSVGElement_getElementById(ISVGSVGElement *iface, BSTR id, IHTMLElement **p)
|
||||
{
|
||||
SVGSVGElement *This = impl_from_ISVGSVGElement(iface);
|
||||
FIXME("(%p)->(%s %p)\n", This, debugstr_w(id), p);
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static const ISVGSVGElementVtbl SVGSVGElementVtbl = {
|
||||
SVGSVGElement_QueryInterface,
|
||||
SVGSVGElement_AddRef,
|
||||
SVGSVGElement_Release,
|
||||
SVGSVGElement_GetTypeInfoCount,
|
||||
SVGSVGElement_GetTypeInfo,
|
||||
SVGSVGElement_GetIDsOfNames,
|
||||
SVGSVGElement_Invoke,
|
||||
SVGSVGElement_putref_x,
|
||||
SVGSVGElement_get_x,
|
||||
SVGSVGElement_putref_y,
|
||||
SVGSVGElement_get_y,
|
||||
SVGSVGElement_putref_width,
|
||||
SVGSVGElement_get_width,
|
||||
SVGSVGElement_putref_height,
|
||||
SVGSVGElement_get_height,
|
||||
SVGSVGElement_put_contentScriptType,
|
||||
SVGSVGElement_get_contentScriptType,
|
||||
SVGSVGElement_put_contentStyleType,
|
||||
SVGSVGElement_get_contentStyleType,
|
||||
SVGSVGElement_putref_viewport,
|
||||
SVGSVGElement_get_viewport,
|
||||
SVGSVGElement_put_pixelUnitToMillimeterX,
|
||||
SVGSVGElement_get_pixelUnitToMillimeterX,
|
||||
SVGSVGElement_put_pixelUnitToMillimeterY,
|
||||
SVGSVGElement_get_pixelUnitToMillimeterY,
|
||||
SVGSVGElement_put_screenPixelToMillimeterX,
|
||||
SVGSVGElement_get_screenPixelToMillimeterX,
|
||||
SVGSVGElement_put_screenPixelToMillimeterY,
|
||||
SVGSVGElement_get_screenPixelToMillimeterY,
|
||||
SVGSVGElement_put_useCurrentView,
|
||||
SVGSVGElement_get_useCurrentView,
|
||||
SVGSVGElement_putref_currentView,
|
||||
SVGSVGElement_get_currentView,
|
||||
SVGSVGElement_put_currentScale,
|
||||
SVGSVGElement_get_currentScale,
|
||||
SVGSVGElement_putref_currentTranslate,
|
||||
SVGSVGElement_get_currentTranslate,
|
||||
SVGSVGElement_suspendRedraw,
|
||||
SVGSVGElement_unsuspendRedraw,
|
||||
SVGSVGElement_unsuspendRedrawAll,
|
||||
SVGSVGElement_forceRedraw,
|
||||
SVGSVGElement_pauseAnimations,
|
||||
SVGSVGElement_unpauseAnimations,
|
||||
SVGSVGElement_animationsPaused,
|
||||
SVGSVGElement_getCurrentTime,
|
||||
SVGSVGElement_setCurrentTime,
|
||||
SVGSVGElement_getIntersectionList,
|
||||
SVGSVGElement_getEnclosureList,
|
||||
SVGSVGElement_checkIntersection,
|
||||
SVGSVGElement_checkEnclosure,
|
||||
SVGSVGElement_deselectAll,
|
||||
SVGSVGElement_createSVGNumber,
|
||||
SVGSVGElement_createSVGLength,
|
||||
SVGSVGElement_createSVGAngle,
|
||||
SVGSVGElement_createSVGPoint,
|
||||
SVGSVGElement_createSVGMatrix,
|
||||
SVGSVGElement_createSVGRect,
|
||||
SVGSVGElement_createSVGTransform,
|
||||
SVGSVGElement_createSVGTransformFromMatrix,
|
||||
SVGSVGElement_getElementById
|
||||
};
|
||||
|
||||
static inline SVGSVGElement *SVGSVGElement_from_HTMLDOMNode(HTMLDOMNode *iface)
|
||||
{
|
||||
return CONTAINING_RECORD(iface, SVGSVGElement, svg_element.element.node);
|
||||
}
|
||||
|
||||
static HRESULT SVGSVGElement_QI(HTMLDOMNode *iface, REFIID riid, void **ppv)
|
||||
{
|
||||
SVGSVGElement *This = SVGSVGElement_from_HTMLDOMNode(iface);
|
||||
|
||||
TRACE("(%p)->(%s %p)\n", This, debugstr_mshtml_guid(riid), ppv);
|
||||
|
||||
if(IsEqualGUID(&IID_ISVGSVGElement, riid))
|
||||
*ppv = &This->ISVGSVGElement_iface;
|
||||
else
|
||||
return SVGElement_QI(&This->svg_element.element.node, riid, ppv);
|
||||
|
||||
IUnknown_AddRef((IUnknown*)*ppv);
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
static const NodeImplVtbl SVGSVGElementImplVtbl = {
|
||||
&CLSID_SVGSVGElement,
|
||||
SVGSVGElement_QI,
|
||||
HTMLElement_destructor,
|
||||
HTMLElement_cpc,
|
||||
HTMLElement_clone,
|
||||
NULL,
|
||||
HTMLElement_get_attr_col,
|
||||
};
|
||||
|
||||
static HRESULT create_viewport_element(HTMLDocumentNode *doc, nsIDOMSVGElement *nselem, HTMLElement **elem)
|
||||
{
|
||||
SVGSVGElement *ret;
|
||||
|
||||
ret = heap_alloc_zero(sizeof(SVGSVGElement));
|
||||
if(!ret)
|
||||
return E_OUTOFMEMORY;
|
||||
|
||||
ret->ISVGSVGElement_iface.lpVtbl = &SVGSVGElementVtbl;
|
||||
ret->svg_element.element.node.vtbl = &SVGSVGElementImplVtbl;
|
||||
|
||||
init_svg_element(&ret->svg_element, doc, nselem);
|
||||
|
||||
*elem = &ret->svg_element.element;
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
|
||||
static const WCHAR svgW[] = {'s','v','g',0};
|
||||
|
||||
HRESULT create_svg_element(HTMLDocumentNode *doc, nsIDOMSVGElement *dom_element, const WCHAR *tag_name, HTMLElement **elem)
|
||||
{
|
||||
SVGElement *svg_element;
|
||||
|
||||
TRACE("%s\n", debugstr_w(tag_name));
|
||||
|
||||
if(!strcmpW(tag_name, svgW))
|
||||
return create_viewport_element(doc, dom_element, elem);
|
||||
|
||||
svg_element = heap_alloc_zero(sizeof(*svg_element));
|
||||
if(!svg_element)
|
||||
return E_OUTOFMEMORY;
|
||||
|
|
|
@ -445,6 +445,7 @@ static const IID * const generic_iids[] = {
|
|||
static const IID * const svg_iids[] = {
|
||||
ELEM_IFACES,
|
||||
&IID_ISVGElement,
|
||||
&IID_ISVGSVGElement,
|
||||
NULL
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in New Issue