3

当转换失败时,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!
    }
}
4

1 回答 1

3

如果IXSLTemplate支持IErrorInfo(AFAIK,确实如此),那么您可以查询它以获取更多信息。

(jeffamaphone 告诉我正确的方法来获得这个 - 使用GetErrorInfo()API :)

CComPtr<IErrorInfo> error;
if (SUCCEEDED( GetErrorInfo(0, &error) ) && error)
{
   // call IErrorInfo::GetDescription(), etc.
}
于 2009-03-06T18:10:19.210 回答