static HRESULT WINAPI schema_cache_get(IXMLDOMSchemaCollection2* iface, BSTR uri, IXMLDOMNode** node) { schema_cache* This = impl_from_IXMLDOMSchemaCollection2(iface); cache_entry* entry; xmlChar* name; TRACE("(%p)->(%s %p)\n", This, debugstr_w(uri), node); if (This->version == MSXML6) { if (node) *node = NULL; return E_NOTIMPL; } if (!node) return E_POINTER; *node = NULL; name = uri ? xmlchar_from_wchar(uri) : xmlchar_from_wchar(emptyW); entry = (cache_entry*) xmlHashLookup(This->cache, name); heap_free(name); /* TODO: this should be read-only */ if (entry && entry->doc) return get_domdoc_from_xmldoc(entry->doc, (IXMLDOMDocument3**)node); return S_OK; }
HRESULT node_get_owner_doc(const xmlnode *This, IXMLDOMDocument **doc) { return get_domdoc_from_xmldoc(This->node->doc, (IXMLDOMDocument3**)doc); }