mirror of
https://github.com/reactos/reactos.git
synced 2024-07-08 05:35:06 +00:00
Create user profile directory by copying the default user directory.
Prepare to copy the default user hive. svn path=/trunk/; revision=7684
This commit is contained in:
parent
4dbcbd1b9d
commit
c97ad8c5de
|
@ -1,4 +1,4 @@
|
||||||
/* $Id: directory.c,v 1.1 2004/01/15 14:59:06 ekohl Exp $
|
/* $Id: directory.c,v 1.2 2004/01/16 15:31:53 ekohl Exp $
|
||||||
*
|
*
|
||||||
* COPYRIGHT: See COPYING in the top level directory
|
* COPYRIGHT: See COPYING in the top level directory
|
||||||
* PROJECT: ReactOS system libraries
|
* PROJECT: ReactOS system libraries
|
||||||
|
@ -11,8 +11,6 @@
|
||||||
#include <windows.h>
|
#include <windows.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
//#include <userenv.h>
|
|
||||||
|
|
||||||
#include "internal.h"
|
#include "internal.h"
|
||||||
|
|
||||||
|
|
||||||
|
@ -22,6 +20,99 @@ BOOL
|
||||||
CopyDirectory (LPCWSTR lpDestinationPath,
|
CopyDirectory (LPCWSTR lpDestinationPath,
|
||||||
LPCWSTR lpSourcePath)
|
LPCWSTR lpSourcePath)
|
||||||
{
|
{
|
||||||
|
WCHAR szFileName[MAX_PATH];
|
||||||
|
WCHAR szFullSrcName[MAX_PATH];
|
||||||
|
WCHAR szFullDstName[MAX_PATH];
|
||||||
|
WIN32_FIND_DATAW FindFileData;
|
||||||
|
LPWSTR lpSrcPtr;
|
||||||
|
LPWSTR lpDstPtr;
|
||||||
|
HANDLE hFind;
|
||||||
|
|
||||||
|
DPRINT ("CopyDirectory (%S, %S) called\n",
|
||||||
|
lpDestinationPath, lpSourcePath);
|
||||||
|
|
||||||
|
wcscpy (szFileName, lpSourcePath);
|
||||||
|
wcscat (szFileName, L"\\*.*");
|
||||||
|
|
||||||
|
hFind = FindFirstFileW (szFileName,
|
||||||
|
&FindFileData);
|
||||||
|
if (hFind == INVALID_HANDLE_VALUE)
|
||||||
|
{
|
||||||
|
DPRINT1 ("Error: %lu\n", GetLastError());
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
wcscpy (szFullSrcName, lpSourcePath);
|
||||||
|
lpSrcPtr = AppendBackslash (szFullSrcName);
|
||||||
|
|
||||||
|
wcscpy (szFullDstName, lpDestinationPath);
|
||||||
|
lpDstPtr = AppendBackslash (szFullDstName);
|
||||||
|
|
||||||
|
for (;;)
|
||||||
|
{
|
||||||
|
if (wcscmp (FindFileData.cFileName, L".") &&
|
||||||
|
wcscmp (FindFileData.cFileName, L".."))
|
||||||
|
{
|
||||||
|
wcscpy (lpSrcPtr, FindFileData.cFileName);
|
||||||
|
wcscpy (lpDstPtr, FindFileData.cFileName);
|
||||||
|
|
||||||
|
if (FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
|
||||||
|
{
|
||||||
|
DPRINT ("Create directory: %S\n", szFullDstName);
|
||||||
|
if (!CreateDirectoryW (szFullDstName, NULL))
|
||||||
|
{
|
||||||
|
if (GetLastError () != ERROR_ALREADY_EXISTS)
|
||||||
|
{
|
||||||
|
DPRINT1 ("Error: %lu\n", GetLastError());
|
||||||
|
|
||||||
|
FindClose (hFind);
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!CopyDirectory (szFullDstName, szFullSrcName))
|
||||||
|
{
|
||||||
|
DPRINT1 ("Error: %lu\n", GetLastError());
|
||||||
|
|
||||||
|
FindClose (hFind);
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
DPRINT1 ("Copy file: %S -> %S\n", szFullSrcName, szFullDstName);
|
||||||
|
if (!CopyFileW (szFullSrcName, szFullDstName, FALSE))
|
||||||
|
{
|
||||||
|
DPRINT1 ("Error: %lu\n", GetLastError());
|
||||||
|
|
||||||
|
FindClose (hFind);
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Copy file attributes */
|
||||||
|
if (FindFileData.dwFileAttributes & ~FILE_ATTRIBUTE_DIRECTORY)
|
||||||
|
{
|
||||||
|
SetFileAttributesW (szFullDstName,
|
||||||
|
FindFileData.dwFileAttributes);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!FindNextFileW (hFind, &FindFileData))
|
||||||
|
{
|
||||||
|
if (GetLastError () != ERROR_NO_MORE_FILES)
|
||||||
|
{
|
||||||
|
DPRINT1 ("Error: %lu\n", GetLastError());
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
FindClose (hFind);
|
||||||
|
|
||||||
|
DPRINT ("Copy Directory() done\n");
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $Id: internal.h,v 1.3 2004/01/15 14:59:06 ekohl Exp $
|
/* $Id: internal.h,v 1.4 2004/01/16 15:31:53 ekohl Exp $
|
||||||
*
|
*
|
||||||
* COPYRIGHT: See COPYING in the top level directory
|
* COPYRIGHT: See COPYING in the top level directory
|
||||||
* PROJECT: ReactOS system libraries
|
* PROJECT: ReactOS system libraries
|
||||||
|
@ -17,11 +17,31 @@ DebugPrint (char* fmt,...);
|
||||||
#define DPRINT1 DebugPrint("(%s:%d) ",__FILE__,__LINE__), DebugPrint
|
#define DPRINT1 DebugPrint("(%s:%d) ",__FILE__,__LINE__), DebugPrint
|
||||||
#define CHECKPOINT1 do { DebugPrint("%s:%d\n",__FILE__,__LINE__); } while(0);
|
#define CHECKPOINT1 do { DebugPrint("%s:%d\n",__FILE__,__LINE__); } while(0);
|
||||||
|
|
||||||
|
#ifdef __GNUC__
|
||||||
|
#define DPRINT(args...)
|
||||||
|
#else
|
||||||
|
#define DPRINT
|
||||||
|
#endif /* __GNUC__ */
|
||||||
|
#define CHECKPOINT
|
||||||
|
|
||||||
/* directory.h */
|
/* directory.h */
|
||||||
BOOL
|
BOOL
|
||||||
CopyDirectory (LPCWSTR lpDestinationPath,
|
CopyDirectory (LPCWSTR lpDestinationPath,
|
||||||
LPCWSTR lpSourcePath);
|
LPCWSTR lpSourcePath);
|
||||||
|
|
||||||
|
/* misc.h */
|
||||||
|
LPWSTR
|
||||||
|
AppendBackslash (LPWSTR String);
|
||||||
|
|
||||||
|
BOOL
|
||||||
|
AppendSystemPostfix (LPWSTR lpName,
|
||||||
|
DWORD dwMaxLength);
|
||||||
|
|
||||||
|
|
||||||
|
/* registry.h */
|
||||||
|
BOOL
|
||||||
|
CreateUserHive (LPCWSTR lpKeyName);
|
||||||
|
|
||||||
#endif /* _INTERNAL_H */
|
#endif /* _INTERNAL_H */
|
||||||
|
|
||||||
/* EOF */
|
/* EOF */
|
||||||
|
|
|
@ -15,7 +15,7 @@ TARGET_LFLAGS = -nostdlib -nostartfiles
|
||||||
|
|
||||||
TARGET_SDKLIBS = ntdll.a kernel32.a advapi32.a
|
TARGET_SDKLIBS = ntdll.a kernel32.a advapi32.a
|
||||||
|
|
||||||
TARGET_OBJECTS = directory.o profile.o setup.o userenv.o
|
TARGET_OBJECTS = directory.o profile.o misc.o registry.o setup.o userenv.o
|
||||||
|
|
||||||
DEP_OBJECTS = $(TARGET_OBJECTS)
|
DEP_OBJECTS = $(TARGET_OBJECTS)
|
||||||
|
|
||||||
|
|
35
reactos/lib/userenv/misc.c
Normal file
35
reactos/lib/userenv/misc.c
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
/* $Id: misc.c,v 1.1 2004/01/16 15:31:53 ekohl Exp $
|
||||||
|
*
|
||||||
|
* COPYRIGHT: See COPYING in the top level directory
|
||||||
|
* PROJECT: ReactOS system libraries
|
||||||
|
* FILE: lib/userenv/misc.c
|
||||||
|
* PURPOSE: User profile code
|
||||||
|
* PROGRAMMER: Eric Kohl
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <ntos.h>
|
||||||
|
#include <windows.h>
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
#include "internal.h"
|
||||||
|
|
||||||
|
|
||||||
|
/* FUNCTIONS ***************************************************************/
|
||||||
|
|
||||||
|
LPWSTR
|
||||||
|
AppendBackslash (LPWSTR String)
|
||||||
|
{
|
||||||
|
ULONG Length;
|
||||||
|
|
||||||
|
Length = lstrlenW (String);
|
||||||
|
if (String[Length - 1] != L'\\')
|
||||||
|
{
|
||||||
|
String[Length] = L'\\';
|
||||||
|
Length++;
|
||||||
|
String[Length] = (WCHAR)0;
|
||||||
|
}
|
||||||
|
|
||||||
|
return &String[Length];
|
||||||
|
}
|
||||||
|
|
||||||
|
/* EOF */
|
|
@ -1,4 +1,4 @@
|
||||||
/* $Id: profile.c,v 1.2 2004/01/15 14:59:06 ekohl Exp $
|
/* $Id: profile.c,v 1.3 2004/01/16 15:31:53 ekohl Exp $
|
||||||
*
|
*
|
||||||
* COPYRIGHT: See COPYING in the top level directory
|
* COPYRIGHT: See COPYING in the top level directory
|
||||||
* PROJECT: ReactOS system libraries
|
* PROJECT: ReactOS system libraries
|
||||||
|
@ -18,6 +18,63 @@
|
||||||
|
|
||||||
/* FUNCTIONS ***************************************************************/
|
/* FUNCTIONS ***************************************************************/
|
||||||
|
|
||||||
|
BOOL
|
||||||
|
AppendSystemPostfix (LPWSTR lpName,
|
||||||
|
DWORD dwMaxLength)
|
||||||
|
{
|
||||||
|
WCHAR szSystemRoot[MAX_PATH];
|
||||||
|
WCHAR szDrivePostfix[3];
|
||||||
|
LPWSTR lpszPostfix;
|
||||||
|
LPWSTR lpszPtr;
|
||||||
|
DWORD dwPostfixLength;
|
||||||
|
|
||||||
|
/* Build profile name postfix */
|
||||||
|
if (!ExpandEnvironmentStringsW (L"%SystemRoot%",
|
||||||
|
szSystemRoot,
|
||||||
|
MAX_PATH))
|
||||||
|
{
|
||||||
|
DPRINT1("Error: %lu\n", GetLastError());
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
_wcsupr (szSystemRoot);
|
||||||
|
|
||||||
|
/* Get name postfix */
|
||||||
|
szSystemRoot[2] = L'.';
|
||||||
|
lpszPostfix = &szSystemRoot[2];
|
||||||
|
lpszPtr = lpszPostfix;
|
||||||
|
while (*lpszPtr != (WCHAR)0)
|
||||||
|
{
|
||||||
|
if (*lpszPtr == L'\\')
|
||||||
|
*lpszPtr = '_';
|
||||||
|
lpszPtr++;
|
||||||
|
}
|
||||||
|
|
||||||
|
dwPostfixLength = wcslen (lpszPostfix);
|
||||||
|
if (szSystemRoot[0] != L'C')
|
||||||
|
{
|
||||||
|
dwPostfixLength += 2;
|
||||||
|
szDrivePostfix[0] = L'_';
|
||||||
|
szDrivePostfix[1] = szSystemRoot[0];
|
||||||
|
szDrivePostfix[2] = (WCHAR)0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (wcslen (lpName) + dwPostfixLength >= dwMaxLength)
|
||||||
|
{
|
||||||
|
DPRINT1("Error: buffer overflow\n");
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
wcscat (lpName, lpszPostfix);
|
||||||
|
if (szSystemRoot[0] != L'C')
|
||||||
|
{
|
||||||
|
wcscat (lpName, szDrivePostfix);
|
||||||
|
}
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
BOOL WINAPI
|
BOOL WINAPI
|
||||||
CreateUserProfileW (PSID Sid,
|
CreateUserProfileW (PSID Sid,
|
||||||
LPCWSTR lpUserName)
|
LPCWSTR lpUserName)
|
||||||
|
@ -87,6 +144,13 @@ CreateUserProfileW (PSID Sid,
|
||||||
wcscpy (szUserProfilePath, szProfilesPath);
|
wcscpy (szUserProfilePath, szProfilesPath);
|
||||||
wcscat (szUserProfilePath, L"\\");
|
wcscat (szUserProfilePath, L"\\");
|
||||||
wcscat (szUserProfilePath, lpUserName);
|
wcscat (szUserProfilePath, lpUserName);
|
||||||
|
if (!AppendSystemPostfix (szUserProfilePath, MAX_PATH))
|
||||||
|
{
|
||||||
|
DPRINT1("AppendSystemPostfix() failed\n", GetLastError());
|
||||||
|
RtlFreeUnicodeString (&SidString);
|
||||||
|
RegCloseKey (hKey);
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
wcscpy (szDefaultUserPath, szProfilesPath);
|
wcscpy (szDefaultUserPath, szProfilesPath);
|
||||||
wcscat (szDefaultUserPath, L"\\");
|
wcscat (szDefaultUserPath, L"\\");
|
||||||
|
@ -121,9 +185,6 @@ CreateUserProfileW (PSID Sid,
|
||||||
L"SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\ProfileList\\");
|
L"SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\ProfileList\\");
|
||||||
wcscat (szBuffer, SidString.Buffer);
|
wcscat (szBuffer, SidString.Buffer);
|
||||||
|
|
||||||
// DebugPrint ("User SID: %wZ\n", &SidString);
|
|
||||||
// RtlFreeUnicodeString (&SidString);
|
|
||||||
|
|
||||||
/* Create user profile key */
|
/* Create user profile key */
|
||||||
if (RegCreateKeyExW (HKEY_LOCAL_MACHINE,
|
if (RegCreateKeyExW (HKEY_LOCAL_MACHINE,
|
||||||
szBuffer,
|
szBuffer,
|
||||||
|
@ -144,6 +205,13 @@ CreateUserProfileW (PSID Sid,
|
||||||
wcscpy (szBuffer, szRawProfilesPath);
|
wcscpy (szBuffer, szRawProfilesPath);
|
||||||
wcscat (szBuffer, L"\\");
|
wcscat (szBuffer, L"\\");
|
||||||
wcscat (szBuffer, lpUserName);
|
wcscat (szBuffer, lpUserName);
|
||||||
|
if (!AppendSystemPostfix (szBuffer, MAX_PATH))
|
||||||
|
{
|
||||||
|
DPRINT1("AppendSystemPostfix() failed\n", GetLastError());
|
||||||
|
RtlFreeUnicodeString (&SidString);
|
||||||
|
RegCloseKey (hKey);
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
/* Set 'ProfileImagePath' value (non-expanded) */
|
/* Set 'ProfileImagePath' value (non-expanded) */
|
||||||
if (RegSetValueExW (hKey,
|
if (RegSetValueExW (hKey,
|
||||||
|
@ -178,6 +246,7 @@ CreateUserProfileW (PSID Sid,
|
||||||
/* Create user hive name */
|
/* Create user hive name */
|
||||||
wcscat (szUserProfilePath, L"\\ntuser.dat");
|
wcscat (szUserProfilePath, L"\\ntuser.dat");
|
||||||
|
|
||||||
|
#if 0
|
||||||
/* Create new user hive */
|
/* Create new user hive */
|
||||||
if (RegLoadKeyW (HKEY_USERS,
|
if (RegLoadKeyW (HKEY_USERS,
|
||||||
SidString.Buffer,
|
SidString.Buffer,
|
||||||
|
@ -188,10 +257,17 @@ CreateUserProfileW (PSID Sid,
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* FIXME: Copy default user hive */
|
/* Create user hive */
|
||||||
|
if (!CreateUserHive (SidString.Buffer))
|
||||||
|
{
|
||||||
|
DPRINT1("Error: %lu\n", GetLastError());
|
||||||
|
RtlFreeUnicodeString (&SidString);
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
RegUnLoadKeyW (HKEY_USERS,
|
RegUnLoadKeyW (HKEY_USERS,
|
||||||
SidString.Buffer);
|
SidString.Buffer);
|
||||||
|
#endif
|
||||||
|
|
||||||
RtlFreeUnicodeString (&SidString);
|
RtlFreeUnicodeString (&SidString);
|
||||||
|
|
||||||
|
|
26
reactos/lib/userenv/registry.c
Normal file
26
reactos/lib/userenv/registry.c
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
/* $Id: registry.c,v 1.1 2004/01/16 15:31:53 ekohl Exp $
|
||||||
|
*
|
||||||
|
* COPYRIGHT: See COPYING in the top level directory
|
||||||
|
* PROJECT: ReactOS system libraries
|
||||||
|
* FILE: lib/userenv/registry.c
|
||||||
|
* PURPOSE: User profile code
|
||||||
|
* PROGRAMMER: Eric Kohl
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <ntos.h>
|
||||||
|
#include <windows.h>
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
#include "internal.h"
|
||||||
|
|
||||||
|
|
||||||
|
/* FUNCTIONS ***************************************************************/
|
||||||
|
|
||||||
|
BOOL
|
||||||
|
CreateUserHive (LPCWSTR lpKeyName)
|
||||||
|
{
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* EOF */
|
|
@ -1,4 +1,4 @@
|
||||||
/* $Id: setup.c,v 1.2 2004/01/13 12:34:09 ekohl Exp $
|
/* $Id: setup.c,v 1.3 2004/01/16 15:31:53 ekohl Exp $
|
||||||
*
|
*
|
||||||
* COPYRIGHT: See COPYING in the top level directory
|
* COPYRIGHT: See COPYING in the top level directory
|
||||||
* PROJECT: ReactOS system libraries
|
* PROJECT: ReactOS system libraries
|
||||||
|
@ -56,23 +56,6 @@ AllUsersDirectories[] =
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
static LPWSTR
|
|
||||||
AppendBackslash(LPWSTR String)
|
|
||||||
{
|
|
||||||
ULONG Length;
|
|
||||||
|
|
||||||
Length = lstrlenW (String);
|
|
||||||
if (String[Length - 1] != L'\\')
|
|
||||||
{
|
|
||||||
String[Length] = L'\\';
|
|
||||||
Length++;
|
|
||||||
String[Length] = (WCHAR)0;
|
|
||||||
}
|
|
||||||
|
|
||||||
return &String[Length];
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
DebugPrint(char* fmt,...)
|
DebugPrint(char* fmt,...)
|
||||||
{
|
{
|
||||||
|
@ -92,9 +75,7 @@ InitializeProfiles (VOID)
|
||||||
{
|
{
|
||||||
WCHAR szProfilesPath[MAX_PATH];
|
WCHAR szProfilesPath[MAX_PATH];
|
||||||
WCHAR szProfilePath[MAX_PATH];
|
WCHAR szProfilePath[MAX_PATH];
|
||||||
WCHAR szSystemRoot[MAX_PATH];
|
|
||||||
WCHAR szBuffer[MAX_PATH];
|
WCHAR szBuffer[MAX_PATH];
|
||||||
LPWSTR lpszPostfix;
|
|
||||||
LPWSTR lpszPtr;
|
LPWSTR lpszPtr;
|
||||||
DWORD dwLength;
|
DWORD dwLength;
|
||||||
PDIRDATA lpDirData;
|
PDIRDATA lpDirData;
|
||||||
|
@ -146,32 +127,15 @@ InitializeProfiles (VOID)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Build profile name postfix */
|
/* Set 'DefaultUserProfile' value */
|
||||||
if (!ExpandEnvironmentStringsW (L"%SystemRoot%",
|
wcscpy (szBuffer, L"Default User");
|
||||||
szSystemRoot,
|
if (!AppendSystemPostfix (szBuffer, MAX_PATH))
|
||||||
MAX_PATH))
|
|
||||||
{
|
{
|
||||||
DPRINT1("Error: %lu\n", GetLastError());
|
DPRINT1("AppendSystemPostfix() failed\n", GetLastError());
|
||||||
RegCloseKey (hKey);
|
RegCloseKey (hKey);
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Get name postfix */
|
|
||||||
szSystemRoot[2] = L'.';
|
|
||||||
lpszPostfix = &szSystemRoot[2];
|
|
||||||
lpszPtr = lpszPostfix;
|
|
||||||
while (*lpszPtr != (WCHAR)0)
|
|
||||||
{
|
|
||||||
if (*lpszPtr == L'\\')
|
|
||||||
*lpszPtr = '_';
|
|
||||||
lpszPtr++;
|
|
||||||
}
|
|
||||||
_wcsupr (lpszPostfix);
|
|
||||||
|
|
||||||
/* Set 'DefaultUserProfile' value */
|
|
||||||
wcscpy (szBuffer, L"Default User");
|
|
||||||
wcscat (szBuffer, lpszPostfix);
|
|
||||||
|
|
||||||
dwLength = (wcslen (szBuffer) + 1) * sizeof(WCHAR);
|
dwLength = (wcslen (szBuffer) + 1) * sizeof(WCHAR);
|
||||||
if (RegSetValueExW (hKey,
|
if (RegSetValueExW (hKey,
|
||||||
L"DefaultUserProfile",
|
L"DefaultUserProfile",
|
||||||
|
@ -231,7 +195,12 @@ InitializeProfiles (VOID)
|
||||||
|
|
||||||
/* Set 'AllUsersProfile' value */
|
/* Set 'AllUsersProfile' value */
|
||||||
wcscpy (szBuffer, L"All Users");
|
wcscpy (szBuffer, L"All Users");
|
||||||
wcscat (szBuffer, lpszPostfix);
|
if (!AppendSystemPostfix (szBuffer, MAX_PATH))
|
||||||
|
{
|
||||||
|
DPRINT1("AppendSystemPostfix() failed\n", GetLastError());
|
||||||
|
RegCloseKey (hKey);
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
dwLength = (wcslen (szBuffer) + 1) * sizeof(WCHAR);
|
dwLength = (wcslen (szBuffer) + 1) * sizeof(WCHAR);
|
||||||
if (RegSetValueExW (hKey,
|
if (RegSetValueExW (hKey,
|
||||||
|
|
Loading…
Reference in a new issue