Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

57 lines
2.5 KiB

  1. //+-------------------------------------------------------------------------
  2. //
  3. // Microsoft Windows
  4. //
  5. // Copyright (C) Microsoft Corporation, 2000
  6. //
  7. // File: auxml.h
  8. //
  9. // About: header file for AU related XML and schema data structure and functions
  10. //--------------------------------------------------------------------------
  11. #pragma once
  12. #include <windows.h>
  13. #include <ole2.h>
  14. #include <msxml.h>
  15. #include <URLLogging.h>
  16. #include "AUBaseCatalog.h"
  17. class CItemDetails
  18. {
  19. public:
  20. CItemDetails() : m_pxml(NULL) {};
  21. ~CItemDetails() {};
  22. BOOL Init(BSTR bsxml);
  23. void Uninit();
  24. HRESULT CloneIdentityNode(BSTR bstrItemId, IXMLDOMDocument *pDesXml, IXMLDOMNode ** ppDesNode);
  25. HRESULT CloneDescriptionNode(BSTR bstrItemId,IXMLDOMDocument *pDesXml, IXMLDOMNode ** ppDesNode);
  26. HRESULT ClonePlatformNode(BSTR bstrItemId,IXMLDOMDocument *pDesXml, IXMLDOMNode ** ppDesNode);
  27. HRESULT GetItemIds(long *puItemNum, BSTR ** ppbstrItemIds);
  28. HRESULT GetItemInfo(LPCSTR szFieldName, BSTR bstrItemId, BSTR * pbstrItemInfo);
  29. HRESULT GetCabNames(BSTR bstrItemId, BSTR ** ppCabNames, BSTR **ppRealCabNames, BSTR **ppCabChecksums, UINT *pCabsNum);
  30. HRESULT GetRTFCRC(BSTR bstrItemId, BSTR * pRTFCRC);
  31. HRESULT FindFirstExclusiveItem(BSTR *pbstrItemId, AUCatalogItemList & hiddenItemList);
  32. HRESULT DeleteItem(BSTR bstrItemId);
  33. HRESULT GetXML(BSTR *pbstrxml);
  34. HRESULT BuildDirectDependency(AUCatalogItemList IN OUT &item);
  35. BSTR GetItemDownloadPath(BSTR bstrItemId);
  36. BOOL IsVisible(BSTR bstrItemId);
  37. HRESULT GetItemIdentities(BSTR bstrItemId, IXMLDOMNodeList ** ppIdentityNodeList);
  38. private:
  39. IXMLDOMDocument * m_pxml;
  40. IXMLDOMNode * getIdentityNode(BSTR bstrItemId);
  41. IXMLDOMNode * getItemNode(BSTR bstrItemId);
  42. };
  43. BOOL fExtractItemInfo(BSTR bstrDetails, AUCatalogItemList & itemList, /*BOOL fDriver,*/ BOOL *pfFoundExclusiveItem/*, BOOL fIgnoreExclusiveNhidden*/);
  44. BSTR ReadXMLFromFile(LPCTSTR szFile);
  45. HRESULT PrepareInstallXML(BSTR bstrItemDetails, AUCatalogItemList &itemList, BSTR * pbstrDownloadResult, BSTR *pbstrInstallation);
  46. HRESULT MergeCatalogs(BSTR bsCatalog1, BSTR bsCatalog2, BSTR *pbsDesCatalog );
  47. HRESULT PersistHiddenItems(AUCatalogItemList &itemlist, URLLOGACTIVITY activity);
  48. HRESULT GetDetailedItemInfoFromDisk(AUCatalogItemList OUT &ItemList, BSTR OUT *pbstrInstallation, BOOL fUpdateDriver);
  49. HRESULT BuildDependencyList(AUCatalogItemList IN OUT &itemlist, BSTR IN bstrDriverDetail, BSTR IN bstrNonDriverDetail);
  50. HRESULT MungleIdentity(IXMLDOMNode *pIdentity, DWORD dwSuffix);