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.

204 lines
3.2 KiB

  1. //+---------------------------------------------------------------------------
  2. //
  3. // Microsoft Windows
  4. // Copyright (C) Microsoft Corporation, 1992 - 1994.
  5. //
  6. // File: shrinfo.hxx
  7. //
  8. // Contents: Lanman SHARE_INFO encapsulation
  9. //
  10. // History: 21-Feb-95 BruceFo Created
  11. //
  12. //----------------------------------------------------------------------------
  13. #ifndef __SHRINFO_HXX__
  14. #define __SHRINFO_HXX__
  15. //
  16. // Valid flags:
  17. //
  18. #define SHARE_FLAG_ADDED 1
  19. #define SHARE_FLAG_REMOVE 2
  20. #define SHARE_FLAG_MODIFY 3
  21. #include "dlink.hxx"
  22. class CShareInfo : public CDoubleLink
  23. {
  24. DECLARE_SIG;
  25. friend class CSharingPropertyPage; // for m_next
  26. public:
  27. CShareInfo(); // create new info
  28. CShareInfo(IN SHARE_INFO_502* pInfo); // cache existing info
  29. HRESULT
  30. InitInstance(
  31. VOID
  32. );
  33. ~CShareInfo();
  34. NET_API_STATUS
  35. Commit(
  36. IN PWSTR pszMachine
  37. );
  38. //
  39. // "Get" methods
  40. //
  41. SHARE_INFO_502*
  42. GetShareInfo(
  43. VOID
  44. );
  45. PWSTR
  46. GetNetname(
  47. VOID
  48. );
  49. DWORD
  50. GetType(
  51. VOID
  52. );
  53. PWSTR
  54. GetRemark(
  55. VOID
  56. );
  57. DWORD
  58. GetMaxUses(
  59. VOID
  60. );
  61. PWSTR
  62. GetPath(
  63. VOID
  64. );
  65. PSECURITY_DESCRIPTOR
  66. GetSecurityDescriptor(
  67. VOID
  68. );
  69. //
  70. // "Set" methods
  71. //
  72. HRESULT
  73. SetNetname(
  74. IN PWSTR pszNetname
  75. );
  76. HRESULT
  77. SetType(
  78. IN DWORD dwType
  79. );
  80. HRESULT
  81. SetRemark(
  82. IN PWSTR pszRemark
  83. );
  84. HRESULT
  85. SetMaxUses(
  86. IN DWORD dwMaxUses
  87. );
  88. HRESULT
  89. SetPath(
  90. IN PWSTR pszPath
  91. );
  92. // Set... makes a copy of the argument
  93. HRESULT
  94. SetSecurityDescriptor(
  95. IN PSECURITY_DESCRIPTOR pSecDesc
  96. );
  97. // Transfer... takes ownership of "new BYTE[]" memory
  98. HRESULT
  99. TransferSecurityDescriptor(
  100. IN PSECURITY_DESCRIPTOR pSecDesc
  101. );
  102. //
  103. // Other Get/Set methods -- not SHARE_INFO_502 data
  104. //
  105. ULONG
  106. GetFlag(
  107. VOID
  108. );
  109. VOID
  110. SetDirtyFlag(
  111. ULONG flag
  112. );
  113. HRESULT
  114. Copy(
  115. IN SHARE_INFO_502* pInfo
  116. );
  117. #if DBG == 1
  118. VOID
  119. Dump(
  120. IN PWSTR pszCaption
  121. );
  122. #endif // DBG == 1
  123. BOOL
  124. TakeOwn(
  125. VOID
  126. );
  127. void
  128. SetCacheFlags (
  129. DWORD dwFlags
  130. );
  131. DWORD
  132. GetCacheFlags (
  133. VOID
  134. ) const;
  135. NET_API_STATUS
  136. ReadCacheFlags(
  137. VOID
  138. );
  139. private:
  140. bool m_bCachingSupported;
  141. NET_API_STATUS
  142. WriteCacheFlags(
  143. VOID
  144. );
  145. //
  146. // Main object data
  147. //
  148. BOOL m_bOwn;
  149. ULONG m_flags;
  150. SHARE_INFO_502* m_pInfo;
  151. DWORD m_dwCacheFlags;
  152. };
  153. //
  154. // Helper API
  155. //
  156. VOID
  157. DeleteShareInfoList(
  158. IN CShareInfo* pShareInfoList,
  159. IN BOOL fDeleteDummyHeadNode = FALSE
  160. );
  161. #endif // __SHRINFO_HXX__