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.

56 lines
1.5 KiB

  1. //*************************************************************
  2. //
  3. // Copyright (c) Microsoft Corporation 1998
  4. // All rights reserved
  5. //
  6. // util.hxx
  7. //
  8. //*************************************************************
  9. #if !defined(__UTIL_HXX__)
  10. #define __UTIL_HXX__
  11. typedef BOOL (__stdcall SRSETRESTOREPOINTW)(PRESTOREPOINTINFOW pRestorePtSpec, PSTATEMGRSTATUS pSMgrStatus);
  12. extern SRSETRESTOREPOINTW * gpfnSRSetRetorePointW;
  13. class CLoadSfc
  14. {
  15. public:
  16. CLoadSfc( DWORD &Status );
  17. ~CLoadSfc();
  18. private:
  19. HINSTANCE hSfc;
  20. };
  21. BOOL IsMemberOfAdminGroup( HANDLE hUserToken );
  22. DWORD GetPreviousSid( HANDLE hUserToken, WCHAR * pwszCurrentScriptPath, WCHAR ** ppwszPreviousSid );
  23. DWORD RenameScriptDir( WCHAR * pwszPreviousSid, WCHAR * pwszCurrentScriptPath );
  24. DWORD GetCurrentUserGPOList( OUT PGROUP_POLICY_OBJECT* ppGpoList );
  25. DWORD GetWin32ErrFromHResult( HRESULT hr );
  26. void ClearManagedApp( MANAGED_APP* pManagedApp );
  27. DWORD ForceSynchronousRefresh( HANDLE hUserToken );
  28. inline LPWSTR MidlStringDuplicate(LPWSTR wszSource)
  29. {
  30. LPWSTR wszDest;
  31. if ( ! wszSource )
  32. return NULL;
  33. if (wszDest = (LPWSTR) midl_user_allocate((lstrlen(wszSource) + 1) * sizeof(WCHAR)))
  34. {
  35. HRESULT hr;
  36. hr = StringCchCopy(wszDest, lstrlen(wszSource) + 1, wszSource);
  37. if (FAILED(hr))
  38. {
  39. midl_user_free(wszDest);
  40. return NULL;
  41. }
  42. }
  43. return wszDest;
  44. }
  45. #endif __UTIL_HXX__