1

我在尝试获取已安装的 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);

我需要对代码进行哪些更改?

4

1 回答 1

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;

(或更复杂的案件处理......)

于 2012-11-08T10:08:28.030 回答