1

I am getting the error "Exception from HRESULT: 0x80240007" when I am trying to fetch the installed Windows updates. My code worked well in Windows 7, but it's not working in Windows XP. I am getting the error in the line var history = updateSearcher.QueryHistory(0, count);

This is my code snippet:

        var updateSession = new UpdateSession();
        var updateSearcher = updateSession.CreateUpdateSearcher();
        var count = updateSearcher.GetTotalHistoryCount();
        var history = updateSearcher.QueryHistory(0, count);

What changes do I need to make in the code?

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)

そして、への呼び出しは、 IUpdateSearcher::QueryHistoryとそのドキュメントに要約UpdateSession.CreateUpdateSearcher.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 に答える