当我尝试获取已安装的Windows Update时,出现错误“来自HRESULT的异常:0x80240007”。我的代码在Windows 7中运行良好,但在Windows XP中不起作用。我在“ var history = updateSearcher.QueryHistory( 0,计数);”
这是我的代码片段
var updateSession = new UpdateSession();
var updateSearcher = updateSession.CreateUpdateSearcher();
var count = updateSearcher.GetTotalHistoryCount();
var history = updateSearcher.QueryHistory(0, count);
我在最后一行出现错误。我需要在代码中进行哪些更改。请帮助我解决此问题。
斯瓦蒂
最佳答案
0x80240007是wuerror.h中定义的错误代码WU_E_INVALIDINDEX:
// MessageId: WU_E_INVALIDINDEX
//
// MessageText:
//
// The index to a collection was invalid.
//
#define WU_E_INVALIDINDEX _HRESULT_TYPEDEF_(0x80240007L)
对
UpdateSession.CreateUpdateSearcher.QueryHistory
的调用归结为IUpdateSearcher::QueryHistory及其文档说:备注
如果startIndex参数小于0(零)或Count参数小于或等于0(零),则此方法返回WU_E_INVALIDINDEX。
count
最有可能不小于0,但也许==0
你需要类似的东西
var count = updateSearcher.GetTotalHistoryCount();
var history = count > 0 ? updateSearcher.QueryHistory(0, count) : null;
(或更复杂的案件处理...。)