static HRESULT WINAPI xmlnodelist_QueryInterface( IXMLDOMNodeList *iface, REFIID riid, void** ppvObject ) { TRACE("(%p)->(%s %p)\n", iface, debugstr_guid(riid), ppvObject); if(!ppvObject) return E_INVALIDARG; if ( IsEqualGUID( riid, &IID_IUnknown ) || IsEqualGUID( riid, &IID_IDispatch ) || IsEqualGUID( riid, &IID_IXMLDOMNodeList ) ) { *ppvObject = iface; } else { FIXME("interface %s not implemented\n", debugstr_guid(riid)); *ppvObject = NULL; return E_NOINTERFACE; } IXMLDOMNodeList_AddRef( iface ); return S_OK; }
static HRESULT WINAPI queryresult_QueryInterface( IXMLDOMNodeList *iface, REFIID riid, void** ppvObject ) { queryresult *This = impl_from_IXMLDOMNodeList( iface ); TRACE("(%p)->(%s %p)\n", iface, debugstr_guid(riid), ppvObject); if(!ppvObject) return E_INVALIDARG; if ( IsEqualGUID( riid, &IID_IUnknown ) || IsEqualGUID( riid, &IID_IXMLDOMNodeList ) ) { *ppvObject = iface; } else if(dispex_query_interface(&This->dispex, riid, ppvObject)) { return *ppvObject ? S_OK : E_NOINTERFACE; } else { FIXME("interface %s not implemented\n", debugstr_guid(riid)); *ppvObject = NULL; return E_NOINTERFACE; } IXMLDOMNodeList_AddRef( iface ); return S_OK; }
static HRESULT WINAPI xmlnodelist_QueryInterface( IXMLDOMNodeList *iface, REFIID riid, void** ppvObject ) { xmlnodelist *This = impl_from_IXMLDOMNodeList( iface ); TRACE("(%p)->(%s %p)\n", This, debugstr_guid(riid), ppvObject); #ifdef __REACTOS__ if (!ppvObject) { /* NOTE: Interface documentation for IUnknown explicitly states * this case should return E_POINTER. Empirical data proves * MS violates this contract and instead return E_INVALIDARG. */ return E_INVALIDARG; } #endif if ( IsEqualGUID( riid, &IID_IUnknown ) || IsEqualGUID( riid, &IID_IDispatch ) || IsEqualGUID( riid, &IID_IXMLDOMNodeList ) ) { *ppvObject = iface; } else if (IsEqualGUID( riid, &IID_IEnumVARIANT )) { if (!This->enumvariant) { HRESULT hr = create_enumvariant((IUnknown*)iface, FALSE, &nodelist_enumvariant, &This->enumvariant); if (FAILED(hr)) return hr; } return IEnumVARIANT_QueryInterface(This->enumvariant, &IID_IEnumVARIANT, ppvObject); } else if (dispex_query_interface(&This->dispex, riid, ppvObject)) { return *ppvObject ? S_OK : E_NOINTERFACE; } else { TRACE("interface %s not implemented\n", debugstr_guid(riid)); *ppvObject = NULL; return E_NOINTERFACE; } IXMLDOMNodeList_AddRef( iface ); return S_OK; }
static HRESULT WINAPI xmlnodelist_QueryInterface( IXMLDOMNodeList *iface, REFIID riid, void** ppvObject ) { xmlnodelist *This = impl_from_IXMLDOMNodeList( iface ); TRACE("(%p)->(%s %p)\n", This, debugstr_guid(riid), ppvObject); if ( IsEqualGUID( riid, &IID_IUnknown ) || IsEqualGUID( riid, &IID_IDispatch ) || IsEqualGUID( riid, &IID_IXMLDOMNodeList ) ) { *ppvObject = iface; } else if (IsEqualGUID( riid, &IID_IEnumVARIANT )) { if (!This->enumvariant) { HRESULT hr = create_enumvariant((IUnknown*)iface, FALSE, &nodelist_enumvariant, &This->enumvariant); if (FAILED(hr)) return hr; } return IEnumVARIANT_QueryInterface(This->enumvariant, &IID_IEnumVARIANT, ppvObject); } else if (dispex_query_interface(&This->dispex, riid, ppvObject)) { return *ppvObject ? S_OK : E_NOINTERFACE; } else { TRACE("interface %s not implemented\n", debugstr_guid(riid)); *ppvObject = NULL; return E_NOINTERFACE; } IXMLDOMNodeList_AddRef( iface ); return S_OK; }