我是新手,拷贝了sdk中add()的一个小例子,想看一下效果,可是编译通不过!msxml3也装了,不知道是什么原因,等待中...
#import "msxml3.dll"
using namespace Msxml2;#define CHECK_AND_RELEASE(pInterface)
if(pInterface)
{
pInterface->Release();
pInterface = NULL;
}#define RELEASE(pInterface)
{
pInterface->Release();
pInterface = NULL;
}BOOL DOMDocument2schemas()
{
BOOL bResult = FALSE;
short sResult = FALSE;
IXMLDOMNodeList *pIXMLDOMNodeList=NULL;
IXMLDOMDocument2 *pIXMLDOMDocument2=NULL;
IXMLDOMSchemaCollection *pIXMLDOMSchemaCollection=NULL;
HRESULT hr;
BSTR bstrValue;
VARIANT varValue; try
{
hr=CoCreateInstance(CLSID_DOMDocument, NULL, CLSCTX_SERVER,
IID_IXMLDOMDocument2, (LPVOID*)(&pIXMLDOMDocument2));
SUCCEEDED(hr) ? 0 : throw hr; if(pIXMLDOMDocument2)
{
hr=pIXMLDOMDocument2->put_async(VARIANT_FALSE);
if(SUCCEEDED(hr))
{
hr=CoCreateInstance(CLSID_XMLSchemaCache, NULL, CLSCTX_SERVER,
IID_IXMLDOMSchemaCollection,
(LPVOID*)(&pIXMLDOMSchemaCollection));
SUCCEEDED(hr) ? 0 : throw hr;
if(SUCCEEDED(hr) && pIXMLDOMSchemaCollection)
{
hr = pIXMLDOMSchemaCollection->add(_T("x-schema:books"),
_variant_t(_T("d:\\inetpub\\wwwroot\\bookschema.xml")));
if(SUCCEEDED(hr))
{
varValue.vt = VT_DISPATCH;
varValue.pdispVal = pIXMLDOMSchemaCollection;
hr=pIXMLDOMDocument2->putref_schemas(varValue);
// The document will load only if a valid schema is
// attached to the xml file.
hr=pIXMLDOMDocument2->load(_variant_t(
_T("d:\\inetpub\\wwwroot\\samplexmldtd.xml")),
&sResult);
if(SUCCEEDED(hr) && (sResult==VARIANT_TRUE))
{
pIXMLDOMDocument2->get_xml(&bstrValue);
::MessageBox(NULL, bstrValue, _T("Loaded Document"),
MB_OK);
bResult=TRUE;
}
}
RELEASE(pIXMLDOMSchemaCollection);
}
}
RELEASE(pIXMLDOMDocument2);
}
}
catch(...)
{
CHECK_AND_RELEASE(pIXMLDOMDocument2);
CHECK_AND_RELEASE(pIXMLDOMNodeList);
CHECK_AND_RELEASE(pIXMLDOMSchemaCollection);
DisplayErrorToUser();
}
return bResult;
}
#import "msxml3.dll"
using namespace Msxml2;#define CHECK_AND_RELEASE(pInterface)
if(pInterface)
{
pInterface->Release();
pInterface = NULL;
}#define RELEASE(pInterface)
{
pInterface->Release();
pInterface = NULL;
}BOOL DOMDocument2schemas()
{
BOOL bResult = FALSE;
short sResult = FALSE;
IXMLDOMNodeList *pIXMLDOMNodeList=NULL;
IXMLDOMDocument2 *pIXMLDOMDocument2=NULL;
IXMLDOMSchemaCollection *pIXMLDOMSchemaCollection=NULL;
HRESULT hr;
BSTR bstrValue;
VARIANT varValue; try
{
hr=CoCreateInstance(CLSID_DOMDocument, NULL, CLSCTX_SERVER,
IID_IXMLDOMDocument2, (LPVOID*)(&pIXMLDOMDocument2));
SUCCEEDED(hr) ? 0 : throw hr; if(pIXMLDOMDocument2)
{
hr=pIXMLDOMDocument2->put_async(VARIANT_FALSE);
if(SUCCEEDED(hr))
{
hr=CoCreateInstance(CLSID_XMLSchemaCache, NULL, CLSCTX_SERVER,
IID_IXMLDOMSchemaCollection,
(LPVOID*)(&pIXMLDOMSchemaCollection));
SUCCEEDED(hr) ? 0 : throw hr;
if(SUCCEEDED(hr) && pIXMLDOMSchemaCollection)
{
hr = pIXMLDOMSchemaCollection->add(_T("x-schema:books"),
_variant_t(_T("d:\\inetpub\\wwwroot\\bookschema.xml")));
if(SUCCEEDED(hr))
{
varValue.vt = VT_DISPATCH;
varValue.pdispVal = pIXMLDOMSchemaCollection;
hr=pIXMLDOMDocument2->putref_schemas(varValue);
// The document will load only if a valid schema is
// attached to the xml file.
hr=pIXMLDOMDocument2->load(_variant_t(
_T("d:\\inetpub\\wwwroot\\samplexmldtd.xml")),
&sResult);
if(SUCCEEDED(hr) && (sResult==VARIANT_TRUE))
{
pIXMLDOMDocument2->get_xml(&bstrValue);
::MessageBox(NULL, bstrValue, _T("Loaded Document"),
MB_OK);
bResult=TRUE;
}
}
RELEASE(pIXMLDOMSchemaCollection);
}
}
RELEASE(pIXMLDOMDocument2);
}
}
catch(...)
{
CHECK_AND_RELEASE(pIXMLDOMDocument2);
CHECK_AND_RELEASE(pIXMLDOMNodeList);
CHECK_AND_RELEASE(pIXMLDOMSchemaCollection);
DisplayErrorToUser();
}
return bResult;
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货