//+------------------------------------------------------------------------- // // 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 #include #include #include #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);