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.

70 lines
1.4 KiB

  1. ///////////////////////////////////////////////////////////////////////////////
  2. //
  3. // Copyright (c) 1999, Microsoft Corp. All rights reserved.
  4. //
  5. // FILE
  6. //
  7. // action.h
  8. //
  9. // SYNOPSIS
  10. //
  11. // Declares the class Action.
  12. //
  13. // MODIFICATION HISTORY
  14. //
  15. // 02/01/2000 Original version.
  16. //
  17. ///////////////////////////////////////////////////////////////////////////////
  18. #ifndef ACTION_H
  19. #define ACTION_H
  20. #if _MSC_VER >= 1000
  21. #pragma once
  22. #endif
  23. #include <realm.h>
  24. #include <memory>
  25. #include <iastlutl.h>
  26. using namespace IASTL;
  27. ///////////////////////////////////////////////////////////////////////////////
  28. //
  29. // CLASS
  30. //
  31. // Action
  32. //
  33. ///////////////////////////////////////////////////////////////////////////////
  34. class Action
  35. {
  36. public:
  37. Action(PCWSTR name, DWORD nameAttr, _variant_t& action);
  38. // Perform the action.
  39. void doAction(IASRequest& pRequest) const;
  40. protected:
  41. // Create a VSA from the string format used by the UI.
  42. static PIASATTRIBUTE VSAFromString(PCWSTR string);
  43. private:
  44. // Profile attributes to be added to the request.
  45. IASAttributeVector attributes;
  46. // Provider information.
  47. IASAttributeVectorWithBuffer<2> authProvider;
  48. IASAttributeVectorWithBuffer<2> acctProvider;
  49. // Attribute manipulation.
  50. DWORD realmsTarget;
  51. Realms realms;
  52. // Not implemented.
  53. Action(const Action&) throw ();
  54. Action& operator=(const Action&) throw ();
  55. };
  56. typedef std::auto_ptr<Action> ActionPtr;
  57. #endif // ACTION_H