gpt4 book ai didi

c++ - IDispatch 错误和/或消息文本列表

转载 作者:太空狗 更新时间:2023-10-29 20:31:09 26 4
gpt4 key购买 nike

我在返回 HRESULTS 的 WMI/WBEM 接口(interface)上调用方法。我想向用户显示这些错误代码的有意义的错误消息。但是,当我查找 HRESULT 的错误消息时,我只得到类似“IDispatch error #3598”的字符串。

我是否可以找到解释其含义的这些 IDispatch 错误代码的列表?

可能出错的示例代码:

IWbemLocator *pLocator = NULL;
IWbemServices *pNamespace = NULL;
hr = CoCreateInstance(CLSID_WbemLocator, 0, CLSCTX_INPROC_SERVER, IID_IWbemLocator, (LPVOID *) &pLocator);
if (FAILED(hr))
return hr;

hr = pLocator->ConnectServer(wPath, NULL, NULL, NULL, 0, NULL, NULL, &pNamespace);
if(FAILED(hr))
return hr;

错误查找:

CString sMessage = _com_error(nError).ErrorMessage();

// sMessage now contains a string like "IDispatch error #3598"

备注:This没有帮助 - 它不包含我得到的 HRESULTS。它们也不包含在 winerror.h 中。

最佳答案

COM 服务器可以生成自己的 HRESULT 错误代码。 IErrorInfo 接口(interface)帮助客户端获取错误的描述。您没有给 _com_error 类一个机会来完成这项工作,您没有将 IErrorInfo 接口(interface)指针传递给构造函数。

首先检查 ISupportErrorInfo 的接口(interface)并调用它的 InterfaceSupportsErrorInfo() 方法来验证是否支持错误报告。接下来调用GetErrorInfo() 获取IErrorInfo 接口(interface)指针。 MSDN 文档 are here .

关于c++ - IDispatch 错误和/或消息文本列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4908417/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com