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
56 lines
1.5 KiB
//============================================================
|
|
|
|
//
|
|
|
|
// UserHive.h - Class to load/unload specified user's profile
|
|
|
|
// hive from registry
|
|
|
|
//
|
|
|
|
// Copyright (c) 1997-2001 Microsoft Corporation, All Rights Reserved
|
|
//
|
|
// 01/03/97 a-jmoon created
|
|
//
|
|
//============================================================
|
|
|
|
#ifndef __USERHIVE_INC__
|
|
#define __USERHIVE_INC__
|
|
|
|
class CRegistry;
|
|
|
|
class CUserHive
|
|
{
|
|
public:
|
|
|
|
CUserHive() ;
|
|
~CUserHive() ;
|
|
|
|
DWORD Load(LPCWSTR pszUserName, LPWSTR pszKeyName, size_t PATHSIZE) ;
|
|
DWORD LoadProfile( LPCWSTR pszProfile, CHString& strUserName );
|
|
DWORD Unload(LPCWSTR pszKeyName) ;
|
|
DWORD UserAccountFromProfile( CRegistry& reg, CHString& strUserName );
|
|
|
|
private:
|
|
|
|
OSVERSIONINFO OSInfo ;
|
|
TOKEN_PRIVILEGES* m_pOriginalPriv ;
|
|
HKEY m_hKey;
|
|
DWORD m_dwSize;
|
|
|
|
#ifdef NTONLY
|
|
DWORD LoadNT(LPCWSTR pszUserName, LPWSTR pszKeyName, size_t PATHSIZE);
|
|
DWORD AcquirePrivilege() ;
|
|
void RestorePrivilege() ;
|
|
#endif
|
|
#ifdef WIN9XONLY
|
|
DWORD Load95(LPCWSTR pszUserName, LPWSTR pszKeyName);
|
|
#endif
|
|
|
|
// using threadbase - that way we don't have to jump through any hoops
|
|
// to make sure that the global critical section is initialized properly
|
|
// this is mostly to serialize access to the NT User.dat file.
|
|
static CThreadBase m_criticalSection;
|
|
} ;
|
|
|
|
#endif // file inclusion
|