msxml3: Added ISupportErrorInfo support for schema cache.

This commit is contained in:
Nikolay Sivov 2013-09-09 19:14:20 +04:00 committed by Alexandre Julliard
parent 20ce6bd102
commit 26d42b9d5c
2 changed files with 25 additions and 0 deletions

View File

@ -116,6 +116,12 @@ typedef struct
LONG ref;
} cache_entry;
static const tid_t schema_cache_se_tids[] = {
IXMLDOMSchemaCollection_tid,
IXMLDOMSchemaCollection2_tid,
NULL_tid
};
/* datatypes lookup stuff
* generated with help from gperf */
#define DT_MIN_STR_LEN 2
@ -1105,6 +1111,10 @@ static HRESULT WINAPI schema_cache_QueryInterface(IXMLDOMSchemaCollection2* ifac
{
return *ppvObject ? S_OK : E_NOINTERFACE;
}
else if(IsEqualGUID( riid, &IID_ISupportErrorInfo ))
{
return node_create_supporterrorinfo(schema_cache_se_tids, ppvObject);
}
else
{
FIXME("interface %s not implemented\n", debugstr_guid(riid));

View File

@ -10712,6 +10712,7 @@ static void test_supporterrorinfo(void)
&IID_IXMLDOMDocument2, &IID_IXMLDOMDocument3 };
const supporterror_t *ptr = supporterror_test;
ISupportErrorInfo *errorinfo, *info2;
IXMLDOMSchemaCollection *schemacache;
IXMLDOMNamedNodeMap *map, *map2;
IXMLDOMDocument *doc;
IXMLDOMElement *elem;
@ -10838,6 +10839,20 @@ static void test_supporterrorinfo(void)
IXMLDOMElement_Release(elem);
IXMLDOMDocument_Release(doc);
/* IXMLDOMSchemaCollection */
hr = CoCreateInstance(&CLSID_XMLSchemaCache, NULL, CLSCTX_INPROC_SERVER, &IID_IXMLDOMSchemaCollection, (void**)&schemacache);
ok(hr == S_OK, "failed to create schema collection, 0x%08x\n", hr);
hr = IXMLDOMSchemaCollection_QueryInterface(schemacache, &IID_ISupportErrorInfo, (void**)&errorinfo);
ok(hr == S_OK, "got 0x%08x\n", hr);
hr = ISupportErrorInfo_InterfaceSupportsErrorInfo(errorinfo, &IID_IXMLDOMSchemaCollection);
ok(hr == S_OK, "got 0x%08x\n", hr);
ISupportErrorInfo_Release(errorinfo);
IXMLDOMSchemaCollection_Release(schemacache);
free_bstrs();
}