3

変換が失敗した場合、XMLNotepad は (たとえば) 次のテキストを提供します。

XML 変換エラー
変数またはパラメータ 'saturated-background-color' が同じインポート優先順位で複製されました。

このエラー テキストをプログラムで取得するにはどうすればよいですか? 私のコードは次のようになります。

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 に答える