[SHELL32] SHChangeNotify: Use tree for CDirectoryList (#6784)
[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
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 */