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.

146 lines
3.8 KiB

  1. /////////////////////////////////////////////////////////////////////////////
  2. //
  3. // Copyright(C) 1997-1998 Microsoft Corporation all rights reserved.
  4. //
  5. // Module: sdoprofile.h
  6. //
  7. // Project: Everest
  8. //
  9. // Description: IAS Server Data Object - Profile Object Definition
  10. //
  11. // Author: TLP 1/23/98
  12. //
  13. /////////////////////////////////////////////////////////////////////////////
  14. #ifndef _INC_IAS_SDO_PROFILE_H_
  15. #define _INC_IAS_SDO_PROFILE_H_
  16. #include "resource.h"
  17. #include <ias.h>
  18. #include <iaspolcy.h>
  19. #include <nap.h>
  20. #include <sdoiaspriv.h>
  21. #include "sdo.h"
  22. #include <sdofactory.h>
  23. class SdoDictionary;
  24. /////////////////////////////////////////////////////////////////////////////
  25. // CSdoProfile
  26. /////////////////////////////////////////////////////////////////////////////
  27. class CSdoProfile :
  28. public CSdo,
  29. public IPolicyAction
  30. {
  31. public:
  32. ////////////////////
  33. // ATL Interface Map
  34. ////////////////////
  35. BEGIN_COM_MAP(CSdoProfile)
  36. COM_INTERFACE_ENTRY(ISdo)
  37. COM_INTERFACE_ENTRY(IDispatch)
  38. COM_INTERFACE_ENTRY(IPolicyAction)
  39. END_COM_MAP()
  40. DECLARE_SDO_FACTORY(CSdoProfile);
  41. ///////////////////////////////////////////////////////////////////////////
  42. CSdoProfile();
  43. ///////////////////////////////////////////////////////////////////////////
  44. ~CSdoProfile();
  45. ///////////////////////////////////////////////////////////////////////////
  46. HRESULT FinalInitialize(
  47. /*[in]*/ bool fInitNew,
  48. /*[in]*/ ISdoMachine* pAttachedMachine
  49. );
  50. ///////////////////////////////////////////////////////////////////////////
  51. HRESULT Load(void);
  52. ///////////////////////////////////////////////////////////////////////////
  53. HRESULT Save(void);
  54. ///////////////////////////////////////////////////////////////////////////
  55. // IPolicyAction Interface
  56. STDMETHOD(InitializeAction)(void);
  57. STDMETHOD(ShutdownAction)(void);
  58. STDMETHOD(DoAction)(
  59. /*[in]*/ IRequest* pRequest
  60. );
  61. private:
  62. CSdoProfile(const CSdoProfile& rhs);
  63. CSdoProfile& operator = (CSdoProfile& rhs);
  64. ///////////////////////////////////////////////////////////////////////////
  65. HRESULT
  66. GetAttributeCount(
  67. /*[out]*/ ULONG& ulCount
  68. );
  69. //////////////////////////////////////////////////////////////////////////////
  70. HRESULT
  71. ConvertAttributes(
  72. /*[in/out]*/ ULONG& ulCount
  73. );
  74. //////////////////////////////////////////////////////////////////////////////
  75. HRESULT
  76. AddPolicyNameAttribute(
  77. /*[in/out]*/ ULONG& ulCount
  78. );
  79. ///////////////////////////////////////////////////////////////////////////
  80. HRESULT
  81. ConvertSDOAttrToIASAttr(
  82. /*[in]*/ ISdo* pSdoAttribute,
  83. /*[in/out]*/ ULONG& ulCount
  84. );
  85. ///////////////////////////////////////////////////////////////////////////
  86. PIASATTRIBUTE
  87. VSAAttributeFromVariant (
  88. /*[in]*/ VARIANT *pVariant,
  89. /*[in]*/ IASTYPE iasType
  90. );
  91. ///////////////////////////////////////////////////////////////////////////
  92. HRESULT LoadAttributes(void);
  93. ///////////////////////////////////////////////////////////////////////////
  94. HRESULT SaveAttributes(void);
  95. ///////////////////////////////////////////////////////////////////////////
  96. HRESULT ClearAttributes(void);
  97. ///////////////////////////////////////////////////////////////////////////
  98. typedef map<ULONG, LPCWSTR> OrderedOctetStrings;
  99. typedef OrderedOctetStrings::iterator OrderedOctetStringsIterator;
  100. // Dictionary SDO
  101. //
  102. CComPtr<SdoDictionary> m_pSdoDictionary;
  103. // Number of IAS attribute position structures
  104. //
  105. ULONG m_ulAttributeCount;
  106. // Array of IAS attribute position strucutres
  107. //
  108. PATTRIBUTEPOSITION m_pAttributePositions;
  109. };
  110. #endif // _INC_IAS_SDO_PROFILE_H_