我应该如何使用WIN32OLE实现IDownloadProgressChangedCallback?

时间:2015-05-28 17:01:10

标签: ruby windows com win32ole wuapi

我想在Ruby中使用WIN32OLE下载Windows更新。我遇到了一些问题,知道要使用哪个COM对象来获取IUpdateDownloader::BeginDownload 所需的参数。目前,我可以执行下载更新的同步版本,但我真的想知道如何使用异步方法。

现在可以使用以下内容:

require 'win32ole'

muSession = WIN32OLE.new('Microsoft.Update.Session')
availableUpdates = muSession.CreateUpdateSearcher().Search("IsInstalled=0 and Type='Software'").Updates

muUpdateColl = WIN32OLE.new('Microsoft.Update.UpdateColl')
availableUpdates.each do |update|
    update.AcceptEula()
    muUpdateColl.Add(update)
end

updateDownloader = WIN32OLE.new('Microsoft.Update.Session').CreateUpdateDownloader()
updateDownloader.Updates = muUpdateColl

downloadResult = updateDownloader.Download()

但是,我想使用“BeginDownload()”而不是调用“Download()”。如何实例化IDownloadProgressChangedCallback(例如)。我认为在C#中这样做可能很明显,但是使用WIN32OLE,我不知道如何创建对象。

0 个答案:

没有答案