[USERENV]
[reactos.git] / reactos / 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 BOOL
77 GetUserSidFromToken(HANDLE hToken,
78 PSID *Sid);
79
80 BOOL
81 GetUserSidStringFromToken(HANDLE hToken,
82 PUNICODE_STRING SidString);
83
84 PSECURITY_DESCRIPTOR
85 CreateDefaultSecurityDescriptor(VOID);
86
87 /* profile.c */
88 BOOL
89 AppendSystemPostfix(LPWSTR lpName,
90 DWORD dwMaxLength);
91
92 /* registry.c */
93 BOOL
94 CreateUserHive(LPCWSTR lpKeyName,
95 LPCWSTR lpProfilePath);
96
97 /* setup.c */
98 BOOL
99 UpdateUsersShellFolderSettings(LPCWSTR lpUserProfilePath,
100 HKEY hUserKey);
101
102 /* userenv.c */
103 extern HINSTANCE hInstance;
104
105 /* gpolicy.c */
106
107 VOID
108 InitializeGPNotifications(VOID);
109
110 VOID
111 UninitializeGPNotifications(VOID);
112
113 #endif /* _INTERNAL_H */
114
115 /* EOF */