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.

69 lines
2.2 KiB

  1. #ifndef __ACLPAGE_H__
  2. #define __ACLPAGE_H__
  3. #include "aclui.h"
  4. #define DONT_WANT_SHELLDEBUG
  5. #include "shlobj.h" // LPITEMIDLIST
  6. #include "shlobjp.h"
  7. #define SHARE_PERM_FULL_CONTROL FILE_ALL_ACCESS
  8. #define SHARE_PERM_READ_ONLY (FILE_GENERIC_READ | FILE_EXECUTE)
  9. #define ACCOUNT_EVERYONE _T("everyone")
  10. #define ACCOUNT_ADMINISTRATORS _T("administrators")
  11. #define ACCOUNT_SYSTEM _T("system")
  12. #define ACCOUNT_INTERACTIVE _T("interactive")
  13. /////////////////////////////////////////////////////////////////////////////
  14. // CFileSecurityDataObject
  15. class CFileSecurityDataObject: public IDataObject
  16. {
  17. protected:
  18. UINT m_cRef;
  19. CString m_cstrComputerName;
  20. CString m_cstrFolder;
  21. CString m_cstrPath;
  22. CLIPFORMAT m_cfIDList;
  23. public:
  24. CFileSecurityDataObject();
  25. ~CFileSecurityDataObject();
  26. void Initialize(
  27. IN LPCTSTR lpszComputerName,
  28. IN LPCTSTR lpszFolder
  29. );
  30. // *** IUnknown methods ***
  31. STDMETHOD(QueryInterface)(REFIID, LPVOID *);
  32. STDMETHOD_(ULONG, AddRef)();
  33. STDMETHOD_(ULONG, Release)();
  34. // *** IDataObject methods ***
  35. STDMETHOD(GetData)(LPFORMATETC pFEIn, LPSTGMEDIUM pSTM);
  36. inline STDMETHOD(GetDataHere)(LPFORMATETC pFE, LPSTGMEDIUM pSTM) {return E_NOTIMPL;}
  37. inline STDMETHOD(QueryGetData)(LPFORMATETC pFE) {return E_NOTIMPL;}
  38. inline STDMETHOD(GetCanonicalFormatEtc)(LPFORMATETC pFEIn, LPFORMATETC pFEOut) {return E_NOTIMPL;}
  39. inline STDMETHOD(SetData)(LPFORMATETC pFE, LPSTGMEDIUM pSTM, BOOL fRelease) {return E_NOTIMPL;}
  40. inline STDMETHOD(EnumFormatEtc)(DWORD dwDirection, LPENUMFORMATETC *ppEnum) {return E_NOTIMPL;}
  41. inline STDMETHOD(DAdvise)(LPFORMATETC pFE, DWORD grfAdv, LPADVISESINK pAdvSink, LPDWORD pdwConnection) {return E_NOTIMPL;}
  42. inline STDMETHOD(DUnadvise)(DWORD dwConnection) {return E_NOTIMPL;}
  43. inline STDMETHOD(EnumDAdvise)(LPENUMSTATDATA *ppEnum) {return E_NOTIMPL;}
  44. HRESULT GetFolderPIDList(OUT LPITEMIDLIST *ppidl);
  45. };
  46. HRESULT
  47. CreateFileSecurityPropPage(
  48. HPROPSHEETPAGE *phOutPage,
  49. LPDATAOBJECT pDataObject
  50. );
  51. INT_PTR
  52. PopupPermissionDialog(
  53. HWND hWnd,
  54. LPCTSTR target,
  55. LPCTSTR folder
  56. );
  57. #endif // __ACLPAGE_H__