f540e1922b6b09c7634d1b2bc2d7fe49d0a55350
[reactos.git] / reactos / lib / userenv / internal.h
1 /* $Id: internal.h,v 1.8 2004/07/12 10:33:04 weiden Exp $
2 *
3 * COPYRIGHT: See COPYING in the top level directory
4 * PROJECT: ReactOS system libraries
5 * FILE: lib/userenv/internal.h
6 * PURPOSE: internal stuff
7 * PROGRAMMER: Eric Kohl
8 */
9
10 #ifndef _INTERNAL_H
11 #define _INTERNAL_H
12
13 /* debug.h */
14 void
15 DebugPrint (char* fmt,...);
16
17 #define DPRINT1 DebugPrint("(%s:%d) ",__FILE__,__LINE__), DebugPrint
18 #define CHECKPOINT1 do { DebugPrint("%s:%d\n",__FILE__,__LINE__); } while(0);
19
20 #ifdef __GNUC__
21 #define DPRINT(args...)
22 #else
23 #define DPRINT
24 #endif /* __GNUC__ */
25 #define CHECKPOINT
26
27 /* directory.c */
28 BOOL
29 CopyDirectory (LPCWSTR lpDestinationPath,
30 LPCWSTR lpSourcePath);
31
32 BOOL
33 CreateDirectoryPath (LPCWSTR lpPathName,
34 LPSECURITY_ATTRIBUTES lpSecurityAttributes);
35
36 BOOL
37 RemoveDirectoryPath (LPCWSTR lpPathName);
38
39 /* misc.c */
40 typedef struct _DYN_FUNCS
41 {
42 HMODULE hModule;
43 union
44 {
45 PVOID foo;
46 struct
47 {
48 HRESULT (STDCALL *CoInitialize)(LPVOID pvReserved);
49 HRESULT (STDCALL *CoCreateInstance)(REFCLSID rclsid, LPUNKNOWN pUnkOuter, DWORD dwClsContext, REFIID riid, LPVOID * ppv);
50 HRESULT (STDCALL *CoUninitialize)(VOID);
51 };
52 } fn;
53 } DYN_FUNCS, *PDYN_FUNCS;
54
55 typedef struct _DYN_MODULE
56 {
57 LPWSTR Library; /* dll file name */
58 LPSTR Functions[]; /* function names */
59 } DYN_MODULE, *PDYN_MODULE;
60
61 extern DYN_MODULE DynOle32;
62
63 BOOL
64 LoadDynamicImports(PDYN_MODULE Module, PDYN_FUNCS DynFuncs);
65
66 VOID
67 UnloadDynamicImports(PDYN_FUNCS DynFuncs);
68
69 LPWSTR
70 AppendBackslash (LPWSTR String);
71
72 BOOL
73 GetUserSidFromToken (HANDLE hToken,
74 PUNICODE_STRING SidString);
75
76 /* profile.c */
77 BOOL
78 AppendSystemPostfix (LPWSTR lpName,
79 DWORD dwMaxLength);
80
81 /* registry.c */
82 BOOL
83 CreateUserHive (LPCWSTR lpKeyName);
84
85 #endif /* _INTERNAL_H */
86
87 /* EOF */