XMLNotepad在转换失败时提供以下文本(例如):
错误转换XML
变量 或参数 '饱和背景色'是 重复使用相同的导入 优先级。
如何以编程方式获取此错误文本?我的代码如下所示:
CComPtr<IXSLTemplate> tmpl;
HRESULT hr = CoCreateInstance(CLSID_XSLTemplate, NULL, CLSCTX_INPROC_SERVER, IID_IXSLTemplate, (void**)&tmpl);
if (SUCCEEDED(hr)) {
hr = tmpl->putref_stylesheet(xslt_doc);
if (SUCCEEDED(hr)) {
// Huzzah; do stuff.
} else {
// How do I get the error text? I want to log it!
}
}
答案 0 :(得分:3)
如果IXSLTemplate
支持IErrorInfo
(AFAIK,它确实如此),那么您可以查询该信息以获取更多信息。
(jeffamaphone通过正确的方式让我知道了 - 使用GetErrorInfo()
API:)
CComPtr<IErrorInfo> error;
if (SUCCEEDED( GetErrorInfo(0, &error) ) && error)
{
// call IErrorInfo::GetDescription(), etc.
}