获取最后 windows 更新检查 C++ wuapi
Get last windows update check C++ wuapi
我正在尝试使用 wuapi 获取最后的 windows 更新检查。我有以下代码:
VARIANT variant;
VariantInit(&variant);
IAutomaticUpdatesResults* pAutomaticUpdatedResults = NULL;
if (pAutomaticUpdatedResults->get_LastSearchSuccessDate(&variant) != S_OK)
throw;
std::cout << variant.date << std::endl;
可以理解的是,我得到一个例外,即 pAutomaticUpdatedResults
未初始化,但我不确定使用 wuapi
的正确方法
您可以从 IAutomaticUpdates2::get_Results
获得一个 IAutomaticUpdatesResults*
。
IAutomaticUpdates2
是由 AutomaticUpdates coclass 实现的接口。
完整样本:
#include <Windows.h>
#include <wuapi.h>
#include <iostream>
int main() {
HRESULT hr;
hr = CoInitializeEx(nullptr, COINIT_APARTMENTTHREADED);
if(FAILED(hr))
return hr;
IAutomaticUpdates2* iupdates = nullptr;
hr = CoCreateInstance(
CLSID_AutomaticUpdates,
nullptr,
CLSCTX_INPROC_HANDLER | CLSCTX_LOCAL_SERVER | CLSCTX_INPROC_SERVER,
IID_PPV_ARGS(&iupdates)
);
IAutomaticUpdatesResults* results = nullptr;
if(SUCCEEDED(hr)) {
hr = iupdates->get_Results(&results);
}
DATE lastSearchSuccessDate = 0.0;
if(SUCCEEDED(hr)) {
VARIANT var;
VariantInit(&var);
hr = results->get_LastSearchSuccessDate(&var);
lastSearchSuccessDate = var.date;
}
if(SUCCEEDED(hr)) {
std::cout << lastSearchSuccessDate << std::endl;
}
if(results)
results->Release();
if(iupdates)
iupdates->Release();
CoUninitialize();
return hr;
}
我正在尝试使用 wuapi 获取最后的 windows 更新检查。我有以下代码:
VARIANT variant;
VariantInit(&variant);
IAutomaticUpdatesResults* pAutomaticUpdatedResults = NULL;
if (pAutomaticUpdatedResults->get_LastSearchSuccessDate(&variant) != S_OK)
throw;
std::cout << variant.date << std::endl;
可以理解的是,我得到一个例外,即 pAutomaticUpdatedResults
未初始化,但我不确定使用 wuapi
您可以从 IAutomaticUpdates2::get_Results
获得一个 IAutomaticUpdatesResults*
。
IAutomaticUpdates2
是由 AutomaticUpdates coclass 实现的接口。
完整样本:
#include <Windows.h>
#include <wuapi.h>
#include <iostream>
int main() {
HRESULT hr;
hr = CoInitializeEx(nullptr, COINIT_APARTMENTTHREADED);
if(FAILED(hr))
return hr;
IAutomaticUpdates2* iupdates = nullptr;
hr = CoCreateInstance(
CLSID_AutomaticUpdates,
nullptr,
CLSCTX_INPROC_HANDLER | CLSCTX_LOCAL_SERVER | CLSCTX_INPROC_SERVER,
IID_PPV_ARGS(&iupdates)
);
IAutomaticUpdatesResults* results = nullptr;
if(SUCCEEDED(hr)) {
hr = iupdates->get_Results(&results);
}
DATE lastSearchSuccessDate = 0.0;
if(SUCCEEDED(hr)) {
VARIANT var;
VariantInit(&var);
hr = results->get_LastSearchSuccessDate(&var);
lastSearchSuccessDate = var.date;
}
if(SUCCEEDED(hr)) {
std::cout << lastSearchSuccessDate << std::endl;
}
if(results)
results->Release();
if(iupdates)
iupdates->Release();
CoUninitialize();
return hr;
}