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