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.

66 lines
2.1 KiB

  1. ///////////////////////////////////////////////////////////////////////////////
  2. //
  3. // Actions.h
  4. //
  5. ///////////////////////////////////////////////////////////////////////////////
  6. #ifndef _ACTIONS_H_
  7. #define _ACTIONS_H_
  8. // Bring in only once
  9. #if _MSC_VER > 1000
  10. #pragma once
  11. #endif
  12. #include "oerules.h"
  13. class COEActions : public IOEActions, IPersistStream
  14. {
  15. private:
  16. enum {ACT_COUNT_MIN = 0, ACT_COUNT_MAX = 0x1000};
  17. enum {CCH_ACT_ORDER = 4};
  18. enum {ACT_VERSION = 0x00050000};
  19. private:
  20. LONG m_cRef;
  21. ACT_ITEM * m_rgItems;
  22. ULONG m_cItems;
  23. ULONG m_cItemsAlloc;
  24. DWORD m_dwState;
  25. public:
  26. // Constructor/destructor
  27. COEActions() : m_cRef(0), m_rgItems(NULL), m_cItems(0), m_cItemsAlloc(0), m_dwState(0) {}
  28. ~COEActions();
  29. // IUnknown members
  30. STDMETHODIMP QueryInterface(REFIID riid, void ** ppvObject);
  31. STDMETHODIMP_(ULONG) AddRef(void);
  32. STDMETHODIMP_(ULONG) Release(void);
  33. // IOEActions members
  34. STDMETHODIMP Reset(void);
  35. STDMETHODIMP GetState(DWORD * pdwState);
  36. STDMETHODIMP GetActions(DWORD dwFlags, PACT_ITEM * ppItem, ULONG * pcItem);
  37. STDMETHODIMP SetActions(DWORD dwFlags, ACT_ITEM * pItem, ULONG cItem);
  38. STDMETHODIMP Validate(DWORD dwFlags);
  39. STDMETHODIMP AppendActions(DWORD dwFlags, ACT_ITEM * pItem, ULONG cItem, ULONG * pcItemAppended);
  40. STDMETHODIMP LoadReg(LPCSTR szRegPath);
  41. STDMETHODIMP SaveReg(LPCSTR szRegPath, BOOL fClearDirty);
  42. STDMETHODIMP Clone(IOEActions ** ppIActions);
  43. // IPersistStream members
  44. STDMETHODIMP GetClassID(CLSID * pclsid);
  45. STDMETHODIMP IsDirty(void);
  46. STDMETHODIMP Load(IStream * pStm);
  47. STDMETHODIMP Save(IStream * pStm, BOOL fClearDirty);
  48. STDMETHODIMP GetSizeMax(ULARGE_INTEGER * pcbSize) { return E_NOTIMPL; }
  49. };
  50. HRESULT HrCreateActions(IOEActions ** ppIActions);
  51. #endif // !_ACTIONS_H_