Source code of Windows XP (NT5)
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.

73 lines
2.6 KiB

  1. //============================================================================
  2. // Copyright (c) 1996, Microsoft Corporation
  3. //
  4. // File: infoi.h
  5. //
  6. // History:
  7. // Abolade Gbadegesin Feb. 10, 1996 Created.
  8. //
  9. // This file contains declarations for InfoBase parsing code.
  10. // Also including are classes for loading and saving the Router's
  11. // configuration tree (CRouterInfo, CRmInfo, etc.)
  12. //
  13. // The classes are as follows
  14. // (in the diagrams, d => derives, c => contains-list-of):
  15. //
  16. //
  17. // CInfoBase
  18. // |
  19. // c---SInfoBlock
  20. //
  21. //
  22. // CInfoBase holds block of data broken up into a list
  23. // of SInfoBlock structures using RTR_INFO_BLOCK_HEADER
  24. // as a template (see rtinfo.h).
  25. //
  26. // CRouterInfo // router info
  27. // |
  28. // c---CRmInfo // router-manager info
  29. // | |
  30. // | c---CRmProtInfo // protocol info
  31. // |
  32. // c---CInterfaceInfo // router interface info
  33. // |
  34. // c---CRmInterfaceInfo // router-manager interface
  35. // |
  36. // c---CRmProtInterfaceInfo // protocol info
  37. //
  38. // CRouterInfo top-level container for Router registry info.
  39. // holds list of router-managers and interfaces.
  40. //
  41. // CRmInfo global information for a router-manager,
  42. // holds list of routing-protocols.
  43. //
  44. // CRmProtInfo global information for a routing-protocol.
  45. //
  46. // CInterfaceInfo global information for a router-interface.
  47. // holds list of CRmInterfaceInfo structures,
  48. // which hold per-interface info for router-managers.
  49. //
  50. // CRmInterfaceInfo per-interface info for a router-manager.
  51. // holds list of CRmProtInterfaceInfo structures,
  52. // which hold per-interface info for protocols.
  53. //
  54. // CRmProtInterfaceInfo per-interface info for a routing-protocol.
  55. //
  56. //============================================================================
  57. #ifndef _INFOBASE_H_
  58. #define _INFOBASE_H_
  59. #include "mprsnap.h"
  60. TFSCORE_API(HRESULT) CreateInfoBase(IInfoBase **ppIInfoBase);
  61. TFSCORE_API(HRESULT) LoadInfoBase(HANDLE hConfigMachine, HANDLE hTransport,
  62. IInfoBase **ppGlobalInfo, IInfoBase **ppClientInfo);
  63. typedef ComSmartPointer<IInfoBase, &IID_IInfoBase> SPIInfoBase;
  64. typedef ComSmartPointer<IEnumInfoBlock, &IID_IEnumInfoBlock> SPIEnumInfoBlock;
  65. #endif