windows-nt/Source/XPSP1/NT/enduser/windows.com/wuau/wuaueng/auxml.h
2020-09-26 16:20:57 +08:00

58 lines
2.5 KiB
C++

//+-------------------------------------------------------------------------
//
// Microsoft Windows
//
// Copyright (C) Microsoft Corporation, 2000
//
// File: auxml.h
//
// About: header file for AU related XML and schema data structure and functions
//--------------------------------------------------------------------------
#pragma once
#include <windows.h>
#include <ole2.h>
#include <msxml.h>
#include <URLLogging.h>
#include "AUBaseCatalog.h"
class CItemDetails
{
public:
CItemDetails() : m_pxml(NULL) {};
~CItemDetails() {};
BOOL Init(BSTR bsxml);
void Uninit();
HRESULT CloneIdentityNode(BSTR bstrItemId, IXMLDOMDocument *pDesXml, IXMLDOMNode ** ppDesNode);
HRESULT CloneDescriptionNode(BSTR bstrItemId,IXMLDOMDocument *pDesXml, IXMLDOMNode ** ppDesNode);
HRESULT ClonePlatformNode(BSTR bstrItemId,IXMLDOMDocument *pDesXml, IXMLDOMNode ** ppDesNode);
HRESULT GetItemIds(long *puItemNum, BSTR ** ppbstrItemIds);
HRESULT GetItemInfo(LPCSTR szFieldName, BSTR bstrItemId, BSTR * pbstrItemInfo);
HRESULT GetCabNames(BSTR bstrItemId, BSTR ** ppCabNames, BSTR **ppRealCabNames, BSTR **ppCabChecksums, UINT *pCabsNum);
HRESULT GetRTFCRC(BSTR bstrItemId, BSTR * pRTFCRC);
HRESULT FindFirstExclusiveItem(BSTR *pbstrItemId, AUCatalogItemList & hiddenItemList);
HRESULT DeleteItem(BSTR bstrItemId);
HRESULT GetXML(BSTR *pbstrxml);
HRESULT BuildDirectDependency(AUCatalogItemList IN OUT &item);
BSTR GetItemDownloadPath(BSTR bstrItemId);
BOOL IsVisible(BSTR bstrItemId);
HRESULT GetItemIdentities(BSTR bstrItemId, IXMLDOMNodeList ** ppIdentityNodeList);
private:
IXMLDOMDocument * m_pxml;
IXMLDOMNode * getIdentityNode(BSTR bstrItemId);
IXMLDOMNode * getItemNode(BSTR bstrItemId);
};
BOOL fExtractItemInfo(BSTR bstrDetails, AUCatalogItemList & itemList, /*BOOL fDriver,*/ BOOL *pfFoundExclusiveItem/*, BOOL fIgnoreExclusiveNhidden*/);
BSTR ReadXMLFromFile(LPCTSTR szFile);
HRESULT PrepareInstallXML(BSTR bstrItemDetails, AUCatalogItemList &itemList, BSTR * pbstrDownloadResult, BSTR *pbstrInstallation);
HRESULT MergeCatalogs(BSTR bsCatalog1, BSTR bsCatalog2, BSTR *pbsDesCatalog );
HRESULT PersistHiddenItems(AUCatalogItemList &itemlist, URLLOGACTIVITY activity);
HRESULT GetDetailedItemInfoFromDisk(AUCatalogItemList OUT &ItemList, BSTR OUT *pbstrInstallation, BOOL fUpdateDriver);
HRESULT BuildDependencyList(AUCatalogItemList IN OUT &itemlist, BSTR IN bstrDriverDetail, BSTR IN bstrNonDriverDetail);
HRESULT MungleIdentity(IXMLDOMNode *pIdentity, DWORD dwSuffix);