104 if (
This->node) IXMLDOMNode_Release(
This->node);
134 IUnknown_AddRef((
IUnknown*)*ppvObject);
142 TRACE(
"%p, refcount %lu.\n", iface,
ref);
151 TRACE(
"%p, refcount %lu.\n", iface,
ref);
154 if (
This->node) IXMLDOMNode_Release(
This->node );
164 return IDispatchEx_GetTypeInfoCount(&
This->dispex.IDispatchEx_iface, pctinfo);
173 return IDispatchEx_GetTypeInfo(&
This->dispex.IDispatchEx_iface,
174 iTInfo,
lcid, ppTInfo);
183 return IDispatchEx_GetIDsOfNames(&
This->dispex.IDispatchEx_iface,
184 riid, rgszNames, cNames,
lcid, rgDispId);
191 EXCEPINFO* pExcepInfo,
UINT* puArgErr )
194 return IDispatchEx_Invoke(&
This->dispex.IDispatchEx_iface,
195 dispIdMember,
riid,
lcid,
wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr);
268 TRACE(
"(%p)\n", ppObj);
279 *ppObj = &
This->IXSLTemplate_iface;
281 TRACE(
"returning iface %p\n", *ppObj);
312 IUnknown_AddRef((
IUnknown*)*ppvObject);
320 TRACE(
"%p, refcount %lu.\n", iface,
ref);
329 TRACE(
"%p, refcount %lu.\n", iface,
ref);
334 if (
This->input) IXMLDOMNode_Release(
This->input);
335 if (
This->output.unk)
336 IUnknown_Release(
This->output.unk);
342 IXSLTemplate_Release(&
This->stylesheet->IXSLTemplate_iface);
352 return IDispatchEx_GetTypeInfoCount(&
This->dispex.IDispatchEx_iface, pctinfo);
361 return IDispatchEx_GetTypeInfo(&
This->dispex.IDispatchEx_iface,
362 iTInfo,
lcid, ppTInfo);
371 return IDispatchEx_GetIDsOfNames(&
This->dispex.IDispatchEx_iface,
372 riid, rgszNames, cNames,
lcid, rgDispId);
379 EXCEPINFO* pExcepInfo,
UINT* puArgErr )
382 return IDispatchEx_Invoke(&
This->dispex.IDispatchEx_iface,
383 dispIdMember,
riid,
lcid,
wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr);
396 hr = IUnknown_QueryInterface(
V_UNKNOWN(&
input), &IID_IXMLDOMNode, (
void**)&input_node);
398 hr = IDispatch_QueryInterface(
V_DISPATCH(&
input), &IID_IXMLDOMNode, (
void**)&input_node);
408 hr = IXMLDOMDocument_load(doc,
input, &
b);
410 hr = IXMLDOMDocument_QueryInterface(doc, &IID_IXMLDOMNode, (
void**)&input_node);
411 IXMLDOMDocument_Release(doc);
417 if (
This->input) IXMLDOMNode_Release(
This->input);
418 This->input = input_node;
438 FIXME(
"(%p)->(%p): stub\n",
This,
template);
494 hr = IUnknown_QueryInterface(
V_UNKNOWN(&
var), &IID_IStream, (
void **)&output);
496 hr = IUnknown_QueryInterface(
V_UNKNOWN(&
var), &IID_ISequentialStream, (
void **)&output);
500 hr = IUnknown_QueryInterface(
V_UNKNOWN(&
var), &IID_IResponse, (
void **)&output);
512 WARN(
"failed to get output interface, hr %#lx.\n",
hr);
522 if (
This->output.unk)
523 IUnknown_Release(
This->output.unk);
524 This->output.unk = output;
541 if (
This->output.unk)
545 IUnknown_AddRef(
This->output.unk);
547 else if (
This->outstr)
574 ISequentialStream_AddRef(
stream);
591 switch (
This->output_type)
600 hr = IPersistStream_Load(
This->output.persiststream,
src);
632 IResponse_BinaryWrite(
This->output.response,
bin);
644 ISequentialStream_Release(
stream);
646 *
ret =
hr ==
S_OK ? VARIANT_TRUE : VARIANT_FALSE;
702 FIXME(
"namespace uri is not supported\n");
739 This->params.count++;
811 TRACE(
"(%p)\n", ppObj);
824 This->params.count = 0;
825 This->stylesheet =
template;
826 IXSLTemplate_AddRef(&
template->IXSLTemplate_iface);
829 *ppObj = &
This->IXSLProcessor_iface;
831 TRACE(
"returning iface %p\n", *ppObj);
#define InterlockedIncrement
#define InterlockedDecrement
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
static void list_remove(struct list_entry *entry)
static void list_add_tail(struct list_entry *head, struct list_entry *entry)
static void list_init(struct list_entry *head)
_ACRTIMP int __cdecl wcscmp(const wchar_t *, const wchar_t *)
HRESULT dom_document_create(MSXML_VERSION version, void **ppObj)
HRESULT WINAPI GetHGlobalFromStream(IStream *pstm, HGLOBAL *phglobal)
HRESULT WINAPI CreateStreamOnHGlobal(HGLOBAL hGlobal, BOOL fDeleteOnRelease, LPSTREAM *ppstm)
HRESULT WINAPI SafeArrayAccessData(SAFEARRAY *psa, void **ppvData)
HRESULT WINAPI SafeArrayUnaccessData(SAFEARRAY *psa)
SAFEARRAY *WINAPI SafeArrayCreate(VARTYPE vt, UINT cDims, SAFEARRAYBOUND *rgsabound)
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLboolean GLboolean GLboolean b
GLenum const GLfloat * params
GLenum GLenum GLenum input
BOOL NTAPI GlobalUnlock(HGLOBAL hMem)
SIZE_T NTAPI GlobalSize(HGLOBAL hMem)
static HTMLDOMNode * get_node_obj(IHTMLDOMNode *)
static ERESOURCE GlobalLock
HRESULT init_dispex(jsdisp_t *dispex, script_ctx_t *ctx, const builtin_info_t *builtin_info, jsdisp_t *prototype)
#define memcpy(s1, s2, n)
static const char * debugstr_variant(const VARIANT *var)
static struct _PeImage bin
static VARIANTARG static DISPID
BOOL dispex_query_interface(DispatchEx *This, REFIID riid, void **ppv)
HRESULT node_transform_node_params(const xmlnode *, IXMLDOMNode *, BSTR *, ISequentialStream *, const struct xslprocessor_params *)
BSTR WINAPI SysAllocString(LPCOLESTR str)
void WINAPI DECLSPEC_HOTPATCH SysFreeString(BSTR str)
const GUID IID_IPersistStreamInit
const GUID IID_IPersistStream
#define IsEqualGUID(rguid1, rguid2)
#define LIST_FOR_EACH_ENTRY(elem, list, type, field)
#define LIST_FOR_EACH_ENTRY_SAFE(cursor, cursor2, list, type, field)
ISequentialStream * stream
IPersistStream * persiststream
enum output_type output_type
IXSLProcessor IXSLProcessor_iface
IXSLTemplate IXSLTemplate_iface
static const tid_t xslprocessor_iface_tids[]
static HRESULT xslprocessor_set_parvalue(const VARIANT *var, struct xslprocessor_par *par)
static ULONG WINAPI xslprocessor_Release(IXSLProcessor *iface)
static HRESULT WINAPI xslprocessor_setStartMode(IXSLProcessor *iface, BSTR p, BSTR uri)
static HRESULT XSLProcessor_create(xsltemplate *, IXSLProcessor **)
static dispex_static_data_t xslprocessor_dispex
static HRESULT WINAPI xslprocessor_QueryInterface(IXSLProcessor *iface, REFIID riid, void **ppvObject)
static HRESULT WINAPI xslprocessor_get_readyState(IXSLProcessor *iface, LONG *state)
static HRESULT WINAPI xslprocessor_put_input(IXSLProcessor *iface, VARIANT input)
static ULONG WINAPI xslprocessor_AddRef(IXSLProcessor *iface)
static HRESULT WINAPI xslprocessor_transform(IXSLProcessor *iface, VARIANT_BOOL *ret)
static void xsltemplate_set_node(xsltemplate *This, IXMLDOMNode *node)
static HRESULT WINAPI xslprocessor_reset(IXSLProcessor *iface)
static HRESULT WINAPI xsltemplate_Invoke(IXSLTemplate *iface, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
static HRESULT WINAPI xslprocessor_put_output(IXSLProcessor *iface, VARIANT var)
static HRESULT WINAPI xsltemplate_QueryInterface(IXSLTemplate *iface, REFIID riid, void **ppvObject)
@ PROCESSOR_OUTPUT_NOT_SET
@ PROCESSOR_OUTPUT_RESPONSE
@ PROCESSOR_OUTPUT_PERSISTSTREAM
@ PROCESSOR_OUTPUT_STREAM
static HRESULT WINAPI xslprocessor_addObject(IXSLProcessor *iface, IDispatch *obj, BSTR uri)
static void xslprocessor_par_free(struct xslprocessor_params *params, struct xslprocessor_par *par)
static HRESULT WINAPI xslprocessor_get_stylesheet(IXSLProcessor *iface, IXMLDOMNode **node)
static HRESULT WINAPI xsltemplate_GetIDsOfNames(IXSLTemplate *iface, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
static HRESULT WINAPI xslprocessor_get_startModeURI(IXSLProcessor *iface, BSTR *uri)
static HRESULT WINAPI xslprocessor_GetIDsOfNames(IXSLProcessor *iface, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
static HRESULT WINAPI xsltemplate_createProcessor(IXSLTemplate *iface, IXSLProcessor **processor)
static HRESULT WINAPI xslprocessor_get_input(IXSLProcessor *iface, VARIANT *input)
static xsltemplate * impl_from_IXSLTemplate(IXSLTemplate *iface)
static const struct IXSLProcessorVtbl XSLProcessorVtbl
static HRESULT WINAPI xsltemplate_GetTypeInfoCount(IXSLTemplate *iface, UINT *pctinfo)
HRESULT XSLTemplate_create(void **ppObj)
static dispex_static_data_t xsltemplate_dispex
static HRESULT WINAPI xslprocessor_GetTypeInfoCount(IXSLProcessor *iface, UINT *pctinfo)
static HRESULT WINAPI xslprocessor_GetTypeInfo(IXSLProcessor *iface, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo)
static xslprocessor * impl_from_IXSLProcessor(IXSLProcessor *iface)
static HRESULT WINAPI xsltemplate_GetTypeInfo(IXSLTemplate *iface, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo)
static HRESULT WINAPI xslprocessor_get_ownerTemplate(IXSLProcessor *iface, IXSLTemplate **template)
static HRESULT WINAPI xslprocessor_addParameter(IXSLProcessor *iface, BSTR p, VARIANT var, BSTR uri)
static HRESULT WINAPI xsltemplate_putref_stylesheet(IXSLTemplate *iface, IXMLDOMNode *node)
static const struct IXSLTemplateVtbl XSLTemplateVtbl
static ULONG WINAPI xsltemplate_AddRef(IXSLTemplate *iface)
static HRESULT WINAPI xslprocessor_Invoke(IXSLProcessor *iface, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
static HRESULT WINAPI xsltemplate_get_stylesheet(IXSLTemplate *iface, IXMLDOMNode **node)
static const tid_t xsltemplate_iface_tids[]
static HRESULT WINAPI xslprocessor_get_output(IXSLProcessor *iface, VARIANT *output)
static HRESULT WINAPI xslprocessor_get_startMode(IXSLProcessor *iface, BSTR *p)
static ULONG WINAPI xsltemplate_Release(IXSLTemplate *iface)
#define CONTAINING_RECORD(address, type, field)
HRESULT WINAPI DECLSPEC_HOTPATCH VariantClear(VARIANTARG *pVarg)
WINBASEAPI _In_ DWORD _Out_ _In_ WORD wFlags