xref: /reactos/dll/win32/userenv/internal.h (revision 0f21a8a6)
1c2c66affSColin Finck /*
2c2c66affSColin Finck  *  ReactOS kernel
3c2c66affSColin Finck  *  Copyright (C) 2004 ReactOS Team
4c2c66affSColin Finck  *
5c2c66affSColin Finck  *  This program is free software; you can redistribute it and/or modify
6c2c66affSColin Finck  *  it under the terms of the GNU General Public License as published by
7c2c66affSColin Finck  *  the Free Software Foundation; either version 2 of the License, or
8c2c66affSColin Finck  *  (at your option) any later version.
9c2c66affSColin Finck  *
10c2c66affSColin Finck  *  This program is distributed in the hope that it will be useful,
11c2c66affSColin Finck  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
12c2c66affSColin Finck  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13c2c66affSColin Finck  *  GNU General Public License for more details.
14c2c66affSColin Finck  *
15c2c66affSColin Finck  *  You should have received a copy of the GNU General Public License along
16c2c66affSColin Finck  *  with this program; if not, write to the Free Software Foundation, Inc.,
17c2c66affSColin Finck  *  51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18c2c66affSColin Finck  */
19c2c66affSColin Finck /*
20c2c66affSColin Finck  * COPYRIGHT:       See COPYING in the top level directory
21c2c66affSColin Finck  * PROJECT:         ReactOS system libraries
22c2c66affSColin Finck  * FILE:            dll/win32/userenv/internal.h
23c2c66affSColin Finck  * PURPOSE:         internal stuff
24c2c66affSColin Finck  * PROGRAMMER:      Eric Kohl
25c2c66affSColin Finck  */
26c2c66affSColin Finck 
27c2c66affSColin Finck #ifndef _INTERNAL_H
28c2c66affSColin Finck #define _INTERNAL_H
29c2c66affSColin Finck 
30c2c66affSColin Finck /* directory.c */
31c2c66affSColin Finck BOOL
32c2c66affSColin Finck CopyDirectory(LPCWSTR lpDestinationPath,
33c2c66affSColin Finck               LPCWSTR lpSourcePath);
34c2c66affSColin Finck 
35c2c66affSColin Finck BOOL
36c2c66affSColin Finck CreateDirectoryPath(LPCWSTR lpPathName,
37c2c66affSColin Finck                     LPSECURITY_ATTRIBUTES lpSecurityAttributes);
38c2c66affSColin Finck 
39c2c66affSColin Finck BOOL
40c2c66affSColin Finck RemoveDirectoryPath(LPCWSTR lpPathName);
41c2c66affSColin Finck 
42c2c66affSColin Finck /* misc.c */
43*0f21a8a6SEric Kohl 
44*0f21a8a6SEric Kohl extern SID_IDENTIFIER_AUTHORITY LocalSystemAuthority;
45*0f21a8a6SEric Kohl extern SID_IDENTIFIER_AUTHORITY WorldAuthority;
46*0f21a8a6SEric Kohl 
47c2c66affSColin Finck typedef struct _DYN_FUNCS
48c2c66affSColin Finck {
49c2c66affSColin Finck   HMODULE hModule;
50c2c66affSColin Finck   union
51c2c66affSColin Finck   {
52c2c66affSColin Finck     PVOID foo;
53c2c66affSColin Finck     struct
54c2c66affSColin Finck     {
55c2c66affSColin Finck       HRESULT (WINAPI *CoInitialize)(LPVOID pvReserved);
56c2c66affSColin Finck       HRESULT (WINAPI *CoCreateInstance)(REFCLSID rclsid, LPUNKNOWN pUnkOuter, DWORD dwClsContext, REFIID riid, LPVOID * ppv);
57c2c66affSColin Finck       HRESULT (WINAPI *CoUninitialize)(VOID);
58c2c66affSColin Finck     };
59c2c66affSColin Finck   } fn;
60c2c66affSColin Finck } DYN_FUNCS, *PDYN_FUNCS;
61c2c66affSColin Finck 
62c2c66affSColin Finck typedef struct _DYN_MODULE
63c2c66affSColin Finck {
64c2c66affSColin Finck   LPWSTR Library;    /* dll file name */
65c2c66affSColin Finck   LPSTR Functions[]; /* function names */
66c2c66affSColin Finck } DYN_MODULE, *PDYN_MODULE;
67c2c66affSColin Finck 
68c2c66affSColin Finck extern DYN_MODULE DynOle32;
69c2c66affSColin Finck 
70c2c66affSColin Finck BOOL
71c2c66affSColin Finck LoadDynamicImports(PDYN_MODULE Module,
72c2c66affSColin Finck                    PDYN_FUNCS DynFuncs);
73c2c66affSColin Finck 
74c2c66affSColin Finck VOID
75c2c66affSColin Finck UnloadDynamicImports(PDYN_FUNCS DynFuncs);
76c2c66affSColin Finck 
77c2c66affSColin Finck LPWSTR
78c2c66affSColin Finck AppendBackslash(LPWSTR String);
79c2c66affSColin Finck 
80c2c66affSColin Finck PSECURITY_DESCRIPTOR
81c2c66affSColin Finck CreateDefaultSecurityDescriptor(VOID);
82c2c66affSColin Finck 
83c2c66affSColin Finck /* profile.c */
84c2c66affSColin Finck BOOL
85c2c66affSColin Finck AppendSystemPostfix(LPWSTR lpName,
86c2c66affSColin Finck                     DWORD dwMaxLength);
87c2c66affSColin Finck 
88c2c66affSColin Finck /* registry.c */
89c2c66affSColin Finck BOOL
90c2c66affSColin Finck CreateUserHive(LPCWSTR lpKeyName,
91c2c66affSColin Finck                LPCWSTR lpProfilePath);
92c2c66affSColin Finck 
93c2c66affSColin Finck /* setup.c */
94c2c66affSColin Finck BOOL
95c2c66affSColin Finck UpdateUsersShellFolderSettings(LPCWSTR lpUserProfilePath,
96c2c66affSColin Finck                                HKEY hUserKey);
97c2c66affSColin Finck 
98c2c66affSColin Finck /* sid.c */
99c2c66affSColin Finck BOOL
100c2c66affSColin Finck GetUserSidStringFromToken(HANDLE hToken,
101c2c66affSColin Finck                           PUNICODE_STRING SidString);
102c2c66affSColin Finck 
103c2c66affSColin Finck /* userenv.c */
104c2c66affSColin Finck extern HINSTANCE hInstance;
105c2c66affSColin Finck 
106c2c66affSColin Finck /* gpolicy.c */
107c2c66affSColin Finck 
108c2c66affSColin Finck VOID
109c2c66affSColin Finck InitializeGPNotifications(VOID);
110c2c66affSColin Finck 
111c2c66affSColin Finck VOID
112c2c66affSColin Finck UninitializeGPNotifications(VOID);
113c2c66affSColin Finck 
114c2c66affSColin Finck #endif /* _INTERNAL_H */
115