Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
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-winehq
Commits
e18d99da
Commit
e18d99da
authored
Dec 07, 2011
by
Nikolay Sivov
Committed by
Alexandre Julliard
Dec 08, 2011
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
msxml3: Added IDispatchEx for IXSLProcessor.
parent
f88ea3d2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
53 additions
and
43 deletions
+53
-43
stylesheet.c
dlls/msxml3/stylesheet.c
+28
-43
domdoc.c
dlls/msxml3/tests/domdoc.c
+25
-0
No files found.
dlls/msxml3/stylesheet.c
View file @
e18d99da
...
...
@@ -53,6 +53,7 @@ typedef struct _xsltemplate
typedef
struct
_xslprocessor
{
DispatchEx
dispex
;
IXSLProcessor
IXSLProcessor_iface
;
LONG
ref
;
...
...
@@ -276,6 +277,10 @@ static HRESULT WINAPI xslprocessor_QueryInterface(
{
*
ppvObject
=
iface
;
}
else
if
(
dispex_query_interface
(
&
This
->
dispex
,
riid
,
ppvObject
))
{
return
*
ppvObject
?
S_OK
:
E_NOINTERFACE
;
}
else
{
FIXME
(
"Unsupported interface %s
\n
"
,
debugstr_guid
(
riid
));
...
...
@@ -305,6 +310,7 @@ static ULONG WINAPI xslprocessor_Release( IXSLProcessor *iface )
if
(
This
->
output
)
IStream_Release
(
This
->
output
);
SysFreeString
(
This
->
outstr
);
IXSLTemplate_Release
(
&
This
->
stylesheet
->
IXSLTemplate_iface
);
release_dispex
(
&
This
->
dispex
);
heap_free
(
This
);
}
...
...
@@ -314,11 +320,7 @@ static ULONG WINAPI xslprocessor_Release( IXSLProcessor *iface )
static
HRESULT
WINAPI
xslprocessor_GetTypeInfoCount
(
IXSLProcessor
*
iface
,
UINT
*
pctinfo
)
{
xslprocessor
*
This
=
impl_from_IXSLProcessor
(
iface
);
TRACE
(
"(%p)->(%p)
\n
"
,
This
,
pctinfo
);
*
pctinfo
=
1
;
return
S_OK
;
return
IDispatchEx_GetTypeInfoCount
(
&
This
->
dispex
.
IDispatchEx_iface
,
pctinfo
);
}
static
HRESULT
WINAPI
xslprocessor_GetTypeInfo
(
...
...
@@ -327,10 +329,8 @@ static HRESULT WINAPI xslprocessor_GetTypeInfo(
ITypeInfo
**
ppTInfo
)
{
xslprocessor
*
This
=
impl_from_IXSLProcessor
(
iface
);
TRACE
(
"(%p)->(%u %u %p)
\n
"
,
This
,
iTInfo
,
lcid
,
ppTInfo
);
return
get_typeinfo
(
IXSLProcessor_tid
,
ppTInfo
);
return
IDispatchEx_GetTypeInfo
(
&
This
->
dispex
.
IDispatchEx_iface
,
iTInfo
,
lcid
,
ppTInfo
);
}
static
HRESULT
WINAPI
xslprocessor_GetIDsOfNames
(
...
...
@@ -339,23 +339,8 @@ static HRESULT WINAPI xslprocessor_GetIDsOfNames(
UINT
cNames
,
LCID
lcid
,
DISPID
*
rgDispId
)
{
xslprocessor
*
This
=
impl_from_IXSLProcessor
(
iface
);
ITypeInfo
*
typeinfo
;
HRESULT
hr
;
TRACE
(
"(%p)->(%s %p %u %u %p)
\n
"
,
This
,
debugstr_guid
(
riid
),
rgszNames
,
cNames
,
lcid
,
rgDispId
);
if
(
!
rgszNames
||
cNames
==
0
||
!
rgDispId
)
return
E_INVALIDARG
;
hr
=
get_typeinfo
(
IXSLProcessor_tid
,
&
typeinfo
);
if
(
SUCCEEDED
(
hr
))
{
hr
=
ITypeInfo_GetIDsOfNames
(
typeinfo
,
rgszNames
,
cNames
,
rgDispId
);
ITypeInfo_Release
(
typeinfo
);
}
return
hr
;
return
IDispatchEx_GetIDsOfNames
(
&
This
->
dispex
.
IDispatchEx_iface
,
riid
,
rgszNames
,
cNames
,
lcid
,
rgDispId
);
}
static
HRESULT
WINAPI
xslprocessor_Invoke
(
...
...
@@ -365,21 +350,8 @@ static HRESULT WINAPI xslprocessor_Invoke(
EXCEPINFO
*
pExcepInfo
,
UINT
*
puArgErr
)
{
xslprocessor
*
This
=
impl_from_IXSLProcessor
(
iface
);
ITypeInfo
*
typeinfo
;
HRESULT
hr
;
TRACE
(
"(%p)->(%d %s %d %d %p %p %p %p)
\n
"
,
This
,
dispIdMember
,
debugstr_guid
(
riid
),
lcid
,
wFlags
,
pDispParams
,
pVarResult
,
pExcepInfo
,
puArgErr
);
hr
=
get_typeinfo
(
IXSLProcessor_tid
,
&
typeinfo
);
if
(
SUCCEEDED
(
hr
))
{
hr
=
ITypeInfo_Invoke
(
typeinfo
,
&
This
->
IXSLProcessor_iface
,
dispIdMember
,
wFlags
,
pDispParams
,
pVarResult
,
pExcepInfo
,
puArgErr
);
ITypeInfo_Release
(
typeinfo
);
}
return
hr
;
return
IDispatchEx_Invoke
(
&
This
->
dispex
.
IDispatchEx_iface
,
dispIdMember
,
riid
,
lcid
,
wFlags
,
pDispParams
,
pVarResult
,
pExcepInfo
,
puArgErr
);
}
static
HRESULT
WINAPI
xslprocessor_put_input
(
IXSLProcessor
*
iface
,
VARIANT
input
)
...
...
@@ -610,7 +582,7 @@ static HRESULT WINAPI xslprocessor_get_stylesheet(
return
E_NOTIMPL
;
}
static
const
struct
IXSLProcessorVtbl
xslprocessor_v
tbl
=
static
const
struct
IXSLProcessorVtbl
XSLProcessorV
tbl
=
{
xslprocessor_QueryInterface
,
xslprocessor_AddRef
,
...
...
@@ -636,6 +608,18 @@ static const struct IXSLProcessorVtbl xslprocessor_vtbl =
xslprocessor_get_stylesheet
};
static
const
tid_t
xslprocessor_iface_tids
[]
=
{
IXSLProcessor_tid
,
0
};
static
dispex_static_data_t
xslprocessor_dispex
=
{
NULL
,
IXSLProcessor_tid
,
NULL
,
xslprocessor_iface_tids
};
HRESULT
XSLProcessor_create
(
xsltemplate
*
template
,
IXSLProcessor
**
ppObj
)
{
xslprocessor
*
This
;
...
...
@@ -646,13 +630,14 @@ HRESULT XSLProcessor_create(xsltemplate *template, IXSLProcessor **ppObj)
if
(
!
This
)
return
E_OUTOFMEMORY
;
This
->
IXSLProcessor_iface
.
lpVtbl
=
&
xslprocessor_v
tbl
;
This
->
IXSLProcessor_iface
.
lpVtbl
=
&
XSLProcessorV
tbl
;
This
->
ref
=
1
;
This
->
input
=
NULL
;
This
->
output
=
NULL
;
This
->
outstr
=
NULL
;
This
->
stylesheet
=
template
;
IXSLTemplate_AddRef
(
&
template
->
IXSLTemplate_iface
);
init_dispex
(
&
This
->
dispex
,
(
IUnknown
*
)
&
This
->
IXSLProcessor_iface
,
&
xslprocessor_dispex
);
*
ppObj
=
&
This
->
IXSLProcessor_iface
;
...
...
dlls/msxml3/tests/domdoc.c
View file @
e18d99da
...
...
@@ -10672,6 +10672,7 @@ static void test_dispex(void)
IXMLDOMNodeList
*
node_list
;
IXMLDOMParseError
*
error
;
IXMLDOMNamedNodeMap
*
map
;
IXSLProcessor
*
processor
;
IXSLTemplate
*
template
;
IXMLDOMDocument
*
doc
;
IXMLHTTPRequest
*
req
;
...
...
@@ -10826,6 +10827,30 @@ static void test_dispex(void)
test_domobj_dispex
(
unk
);
IUnknown_Release
(
unk
);
IDispatchEx_Release
(
dispex
);
/* IXSLProcessor */
hr
=
CoCreateInstance
(
&
CLSID_FreeThreadedDOMDocument
,
NULL
,
CLSCTX_INPROC_SERVER
,
&
IID_IXMLDOMDocument
,
(
void
**
)
&
doc
);
EXPECT_HR
(
hr
,
S_OK
);
b
=
VARIANT_FALSE
;
hr
=
IXMLDOMDocument_loadXML
(
doc
,
_bstr_
(
szTransformSSXML
),
&
b
);
EXPECT_HR
(
hr
,
S_OK
);
ok
(
b
==
VARIANT_TRUE
,
"got %d
\n
"
,
b
);
hr
=
IXSLTemplate_putref_stylesheet
(
template
,
(
IXMLDOMNode
*
)
doc
);
EXPECT_HR
(
hr
,
S_OK
);
IXMLDOMDocument_Release
(
doc
);
hr
=
IXSLTemplate_createProcessor
(
template
,
&
processor
);
EXPECT_HR
(
hr
,
S_OK
);
hr
=
IXSLProcessor_QueryInterface
(
processor
,
&
IID_IDispatchEx
,
(
void
**
)
&
dispex
);
EXPECT_HR
(
hr
,
S_OK
);
hr
=
IDispatchEx_QueryInterface
(
dispex
,
&
IID_IUnknown
,
(
void
**
)
&
unk
);
EXPECT_HR
(
hr
,
S_OK
);
test_domobj_dispex
(
unk
);
IUnknown_Release
(
unk
);
IDispatchEx_Release
(
dispex
);
IXSLProcessor_Release
(
processor
);
IXSLTemplate_Release
(
template
);
free_bstrs
();
...
...
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