好吧,我已经迷路了几个小时了......
IXSLTemplate::putref_stylesheet
不记录除 E_FAIL 之外的任何错误。
但是在我的例子中 putref_stylesheet
返回 E_INVALIDARG
。 GetErrorInfo()
只是多余的告诉我“参数无效”。所以我没有留下太多信息。
但是我的代码与我在网络和 msdn 上找到的所有示例都非常接近。 它会做类似的事情:
void xsltProcessing(MSXML2::IXMLDOMDocument* pXmlDoc, MSXML2::IXMLDOMDocument * pXslDoc)
{
IXSLTemplatePtr pTemplate;
pTemplate.CreateInstance( _T( "Msxml2.XSLTemplate" ));
pTemplate->putref_stylesheet(pXslDoc);
//...
}
因为 putref_stylesheet
的文档不多。您是否知道它返回 E_INVALIDARG
会出现什么问题?
我的 pXslDoc
是一个 IXMLDOMDocument
我已经成功地从静态常量字符串加载了。
有什么线索吗? (我想这是一个非常模糊的问题,但我已经搜索了几个小时)
最佳答案
您是否正在加载 pXslDoc
也许是异步的?
IXMLDOMDocument
的默认行为objects 是异步加载的,所以 pXslDoc
是可能的调用 putref_stylesheet()
时尚未完成加载.
在加载之前添加以下代码 pXslDoc
会解决这个问题,如果这是你正在遭受的:
pXslDoc->put_async(VARIANT_FALSE);
关于c++ - IXSLTemplate::putref_stylesheet 返回 E_INVALIDARG,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3658682/