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.

77 lines
1.6 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. class TunnelTagger;
  28. ///////////////////////////////////////////////////////////////////////////////
  29. //
  30. // CLASS
  31. //
  32. // Action
  33. //
  34. ///////////////////////////////////////////////////////////////////////////////
  35. class Action
  36. {
  37. public:
  38. Action(
  39. PCWSTR name,
  40. DWORD nameAttr,
  41. _variant_t& action,
  42. const TunnelTagger& tagger
  43. );
  44. // Perform the action.
  45. void doAction(IASRequest& pRequest) const;
  46. protected:
  47. // Create a VSA from the string format used by the UI.
  48. static PIASATTRIBUTE VSAFromString(PCWSTR string);
  49. private:
  50. // Profile attributes to be added to the request.
  51. IASAttributeVector attributes;
  52. // Provider information.
  53. IASAttributeVectorWithBuffer<2> authProvider;
  54. IASAttributeVectorWithBuffer<2> acctProvider;
  55. // Attribute manipulation.
  56. DWORD realmsTarget;
  57. Realms realms;
  58. // Not implemented.
  59. Action(const Action&) throw ();
  60. Action& operator=(const Action&) throw ();
  61. };
  62. typedef std::auto_ptr<Action> ActionPtr;
  63. #endif // ACTION_H