当我尝试获取已安装的Windows更新时,我收到错误“来自HRESULT的异常:0x80240007”。我的代码在Windows 7中运行良好,但它在Windows XP中无法正常工作。我在行中出现错误“var history = updateSearcher .QueryHistory(0,count);“
这是我的代码片段
var updateSession = new UpdateSession();
var updateSearcher = updateSession.CreateUpdateSearcher();
var count = updateSearcher.GetTotalHistoryCount();
var history = updateSearcher.QueryHistory(0, count);
我在最后一行收到错误。我需要在代码中做出哪些更改。请帮助我解决这个问题。
斯瓦特
答案 0 :(得分:6)
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;
(或更复杂的案件处理......)