Win32 API 日本語リファレンス
ホームSystem.UpdateAgent › IUpdate2

IUpdate2

COMIDispatch (デュアル)
IDispatch を実装(デュアルインターフェース)。HSP では comobj 経由でメソッド名による遅延バインド呼び出しができます(vtableインデックス不要)。
IID144fe9b0-d23d-4a8b-8634-fb4457533b7a継承元IUpdate呼び出し名前(IDispatch) または vtbl自前メソッド開始 vtbl52

公式ドキュメント

更新プログラムで使用できるプロパティとメソッドを格納します。(IUpdate2)

メソッド 4

vtbl = vtable インデックス(0始まり)。IDispatch 実装のため HSP ではメソッド名でも呼べます(上記)。低レベルの index 呼び出し用に vtbl も掲載。0〜2 は IUnknown。

vtbl 52 HRESULT get_RebootRequired(VARIANT_BOOL* retval)

更新プログラムのインストールまたはアンインストールを完了するために、コンピューターでシステムの再起動が必要かどうかを示す Boolean 値を取得します。

retvalVARIANT_BOOL*outこの更新プログラムのインストールに再起動が必要かどうかを受け取る VARIANT_BOOL へのポインタである。
vtbl 53 HRESULT get_IsPresent(VARIANT_BOOL* retval)

更新プログラムがコンピューター上に存在するかどうかを示す Boolean 値を取得します。

retvalVARIANT_BOOL*outこの更新プログラムが既にコンピューターに適用済み(存在する)かどうかを受け取る VARIANT_BOOL へのポインタである。

解説(Remarks)

更新プログラムは、1 つ以上の製品に対してインストールされている場合に存在すると見なされます。たとえば、更新プログラムが Microsoft Office Word と Microsoft Office Excel の両方に適用される場合、いずれか一方または両方の製品に対して更新プログラムがインストールされていると、IsPresent プロパティは VARIANT_TRUE を返します。

更新プログラムが 1 つの製品にのみ適用される場合、IsPresent プロパティと IsInstalled プロパティは同等です。更新プログラムは、適用対象のすべての製品に対してインストールされている場合にインストール済みと見なされます。

IsPresentVARIANT_TRUE を返し、IsInstalledVARIANT_FALSE を返す場合、更新プログラムをインストールした製品に対して更新プログラムをアンインストールできます。

vtbl 54 HRESULT get_CveIDs(IStringCollection** retval)

更新プログラムに関連付けられた共通脆弱性識別子 (CVE) ID のコレクションを取得します。

retvalIStringCollection**outこの更新プログラムが対処する CVE 識別子の一覧を表す IStringCollection を受け取るポインタである。
vtbl 55 HRESULT CopyToCache(IStringCollection* pFiles)

更新プログラムのファイルを、指定したソースの場所から Windows Update Agent (WUA) 内部のダウンロードキャッシュにコピーします。

pFilesIStringCollection*in

更新プログラムのファイルのフルパスを格納する文字列のコレクションを表す IStringCollection インターフェイスです。

文字列には、コピーするファイルのフルパスを指定する必要があります。文字列にファイルを格納するディレクトリのみを指定することはできません。

戻り値

成功した場合は S_OK を返します。それ以外の場合は、COM または Windows のエラーコードを返します。

このメソッドは、次のエラーコードを返す場合もあります。

戻り値 説明
E_ACCESSDENIED
このメソッドはリモートコンピューターから呼び出すことはできません。
E_INVALIDARG
パラメーターの値が無効です。
WU_E_INVALID_OPERATION
コンピューターが更新サイトにアクセスできませんでした。

解説(Remarks)

インターフェイスを実装しているオブジェクトがロックダウンされている場合、このメソッドは WU_E_INVALID_OPERATION を返します。

注意 ダウンロード済みの更新プログラムをあるコンピューターから別のコンピューターに移動する目的で IUpdate::CopyFromCache メソッドおよび IUpdate2::CopyToCache メソッドを使用することは、推奨もサポートもされていません。Windows Update Agent (WUA) が更新プログラムをダウンロードする際、特定のクライアントコンピューターに必要な更新プログラムのペイロードの部分のみをダウンロードすることがあります。必要な更新プログラムのペイロードの部分は、コンピューターのハードウェアやソフトウェアの構成が似ていても、コンピューターごとに異なることがよくあります。IUpdate2::CopyToCache は、指定されたファイルが、そのコンピューターで Windows Update が通常ダウンロードするファイルと完全に一致する場合にのみ動作します。別のコンピューターで IUpdate::CopyFromCache を呼び出してファイルを取得した場合、それらのファイルは Windows Update が通常ダウンロードするファイルと一致しない可能性が高いため、IUpdate2::CopyToCache が失敗する場合があります。
出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

HSP用 COM定義

#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"

出力引数:
#define global IID_IUpdate2 "{144FE9B0-D23D-4A8B-8634-FB4457533B7A}"
#usecom global IUpdate2 IID_IUpdate2 "{}"
#comfunc global IUpdate2_get_RebootRequired  52 var
#comfunc global IUpdate2_get_IsPresent       53 var
#comfunc global IUpdate2_get_CveIDs          54 sptr
#comfunc global IUpdate2_CopyToCache         55 sptr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。
; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。