首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取最新的windows更新检查C++ wuapi

获取最新的windows更新检查C++ wuapi
EN

Stack Overflow用户
提问于 2021-01-15 18:16:20
回答 1查看 170关注 0票数 2

我正试着用wuapi获取最新的windows更新检查。我有以下代码:

代码语言:javascript
复制
VARIANT variant;
VariantInit(&variant);

IAutomaticUpdatesResults* pAutomaticUpdatedResults = NULL;
if (pAutomaticUpdatedResults->get_LastSearchSuccessDate(&variant) != S_OK)
  throw;

std::cout << variant.date << std::endl;

可以理解,我得到了一个异常,pAutomaticUpdatedResults未初始化,但我不确定正确使用wuapi的方式

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-16 00:51:30

您可以从IAutomaticUpdates2::get_Results获取IAutomaticUpdatesResults*

IAutomaticUpdates2是由AutomaticUpdates coclass实现的接口。

完整示例:

代码语言:javascript
复制
#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;
}
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65734232

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档