Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-cw
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-cw
Commits
07ee5cb3
Commit
07ee5cb3
authored
Apr 18, 2019
by
Jacek Caban
Committed by
Alexandre Julliard
Apr 18, 2019
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
mshtml: Add ISVGSVGElement stub implementation.
Signed-off-by:
Jacek Caban
<
jacek@codeweavers.com
>
Signed-off-by:
Alexandre Julliard
<
julliard@winehq.org
>
parent
55ea9b37
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
562 additions
and
1 deletion
+562
-1
mshtml_private.h
dlls/mshtml/mshtml_private.h
+3
-1
svg.c
dlls/mshtml/svg.c
+558
-0
dom.c
dlls/mshtml/tests/dom.c
+1
-0
No files found.
dlls/mshtml/mshtml_private.h
View file @
07ee5cb3
...
...
@@ -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,
...
...
dlls/mshtml/svg.c
View file @
07ee5cb3
...
...
@@ -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
;
...
...
dlls/mshtml/tests/dom.c
View file @
07ee5cb3
...
...
@@ -445,6 +445,7 @@ static const IID * const generic_iids[] = {
static
const
IID
*
const
svg_iids
[]
=
{
ELEM_IFACES
,
&
IID_ISVGElement
,
&
IID_ISVGSVGElement
,
NULL
};
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment