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.

341 lines
6.1 KiB

  1. //*************************************************************
  2. //
  3. // Copyright (c) Microsoft Corporation 1998
  4. // All rights reserved
  5. //
  6. // util.hxx
  7. //
  8. //*************************************************************
  9. #ifndef _UTIL_HXX_
  10. #define _UTIL_HXX_
  11. #define HOMESHARE_VARIABLE L"%HOMESHARE%"
  12. #define HOMESHARE_VARLEN 11
  13. #define HOMEDRIVE_VARIABLE L"%HOMEDRIVE%"
  14. #define HOMEDRIVE_VARLEN 11
  15. #define HOMEPATH_VARIABLE L"%HOMEPATH%"
  16. #define HOMEPATH_VARLEN 10
  17. typedef enum tagCSCPinCommands
  18. {
  19. PinFile,
  20. UnpinFile
  21. } CSCPINCOMMAND;
  22. //
  23. //class to keep track of copy failures in a recursive file copy operation
  24. //
  25. class CCopyFailData {
  26. public:
  27. CCopyFailData();
  28. ~CCopyFailData();
  29. DWORD RegisterFailure (LPCTSTR pwszSource, LPCTSTR pwszDest);
  30. BOOL IsCopyFailure(void);
  31. LPCTSTR GetSourceName (void);
  32. LPCTSTR GetDestName (void);
  33. private:
  34. BOOL m_bCopyFailed;
  35. DWORD m_dwSourceBufLen;
  36. WCHAR * m_pwszSourceName;
  37. DWORD m_dwDestBufLen;
  38. WCHAR * m_pwszDestName;
  39. };
  40. DWORD
  41. IsOnNTFS(
  42. const WCHAR* pwszPath
  43. );
  44. DWORD
  45. RestrictMyDocsRedirection(
  46. HANDLE hToken,
  47. HKEY hKeyRoot,
  48. BOOL fRestrict
  49. );
  50. BOOL
  51. GroupInList (
  52. WCHAR * pwszSid,
  53. PTOKEN_GROUPS pGroups
  54. );
  55. NTSTATUS
  56. AllocateAndInitSidFromString (
  57. const WCHAR* lpszSidStr,
  58. PSID* ppSid
  59. );
  60. NTSTATUS
  61. LoadSidAuthFromString (
  62. const WCHAR* pString,
  63. PSID_IDENTIFIER_AUTHORITY pSidAuth
  64. );
  65. NTSTATUS
  66. GetIntFromUnicodeString (
  67. const WCHAR* szNum,
  68. ULONG Base,
  69. PULONG pValue
  70. );
  71. DWORD CALLBACK CopyProgressRoutine (
  72. LARGE_INTEGER TotalFileSize,
  73. LARGE_INTEGER TotalBytesTransferred,
  74. LARGE_INTEGER StreamSize,
  75. LARGE_INTEGER StreamBytesTransferred,
  76. DWORD dwStreamNumber,
  77. DWORD dwCallbackReason,
  78. HANDLE hSourceFile,
  79. HANDLE hDestinationFile,
  80. LPVOID lpData
  81. );
  82. DWORD FullFileCopyW (
  83. const WCHAR* wszSource,
  84. const WCHAR* wszDest,
  85. BOOL bFailIfExists
  86. );
  87. DWORD FullDirCopyW (
  88. const WCHAR* pwszSource,
  89. const WCHAR* pwszDest,
  90. BOOL bSkipDacl
  91. );
  92. DWORD FileInDir (
  93. LPCWSTR pwszFile,
  94. LPCWSTR pwszDir,
  95. BOOL* pExists
  96. );
  97. DWORD ComparePaths (
  98. LPCWSTR pwszSource,
  99. LPCWSTR pwszDest,
  100. int* pResult
  101. );
  102. DWORD
  103. CheckIdenticalSpecial (
  104. LPCWSTR pwszSource,
  105. LPCWSTR pwszDest,
  106. int* pResult
  107. );
  108. LPTSTR CheckSlash (
  109. LPTSTR lpDir
  110. );
  111. void GetSetOwnerPrivileges (
  112. HANDLE hToken
  113. );
  114. DWORD
  115. SafeGetPrivateProfileStringW (
  116. const WCHAR * pwszSection,
  117. const WCHAR * pwszKey,
  118. const WCHAR * pwszDefault,
  119. WCHAR ** ppwszReturnedString,
  120. DWORD * pSize,
  121. const WCHAR * pwszIniFile
  122. );
  123. DWORD
  124. MySidCopy (
  125. PSID * ppDestSid,
  126. PSID pSourceSid
  127. );
  128. BOOL GetShareStatus (
  129. const WCHAR * pwszShare,
  130. DWORD * pdwStatus,
  131. DWORD * pdwPinCount,
  132. DWORD * pdwHints
  133. );
  134. SHARESTATUS
  135. GetCSCStatus (
  136. const WCHAR * pwszPath
  137. );
  138. void
  139. MoveDirInCSC (
  140. const WCHAR * pwszSource,
  141. const WCHAR * pwszDest,
  142. const WCHAR * pwszSkipSubdir,
  143. SHARESTATUS StatusFrom,
  144. SHARESTATUS StatusTo,
  145. BOOL bAllowRdrTimeoutForDel,
  146. BOOL bAllowRdrTimeoutForRen
  147. );
  148. DWORD
  149. DoCSCRename (
  150. const WCHAR * pwszSource,
  151. const WCHAR * pwszDest,
  152. BOOL bOverwrite,
  153. BOOL bAllowRdrTimeout
  154. );
  155. DWORD
  156. DeleteCSCFileTree (
  157. const WCHAR * pwszSource,
  158. const WCHAR * pwszSkipSubdir,
  159. BOOL bAllowRdrTimeout
  160. );
  161. DWORD
  162. DeleteCSCFile (
  163. const WCHAR * pwszPath,
  164. BOOL bAllowRdrTimeout
  165. );
  166. void
  167. DisplayStatusMessage (
  168. UINT rid
  169. );
  170. DWORD
  171. DeleteCSCShareIfEmpty (
  172. LPCTSTR pwszFileName,
  173. SHARESTATUS shStatus
  174. );
  175. DWORD
  176. MergePinInfo (
  177. LPCTSTR pwszSource,
  178. LPCTSTR pwszDest,
  179. SHARESTATUS StatusFrom,
  180. SHARESTATUS StatusTo
  181. );
  182. DWORD
  183. PinIfNecessary (
  184. const WCHAR * pwszPath,
  185. SHARESTATUS shStatus
  186. );
  187. DWORD
  188. CacheDesktopIni (
  189. LPCTSTR pwszPath,
  190. SHARESTATUS shStatus,
  191. CSCPINCOMMAND uCommand
  192. );
  193. DWORD WINAPI
  194. CSCCallbackProc (
  195. LPCTSTR pszName,
  196. DWORD dwStatus,
  197. DWORD dwHintFlags,
  198. DWORD dwPinCount,
  199. LPWIN32_FIND_DATA pFind32,
  200. DWORD dwReason,
  201. DWORD dwParam1,
  202. DWORD dwParam2,
  203. DWORD_PTR dwContext
  204. );
  205. HRESULT
  206. UpdateMyPicsShellLinks (
  207. HANDLE hUserToken,
  208. const WCHAR * pwszMyPicsLocName
  209. );
  210. DWORD
  211. LoadLocalizedFolderNames (
  212. void
  213. );
  214. DWORD
  215. DeleteCachedConfigFiles (
  216. const PGROUP_POLICY_OBJECT pGPOList,
  217. CFileDB * pFileDB
  218. );
  219. void
  220. SimplifyPath (
  221. WCHAR * pwszPath
  222. );
  223. DWORD
  224. PrecreateUnicodeIniFile (
  225. LPCTSTR lpszFilePath
  226. );
  227. BOOL
  228. IsPathLocal (
  229. LPCWSTR pwszPath
  230. );
  231. DWORD
  232. ExpandPathSpecial (
  233. CFileDB * pFileDB,
  234. const WCHAR * pwszPath,
  235. const WCHAR * pwszUserName,
  236. WCHAR * wszExpandedPath,
  237. ULONG * pDesiredBufferSize = NULL
  238. );
  239. DWORD
  240. ExpandHomeDir (
  241. REDIRECTABLE rID,
  242. const WCHAR * pwszPath,
  243. BOOL bAllowMyPics,
  244. WCHAR ** ppwszExpandedPath,
  245. const WCHAR * pwszHomedir = NULL
  246. );
  247. DWORD
  248. ExpandHomeDirPolicyPath (
  249. REDIRECTABLE rID,
  250. const WCHAR * pwszPath,
  251. BOOL bAllowMyPics,
  252. WCHAR ** ppwszExpandedPath,
  253. const WCHAR * pwszHomedir = NULL
  254. );
  255. BOOL
  256. IsHomedirPath (
  257. REDIRECTABLE rID,
  258. LPCWSTR pwszPath,
  259. BOOL bAllowMyPics
  260. );
  261. BOOL
  262. IsHomedirPolicyPath (
  263. REDIRECTABLE rID,
  264. LPCWSTR pwszPath,
  265. BOOL bAllowMyPics
  266. );
  267. BOOL
  268. HasHomeVariables (
  269. LPCWSTR pwszPath
  270. );
  271. DWORD
  272. GetWin32ErrFromHResult (
  273. HRESULT hr
  274. );
  275. DWORD
  276. GetExpandedPath(
  277. IN CFileDB* pFileDB,
  278. IN WCHAR* wszSourcePath,
  279. IN int rID,
  280. IN BOOL bAllowMyPics,
  281. OUT WCHAR** ppwszExpandedPath);
  282. #endif _UTIL_HXX_