关于用WUA API获取系统已装配补丁

关于用WUA API获取系统已安装补丁
我用下面代码获取系统已安装补丁:
BOOL GetSystemDefects(struct defects *system_defects)
{
  int res = NO_ERROR;
  HRESULT ret;
  int flag = 1;
  struct defects *p;
  try
  {
  IUpdateSession *Session = NULL;
  ret = CoInitialize(NULL);
  if (FAILED(ret))
  {
  Log("GetSystemDefects():Initializes the COM Failed.");
  throw -1;
  }
   
  ret = CoCreateInstance(CLSID_UpdateSession, NULL, CLSCTX_INPROC_SERVER, 
  IID_IUpdateSession , (LPVOID*)&Session);
  if ((Session == NULL) || FAILED(ret))
  {
  //return -1;
  throw -2;
  }
   
  IUpdateSearcher *Searcher = NULL;
  ret = Session->CreateUpdateSearcher(&Searcher);
   
  if (FAILED(ret) || (Searcher == NULL))
  {
  Session->Release();
  //return -1;
  throw -3;
  }
   
  Searcher->put_Online(VARIANT_FALSE); //离线查询
  // Searcher->put_Online(VARIANT_TRUE); //在线查询
  ISearchResult *SearchResult = NULL;
  ret = Searcher->Search(_bstr_t("IsInstalled = 0 and Type = 'Software'"), &SearchResult);
   
  if (FAILED(ret))
  {
  Searcher->Release();
  Session->Release();
  //return -1;
  throw -4;
  }
   
  IUpdateCollection *Collection;
  ret = SearchResult->get_Updates(&Collection);
  if (FAILED(ret) || Collection == NULL)
  {
  Log("//////////////////////////////////////////////////////////////////////////");
  Log("GetSystemDefects():failed to call ISearchResult::Updates!");
  Log("//////////////////////////////////////////////////////////////////////////");
  //return 0;
  throw -5;
  }
   
  long Colnum;
  long i = 0;
  long j = 0;

  Collection->get_Count(&Colnum);
   
  if (Colnum < 0)
  {
  //system_defects = NULL;
  //printf("There are no appliable update./n");
  }
  else
  {
  //printf("Total update count:%d/n", Colnum);
  }

  for (i = 0; i < Colnum; i++)
  {
  IUpdate *Update;
  ret = Collection->get_Item(i, &Update);
  if (FAILED(ret) || Update == NULL)
  {
  Log("Collection->get_Item(i, &Update)");
  throw -6;
  }
   
  BSTR Title = NULL;
  ret = Update->get_Title(&Title);

  //安全等级
  //Critical Important Moderate Low
  BSTR SecLevel = NULL;
  ret = Update->get_MsrcSeverity(&SecLevel);

  //Download Url
  //
  IUpdateDownloadContentCollection *DownloadUrlCol = NULL;

  //获取安全公告号