Nikolay Sivov <nsivov(a)codeweavers.com> writes:
@@ -381,9 +386,40 @@ static HRESULT WINAPI xslprocessor_Invoke( static HRESULT WINAPI xslprocessor_put_input( IXSLProcessor *iface, VARIANT input ) { xslprocessor *This = impl_from_IXSLProcessor( iface ); + IXMLDOMNode *input_node; + HRESULT hr;
- FIXME("(%p): stub\n", This); - return E_NOTIMPL; + TRACE("(%p)->(%s)\n", This, debugstr_variant(&input)); + + /* try IXMLDOMNode directly first */ + if (V_VT(&input) == VT_UNKNOWN) + hr = IUnknown_QueryInterface(V_UNKNOWN(&input), &IID_IXMLDOMNode, (void**)&input_node); + else if (V_VT(&input) == VT_DISPATCH) + hr = IDispatch_QueryInterface(V_DISPATCH(&input), &IID_IXMLDOMNode, (void**)&input_node); + + if (hr != S_OK)
You need to handle the default case somehow. -- Alexandre Julliard julliard(a)winehq.org