f33725ffd7e58857c810e33932327571b027cbcf
[reactos.git] / dll / win32 / userenv / internal.h
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 typedef struct _DYN_FUNCS
44 {
45 HMODULE hModule;
46 union
47 {
48 PVOID foo;
49 struct
50 {
51 HRESULT (WINAPI *CoInitialize)(LPVOID pvReserved);
52 HRESULT (WINAPI *CoCreateInstance)(REFCLSID rclsid, LPUNKNOWN pUnkOuter, DWORD dwClsContext, REFIID riid, LPVOID * ppv);
53 HRESULT (WINAPI *CoUninitialize)(VOID);
54 };
55 } fn;
56 } DYN_FUNCS, *PDYN_FUNCS;
57
58 typedef struct _DYN_MODULE
59 {
60 LPWSTR Library; /* dll file name */
61 LPSTR Functions[]; /* function names */
62 } DYN_MODULE, *PDYN_MODULE;
63
64 extern DYN_MODULE DynOle32;
65
66 BOOL
67 LoadDynamicImports(PDYN_MODULE Module,
68 PDYN_FUNCS DynFuncs);
69
70 VOID
71 UnloadDynamicImports(PDYN_FUNCS DynFuncs);
72
73 LPWSTR
74 AppendBackslash(LPWSTR String);
75
76 PSECURITY_DESCRIPTOR
77 CreateDefaultSecurityDescriptor(VOID);
78
79 /* profile.c */
80 BOOL
81 AppendSystemPostfix(LPWSTR lpName,
82 DWORD dwMaxLength);
83
84 /* registry.c */
85 BOOL
86 CreateUserHive(LPCWSTR lpKeyName,
87 LPCWSTR lpProfilePath);
88
89 /* setup.c */
90 BOOL
91 UpdateUsersShellFolderSettings(LPCWSTR lpUserProfilePath,
92 HKEY hUserKey);
93
94 /* sid.c */
95 BOOL
96 GetUserSidStringFromToken(HANDLE hToken,
97 PUNICODE_STRING SidString);
98
99 /* userenv.c */
100 extern HINSTANCE hInstance;
101
102 /* gpolicy.c */
103
104 VOID
105 InitializeGPNotifications(VOID);
106
107 VOID
108 UninitializeGPNotifications(VOID);
109
110 #endif /* _INTERNAL_H */