migrate substitution keywords to SVN
[reactos.git] / reactos / lib / 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
16 * along with this program; if not, write to the Free Software
17 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
18 */
19 /* $Id$
20 *
21 * COPYRIGHT: See COPYING in the top level directory
22 * PROJECT: ReactOS system libraries
23 * FILE: lib/userenv/internal.h
24 * PURPOSE: internal stuff
25 * PROGRAMMER: Eric Kohl
26 */
27
28 #ifndef _INTERNAL_H
29 #define _INTERNAL_H
30
31 /* debug.h */
32 void
33 DebugPrint (char* fmt,...);
34
35 #define DPRINT1 DebugPrint("(%s:%d) ",__FILE__,__LINE__), DebugPrint
36 #define CHECKPOINT1 do { DebugPrint("%s:%d\n",__FILE__,__LINE__); } while(0);
37
38 #ifdef __GNUC__
39 #define DPRINT(args...)
40 #else
41 #define DPRINT
42 #endif /* __GNUC__ */
43 #define CHECKPOINT
44
45 /* directory.c */
46 BOOL
47 CopyDirectory (LPCWSTR lpDestinationPath,
48 LPCWSTR lpSourcePath);
49
50 BOOL
51 CreateDirectoryPath (LPCWSTR lpPathName,
52 LPSECURITY_ATTRIBUTES lpSecurityAttributes);
53
54 BOOL
55 RemoveDirectoryPath (LPCWSTR lpPathName);
56
57 /* misc.c */
58 typedef struct _DYN_FUNCS
59 {
60 HMODULE hModule;
61 union
62 {
63 PVOID foo;
64 struct
65 {
66 HRESULT (STDCALL *CoInitialize)(LPVOID pvReserved);
67 HRESULT (STDCALL *CoCreateInstance)(REFCLSID rclsid, LPUNKNOWN pUnkOuter, DWORD dwClsContext, REFIID riid, LPVOID * ppv);
68 HRESULT (STDCALL *CoUninitialize)(VOID);
69 };
70 } fn;
71 } DYN_FUNCS, *PDYN_FUNCS;
72
73 typedef struct _DYN_MODULE
74 {
75 LPWSTR Library; /* dll file name */
76 LPSTR Functions[]; /* function names */
77 } DYN_MODULE, *PDYN_MODULE;
78
79 extern DYN_MODULE DynOle32;
80
81 BOOL
82 LoadDynamicImports(PDYN_MODULE Module, PDYN_FUNCS DynFuncs);
83
84 VOID
85 UnloadDynamicImports(PDYN_FUNCS DynFuncs);
86
87 LPWSTR
88 AppendBackslash (LPWSTR String);
89
90 BOOL
91 GetUserSidFromToken (HANDLE hToken,
92 PUNICODE_STRING SidString);
93
94 /* profile.c */
95 BOOL
96 AppendSystemPostfix (LPWSTR lpName,
97 DWORD dwMaxLength);
98
99 /* registry.c */
100 BOOL
101 CreateUserHive (LPCWSTR lpKeyName,
102 LPCWSTR lpProfilePath);
103
104 /* setup.c */
105 BOOL
106 UpdateUsersShellFolderSettings(LPCWSTR lpUserProfilePath,
107 HKEY hUserKey);
108
109 /* userenv.c */
110 extern HINSTANCE hInstance;
111
112 #endif /* _INTERNAL_H */
113
114 /* EOF */