mirror of
https://github.com/reactos/reactos.git
synced 2025-08-05 19:12:57 +00:00
- Add proper file header.
- Create common shell folder registry values in InitializeProfiles(). svn path=/trunk/; revision=11134
This commit is contained in:
parent
1de98ec592
commit
3036e1670c
9 changed files with 276 additions and 40 deletions
|
@ -1,4 +1,22 @@
|
||||||
/* $Id: desktop.c,v 1.10 2004/09/06 12:00:40 ekohl Exp $
|
/*
|
||||||
|
* ReactOS kernel
|
||||||
|
* Copyright (C) 2004 ReactOS Team
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
|
*/
|
||||||
|
/* $Id: desktop.c,v 1.11 2004/09/30 20:23:00 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
|
||||||
|
|
|
@ -1,4 +1,22 @@
|
||||||
/* $Id: directory.c,v 1.5 2004/08/15 19:02:40 chorns Exp $
|
/*
|
||||||
|
* ReactOS kernel
|
||||||
|
* Copyright (C) 2004 ReactOS Team
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
|
*/
|
||||||
|
/* $Id: directory.c,v 1.6 2004/09/30 20:23:00 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
|
||||||
|
|
|
@ -1,4 +1,22 @@
|
||||||
/* $Id: environment.c,v 1.6 2004/08/15 19:02:40 chorns Exp $
|
/*
|
||||||
|
* ReactOS kernel
|
||||||
|
* Copyright (C) 2004 ReactOS Team
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
|
*/
|
||||||
|
/* $Id: environment.c,v 1.7 2004/09/30 20:23:00 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
|
||||||
|
|
|
@ -1,4 +1,22 @@
|
||||||
/* $Id: internal.h,v 1.8 2004/07/12 10:33:04 weiden Exp $
|
/*
|
||||||
|
* ReactOS kernel
|
||||||
|
* Copyright (C) 2004 ReactOS Team
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
|
*/
|
||||||
|
/* $Id: internal.h,v 1.9 2004/09/30 20:23:00 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
|
||||||
|
|
|
@ -1,4 +1,22 @@
|
||||||
/* $Id: misc.c,v 1.6 2004/08/15 19:02:40 chorns Exp $
|
/*
|
||||||
|
* ReactOS kernel
|
||||||
|
* Copyright (C) 2004 ReactOS Team
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
|
*/
|
||||||
|
/* $Id: misc.c,v 1.7 2004/09/30 20:23:00 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
|
||||||
|
@ -101,53 +119,56 @@ DYN_MODULE DynOle32 =
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
|
||||||
Use this function to load functions from other modules. We cannot statically
|
|
||||||
link to e.g. ole32.dll because those dlls would get loaded on startup with
|
|
||||||
winlogon and they may try to register classes etc when not even a window station
|
|
||||||
has been created!
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Use this function to load functions from other modules. We cannot statically
|
||||||
|
* link to e.g. ole32.dll because those dlls would get loaded on startup with
|
||||||
|
* winlogon and they may try to register classes etc when not even a window station
|
||||||
|
* has been created!
|
||||||
|
*/
|
||||||
BOOL
|
BOOL
|
||||||
LoadDynamicImports(PDYN_MODULE Module, PDYN_FUNCS DynFuncs)
|
LoadDynamicImports(PDYN_MODULE Module, PDYN_FUNCS DynFuncs)
|
||||||
{
|
{
|
||||||
LPSTR *fname;
|
LPSTR *fname;
|
||||||
PVOID *fn;
|
PVOID *fn;
|
||||||
|
|
||||||
ZeroMemory(DynFuncs, sizeof(DYN_FUNCS));
|
ZeroMemory(DynFuncs, sizeof(DYN_FUNCS));
|
||||||
|
|
||||||
DynFuncs->hModule = LoadLibraryW(Module->Library);
|
DynFuncs->hModule = LoadLibraryW(Module->Library);
|
||||||
if(!DynFuncs->hModule)
|
if (!DynFuncs->hModule)
|
||||||
{
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
fn = &DynFuncs->fn.foo;
|
|
||||||
|
|
||||||
/* load the imports */
|
|
||||||
for(fname = Module->Functions; *fname != NULL; fname++)
|
|
||||||
{
|
|
||||||
*fn = GetProcAddress(DynFuncs->hModule, *fname);
|
|
||||||
if(*fn == NULL)
|
|
||||||
{
|
{
|
||||||
FreeLibrary(DynFuncs->hModule);
|
|
||||||
DynFuncs->hModule = (HMODULE)0;
|
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
fn++;
|
|
||||||
}
|
fn = &DynFuncs->fn.foo;
|
||||||
|
|
||||||
|
/* load the imports */
|
||||||
|
for (fname = Module->Functions; *fname != NULL; fname++)
|
||||||
|
{
|
||||||
|
*fn = GetProcAddress(DynFuncs->hModule, *fname);
|
||||||
|
if (*fn == NULL)
|
||||||
|
{
|
||||||
|
FreeLibrary(DynFuncs->hModule);
|
||||||
|
DynFuncs->hModule = (HMODULE)0;
|
||||||
|
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
fn++;
|
||||||
|
}
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
UnloadDynamicImports(PDYN_FUNCS DynFuncs)
|
UnloadDynamicImports(PDYN_FUNCS DynFuncs)
|
||||||
{
|
{
|
||||||
if(DynFuncs->hModule)
|
if (DynFuncs->hModule)
|
||||||
{
|
{
|
||||||
FreeLibrary(DynFuncs->hModule);
|
FreeLibrary(DynFuncs->hModule);
|
||||||
DynFuncs->hModule = (HMODULE)0;
|
DynFuncs->hModule = (HMODULE)0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* EOF */
|
/* EOF */
|
||||||
|
|
|
@ -1,4 +1,22 @@
|
||||||
/* $Id: profile.c,v 1.12 2004/08/15 19:02:40 chorns Exp $
|
/*
|
||||||
|
* ReactOS kernel
|
||||||
|
* Copyright (C) 2004 ReactOS Team
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
|
*/
|
||||||
|
/* $Id: profile.c,v 1.13 2004/09/30 20:23:00 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
|
||||||
|
|
|
@ -1,4 +1,22 @@
|
||||||
/* $Id: registry.c,v 1.5 2004/08/15 19:02:40 chorns Exp $
|
/*
|
||||||
|
* ReactOS kernel
|
||||||
|
* Copyright (C) 2004 ReactOS Team
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
|
*/
|
||||||
|
/* $Id: registry.c,v 1.6 2004/09/30 20:23:00 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
|
||||||
|
|
|
@ -1,4 +1,22 @@
|
||||||
/* $Id: setup.c,v 1.6 2004/08/15 19:02:40 chorns Exp $
|
/*
|
||||||
|
* ReactOS kernel
|
||||||
|
* Copyright (C) 2004 ReactOS Team
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
|
*/
|
||||||
|
/* $Id: setup.c,v 1.7 2004/09/30 20:23:00 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
|
||||||
|
@ -16,6 +34,13 @@ typedef struct _DIRDATA
|
||||||
LPWSTR DirName;
|
LPWSTR DirName;
|
||||||
} DIRDATA, *PDIRDATA;
|
} DIRDATA, *PDIRDATA;
|
||||||
|
|
||||||
|
typedef struct _REGDATA
|
||||||
|
{
|
||||||
|
LPWSTR ValueName;
|
||||||
|
LPWSTR ValueData;
|
||||||
|
} REGDATA, *PREGDATA;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static DIRDATA
|
static DIRDATA
|
||||||
DefaultUserDirectories[] =
|
DefaultUserDirectories[] =
|
||||||
|
@ -52,6 +77,27 @@ AllUsersDirectories[] =
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
static REGDATA
|
||||||
|
CommonShellFolders[] =
|
||||||
|
{
|
||||||
|
{L"Desktop", L"%ALLUSERSPROFILE%\\Desktop"},
|
||||||
|
{L"Common AppData", L"%ALLUSERSPROFILE%\\Application Data"},
|
||||||
|
{L"Common Programs", L"%ALLUSERSPROFILE%\\Start Menu\\Programs"},
|
||||||
|
{L"Common Documents", L"%ALLUSERSPROFILE%\\Documents"},
|
||||||
|
{L"Common Desktop", L"%ALLUSERSPROFILE%\\Desktop"},
|
||||||
|
{L"Common Start Menu", L"%ALLUSERSPROFILE%\\Start Menu"},
|
||||||
|
{L"CommonPictures", L"%ALLUSERSPROFILE%\\Documents\\My Pictures"},
|
||||||
|
{L"CommonMusic", L"%ALLUSERSPROFILE%\\Documents\\My Music"},
|
||||||
|
{L"CommonVideo", L"%ALLUSERSPROFILE%\\Documents\\My Videos"},
|
||||||
|
{L"Common Favorites", L"%ALLUSERSPROFILE%\\Favorites"},
|
||||||
|
{L"Common Startup", L"%ALLUSERSPROFILE%\\Start Menu\\Programs\\Startup"},
|
||||||
|
{L"Common Administrative Tools", L"%ALLUSERSPROFILE%\\Start Menu\\Programs\\Administrative Tools"},
|
||||||
|
{L"Common Templates", L"%ALLUSERSPROFILE%\\Templates"},
|
||||||
|
{L"Personal", L"%ALLUSERSPROFILE%\\My Documents"},
|
||||||
|
{NULL, NULL}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
DebugPrint(char* fmt,...)
|
DebugPrint(char* fmt,...)
|
||||||
{
|
{
|
||||||
|
@ -75,6 +121,7 @@ InitializeProfiles (VOID)
|
||||||
LPWSTR lpszPtr;
|
LPWSTR lpszPtr;
|
||||||
DWORD dwLength;
|
DWORD dwLength;
|
||||||
PDIRDATA lpDirData;
|
PDIRDATA lpDirData;
|
||||||
|
PREGDATA lpRegData;
|
||||||
|
|
||||||
HKEY hKey;
|
HKEY hKey;
|
||||||
|
|
||||||
|
@ -211,6 +258,9 @@ InitializeProfiles (VOID)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
RegCloseKey (hKey);
|
||||||
|
|
||||||
|
|
||||||
/* Create 'All Users' profile directory */
|
/* Create 'All Users' profile directory */
|
||||||
wcscpy (szProfilePath, szProfilesPath);
|
wcscpy (szProfilePath, szProfilesPath);
|
||||||
wcscat (szProfilePath, L"\\");
|
wcscat (szProfilePath, L"\\");
|
||||||
|
@ -255,7 +305,46 @@ InitializeProfiles (VOID)
|
||||||
lpDirData++;
|
lpDirData++;
|
||||||
}
|
}
|
||||||
|
|
||||||
RegCloseKey (hKey);
|
/* Create common shell folder registry values */
|
||||||
|
if (RegOpenKeyExW(HKEY_LOCAL_MACHINE,
|
||||||
|
L"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders",
|
||||||
|
0,
|
||||||
|
KEY_ALL_ACCESS,
|
||||||
|
&hKey))
|
||||||
|
{
|
||||||
|
DPRINT1("Error: %lu\n", GetLastError());
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
lpRegData = &CommonShellFolders[0];
|
||||||
|
while (lpRegData->ValueName != NULL)
|
||||||
|
{
|
||||||
|
if (!ExpandEnvironmentStringsW(lpRegData->ValueData,
|
||||||
|
szBuffer,
|
||||||
|
MAX_PATH))
|
||||||
|
{
|
||||||
|
DPRINT1("Error: %lu\n", GetLastError());
|
||||||
|
RegCloseKey(hKey);
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
dwLength = (wcslen (szBuffer) + 1) * sizeof(WCHAR);
|
||||||
|
if (RegSetValueExW(hKey,
|
||||||
|
lpRegData->ValueName,
|
||||||
|
0,
|
||||||
|
REG_SZ,
|
||||||
|
(LPBYTE)szBuffer,
|
||||||
|
dwLength))
|
||||||
|
{
|
||||||
|
DPRINT1("Error: %lu\n", GetLastError());
|
||||||
|
RegCloseKey(hKey);
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
lpRegData++;
|
||||||
|
}
|
||||||
|
|
||||||
|
RegCloseKey(hKey);
|
||||||
|
|
||||||
DPRINT1("Success\n");
|
DPRINT1("Success\n");
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,22 @@
|
||||||
/* $Id: userenv.c,v 1.3 2004/08/15 19:02:40 chorns Exp $
|
/*
|
||||||
|
* ReactOS kernel
|
||||||
|
* Copyright (C) 2004 ReactOS Team
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
|
*/
|
||||||
|
/* $Id: userenv.c,v 1.4 2004/09/30 20:23:00 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
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue